Skip to content

docs(commands): fix stale path refs, phantom phase, duplicate numbering#2267

Open
vsima wants to merge 1 commit intogithub:mainfrom
vsima:fix/docs-command-template-cleanups
Open

docs(commands): fix stale path refs, phantom phase, duplicate numbering#2267
vsima wants to merge 1 commit intogithub:mainfrom
vsima:fix/docs-command-template-cleanups

Conversation

@vsima
Copy link
Copy Markdown

@vsima vsima commented Apr 18, 2026

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 phases parse-list was Setup, Tests, Core, Integration, Polish — an older layered taxonomy that doesn't match what /speckit.tasks currently 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 generated tasks.md. 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 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. Renumbered 1/2/3/4.

All four reproduce on main as 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.
  • Manual validation — mirrored the plan.md, implement.md, and constitution.md fixes 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.implement for a cleanup-scoped platform refactor. The three affected commands (plan, implement, constitution) all completed cleanly with the updated wording; the implement parse step now finds the phases the tasks.md output 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.

Command tested Notes
/speckit.specify Completed normally; no regression from the constitution.md wording change (specify doesn't read it, but integration point verified).
/speckit.plan "Command ends after Phase 1" wording now matches the actual phase layout; research.md + data-model.md + quickstart.md all produced; agent no longer hits a phantom "Phase 2" reference.
/speckit.tasks Unchanged (not touched by this PR).
/speckit.implement Phase-parse step now finds the Setup / Foundational / US1 / Polish headers emitted by tasks.md. End-to-end implementation ran to completion.
/speckit.analyze Ran clean — no false-positive findings from the updated text.
/speckit.constitution Not run in this cycle, but the wording change is a softening (not a functional change) — reading "path varies by integration" is honest where the original hardcoded path was not.

AI 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

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.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.md so the stop point matches the defined phases.
  • Updates implement.md task-phase parsing guidance to match the /speckit.tasks phase structure (Setup / Foundational / User Stories / Polish).
  • Softens constitution.md to avoid assuming a single on-disk location for installed command files; cleans up outline numbering in taskstoissues.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.
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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.

Copilot uses AI. Check for mistakes.

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`)
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
- **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`)

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator

@mnriem mnriem left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please address Copilot feedback. If not applicable, please explain why

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants