Migration Strategy
Backward Compatibility
Goal: Existing spec-kit projects work without changes.
Strategy:
Core commands unchanged:
/speckit.tasks,/speckit.implement, etc. remain in coreOptional extensions: Users opt-in to extensions
Gradual migration: Existing
taskstoissuesstays in core, Jira extension is alternativeDeprecation timeline:
- v0.2.0: Introduce extension system, keep core
taskstoissues - v0.3.0: Mark core
taskstoissuesas "legacy" (still works) - v1.0.0: Consider removing core
taskstoissuesin favor of extension
- v0.2.0: Introduce extension system, keep core
Migration Path for Users
Scenario 1: User has no taskstoissues usage
- No migration needed, extensions are opt-in
Scenario 2: User uses core taskstoissues (GitHub Issues)
- Works as before
- Optional: Migrate to
github-projectsextension for more features
Scenario 3: User wants Jira (new requirement)
specify extension add jira- Configure and use
Scenario 4: User has custom scripts calling taskstoissues
- Scripts still work (core command preserved)
- Migration guide shows how to call extension commands instead
Extension Migration Guide
For extension authors (if core command becomes extension):
bash
# Old (core command)
/speckit.taskstoissues
# New (extension command)
specify extension add github-projects
/speckit.github.taskstoissuesMigration alias (if needed):
yaml
# extension.yml
provides:
commands:
- name: "speckit.github.taskstoissues"
file: "commands/taskstoissues.md"
aliases: ["speckit.github.sync-taskstoissues"] # Alternate namespaced entry pointAI agents register both names, so callers can migrate to the alternate alias without relying on deprecated global shortcuts like /speckit.taskstoissues.