enhancement(workflow): add decision IDs for discuss-to-plan traceability (#1243)

Decisions in CONTEXT.md are now numbered (D-01, D-02, etc.) so
downstream agents can reference them and the plan-checker can verify
100% coverage.

Changes:
- templates/context.md: Decisions use **D-XX:** prefix format
- workflows/discuss-phase.md: write_context step numbers decisions
- agents/gsd-planner.md: Self-check verifies decision ID references
  in task actions; tasks reference D-XX IDs for traceability
- agents/gsd-plan-checker.md: Dimension 7 (Context Compliance)
  extracts D-XX IDs and verifies every decision has a task
This commit is contained in:
Tom Boucher
2026-03-20 10:54:42 -04:00
parent 40993dd8b0
commit 0993eb613f
4 changed files with 15 additions and 11 deletions

View File

@@ -277,9 +277,11 @@ issue:
**Process:**
1. Parse CONTEXT.md sections: Decisions, Claude's Discretion, Deferred Ideas
2. For each locked Decision, find implementing task(s)
3. Verify no tasks implement Deferred Ideas (scope creep)
4. Verify Discretion areas are handled (planner's choice is valid)
2. Extract all numbered decisions (D-01, D-02, etc.) from the `<decisions>` section
3. For each locked Decision, find implementing task(s) — check task actions for D-XX references
4. Verify 100% decision coverage: every D-XX must appear in at least one task's action or rationale
5. Verify no tasks implement Deferred Ideas (scope creep)
6. Verify Discretion areas are handled (planner's choice is valid)
**Red flags:**
- Locked decision has no implementing task

View File

@@ -60,6 +60,7 @@ The orchestrator provides user decisions in `<user_decisions>` tags from `/gsd:d
- If user said "use library X" → task MUST use library X, not an alternative
- If user said "card layout" → task MUST implement cards, not tables
- If user said "no animations" → task MUST NOT include animations
- Reference the decision ID (D-01, D-02, etc.) in task actions for traceability
2. **Deferred Ideas (from `## Deferred Ideas`)** — MUST NOT appear in plans
- If user deferred "search functionality" → NO search tasks allowed
@@ -69,7 +70,8 @@ The orchestrator provides user decisions in `<user_decisions>` tags from `/gsd:d
- Make reasonable choices and document in task actions
**Self-check before returning:** For each plan, verify:
- [ ] Every locked decision has a task implementing it
- [ ] Every locked decision (D-01, D-02, etc.) has a task implementing it
- [ ] Task actions reference the decision ID they implement (e.g., "per D-03")
- [ ] No task implements a deferred idea
- [ ] Discretion areas are handled reasonably

View File

@@ -31,14 +31,14 @@ Template for `.planning/phases/XX-name/{phase_num}-CONTEXT.md` - captures implem
## Implementation Decisions
### [Area 1 that was discussed]
- [Specific decision made]
- [Another decision if applicable]
- **D-01:** [Specific decision made]
- **D-02:** [Another decision if applicable]
### [Area 2 that was discussed]
- [Specific decision made]
- **D-03:** [Specific decision made]
### [Area 3 that was discussed]
- [Specific decision made]
- **D-04:** [Specific decision made]
### Claude's Discretion
[Areas where user explicitly said "you decide" — Claude has flexibility here during planning/implementation]

View File

@@ -650,11 +650,11 @@ mkdir -p ".planning/phases/${padded_phase}-${phase_slug}"
## Implementation Decisions
### [Category 1 that was discussed]
- [Decision or preference captured]
- [Another decision if applicable]
- **D-01:** [Decision or preference captured]
- **D-02:** [Another decision if applicable]
### [Category 2 that was discussed]
- [Decision or preference captured]
- **D-03:** [Decision or preference captured]
### Claude's Discretion
[Areas where user said "you decide" — note that Claude has flexibility here]