* fix(workflows,docs): scrub stale /gsd-code-review-fix and /gsd-plan-milestone-gaps refs (#3029, #3034) #2790 consolidated /gsd-code-review-fix into /gsd-code-review --fix and deleted /gsd-plan-milestone-gaps in favor of inline gap planning as part of /gsd-audit-milestone's output. The deletion was propagated through some surfaces (#2950 covered help/do/settings/discuss-phase/etc.) but several user-facing surfaces still emitted the old forms: #3029 — /gsd-code-review-fix references in: - agents/gsd-code-fixer.md (description, "Spawned by", recovery prose) - get-shit-done/workflows/code-review.md (offer text) - get-shit-done/workflows/execute-phase.md (offer text) - get-shit-done/workflows/code-review-fix.md (internal retry hints) - docs/INVENTORY.md (agent + workflow rows) - docs/CONFIGURATION.md (workflow.code_review row) - docs/USER-GUIDE.md (3 occurrences in walkthrough) - docs/AGENTS.md (gsd-code-fixer agent stub) - docs/FEATURES.md (commands list + REQ-REVIEW-04) All replaced with /gsd-code-review --fix. Internal retry hints in the workflow file itself updated to point at the new form. Release notes (docs/RELEASE-*.md) and gsd-ns-review's "absorbed by" deletion note left unchanged — historical/explanatory content. #3034 — /gsd-plan-milestone-gaps references in: - get-shit-done/workflows/audit-milestone.md (<offer_next> blocks for gaps_found and tech_debt: lines 281, 323) - commands/gsd/complete-milestone.md (gaps_found pre-flight: lines 46, 57) Replaced with inline closure path: /gsd-phase --insert <N> "Close gap: <REQ-ID> ..." /gsd-discuss-phase <N> /gsd-plan-phase <N> /gsd-execute-phase <N> Plus a Nyquist-coverage hint pointing at /gsd-validate-phase / /gsd-secure-phase for retroactive audit-chain hygiene gaps. The gsd-ns-project SKILL.md "deleted by #2790" note is preserved (it's the canonical pointer for future readers asking what happened to the command). Tests: - tests/bug-3029-3034-stale-command-routes.test.cjs — parser-based assertions per fixed surface, plus a structural cross-check that gsd-ns-project keeps the deletion note. 15 tests, all green. - 6905/6905 full suite passes. Closes #3029 Closes #3034 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * fix: address CR feedback on PR #3038 — argument order, structural tests, agent count CR findings on PR #3038: 1. **docs/USER-GUIDE.md (Major)** — `--fix` examples used flag-first form (`/gsd-code-review --fix 3`), but the supported CLI grammar is phase-first (`/gsd-code-review 3 --fix`). The original sed-based replacement preserved the position of the `gsd-code-review-fix` token, producing the wrong order. Fixed in USER-GUIDE.md (3 occurrences) and the same drift in the workflow surfaces: - get-shit-done/workflows/code-review-fix.md (2 retry hints) - get-shit-done/workflows/code-review.md (offer text) - get-shit-done/workflows/execute-phase.md (offer text) 2. **docs/AGENTS.md (Minor)** — internal count drift: line 483 said "Ten additional agents" but line 725 said "12 advanced/specialized". Filesystem reality: 33 agents total, 21 primary, 12 specialized (count of `### ` stubs in the Advanced and Specialized section). Updated lines 3, 13, 483 to use 12/33 and added the two missing names (doc-classifier, doc-synthesizer) to the inline list at line 13. 3. **tests:94 (Major refactor suggestion)** — `.includes()` token checks were source-grep style. Refactored to a typed-IR pattern: extract the SET of slash-command tokens via regex, assert membership on the parsed Set instead of substring scanning the raw file text. Added the `allow-test-rule` comment explaining the IR-build vs IR-assertion split per scripts/lint-no-source-grep.cjs convention. 4. **tests:130 (Major)** — replacement-path assertion was file-wide and could false-pass on generic mentions of "inline" elsewhere in the file. Refactored: `extractOfferBlocks(content)` returns the typed list of `<offer_next>` and "Pre-flight" blocks where the deleted command previously lived, and the assertion runs against those blocks specifically. Now requires `/gsd-phase --insert` or inline-audit prose to appear in the same offer block, not just somewhere in the file. 15/15 targeted tests pass. 6905/6905 full suite pass. Lints clean. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
143 lines
4.8 KiB
Markdown
143 lines
4.8 KiB
Markdown
---
|
|
type: prompt
|
|
name: gsd:complete-milestone
|
|
description: Archive completed milestone and prepare for next version
|
|
argument-hint: <version>
|
|
allowed-tools:
|
|
- Read
|
|
- Write
|
|
- Bash
|
|
---
|
|
|
|
<objective>
|
|
Mark milestone {{version}} complete, archive to milestones/, and update ROADMAP.md and REQUIREMENTS.md.
|
|
|
|
Purpose: Create historical record of shipped version, archive milestone artifacts (roadmap + requirements), and prepare for next milestone.
|
|
Output: Milestone archived (roadmap + requirements), PROJECT.md evolved, git tagged.
|
|
</objective>
|
|
|
|
<execution_context>
|
|
**Load these files NOW (before proceeding):**
|
|
|
|
- @~/.claude/get-shit-done/workflows/complete-milestone.md (main workflow)
|
|
- @~/.claude/get-shit-done/templates/milestone-archive.md (archive template)
|
|
</execution_context>
|
|
|
|
<context>
|
|
**Project files:**
|
|
- `.planning/ROADMAP.md`
|
|
- `.planning/REQUIREMENTS.md`
|
|
- `.planning/STATE.md`
|
|
- `.planning/PROJECT.md`
|
|
|
|
**User input:**
|
|
|
|
- Version: {{version}} (e.g., "1.0", "1.1", "2.0")
|
|
</context>
|
|
|
|
<process>
|
|
|
|
**Follow complete-milestone.md workflow:**
|
|
|
|
0. **Check for audit:**
|
|
|
|
- Look for `.planning/v{{version}}-MILESTONE-AUDIT.md`
|
|
- If missing or stale: recommend `/gsd-audit-milestone` first
|
|
- If audit status is `gaps_found`: recommend closing the gaps inline
|
|
(the audit output already enumerates them — insert closure phases
|
|
via `/gsd-phase --insert <N>` plus the standard
|
|
discuss/plan/execute chain) before proceeding.
|
|
- If audit status is `passed`: proceed to step 1
|
|
|
|
```markdown
|
|
## Pre-flight Check
|
|
|
|
{If no v{{version}}-MILESTONE-AUDIT.md:}
|
|
⚠ No milestone audit found. Run `/gsd-audit-milestone` first to verify
|
|
requirements coverage, cross-phase integration, and E2E flows.
|
|
|
|
{If audit has gaps:}
|
|
⚠ Milestone audit found gaps. The audit output already enumerates the
|
|
unsatisfied requirements, cross-phase issues, and broken flows — insert
|
|
a closure phase per gap with `/gsd-phase --insert <N>` and run the
|
|
standard `/gsd-discuss-phase` → `/gsd-plan-phase` → `/gsd-execute-phase`
|
|
chain. Or proceed anyway to accept the gaps as tech debt.
|
|
|
|
{If audit passed:}
|
|
✓ Milestone audit passed. Proceeding with completion.
|
|
```
|
|
|
|
1. **Verify readiness:**
|
|
|
|
- Check all phases in milestone have completed plans (SUMMARY.md exists)
|
|
- Present milestone scope and stats
|
|
- Wait for confirmation
|
|
|
|
2. **Gather stats:**
|
|
|
|
- Count phases, plans, tasks
|
|
- Calculate git range, file changes, LOC
|
|
- Extract timeline from git log
|
|
- Present summary, confirm
|
|
|
|
3. **Extract accomplishments:**
|
|
|
|
- Read all phase SUMMARY.md files in milestone range
|
|
- Extract 4-6 key accomplishments
|
|
- Present for approval
|
|
|
|
4. **Archive milestone:**
|
|
|
|
- Create `.planning/milestones/v{{version}}-ROADMAP.md`
|
|
- Extract full phase details from ROADMAP.md
|
|
- Fill milestone-archive.md template
|
|
- Update ROADMAP.md to one-line summary with link
|
|
|
|
5. **Archive requirements:**
|
|
|
|
- Create `.planning/milestones/v{{version}}-REQUIREMENTS.md`
|
|
- Mark all v1 requirements as complete (checkboxes checked)
|
|
- Note requirement outcomes (validated, adjusted, dropped)
|
|
- Delete `.planning/REQUIREMENTS.md` (fresh one created for next milestone)
|
|
|
|
6. **Update PROJECT.md:**
|
|
|
|
- Add "Current State" section with shipped version
|
|
- Add "Next Milestone Goals" section
|
|
- Archive previous content in `<details>` (if v1.1+)
|
|
|
|
7. **Commit and tag:**
|
|
|
|
- Stage: MILESTONES.md, PROJECT.md, ROADMAP.md, STATE.md, archive files
|
|
- Commit: `chore: archive v{{version}} milestone`
|
|
- Tag: `git tag -a v{{version}} -m "[milestone summary]"`
|
|
- Ask about pushing tag
|
|
|
|
8. **Offer next steps:**
|
|
- `/gsd-new-milestone` — start next milestone (questioning → research → requirements → roadmap)
|
|
|
|
</process>
|
|
|
|
<success_criteria>
|
|
|
|
- Milestone archived to `.planning/milestones/v{{version}}-ROADMAP.md`
|
|
- Requirements archived to `.planning/milestones/v{{version}}-REQUIREMENTS.md`
|
|
- `.planning/REQUIREMENTS.md` deleted (fresh for next milestone)
|
|
- ROADMAP.md collapsed to one-line entry
|
|
- PROJECT.md updated with current state
|
|
- Git tag v{{version}} created
|
|
- Commit successful
|
|
- User knows next steps (including need for fresh requirements)
|
|
</success_criteria>
|
|
|
|
<critical_rules>
|
|
|
|
- **Load workflow first:** Read complete-milestone.md before executing
|
|
- **Verify completion:** All phases must have SUMMARY.md files
|
|
- **User confirmation:** Wait for approval at verification gates
|
|
- **Archive before deleting:** Always create archive files before updating/deleting originals
|
|
- **One-line summary:** Collapsed milestone in ROADMAP.md should be single line with link
|
|
- **Context efficiency:** Archive keeps ROADMAP.md and REQUIREMENTS.md constant size per milestone
|
|
- **Fresh requirements:** Next milestone starts with `/gsd-new-milestone` which includes requirements definition
|
|
</critical_rules>
|