v0.22.0
Breaking Changes (0.22.0)
-
Bridge Command Removal: Removed
specfact bridgecommand group entirely- Constitution Commands Moved:
specfact bridge constitution *commands moved tospecfact sdd constitution * - Migration Required: Update all scripts and workflows:
specfact bridge constitution bootstrap→specfact sdd constitution bootstrapspecfact bridge constitution enrich→specfact sdd constitution enrichspecfact bridge constitution validate→specfact sdd constitution validate
- Rationale: Bridge adapters are internal connectors, not user-facing commands. Constitution management belongs under SDD (Spec-Driven Development) commands.
- Constitution Commands Moved:
-
SpecKitSync Class Removal: Removed
SpecKitSyncclass andspeckit_sync.pymodule- Replacement: Use
SpecKitAdapterviaAdapterRegistryfor all Spec-Kit operations - Breaking: Code that directly imports or instantiates
SpecKitSyncwill fail - Migration: Use
AdapterRegistry.get_adapter("speckit")to getSpecKitAdapterinstance - Rationale: Eliminates deprecated code and enforces universal abstraction layer pattern
- Replacement: Use
Added (0.22.0)
-
OpenSpec Bridge Adapter (Phase 1 - Read-Only Sync): Plugin-based OpenSpec integration for importing specifications and change tracking
- OpenSpec Adapter:
OpenSpecAdapterimplementsBridgeAdapterinterface for read-only sync from OpenSpec to SpecFact - OpenSpec Parser:
OpenSpecParserfor parsing OpenSpec markdown artifacts (project.md, specs/, changes/) - Cross-Repository Support:
external_base_pathconfiguration for OpenSpec in different repositories - Change Tracking Import: Loads change proposals and feature deltas from
openspec/changes/directory - Source Tracking: Stores OpenSpec paths and metadata in
source_tracking.source_metadatafield - Alignment Report:
generate_alignment_report()method to compare SpecFact features vs OpenSpec specs - CLI Integration:
specfact sync bridge --adapter openspec --mode read-onlycommand with--external-base-pathoption - Adapter Registry: OpenSpec adapter registered in
AdapterRegistryfor plugin-based architecture - Bridge Configuration:
BridgeConfig.preset_openspec()method with OpenSpec artifact mappings - Universal Abstraction Layer: Refactored
BridgeProbeandBridgeSyncto useAdapterRegistry(no hard-coded adapter checks) - BridgeAdapter Interface: Extended with
get_capabilities()method for adapter capability detection
- OpenSpec Adapter:
-
SpecKitAdapter: New
SpecKitAdapterclass implementingBridgeAdapterinterface- Bidirectional Sync: Full bidirectional sync support via adapter registry
- Public Helper Methods:
discover_features(),detect_changes(),detect_conflicts(),export_bundle() - Adapter Registry Integration: Registered in
AdapterRegistryfor plugin-based architecture - Contract Decorators: All methods have
@beartype,@require, and@ensuredecorators
-
Spec-Kit
.specify/specs/Detection: Added support for canonical Spec-Kit layout- Canonical Layout Support: Added
BridgeConfig.preset_speckit_specify()for.specify/specs/structure (recommended by Spec-Kit) - Priority Detection: Detection now prioritizes
.specify/specs/>docs/specs/>specs/(root) - Scanner Updates:
SpecKitScannernow checks.specify/specs/first before falling back to root-levelspecs/ - Backward Compatibility: Maintains support for root-level
specs/anddocs/specs/layouts - Rationale: According to Spec-Kit documentation,
.specify/specs/is the canonical location; root-levelspecs/may be inconsistent
- Canonical Layout Support: Added
Changed (0.22.0)
-
Bridge Probe Refactoring: Removed hard-coded Spec-Kit detection, now uses
AdapterRegistryfor universal adapter support -
Bridge Sync Refactoring: Removed hard-coded adapter checks, now uses
AdapterRegistry.get_adapter()for all adapters -
Source Tracking Model: Extended
SourceTrackingwithtoolandsource_metadatafields for tool-specific metadata storage -
Bridge Configuration: Added
external_base_pathfield toBridgeConfigfor cross-repository integrations -
Adapter Type Enum: Added
AdapterType.OPENSPECenum value -
Sync Command Refactoring: Refactored
specfact sync bridgeto use adapter registry pattern- Removed Hard-Coded Checks: All
if adapter_type == AdapterType.SPECKIT:checks removed - Adapter-Agnostic: Sync command now works with any registered adapter via
AdapterRegistry - Capability-Based: Sync mode detection now uses
adapter.get_capabilities().supported_sync_modes - Universal Pattern: All adapters accessed via
AdapterRegistry.get_adapter()- no hard-coded checks
- Removed Hard-Coded Checks: All
-
Import Command Refactoring: Refactored
specfact import from-bridgeto use adapter registry- Removed Hard-Coded Logic: All Spec-Kit-specific instantiation removed
- Adapter Registry: Uses
AdapterRegistryfor all adapter operations
-
Bridge Probe Refactoring: Removed Spec-Kit-specific validation suggestions
- Generic Capabilities: Uses adapter capabilities for validation suggestions
-
Bridge Sync Refactoring: Removed hard-coded OpenSpec check in alignment report
- Adapter-Agnostic: Alignment report generation is now adapter-agnostic
-
Command References: Updated all help text and error messages
- Constitution Commands: All references updated from
specfact bridge constitutiontospecfact sdd constitution - Probe Command: Updated references from
specfact bridge probetospecfact sync bridge probe
- Constitution Commands: All references updated from
-
Schema Version Management: Improved schema version handling for new bundles
- Latest Schema Reference: Added
get_latest_schema_version()function for semantic clarity when creating new bundles - Schema Constant: Added
LATEST_SCHEMA_VERSIONalias forCURRENT_SCHEMA_VERSION(currently "1.1") - Bundle Creation: Updated
import_cmd.pyandsync.pyto useget_latest_schema_version()instead of hardcoded "1.0" - Future-Proofing: New bundles now automatically use the latest schema version without code changes
- Latest Schema Reference: Added
Removed (0.22.0)
-
SpecKitSync Class: Deleted
src/specfact_cli/sync/speckit_sync.pyfile- SyncResult Dataclass: Removed
speckit_sync.SyncResult(note:BridgeSync.SyncResultremains) - All References: Removed all imports and usages of
SpecKitSyncthroughout codebase
- SyncResult Dataclass: Removed
-
Bridge Command: Deleted
src/specfact_cli/commands/bridge.pyfile- Command Registration: Removed bridge command registration from
cli.py
- Command Registration: Removed bridge command registration from
-
Deprecated Commands: Removed
specfact implementandspecfact generate taskscommands- Rationale: SpecFact CLI focuses on analysis and enforcement, not code generation. Use Spec-Kit, OpenSpec, or other SDD tools for plan → feature → task workflows
- Migration: Use
specfact generate fix-promptandspecfact generate test-promptfor AI IDE integration instead
Documentation (0.22.0)
-
README Enhancements: Comprehensive updates to main README and sub-level README files
- Added "How SpecFact Compares" Section: Prominent comparison table (similar to OpenSpec's approach) showing SpecFact vs. Spec-Kit, OpenSpec, and Traditional Testing
- Enhanced Value Proposition: Added "Why SpecFact?" section explaining brownfield-first analysis workflow and key outcomes
- Improved Structure: Reorganized README for better clarity and intuitive flow for new users
- Updated Version References: Changed all "Version 0.21.1" references to "Version 0.22.0" with current release notes
- Copyright Updates: Updated copyright years from "2025" to "2025-2026" in all README files
- Link Verification: Fixed broken internal links and verified all documentation links are valid
-
New Tutorial: Created comprehensive beginner-friendly tutorial
docs/getting-started/tutorial-openspec-speckit.md- Complete Step-by-Step Guide: 18 detailed steps covering both OpenSpec and Spec-Kit integration paths
- Prerequisites Section: Clear installation and setup instructions
- Path A (OpenSpec): 9 steps covering change proposal creation, GitHub Issues export, progress tracking, and sync
- Path B (Spec-Kit): 9 steps covering import, bidirectional sync, contract enforcement, and drift detection
- Key Concepts: Bridge adapters, sync modes, and troubleshooting sections
- Verified Commands: All commands tested and verified with accurate syntax and expected outputs
- Command Syntax Fixes: Corrected command usage (bundle as positional vs option,
--repousage, etc.)
-
Comparison Guides Updates: Enhanced comparison documentation
- speckit-comparison.md: Added adapter registry pattern notes and FAQ section about working with other specification tools
- competitive-analysis.md: Added "Building on Specification Tools" section with OpenSpec, Spec-Kit, and GitHub Issues adapters
- openspec-journey.md: Updated status from "PLANNED" to "✅ IMPLEMENTED" for OpenSpec bridge adapter (v0.22.0+)
-
Command Reference Updates: Updated
docs/reference/commands.md- Removed Commands: Marked
implementandgenerate tasksas "REMOVED in v0.22.0" with migration guidance - Constitution Commands: Updated all references from
specfact bridge constitutiontospecfact sdd constitution - Bridge Adapters: Added clear examples for
sync bridge --adapter openspecand adapter registry pattern
- Removed Commands: Marked
-
Migration Guides: Updated migration documentation
- migration-0.16-to-0.19.md: Updated to reflect
implement tasksandgenerate taskscommands removal - Troubleshooting Guide: Updated all
specfact constitutioncommands tospecfact sdd constitution
- migration-0.16-to-0.19.md: Updated to reflect
-
Architecture Documentation: Updated
docs/reference/architecture.md- Version References: Changed "New in v0.21.1" to "Introduced in v0.21.1" for accurate historical context
- Bridge Architecture: Enhanced description of adapter registry pattern and plugin-based architecture
-
Adapter Development Guide: Created
docs/guides/adapter-development.md- Complete Guide: Comprehensive documentation on developing new bridge adapters
- Examples: SpecKitAdapter and GitHubAdapter examples
- Best Practices: Contract decorators, error handling, and testing guidelines
Notes (0.22.0)
- Phase 1 (Read-Only): OpenSpec adapter is read-only in Phase 1 - export methods raise
NotImplementedError - Plugin Architecture: All adapters now accessed via
AdapterRegistry- no hard-coded checks in core components - Universal Abstraction Layer: Complete refactoring of Spec-Kit integration to use adapter registry pattern, eliminating all hard-coded adapter checks
- Contract-First Approach: All adapter methods now have full contract decorators (
@beartype,@require,@ensure) for runtime validation - Future Work: Phase 4 will add bidirectional sync (export) capabilities to OpenSpec adapter