docs(commands): fix stale path refs, phantom phase, duplicate numbering#2267
docs(commands): fix stale path refs, phantom phase, duplicate numbering#2267vsima wants to merge 1 commit intogithub:mainfrom
Conversation
Four small doc corrections in templates/commands/*.md, surfaced while
integrating Spec Kit into a Claude Code project:
- plan.md: "Command ends after Phase 2 planning" referenced a phase
that doesn't exist in this file. Only Phase 0 (research) and Phase 1
(data-model, contracts, quickstart) are defined; the command actually
ends after Phase 1. Updated the terminal step to match.
- implement.md: step 5 "Task phases" parse-list was "Setup, Tests, Core,
Integration, Polish" — an older layered taxonomy that doesn't match
what tasks.md currently emits ("Setup, Foundational, User Stories in
priority order, Polish"). The mismatch meant /speckit.implement
wouldn't find any of the phase headers it was looking for. Aligned
the parse list with tasks.md's actual output.
- constitution.md: step 4 instructed the user to "Read each command
file in .specify/templates/commands/*.md" — that path isn't
materialized on every integration install (e.g., Claude Code puts
command files under .claude/skills/speckit-*/SKILL.md; Copilot uses
.github/prompts/). Softened the reference to name the likely
integration-specific locations and note the path varies.
- taskstoissues.md: four consecutive `1.` source-level numbered items
in the Outline block. Markdown auto-renumbers on render, but the
source reads oddly and encourages the same pattern in new specs.
Renumbered to 1/2/3/4.
All four reproduce on main as of this branch-off; none touch behavior
beyond what each docstring already describes.
## AI disclosure
This PR was drafted with assistance from Claude (Opus 4.7) while
integrating Spec Kit into a live project. The rationale for each fix
came from actually running the affected commands end-to-end through
an agent; the one-line edits are mechanical corrections to existing
text, not new guidance.
There was a problem hiding this comment.
Pull request overview
This PR corrects stale and misleading documentation inside the templates/commands/*.md command templates, aligning the written “execution flow” guidance with the phases/paths actually produced by the Spec Kit workflows and different integrations.
Changes:
- Fixes a phantom “Phase 2” reference in
plan.mdso the stop point matches the defined phases. - Updates
implement.mdtask-phase parsing guidance to match the/speckit.tasksphase structure (Setup / Foundational / User Stories / Polish). - Softens
constitution.mdto avoid assuming a single on-disk location for installed command files; cleans up outline numbering intaskstoissues.md.
Show a summary per file
| File | Description |
|---|---|
| templates/commands/taskstoissues.md | Renumbers outline items for clearer source readability. |
| templates/commands/plan.md | Updates stop/report step to end after Phase 1 instead of referencing a non-existent Phase 2. |
| templates/commands/implement.md | Updates task-phase list to match /speckit.tasks phase structure. |
| templates/commands/constitution.md | Replaces a hardcoded commands path with integration-aware locations (Claude/Copilot/presets). |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 4/4 changed files
- Comments generated: 2
| - Re-evaluate Constitution Check post-design | ||
|
|
||
| 4. **Stop and report**: Command ends after Phase 2 planning. Report branch, IMPL_PLAN path, and generated artifacts. | ||
| 4. **Stop and report**: Command ends after Phase 1 (data-model & contracts). Report branch, IMPL_PLAN path, and generated artifacts. |
There was a problem hiding this comment.
This parenthetical says Phase 1 is “data-model & contracts”, but in the preceding step Phase 1 also includes generating quickstart.md and updating agent context. Consider either expanding the parenthetical to cover all Phase 1 deliverables (data-model, contracts, quickstart, context update) or removing the parenthetical to avoid implying an incomplete Phase 1 scope.
| 4. **Stop and report**: Command ends after Phase 1 (data-model & contracts). Report branch, IMPL_PLAN path, and generated artifacts. | |
| 4. **Stop and report**: Command ends after Phase 1 (data-model, contracts, quickstart, and agent context update). Report branch, IMPL_PLAN path, and generated artifacts. |
|
|
||
| 5. Parse tasks.md structure and extract: | ||
| - **Task phases**: Setup, Tests, Core, Integration, Polish | ||
| - **Task phases**: Setup, Foundational, User Stories (one phase per story, in priority order), Polish (matches the phase structure emitted by `/speckit.tasks`; see `templates/commands/tasks.md`) |
There was a problem hiding this comment.
The inline reference to templates/commands/tasks.md is not a stable path in installed integrations (e.g., Copilot/Claude installs place command files under integration-specific directories). To keep this guidance accurate across integrations, refer to the /speckit.tasks output/phase headings generically, or describe the integration-specific locations (similar to constitution.md) rather than pointing to a repo-only template path.
| - **Task phases**: Setup, Foundational, User Stories (one phase per story, in priority order), Polish (matches the phase structure emitted by `/speckit.tasks`; see `templates/commands/tasks.md`) | |
| - **Task phases**: Setup, Foundational, User Stories (one phase per story, in priority order), Polish (matches the phase headings emitted by `/speckit.tasks`) |
mnriem
left a comment
There was a problem hiding this comment.
Please address Copilot feedback. If not applicable, please explain why
Summary
Four small doc corrections in
templates/commands/*.md, all surfaced while integrating Spec Kit into a live Claude Code project:plan.md —
"Command ends after Phase 2 planning"referenced a phase that doesn't exist in the file. Only Phase 0 (research) and Phase 1 (data-model, contracts, quickstart) are defined; the command actually ends after Phase 1. Updated the terminal step wording to match.implement.md — step 5's
Task phasesparse-list wasSetup, Tests, Core, Integration, Polish— an older layered taxonomy that doesn't match what/speckit.taskscurrently emits (Setup, Foundational, User Stories (priority order), Polish). The mismatch meant the implement command wouldn't find any of the phase headers it was looking for when parsing the generatedtasks.md. Aligned the parse list withtasks.md's actual output.constitution.md — step 4 instructed the user to
Read each command file in .specify/templates/commands/*.md. That directory isn't reliably materialized on every integration install — Claude Code puts command files under.claude/skills/speckit-*/SKILL.md; Copilot uses.github/prompts/;.specify/templates/commands/is populated only by certain presets. Softened the reference to name the likely integration-specific locations and note that the path varies.taskstoissues.md — four consecutive
1.source-level numbered items in the Outline block. Markdown auto-renumbers on render so the visible output is fine, but the source reads oddly and invites the same pattern in new specs. Renumbered1/2/3/4.All four reproduce on
mainas of this branch-off. None touches behavior beyond what each docstring already describes.Test plan
git diff --stat→ 4 files, 6 insertions, 6 deletions. Pure docs edits.plan.md,implement.md, andconstitution.mdfixes into a live Claude Code integration install (.claude/skills/speckit-*/SKILL.md) and ran a full spec cycle through an agent:/speckit.specify→/speckit.plan→/speckit.tasks→/speckit.analyze→/speckit.implementfor a cleanup-scoped platform refactor. The three affected commands (plan,implement,constitution) all completed cleanly with the updated wording; theimplementparse step now finds the phases thetasks.mdoutput actually contains.taskstoissues.md— numbering-only fix; renders identically in GitHub-flavored markdown. Visual inspection confirmed.Manual test results
Agent: Claude Code (Opus 4.7) on macOS / zsh.
/speckit.specifyconstitution.mdwording change (specify doesn't read it, but integration point verified)./speckit.plan/speckit.tasks/speckit.implementtasks.md. End-to-end implementation ran to completion./speckit.analyze/speckit.constitutionAI disclosure (per CONTRIBUTING.md)
This PR was drafted with assistance from Claude (Opus 4.7) while integrating Spec Kit into a live Claude Code project. The issues were identified by running the affected commands end-to-end through an agent and observing where the prose didn't match what the downstream steps actually produced. The one-line edits are mechanical corrections to existing text — no new guidance is introduced and no existing behavior is modified. Every fix was manually validated against a real Claude Code install before this PR was opened.
🤖 Generated with Claude Code