Migration Guide
Decision tree and workflow for migrating between SpecFact CLI versions and from other tools
Overview
This guide helps you decide when and how to migrate:
- Between SpecFact CLI versions - When upgrading to a new version
- From other tools - When migrating from Spec-Kit, OpenSpec, or other SDD tools
- Between project structures - When restructuring your project bundles
Migration Decision Tree
Start: What do you need to migrate?
├─ Upgrading SpecFact CLI version?
│ ├─ Minor version (0.19 → 0.20)?
│ │ └─ → Usually automatic, check [Version-Specific Migration Guides](#version-specific-migrations)
│ ├─ Major version (0.x → 1.0)?
│ │ └─ → Check breaking changes, use [Version-Specific Migration Guides](#version-specific-migrations)
│ └─ CLI reorganization (pre-0.16 → 0.16+)?
│ └─ → See [CLI Reorganization Migration](/guides/migration-cli-reorganization.md)
│
├─ Migrating from Spec-Kit?
│ └─ → See [Spec-Kit Journey Guide](/guides/speckit-journey/)
│
├─ Migrating from OpenSpec?
│ └─ → See [OpenSpec Journey Guide](/guides/openspec-journey.md)
│
└─ Restructuring project bundles?
└─ → See [Project Bundle Management](/reference/commands/#project---project-bundle-management)
Version-Specific Migrations
Migration from 0.16 to 0.19+
Breaking Changes: CLI command reorganization
Migration Steps:
- Review CLI Reorganization Migration Guide
- Update scripts and CI/CD pipelines
- Test commands in development environment
- Update documentation references
Related: Migration 0.16 to 0.19
Migration from Pre-0.16 to 0.16+
Breaking Changes: Major CLI reorganization
Migration Steps:
- Review CLI Reorganization Migration Guide
- Update all command references
- Migrate plan bundles to new schema
- Update CI/CD configurations
Related: CLI Reorganization Migration
Tool Migration Workflows
Migrating from Spec-Kit
Workflow: Use External Tool Integration Chain
- Import from Spec-Kit via bridge adapter
- Review imported plan
- Set up bidirectional sync (optional)
- Enforce SDD compliance
Detailed Guide: Spec-Kit Journey Guide
Command Chain: External Tool Integration Chain
Migrating from OpenSpec
Workflow: Use External Tool Integration Chain
- Import from OpenSpec via bridge adapter
- Review imported change proposals
- Set up DevOps sync (optional)
- Enforce SDD compliance
Detailed Guide: OpenSpec Journey Guide
Command Chain: External Tool Integration Chain
Project Structure Migrations
Migrating Between Project Bundles
When to use: Restructuring projects, splitting/merging bundles
Commands:
# Export from old bundle
specfact project export --bundle old-bundle --persona <persona>
# Create new bundle
specfact plan init --bundle new-bundle
# Import to new bundle (manual editing may be required)
specfact project import --bundle new-bundle --persona <persona> --source exported.md
Related: Project Bundle Management
Plan Schema Migrations
Upgrading Plan Bundles
When to use: When plan bundles are on an older schema version
Command:
# Upgrade all bundles
specfact plan upgrade --all
# Upgrade specific bundle
specfact plan upgrade --bundle <bundle-name>
Benefits:
- Improved performance (44% faster
plan select) - New features and metadata
- Better compatibility
Related: Plan Upgrade
Migration Workflow Examples
Example 1: Upgrading SpecFact CLI
# 1. Check current version
specfact --version
# 2. Review migration guide for target version
# See: guides/migration-*.md
# 3. Upgrade SpecFact CLI
pip install --upgrade specfact-cli
# 4. Upgrade plan bundles
specfact plan upgrade --all
# 5. Test commands
specfact plan select --last 5
Example 2: Migrating from Spec-Kit
# 1. Import from Spec-Kit
specfact import from-bridge --repo . --adapter speckit --write
# 2. Review imported plan
specfact plan review --bundle <bundle-name>
# 3. Set up bidirectional sync (optional)
specfact sync bridge --adapter speckit --bundle <bundle-name> --bidirectional --watch
# 4. Enforce SDD compliance
specfact enforce sdd --bundle <bundle-name>
Related: Spec-Kit Journey Guide
Troubleshooting Migrations
Common Issues
Issue: Plan bundles fail to upgrade
Solution:
# Check bundle schema version
specfact plan select --bundle <bundle-name> --json | jq '.schema_version'
# Manual upgrade if needed
specfact plan upgrade --bundle <bundle-name> --force
Issue: Imported plans have missing data
Solution:
- Review import logs
- Use
plan reviewto identify gaps - Use
plan update-featureto fill missing data - Re-import if needed
Related: Troubleshooting Guide
See Also
- Command Chains Reference - Complete workflows
- Common Tasks Index - Quick reference
- Spec-Kit Journey Guide - Spec-Kit migration
- OpenSpec Journey Guide - OpenSpec migration
- Troubleshooting Guide - Common issues