Existing projects need two separate maintenance loops:
- Spec Kit project-file updates refresh managed commands, scripts, templates, and shared memory files.
- Feature artifact evolution keeps repository-specific
specs/artifacts aligned with the code and product behavior you intend to ship.
Use the upgrade workflow when you need newer Spec Kit project files. Use one of the artifact persistence models below when requirements or implementation insights change an existing project.
For the conceptual model definitions, see Spec Persistence Models.
Use flow-forward when each feature directory should remain a historical record.
When you add another feature or make a substantial follow-up change, create a
new feature spec through your installed /speckit.specify command and continue
through the standard flow:
- Run
/speckit.specifyto create a new feature directory underspecs/. - Run
/speckit.planto define the implementation approach. - Run
/speckit.tasksto derive the work breakdown. - Run
/speckit.implementand review the resulting code and artifact diffs.
The previous feature directory remains intact for audit, comparison, or explaining how the project reached its current state. Use clear feature names or cross-links when a new directory supersedes or extends earlier work.
Use living spec when spec.md is the contract and plan.md and tasks.md are
derived from it.
When intended behavior changes, revise the existing spec.md first. Then
regenerate or manually revise downstream artifacts so they match the updated
spec:
- Start from a clean working tree or a dedicated branch so every generated change is reviewable.
- Update
spec.mdwith/speckit.clarifyor an explicit edit. - Rerun
/speckit.planor reviseplan.mdso the technical approach matches the revised spec. - Rerun
/speckit.tasksor revisetasks.mdso implementation work matches the revised plan. - Run
/speckit.analyzebefore implementation resumes to catch gaps between the spec, plan, and tasks. - Run
/speckit.implement, then review the code and artifact diffs together.
Preserve important implementation rationale before replacing derived artifacts. If a plan or task list contains decisions that still matter, carry them forward explicitly.
Use flow-back when implementation discoveries are allowed to reshape the artifact set.
In this model, the first useful edit can happen wherever the insight lands:
spec.md, plan.md, tasks.md, or the implementation. After the change, bring
the artifact set back into alignment:
- Capture the discovery in the artifact closest to the work.
- Decide whether it changes intended behavior, implementation strategy, task breakdown, or only code.
- Update any other artifacts that now disagree with the accepted direction.
- Run
/speckit.analyzeto check for gaps acrossspec.md,plan.md, andtasks.md. - Continue implementation only after the artifact set describes the behavior and approach you want future contributors to trust.
Flow-back is flexible, but it requires discipline. Do not leave a lower-level
change in tasks.md or code if spec.md still says something different and the
spec is meant to remain trustworthy.
Before refreshing Spec Kit project files with the terminal command
specify init --here --force --integration <your-agent>, protect any
project-specific material that lives outside specs/, especially
.specify/memory/constitution.md and customized files under
.specify/templates/ or .specify/scripts/. Use <your-agent> for the AI
coding agent integration used by the target project.
Your specs/ directory is not part of the template package, but shared project
files can be overwritten by a forced refresh.