@leeovery/claude-technical-workflows 2.1.27 → 2.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -92
- package/agents/implementation-analysis-task-writer.md +1 -1
- package/agents/planning-review-integrity.md +71 -0
- package/agents/planning-review-traceability.md +74 -0
- package/package.json +1 -1
- package/skills/link-dependencies/SKILL.md +3 -3
- package/skills/migrate/scripts/migrations/002-specification-frontmatter.sh +5 -0
- package/skills/migrate/scripts/migrations/003-planning-frontmatter.sh +5 -0
- package/skills/migrate/scripts/migrations/004-sources-object-format.sh +5 -0
- package/skills/migrate/scripts/migrations/005-plan-external-deps-frontmatter.sh +5 -0
- package/skills/migrate/scripts/migrations/006-directory-restructure.sh +167 -0
- package/skills/migrate/scripts/migrations/007-tasks-subdirectory.sh +86 -0
- package/skills/start-discussion/references/handle-selection.md +8 -0
- package/skills/start-feature/SKILL.md +2 -2
- package/skills/start-implementation/SKILL.md +1 -3
- package/skills/start-implementation/scripts/discovery.sh +7 -7
- package/skills/start-planning/references/invoke-skill.md +3 -3
- package/skills/start-planning/scripts/discovery.sh +8 -8
- package/skills/start-review/references/invoke-skill.md +3 -3
- package/skills/start-review/scripts/discovery.sh +3 -3
- package/skills/start-specification/references/confirm-continue.md +3 -3
- package/skills/start-specification/references/confirm-create.md +3 -3
- package/skills/start-specification/references/confirm-refine.md +1 -1
- package/skills/start-specification/references/confirm-unify.md +4 -4
- package/skills/start-specification/references/handoffs/continue-concluded.md +3 -1
- package/skills/start-specification/references/handoffs/continue.md +3 -1
- package/skills/start-specification/references/handoffs/create-with-incorporation.md +2 -2
- package/skills/start-specification/references/handoffs/create.md +1 -1
- package/skills/start-specification/references/handoffs/unify-with-incorporation.md +3 -3
- package/skills/start-specification/references/handoffs/unify.md +1 -1
- package/skills/start-specification/scripts/discovery.sh +6 -6
- package/skills/status/scripts/discovery.sh +7 -7
- package/skills/technical-discussion/SKILL.md +46 -8
- package/skills/technical-implementation/SKILL.md +66 -20
- package/skills/technical-implementation/references/{steps/analysis-loop.md → analysis-loop.md} +1 -1
- package/skills/technical-implementation/references/{steps/invoke-analysis.md → invoke-analysis.md} +5 -5
- package/skills/technical-implementation/references/{steps/invoke-executor.md → invoke-executor.md} +5 -5
- package/skills/technical-implementation/references/{steps/invoke-reviewer.md → invoke-reviewer.md} +2 -2
- package/skills/technical-implementation/references/{steps/invoke-synthesizer.md → invoke-synthesizer.md} +3 -3
- package/skills/technical-implementation/references/{steps/invoke-task-writer.md → invoke-task-writer.md} +4 -4
- package/skills/technical-implementation/references/{steps/task-loop.md → task-loop.md} +45 -38
- package/skills/technical-planning/SKILL.md +64 -22
- package/skills/technical-planning/references/{steps/analyze-task-graph.md → analyze-task-graph.md} +33 -16
- package/skills/technical-planning/references/author-tasks.md +100 -0
- package/skills/technical-planning/references/{steps/define-phases.md → define-phases.md} +15 -9
- package/skills/technical-planning/references/{steps/define-tasks.md → define-tasks.md} +10 -6
- package/skills/technical-planning/references/invoke-review-integrity.md +36 -0
- package/skills/technical-planning/references/invoke-review-traceability.md +37 -0
- package/skills/technical-planning/references/output-formats/local-markdown/about.md +6 -4
- package/skills/technical-planning/references/output-formats/local-markdown/authoring.md +3 -3
- package/skills/technical-planning/references/output-formats/local-markdown/reading.md +3 -3
- package/skills/technical-planning/references/output-formats/local-markdown/updating.md +1 -1
- package/skills/technical-planning/references/output-formats/tick/about.md +68 -0
- package/skills/technical-planning/references/output-formats/tick/authoring.md +106 -0
- package/skills/technical-planning/references/output-formats/tick/graph.md +62 -0
- package/skills/technical-planning/references/output-formats/tick/reading.md +61 -0
- package/skills/technical-planning/references/output-formats/tick/updating.md +25 -0
- package/skills/technical-planning/references/output-formats.md +11 -0
- package/skills/technical-planning/references/{steps/plan-construction.md → plan-construction.md} +33 -9
- package/skills/technical-planning/references/plan-review.md +122 -0
- package/skills/technical-planning/references/process-review-findings.md +171 -0
- package/skills/technical-planning/references/{steps/resolve-dependencies.md → resolve-dependencies.md} +18 -12
- package/skills/technical-planning/references/review-integrity.md +127 -0
- package/skills/technical-planning/references/review-traceability.md +105 -0
- package/skills/technical-planning/references/task-design.md +1 -1
- package/skills/technical-planning/references/{steps/verify-source-material.md → verify-source-material.md} +3 -3
- package/skills/technical-research/SKILL.md +20 -4
- package/skills/technical-review/SKILL.md +21 -4
- package/skills/technical-specification/SKILL.md +34 -8
- package/skills/technical-specification/references/specification-guide.md +228 -56
- package/skills/view-plan/SKILL.md +1 -1
- package/skills/technical-planning/references/steps/author-tasks.md +0 -72
- package/skills/technical-planning/references/steps/plan-review.md +0 -94
- package/skills/technical-planning/references/steps/review-integrity.md +0 -222
- package/skills/technical-planning/references/steps/review-traceability.md +0 -200
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Process Review Findings
|
|
2
|
+
|
|
3
|
+
*Reference for **[plan-review](plan-review.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Process findings from a review agent interactively with the user. The agent writes findings — with full fix content — to a tracking file. Read the tracking file and present each finding for approval.
|
|
8
|
+
|
|
9
|
+
**Review type**: `{review_type:[traceability|integrity]}` — set by the calling context (B or C in plan-review.md).
|
|
10
|
+
|
|
11
|
+
#### If STATUS is `clean`
|
|
12
|
+
|
|
13
|
+
> *Output the next fenced block as a code block:*
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
{Review type} review complete — no findings.
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
→ Return to **[plan-review.md](plan-review.md)** for the next phase.
|
|
20
|
+
|
|
21
|
+
#### If STATUS is `findings`
|
|
22
|
+
|
|
23
|
+
Read the tracking file at the path returned by the agent (`TRACKING_FILE`).
|
|
24
|
+
|
|
25
|
+
→ Proceed to **A. Summary**.
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## A. Summary
|
|
30
|
+
|
|
31
|
+
> *Output the next fenced block as a code block:*
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
{Review type} Review — {N} items found
|
|
35
|
+
|
|
36
|
+
1. {title} ({type or severity}) — {change_type}
|
|
37
|
+
{1-2 line summary from the Details field}
|
|
38
|
+
|
|
39
|
+
2. ...
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
> *Output the next fenced block as a code block:*
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
Let's work through these one at a time, starting with #1.
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
→ Proceed to **B. Process One Item at a Time**.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## B. Process One Item at a Time
|
|
53
|
+
|
|
54
|
+
Work through each finding **sequentially**. For each finding: present it, show the proposed fix, then route through the gate.
|
|
55
|
+
|
|
56
|
+
### Present Finding
|
|
57
|
+
|
|
58
|
+
Show the finding with its full fix content, read directly from the tracking file.
|
|
59
|
+
|
|
60
|
+
> *Output the next fenced block as markdown (not a code block):*
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
**Finding {N} of {total}: {Brief Title}**
|
|
64
|
+
|
|
65
|
+
@if(review_type = traceability)
|
|
66
|
+
- **Type**: Missing from plan | Hallucinated content | Incomplete coverage
|
|
67
|
+
- **Spec Reference**: {from tracking file}
|
|
68
|
+
- **Plan Reference**: {from tracking file}
|
|
69
|
+
- **Change Type**: {from tracking file}
|
|
70
|
+
@else
|
|
71
|
+
- **Severity**: Critical | Important | Minor
|
|
72
|
+
- **Plan Reference**: {from tracking file}
|
|
73
|
+
- **Category**: {from tracking file}
|
|
74
|
+
- **Change Type**: {from tracking file}
|
|
75
|
+
@endif
|
|
76
|
+
|
|
77
|
+
**Details**: {from tracking file}
|
|
78
|
+
|
|
79
|
+
**Current**:
|
|
80
|
+
{from tracking file — the existing plan content}
|
|
81
|
+
|
|
82
|
+
**Proposed**:
|
|
83
|
+
{from tracking file — the replacement content}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Check Gate Mode
|
|
87
|
+
|
|
88
|
+
Check `finding_gate_mode` in the Plan Index File frontmatter.
|
|
89
|
+
|
|
90
|
+
#### If `finding_gate_mode: auto`
|
|
91
|
+
|
|
92
|
+
1. Apply the fix to the plan (use **Proposed** content exactly as in tracking file)
|
|
93
|
+
2. Update the tracking file: set resolution to "Fixed"
|
|
94
|
+
3. Commit the tracking file and plan changes
|
|
95
|
+
|
|
96
|
+
> *Output the next fenced block as a code block:*
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Finding {N} of {total}: {Brief Title} — approved. Applied to plan.
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
→ Present the next pending finding, or proceed to **C. After All Findings Processed**.
|
|
103
|
+
|
|
104
|
+
#### If `finding_gate_mode: gated`
|
|
105
|
+
|
|
106
|
+
> *Output the next fenced block as markdown (not a code block):*
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
· · · · · · · · · · · ·
|
|
110
|
+
**Finding {N} of {total}: {Brief Title}**
|
|
111
|
+
- **`y`/`yes`** — Approved. Apply to the plan verbatim.
|
|
112
|
+
- **`a`/`auto`** — Approve this and all remaining findings automatically
|
|
113
|
+
- **`s`/`skip`** — Leave as-is, move to next finding.
|
|
114
|
+
- **Or provide feedback** to adjust the fix.
|
|
115
|
+
· · · · · · · · · · · ·
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**STOP.** Wait for user response.
|
|
119
|
+
|
|
120
|
+
#### If the user provides feedback
|
|
121
|
+
|
|
122
|
+
Incorporate feedback and re-present the proposed fix **in full**. Update the tracking file with the revised content. Then ask the same choice again. Repeat until approved or skipped.
|
|
123
|
+
|
|
124
|
+
#### If approved
|
|
125
|
+
|
|
126
|
+
1. Apply the fix to the plan — use the **Proposed** content exactly as shown, using the output format adapter to determine how it's written. Do not modify content between approval and writing.
|
|
127
|
+
2. Update the tracking file: set resolution to "Fixed", add any discussion notes.
|
|
128
|
+
3. Commit the tracking file and any plan changes — ensures progress survives context refresh.
|
|
129
|
+
4. > *Output the next fenced block as a code block:*
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
Finding {N} of {total}: {Brief Title} — fixed.
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
→ Present the next pending finding, or proceed to **C. After All Findings Processed**.
|
|
136
|
+
|
|
137
|
+
#### If `auto`
|
|
138
|
+
|
|
139
|
+
1. Apply the fix (same as "If approved" above)
|
|
140
|
+
2. Update the tracking file: set resolution to "Fixed"
|
|
141
|
+
3. Update `finding_gate_mode: auto` in the Plan Index File frontmatter
|
|
142
|
+
4. Commit
|
|
143
|
+
5. Process all remaining findings using the auto-mode flow above
|
|
144
|
+
|
|
145
|
+
→ After all processed, proceed to **C. After All Findings Processed**.
|
|
146
|
+
|
|
147
|
+
#### If skipped
|
|
148
|
+
|
|
149
|
+
1. Update the tracking file: set resolution to "Skipped", note the reason.
|
|
150
|
+
2. Commit the tracking file — ensures progress survives context refresh.
|
|
151
|
+
3. > *Output the next fenced block as a code block:*
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
Finding {N} of {total}: {Brief Title} — skipped.
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
→ Present the next pending finding, or proceed to **C. After All Findings Processed**.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## C. After All Findings Processed
|
|
162
|
+
|
|
163
|
+
1. **Mark the tracking file as complete** — Set `status: complete`.
|
|
164
|
+
2. **Commit** the tracking file and any plan changes.
|
|
165
|
+
3. > *Output the next fenced block as a code block:*
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
{Review type} review complete — {N} findings processed.
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
→ Return to **[plan-review.md](plan-review.md)** for the next phase.
|
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
# Resolve External Dependencies
|
|
2
2
|
|
|
3
|
-
*Reference for **[technical-planning](
|
|
3
|
+
*Reference for **[technical-planning](../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
> *Output the next fenced block as a code block:*
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
```
|
|
10
|
+
All phases and tasks are written. Now I'll check for external
|
|
11
|
+
dependencies — things this plan needs from other topics or systems.
|
|
12
|
+
```
|
|
10
13
|
|
|
11
|
-
|
|
14
|
+
Handle external dependencies — things this plan needs from other topics or systems.
|
|
12
15
|
|
|
13
|
-
Dependencies are stored in the plan's **frontmatter** as `external_dependencies`. See [dependencies.md](
|
|
16
|
+
Dependencies are stored in the plan's **frontmatter** as `external_dependencies`. See [dependencies.md](dependencies.md) for the format and states.
|
|
14
17
|
|
|
15
18
|
#### If the specification has a Dependencies section
|
|
16
19
|
|
|
17
20
|
The specification's Dependencies section lists what this feature needs from outside its own scope. These must be documented in the plan so implementation knows what is blocked and what is available.
|
|
18
21
|
|
|
19
|
-
1. **Document each dependency** in the plan's `external_dependencies` frontmatter field using the format described in [dependencies.md](
|
|
22
|
+
1. **Document each dependency** in the plan's `external_dependencies` frontmatter field using the format described in [dependencies.md](dependencies.md). Initially, record each as `state: unresolved`.
|
|
20
23
|
|
|
21
24
|
2. **Resolve where possible** — For each dependency, check whether a plan already exists for that topic:
|
|
22
25
|
- If a plan exists, identify the specific task(s) that satisfy the dependency. Query the output format to find relevant tasks. If ambiguous, ask the user which tasks apply. Update the dependency entry from `state: unresolved` → `state: resolved` with the `task_id`.
|
|
23
26
|
- If no plan exists, leave the dependency as `state: unresolved`. It will be linked later via `/link-dependencies` or when that topic is planned.
|
|
27
|
+
- If no other plans exist at all, skip resolution — there is nothing to resolve against. All dependencies remain unresolved.
|
|
24
28
|
|
|
25
|
-
3. **Reverse check** —
|
|
29
|
+
3. **Reverse check** — If other plans exist, check whether any have unresolved dependencies in their `external_dependencies` frontmatter that reference *this* topic. Now that this plan exists with specific tasks:
|
|
26
30
|
- Scan other plan files' `external_dependencies` for entries that mention this topic
|
|
27
31
|
- For each match, identify which task(s) in the current plan satisfy that dependency
|
|
28
32
|
- Update the other plan's `external_dependencies` entry with the task reference (`state: resolved`, `task_id`)
|
|
@@ -37,24 +41,26 @@ external_dependencies: []
|
|
|
37
41
|
|
|
38
42
|
This makes it clear that dependencies were considered and none exist — not that they were overlooked.
|
|
39
43
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
Skip the resolution and reverse check — there is nothing to resolve against. Document the dependencies as unresolved. They will be linked when other topics are planned, or via `/link-dependencies`.
|
|
44
|
+
---
|
|
43
45
|
|
|
44
|
-
|
|
46
|
+
Present a summary of the dependency state: what was documented, what was resolved, what remains unresolved, and any reverse resolutions made.
|
|
45
47
|
|
|
46
48
|
> *Output the next fenced block as markdown (not a code block):*
|
|
47
49
|
|
|
48
50
|
```
|
|
49
51
|
· · · · · · · · · · · ·
|
|
50
52
|
**To proceed:**
|
|
51
|
-
- **`y`/`yes`** — Approved.
|
|
53
|
+
- **`y`/`yes`** — Approved.
|
|
52
54
|
- **Or tell me what to change.**
|
|
53
55
|
· · · · · · · · · · · ·
|
|
54
56
|
```
|
|
55
57
|
|
|
58
|
+
**STOP.** Wait for the user's response.
|
|
59
|
+
|
|
56
60
|
#### If the user provides feedback
|
|
57
61
|
|
|
58
62
|
Incorporate feedback, re-present the updated dependency state, and ask again. Repeat until approved.
|
|
59
63
|
|
|
60
64
|
#### If approved
|
|
65
|
+
|
|
66
|
+
Commit: `planning({topic}): resolve external dependencies`
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Plan Integrity Review
|
|
2
|
+
|
|
3
|
+
*Reference for **[plan-review](plan-review.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Review the plan **as a standalone document** for structural quality, implementation readiness, and adherence to planning standards.
|
|
8
|
+
|
|
9
|
+
**Purpose**: Ensure that the plan itself is well-structured, complete, and ready for implementation. An implementer (human or AI) should be able to pick up this plan and execute it without ambiguity, without needing to make design decisions, and without referring back to the specification.
|
|
10
|
+
|
|
11
|
+
**Key distinction**: The traceability review checked *what's in the plan* against the spec. This review checks *how it's structured* — looking inward at the plan's own quality.
|
|
12
|
+
|
|
13
|
+
Read the plan end-to-end — carefully, as if you were about to implement it. For each phase, each task, and the plan overall, check against the following criteria:
|
|
14
|
+
|
|
15
|
+
## What You're NOT Doing
|
|
16
|
+
|
|
17
|
+
- **Not redesigning the plan** — You're checking quality, not re-architecting
|
|
18
|
+
- **Not adding content from outside the spec** — If a task needs more detail, the detail must come from the specification
|
|
19
|
+
- **Not gold-plating** — Focus on issues that would actually impact implementation
|
|
20
|
+
- **Not second-guessing phase structure** — Unless it's fundamentally broken, the structure stands
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## What to Look For
|
|
25
|
+
|
|
26
|
+
1. **Task Template Compliance**
|
|
27
|
+
- Every task has all required fields: Problem, Solution, Outcome, Do, Acceptance Criteria, Tests
|
|
28
|
+
- Problem statements clearly explain WHY the task exists
|
|
29
|
+
- Solution statements describe WHAT we're building
|
|
30
|
+
- Outcome statements define what success looks like
|
|
31
|
+
- Acceptance criteria are concrete and verifiable (not vague)
|
|
32
|
+
- Tests include edge cases, not just happy paths
|
|
33
|
+
|
|
34
|
+
2. **Vertical Slicing**
|
|
35
|
+
- Tasks deliver complete, testable functionality
|
|
36
|
+
- No horizontal slicing (all models, then all services, then all wiring)
|
|
37
|
+
- Each task can be verified independently
|
|
38
|
+
- Each task is a single TDD cycle
|
|
39
|
+
|
|
40
|
+
3. **Phase Structure**
|
|
41
|
+
- Phases follow logical progression (Foundation → Core → Edge cases → Refinement)
|
|
42
|
+
- Each phase has clear acceptance criteria
|
|
43
|
+
- Each phase is independently testable
|
|
44
|
+
- Phase boundaries make sense (not arbitrary groupings)
|
|
45
|
+
|
|
46
|
+
4. **Dependencies and Ordering**
|
|
47
|
+
- Task dependencies are explicit and correct — each dependency reflects a genuine data or capability requirement
|
|
48
|
+
- No circular dependencies exist in the task graph
|
|
49
|
+
- Priority assignments reflect graph position — foundation tasks and tasks that unblock others are prioritised appropriately
|
|
50
|
+
- An implementer can determine execution order from the dependency graph and priorities alone
|
|
51
|
+
|
|
52
|
+
5. **Task Self-Containment**
|
|
53
|
+
- Each task contains all context needed for execution
|
|
54
|
+
- No task requires reading other tasks to understand what to do
|
|
55
|
+
- Relevant specification decisions are pulled into task context
|
|
56
|
+
- An implementer could pick up any single task and execute it
|
|
57
|
+
|
|
58
|
+
6. **Scope and Granularity**
|
|
59
|
+
- Each task is one TDD cycle (not too large, not too small)
|
|
60
|
+
- No task requires multiple unrelated implementation steps
|
|
61
|
+
- No task is so granular it's just mechanical boilerplate
|
|
62
|
+
|
|
63
|
+
7. **Acceptance Criteria Quality**
|
|
64
|
+
- Criteria are pass/fail, not subjective
|
|
65
|
+
- Criteria cover the actual requirement, not just "code exists"
|
|
66
|
+
- Edge case criteria are specific about boundary values and behaviors
|
|
67
|
+
- No criteria that an implementer would have to interpret
|
|
68
|
+
|
|
69
|
+
8. **External Dependencies**
|
|
70
|
+
- All external dependencies from the specification are documented in the plan
|
|
71
|
+
- Dependencies are in the correct state (resolved/unresolved)
|
|
72
|
+
- No external dependencies were missed or invented
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Tracking File
|
|
77
|
+
|
|
78
|
+
After completing the analysis, create a tracking file at `docs/workflow/planning/{topic}/review-integrity-tracking-c{N}.md` (where N is the current review cycle).
|
|
79
|
+
|
|
80
|
+
Categorize each finding by severity:
|
|
81
|
+
|
|
82
|
+
- **Critical**: Would block implementation or cause incorrect behavior
|
|
83
|
+
- **Important**: Would force implementer to guess or make design decisions
|
|
84
|
+
- **Minor**: Polish or improvement that strengthens the plan
|
|
85
|
+
|
|
86
|
+
Tracking files are **never deleted**. After all findings are processed, the orchestrator marks `status: complete`. Previous cycles' files persist as review history.
|
|
87
|
+
|
|
88
|
+
**Format**:
|
|
89
|
+
```markdown
|
|
90
|
+
---
|
|
91
|
+
status: in-progress
|
|
92
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
93
|
+
cycle: {N}
|
|
94
|
+
phase: Plan Integrity Review
|
|
95
|
+
topic: {Topic Name}
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
# Review Tracking: {Topic Name} - Integrity
|
|
99
|
+
|
|
100
|
+
## Findings
|
|
101
|
+
|
|
102
|
+
### 1. [Brief Title]
|
|
103
|
+
|
|
104
|
+
**Severity**: Critical | Important | Minor
|
|
105
|
+
**Plan Reference**: [Phase/task in plan]
|
|
106
|
+
**Category**: [Which review criterion — e.g., "Task Template Compliance", "Vertical Slicing"]
|
|
107
|
+
**Change Type**: [update-task | add-to-task | remove-from-task | add-task | remove-task | add-phase | remove-phase]
|
|
108
|
+
|
|
109
|
+
**Details**:
|
|
110
|
+
[What the issue is and why it matters for implementation]
|
|
111
|
+
|
|
112
|
+
**Current**:
|
|
113
|
+
[The existing content as it appears in the plan — omit for add-task/add-phase]
|
|
114
|
+
|
|
115
|
+
**Proposed**:
|
|
116
|
+
[The replacement/new content in full plan format — omit for remove-task/remove-phase]
|
|
117
|
+
|
|
118
|
+
**Resolution**: Pending
|
|
119
|
+
**Notes**:
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### 2. [Next Finding]
|
|
124
|
+
...
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Commit the tracking file after creation: `planning({topic}): integrity review cycle {N}`
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Traceability Review
|
|
2
|
+
|
|
3
|
+
*Reference for **[plan-review](plan-review.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Compare the plan against the specification **in both directions** to ensure complete, faithful translation.
|
|
8
|
+
|
|
9
|
+
**Purpose**: Verify that the plan is a faithful, complete translation of the specification. Everything in the spec must be in the plan, and everything in the plan must trace back to the spec. This is the anti-hallucination gate — it catches both missing content and invented content before implementation begins.
|
|
10
|
+
|
|
11
|
+
Re-read the specification in full before starting. Don't rely on memory — read it as if seeing it for the first time. Then check both directions:
|
|
12
|
+
|
|
13
|
+
## What You're NOT Doing
|
|
14
|
+
|
|
15
|
+
- **Not adding new requirements** — If something isn't in the spec, the fix is to remove it from the plan or flag it with `[needs-info]`, not to justify its inclusion
|
|
16
|
+
- **Not expanding scope** — Missing spec content should be added as tasks; it shouldn't trigger re-architecture of the plan
|
|
17
|
+
- **Not being lenient with hallucinated content** — If it can't be traced to the specification, it must be removed or the user must explicitly approve it as an intentional addition
|
|
18
|
+
- **Not re-litigating spec decisions** — The specification reflects validated decisions; you're checking the plan's fidelity to them
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Direction 1: Specification → Plan (completeness)
|
|
23
|
+
|
|
24
|
+
Is everything from the specification represented in the plan?
|
|
25
|
+
|
|
26
|
+
1. **For each specification element, verify plan coverage**:
|
|
27
|
+
- Every decision → has a task that implements it
|
|
28
|
+
- Every requirement → has a task with matching acceptance criteria
|
|
29
|
+
- Every edge case → has a task or is explicitly handled within a task
|
|
30
|
+
- Every constraint → is reflected in the relevant tasks
|
|
31
|
+
- Every data model or schema → appears in the relevant tasks
|
|
32
|
+
- Every integration point → has a task that addresses it
|
|
33
|
+
- Every validation rule → has a task with test coverage
|
|
34
|
+
|
|
35
|
+
2. **Check depth of coverage** — It's not enough that a spec topic is *mentioned* in a task. The task must contain enough detail that an implementer wouldn't need to go back to the specification. Summarizing and rewording is fine, but the essence and instruction must be preserved.
|
|
36
|
+
|
|
37
|
+
## Direction 2: Plan → Specification (fidelity)
|
|
38
|
+
|
|
39
|
+
Is everything in the plan actually from the specification? This is the anti-hallucination check.
|
|
40
|
+
|
|
41
|
+
1. **For each task, trace its content back to the specification**:
|
|
42
|
+
- The Problem statement → ties to a spec requirement or decision
|
|
43
|
+
- The Solution approach → matches the spec's architectural choices
|
|
44
|
+
- The implementation details → come from the spec, not invention
|
|
45
|
+
- The acceptance criteria → verify spec requirements, not made-up ones
|
|
46
|
+
- The tests → cover spec behaviors, not imagined scenarios
|
|
47
|
+
- The edge cases → are from the spec, not invented
|
|
48
|
+
|
|
49
|
+
2. **Flag anything that cannot be traced**:
|
|
50
|
+
- Content that has no corresponding specification section
|
|
51
|
+
- Technical approaches not discussed in the specification
|
|
52
|
+
- Requirements or behaviors not mentioned anywhere in the spec
|
|
53
|
+
- Edge cases the specification never identified
|
|
54
|
+
- Acceptance criteria testing things the specification doesn't require
|
|
55
|
+
|
|
56
|
+
3. **The standard for hallucination**: If you cannot point to a specific part of the specification that justifies a piece of plan content, it is hallucinated. It doesn't matter how reasonable it seems — if it wasn't discussed and validated, it doesn't belong in the plan.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Tracking File
|
|
61
|
+
|
|
62
|
+
After completing the analysis, create a tracking file at `docs/workflow/planning/{topic}/review-traceability-tracking-c{N}.md` (where N is the current review cycle).
|
|
63
|
+
|
|
64
|
+
Tracking files are **never deleted**. After all findings are processed, the orchestrator marks `status: complete`. Previous cycles' files persist as review history.
|
|
65
|
+
|
|
66
|
+
**Format**:
|
|
67
|
+
```markdown
|
|
68
|
+
---
|
|
69
|
+
status: in-progress
|
|
70
|
+
created: YYYY-MM-DD # Use today's actual date
|
|
71
|
+
cycle: {N}
|
|
72
|
+
phase: Traceability Review
|
|
73
|
+
topic: {Topic Name}
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
# Review Tracking: {Topic Name} - Traceability
|
|
77
|
+
|
|
78
|
+
## Findings
|
|
79
|
+
|
|
80
|
+
### 1. [Brief Title]
|
|
81
|
+
|
|
82
|
+
**Type**: Missing from plan | Hallucinated content | Incomplete coverage
|
|
83
|
+
**Spec Reference**: [Section/decision in specification, or "N/A"]
|
|
84
|
+
**Plan Reference**: [Phase/task in plan, or "N/A" for missing content]
|
|
85
|
+
**Change Type**: [update-task | add-to-task | remove-from-task | add-task | remove-task | add-phase | remove-phase]
|
|
86
|
+
|
|
87
|
+
**Details**:
|
|
88
|
+
[What was found and why it matters]
|
|
89
|
+
|
|
90
|
+
**Current**:
|
|
91
|
+
[The existing content as it appears in the plan — omit for add-task/add-phase]
|
|
92
|
+
|
|
93
|
+
**Proposed**:
|
|
94
|
+
[The replacement/new content in full plan format — omit for remove-task/remove-phase]
|
|
95
|
+
|
|
96
|
+
**Resolution**: Pending
|
|
97
|
+
**Notes**:
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
### 2. [Next Finding]
|
|
102
|
+
...
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Commit the tracking file after creation: `planning({topic}): traceability review cycle {N}`
|
|
@@ -140,7 +140,7 @@ Every task should follow this structure:
|
|
|
140
140
|
> Relevant details from specification: code examples, architectural decisions,
|
|
141
141
|
> data models, or constraints that inform implementation.
|
|
142
142
|
|
|
143
|
-
**Spec Reference**: `docs/workflow/specification/{topic}.md` (if specification was provided)
|
|
143
|
+
**Spec Reference**: `docs/workflow/specification/{topic}/specification.md` (if specification was provided)
|
|
144
144
|
```
|
|
145
145
|
|
|
146
146
|
### Field Requirements
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Verify Source Material
|
|
2
2
|
|
|
3
|
-
*Reference for **[technical-planning](
|
|
3
|
+
*Reference for **[technical-planning](../SKILL.md)***
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -15,6 +15,6 @@ Verify that all source material exists and is accessible before entering agent-d
|
|
|
15
15
|
### Example
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
ls docs/workflow/specification/{topic}.md
|
|
19
|
-
ls docs/workflow/specification/{cross-cutting-spec}.md
|
|
18
|
+
ls docs/workflow/specification/{topic}/specification.md
|
|
19
|
+
ls docs/workflow/specification/{cross-cutting-spec}/specification.md
|
|
20
20
|
```
|
|
@@ -23,11 +23,27 @@ Either way: Explore feasibility (technical, business, market), validate assumpti
|
|
|
23
23
|
|
|
24
24
|
**Before proceeding**, confirm the required input is clear. If anything is missing or unclear, **STOP** and resolve with the user.
|
|
25
25
|
|
|
26
|
-
|
|
27
|
-
"What would you like to research or explore? This could be a new idea, a technical concept, a market opportunity — anything you want to investigate."
|
|
26
|
+
#### If no topic provided
|
|
28
27
|
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
> *Output the next fenced block as a code block:*
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
What would you like to research or explore? This could be a new idea, a
|
|
32
|
+
technical concept, a market opportunity — anything you want to investigate.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**STOP.** Wait for user response.
|
|
36
|
+
|
|
37
|
+
#### If topic is vague or could go many directions
|
|
38
|
+
|
|
39
|
+
> *Output the next fenced block as a code block:*
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
You mentioned {topic}. That could cover a lot of ground — is there a specific
|
|
43
|
+
angle you'd like to start with, or should I explore broadly?
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**STOP.** Wait for user response.
|
|
31
47
|
|
|
32
48
|
---
|
|
33
49
|
|
|
@@ -24,11 +24,28 @@ Either way: Verify plan tasks were implemented, tested adequately, and meet qual
|
|
|
24
24
|
|
|
25
25
|
**Before proceeding**, verify the required input is available. If anything is missing, **STOP** — do not proceed until resolved.
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
> "I need the implementation plan to review against. Could you point me to the plan file (e.g., `docs/workflow/planning/{topic}.md`)?"
|
|
27
|
+
#### If no plan provided
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
> *Output the next fenced block as a code block:*
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
I need the implementation plan to review against. Could you point me to the
|
|
33
|
+
plan file (e.g., docs/workflow/planning/{topic}/plan.md)?
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**STOP.** Wait for user response.
|
|
37
|
+
|
|
38
|
+
#### If plan references a specification that can't be found
|
|
39
|
+
|
|
40
|
+
> *Output the next fenced block as a code block:*
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
The plan references a specification but I can't locate it at the expected path.
|
|
44
|
+
Could you confirm where the specification is? I can proceed without it, but
|
|
45
|
+
having it provides better context for the review.
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**STOP.** Wait for user response.
|
|
32
49
|
|
|
33
50
|
The specification is optional — the review can proceed with just the plan.
|
|
34
51
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: technical-specification
|
|
3
|
-
description: "Build validated specifications from source material through collaborative refinement. Use when: (1) User asks to create/build a specification from source material, (2) User wants to validate and refine content before planning, (3) Converting source material (discussions, research, requirements) into standalone specifications, (4) User says 'specify this' or 'create a spec', (5) Need to filter hallucinations and enrich gaps before formal planning. Creates specifications in docs/workflow/specification/{topic}.md that can be used to build implementation plans."
|
|
3
|
+
description: "Build validated specifications from source material through collaborative refinement. Use when: (1) User asks to create/build a specification from source material, (2) User wants to validate and refine content before planning, (3) Converting source material (discussions, research, requirements) into standalone specifications, (4) User says 'specify this' or 'create a spec', (5) Need to filter hallucinations and enrich gaps before formal planning. Creates specifications in docs/workflow/specification/{topic}/specification.md that can be used to build implementation plans."
|
|
4
4
|
user-invocable: false
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -29,14 +29,39 @@ Either way: Transform unvalidated reference material into a specification that's
|
|
|
29
29
|
|
|
30
30
|
**Before proceeding**, verify all required inputs are available and unambiguous. If anything is missing or unclear, **STOP** — do not proceed until resolved.
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
> "I need source material to build a specification from. Could you point me to the source files (e.g., `docs/workflow/discussion/{topic}.md`), or provide the content directly?"
|
|
32
|
+
#### If no source material provided
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
> "What should the specification be named? This determines the output file: `docs/workflow/specification/{name}.md`."
|
|
34
|
+
> *Output the next fenced block as a code block:*
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
```
|
|
37
|
+
I need source material to build a specification from. Could you point me to the
|
|
38
|
+
source files (e.g., docs/workflow/discussion/{topic}.md), or provide the content
|
|
39
|
+
directly?
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**STOP.** Wait for user response.
|
|
43
|
+
|
|
44
|
+
#### If no topic name provided
|
|
45
|
+
|
|
46
|
+
> *Output the next fenced block as a code block:*
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
What should the specification be named? This determines the output file:
|
|
50
|
+
docs/workflow/specification/{name}/specification.md
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**STOP.** Wait for user response.
|
|
54
|
+
|
|
55
|
+
#### If source material seems incomplete or unclear
|
|
56
|
+
|
|
57
|
+
> *Output the next fenced block as a code block:*
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
I have the source material, but {concern}. Should I proceed as-is, or is there
|
|
61
|
+
additional material I should review?
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**STOP.** Wait for user response.
|
|
40
65
|
|
|
41
66
|
**Multiple sources:** When multiple sources are provided, extract exhaustively from ALL of them. Content may be scattered across sources - a decision in one may have constraints or details in another. The specification consolidates everything into a single standalone document.
|
|
42
67
|
|
|
@@ -50,6 +75,7 @@ Context refresh (compaction) summarizes the conversation, losing procedural deta
|
|
|
50
75
|
2. **Read all tracking and state files** for the current topic — plan index files, review tracking files, implementation tracking files, or any working documents this skill creates. These are your source of truth for progress.
|
|
51
76
|
3. **Check git state.** Run `git status` and `git log --oneline -10` to see recent commits. Commit messages follow a conventional pattern that reveals what was completed.
|
|
52
77
|
4. **Announce your position** to the user before continuing: what step you believe you're at, what's been completed, and what comes next. Wait for confirmation.
|
|
78
|
+
5. **Check `finding_gate_mode`** in the specification frontmatter — if `auto`, the user previously opted in during this session. Preserve this value.
|
|
53
79
|
|
|
54
80
|
Do not guess at progress or continue from memory. The files on disk and git history are authoritative — your recollection is not.
|
|
55
81
|
|
|
@@ -59,7 +85,7 @@ Do not guess at progress or continue from memory. The files on disk and git hist
|
|
|
59
85
|
|
|
60
86
|
**Load**: [specification-guide.md](references/specification-guide.md)
|
|
61
87
|
|
|
62
|
-
**Output**: `docs/workflow/specification/{topic}.md`
|
|
88
|
+
**Output**: `docs/workflow/specification/{topic}/specification.md`
|
|
63
89
|
|
|
64
90
|
**When complete**: User signs off on the specification.
|
|
65
91
|
|