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:** **Process:**
1. Parse CONTEXT.md sections: Decisions, Claude's Discretion, Deferred Ideas 1. Parse CONTEXT.md sections: Decisions, Claude's Discretion, Deferred Ideas
2. For each locked Decision, find implementing task(s) 2. Extract all numbered decisions (D-01, D-02, etc.) from the `<decisions>` section
3. Verify no tasks implement Deferred Ideas (scope creep) 3. For each locked Decision, find implementing task(s) — check task actions for D-XX references
4. Verify Discretion areas are handled (planner's choice is valid) 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:** **Red flags:**
- Locked decision has no implementing task - 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 "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 "card layout" → task MUST implement cards, not tables
- If user said "no animations" → task MUST NOT include animations - 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 2. **Deferred Ideas (from `## Deferred Ideas`)** — MUST NOT appear in plans
- If user deferred "search functionality" → NO search tasks allowed - 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 - Make reasonable choices and document in task actions
**Self-check before returning:** For each plan, verify: **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 - [ ] No task implements a deferred idea
- [ ] Discretion areas are handled reasonably - [ ] 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 ## Implementation Decisions
### [Area 1 that was discussed] ### [Area 1 that was discussed]
- [Specific decision made] - **D-01:** [Specific decision made]
- [Another decision if applicable] - **D-02:** [Another decision if applicable]
### [Area 2 that was discussed] ### [Area 2 that was discussed]
- [Specific decision made] - **D-03:** [Specific decision made]
### [Area 3 that was discussed] ### [Area 3 that was discussed]
- [Specific decision made] - **D-04:** [Specific decision made]
### Claude's Discretion ### Claude's Discretion
[Areas where user explicitly said "you decide" — Claude has flexibility here during planning/implementation] [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 ## Implementation Decisions
### [Category 1 that was discussed] ### [Category 1 that was discussed]
- [Decision or preference captured] - **D-01:** [Decision or preference captured]
- [Another decision if applicable] - **D-02:** [Another decision if applicable]
### [Category 2 that was discussed] ### [Category 2 that was discussed]
- [Decision or preference captured] - **D-03:** [Decision or preference captured]
### Claude's Discretion ### Claude's Discretion
[Areas where user said "you decide" — note that Claude has flexibility here] [Areas where user said "you decide" — note that Claude has flexibility here]