@leeovery/claude-technical-workflows 2.0.0
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/LICENSE +21 -0
- package/README.md +283 -0
- package/agents/chain-verifier.md +129 -0
- package/commands/interview.md +54 -0
- package/commands/start-discussion.md +36 -0
- package/commands/start-implementation.md +107 -0
- package/commands/start-planning.md +92 -0
- package/commands/start-research.md +21 -0
- package/commands/start-specification.md +89 -0
- package/package.json +24 -0
- package/skills/.gitkeep +0 -0
- package/skills/technical-discussion/SKILL.md +68 -0
- package/skills/technical-discussion/references/guidelines.md +86 -0
- package/skills/technical-discussion/references/meeting-assistant.md +102 -0
- package/skills/technical-discussion/references/template.md +127 -0
- package/skills/technical-implementation/SKILL.md +167 -0
- package/skills/technical-implementation/references/code-quality.md +41 -0
- package/skills/technical-implementation/references/environment-setup.md +97 -0
- package/skills/technical-implementation/references/plan-execution.md +49 -0
- package/skills/technical-implementation/references/tdd-workflow.md +63 -0
- package/skills/technical-planning/SKILL.md +46 -0
- package/skills/technical-planning/references/formal-planning.md +118 -0
- package/skills/technical-planning/references/output-backlog-md.md +227 -0
- package/skills/technical-planning/references/output-beads.md +302 -0
- package/skills/technical-planning/references/output-formats.md +14 -0
- package/skills/technical-planning/references/output-linear.md +211 -0
- package/skills/technical-planning/references/output-local-markdown.md +185 -0
- package/skills/technical-research/SKILL.md +81 -0
- package/skills/technical-review/SKILL.md +107 -0
- package/skills/technical-review/references/review-checklist.md +155 -0
- package/skills/technical-review/references/template.md +46 -0
- package/skills/technical-specification/SKILL.md +51 -0
- package/skills/technical-specification/references/specification-guide.md +170 -0
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Review Checklist
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-review](../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Before Starting
|
|
8
|
+
|
|
9
|
+
1. Read plan: `docs/workflow/planning/{topic}.md`
|
|
10
|
+
2. Read specification: `docs/workflow/specification/{topic}.md` (for context)
|
|
11
|
+
3. Identify what code/files were changed
|
|
12
|
+
4. Check for project-specific skills in `.claude/skills/`
|
|
13
|
+
|
|
14
|
+
## Task-Based Review (Primary Approach)
|
|
15
|
+
|
|
16
|
+
Review **every task** in the plan. Don't sample - verify all of them.
|
|
17
|
+
|
|
18
|
+
### Extract All Tasks
|
|
19
|
+
|
|
20
|
+
From the plan, list every task across all phases:
|
|
21
|
+
- Note each task's description
|
|
22
|
+
- Note each task's acceptance criteria
|
|
23
|
+
- Note expected micro acceptance (test name)
|
|
24
|
+
|
|
25
|
+
### Parallel Verification
|
|
26
|
+
|
|
27
|
+
Spawn `chain-verifier` subagents **in parallel** for ALL tasks:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Task 1 ──▶ [chain-verifier] ──▶ Findings
|
|
31
|
+
Task 2 ──▶ [chain-verifier] ──▶ Findings
|
|
32
|
+
Task 3 ──▶ [chain-verifier] ──▶ Findings (all running in parallel)
|
|
33
|
+
Task 4 ──▶ [chain-verifier] ──▶ Findings
|
|
34
|
+
...
|
|
35
|
+
Task N ──▶ [chain-verifier] ──▶ Findings
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**How to invoke each chain-verifier:**
|
|
39
|
+
|
|
40
|
+
Provide:
|
|
41
|
+
- The specific task (with acceptance criteria)
|
|
42
|
+
- Path to specification (for context)
|
|
43
|
+
- Path to plan (for phase context)
|
|
44
|
+
- Implementation scope (files/directories changed)
|
|
45
|
+
|
|
46
|
+
**Each chain-verifier checks:**
|
|
47
|
+
1. Implementation exists and matches acceptance criteria
|
|
48
|
+
2. Tests are adequate (not under-tested, not over-tested)
|
|
49
|
+
3. Code quality is acceptable
|
|
50
|
+
|
|
51
|
+
**Aggregate the findings:**
|
|
52
|
+
|
|
53
|
+
Once all chain-verifiers complete, synthesize their reports:
|
|
54
|
+
- Collect all incomplete/failed tasks as blocking issues
|
|
55
|
+
- Collect all test issues (under/over-tested)
|
|
56
|
+
- Collect all code quality concerns
|
|
57
|
+
- Include specific file:line references
|
|
58
|
+
|
|
59
|
+
## Per-Task Verification Details
|
|
60
|
+
|
|
61
|
+
For each task, the chain-verifier checks:
|
|
62
|
+
|
|
63
|
+
### Implementation
|
|
64
|
+
|
|
65
|
+
- Is the task implemented?
|
|
66
|
+
- Does the implementation match the acceptance criteria?
|
|
67
|
+
- Does it align with spec context (load relevant spec section)?
|
|
68
|
+
- Any drift from what was planned?
|
|
69
|
+
|
|
70
|
+
### Test Adequacy
|
|
71
|
+
|
|
72
|
+
**Not under-tested:**
|
|
73
|
+
- Does a test exist for this task?
|
|
74
|
+
- Does the test verify the acceptance criteria?
|
|
75
|
+
- Are edge cases from the spec covered?
|
|
76
|
+
- Would the test fail if the feature broke?
|
|
77
|
+
|
|
78
|
+
**Not over-tested:**
|
|
79
|
+
- Are tests focused on what matters?
|
|
80
|
+
- No redundant assertions testing the same thing?
|
|
81
|
+
- No unnecessary mocking or setup?
|
|
82
|
+
- Tests aren't testing implementation details instead of behavior?
|
|
83
|
+
|
|
84
|
+
### Code Quality
|
|
85
|
+
|
|
86
|
+
Review as a senior architect would:
|
|
87
|
+
|
|
88
|
+
**Project conventions** (check `.claude/skills/` for project-specific guidance):
|
|
89
|
+
- Framework and architecture guidelines defined for the project
|
|
90
|
+
- Code style and patterns specific to the codebase
|
|
91
|
+
|
|
92
|
+
**General principles** (always apply):
|
|
93
|
+
- **SOLID**: Single responsibility, open/closed, Liskov substitution, interface segregation, dependency inversion
|
|
94
|
+
- **DRY**: No unnecessary duplication (without premature abstraction)
|
|
95
|
+
- **Low complexity**: Reasonable cyclomatic complexity, clear code paths
|
|
96
|
+
- **Modern idioms**: Uses current language features appropriately
|
|
97
|
+
- **Readability**: Self-documenting code, clear intent
|
|
98
|
+
- **Security**: No obvious vulnerabilities (injection, exposure, etc.)
|
|
99
|
+
- **Performance**: No obvious inefficiencies (N+1 queries, unnecessary loops, etc.)
|
|
100
|
+
|
|
101
|
+
## Plan Completion Check
|
|
102
|
+
|
|
103
|
+
After task-level verification, check overall plan completion:
|
|
104
|
+
|
|
105
|
+
### Phase Acceptance Criteria
|
|
106
|
+
|
|
107
|
+
For each phase:
|
|
108
|
+
- Are all phase-level acceptance criteria met?
|
|
109
|
+
- Were all tasks in the phase completed?
|
|
110
|
+
|
|
111
|
+
### Scope
|
|
112
|
+
|
|
113
|
+
- Was anything built that wasn't in the plan? (scope creep)
|
|
114
|
+
- Was anything in the plan not built? (missing scope)
|
|
115
|
+
- Any unplanned files or features added?
|
|
116
|
+
|
|
117
|
+
## Common Issues
|
|
118
|
+
|
|
119
|
+
**Incomplete task**: Task marked done but not fully implemented
|
|
120
|
+
|
|
121
|
+
**Under-tested**: Missing tests, or tests don't verify acceptance criteria
|
|
122
|
+
|
|
123
|
+
**Over-tested**: Redundant tests, testing implementation details, excessive mocking
|
|
124
|
+
|
|
125
|
+
**Requirement drift**: Implementation doesn't match what was planned
|
|
126
|
+
|
|
127
|
+
**Missing edge cases**: Spec mentions edge cases not implemented or tested
|
|
128
|
+
|
|
129
|
+
**Scope creep**: Extra features not in plan
|
|
130
|
+
|
|
131
|
+
**Orphaned code**: Code added but not used or tested
|
|
132
|
+
|
|
133
|
+
**Poor readability**: Code works but is hard to understand
|
|
134
|
+
|
|
135
|
+
## Writing Feedback
|
|
136
|
+
|
|
137
|
+
Be specific and actionable:
|
|
138
|
+
|
|
139
|
+
- **Bad**: "Tests need improvement"
|
|
140
|
+
- **Good**: "Test `test_cache_expiry` doesn't verify TTL, only that value is returned"
|
|
141
|
+
|
|
142
|
+
Reference the plan task:
|
|
143
|
+
|
|
144
|
+
- **Bad**: "This wasn't done correctly"
|
|
145
|
+
- **Good**: "Plan Phase 2, Task 3 says 'implement Redis cache' with acceptance 'cache stores values for configured TTL' → implementation uses file cache with no TTL. Task incomplete."
|
|
146
|
+
|
|
147
|
+
Flag test balance issues:
|
|
148
|
+
|
|
149
|
+
- **Under-tested**: "Task 2.1 has no test for the error case mentioned in spec section 3.2"
|
|
150
|
+
- **Over-tested**: "Task 2.1 has 5 tests that all verify the same happy path with slight variations"
|
|
151
|
+
|
|
152
|
+
Distinguish blocking vs non-blocking:
|
|
153
|
+
|
|
154
|
+
- **Blocking**: Incomplete tasks, missing tests, broken functionality
|
|
155
|
+
- **Non-blocking**: Code style suggestions, minor readability improvements
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Review Template
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-review](../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Template
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
# Implementation Review: {Topic}
|
|
11
|
+
|
|
12
|
+
**Verdict**: Approve | Request Changes | Comments Only
|
|
13
|
+
|
|
14
|
+
## Summary
|
|
15
|
+
[One paragraph overall assessment]
|
|
16
|
+
|
|
17
|
+
## Specification Compliance
|
|
18
|
+
[Implementation aligns with specification / Note any deviations]
|
|
19
|
+
|
|
20
|
+
## Plan Completion
|
|
21
|
+
- [ ] Phase 1 acceptance criteria met
|
|
22
|
+
- [ ] Phase 2 acceptance criteria met
|
|
23
|
+
- [ ] All tasks completed
|
|
24
|
+
- [ ] No scope creep
|
|
25
|
+
|
|
26
|
+
## Code Quality
|
|
27
|
+
[Issues or "No issues found"]
|
|
28
|
+
|
|
29
|
+
## Test Quality
|
|
30
|
+
[Issues or "Tests adequately verify requirements"]
|
|
31
|
+
|
|
32
|
+
## Required Changes (if any)
|
|
33
|
+
1. [Specific actionable change]
|
|
34
|
+
2. [Specific actionable change]
|
|
35
|
+
|
|
36
|
+
## Recommendations (optional)
|
|
37
|
+
[Non-blocking suggestions]
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Verdict Guidelines
|
|
41
|
+
|
|
42
|
+
**Approve**: All acceptance criteria met, decisions followed, no blocking issues
|
|
43
|
+
|
|
44
|
+
**Request Changes**: Missing requirements, deviations from decisions, broken functionality, inadequate tests
|
|
45
|
+
|
|
46
|
+
**Comments Only**: Minor suggestions, style preferences, non-blocking observations
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: technical-specification
|
|
3
|
+
description: "Build validated specifications from discussion documents through collaborative refinement. Third phase of research-discussion-specification-plan-implement-review workflow. Use when: (1) User asks to create/build a specification from discussions, (2) User wants to validate and refine discussion content before planning, (3) Converting discussion documents into standalone specifications, (4) User says 'specify this' or 'create a spec' after discussions, (5) Need to filter hallucinations and enrich gaps before formal planning. Creates specifications in docs/workflow/specification/{topic}.md that technical-planning uses to build implementation plans."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Technical Specification
|
|
7
|
+
|
|
8
|
+
Act as **expert technical architect** and **specification builder**. Collaborate with the user to transform discussion documents into validated, standalone specifications.
|
|
9
|
+
|
|
10
|
+
Your role is to synthesize reference material, present it for validation, and build a specification that formal planning can execute against.
|
|
11
|
+
|
|
12
|
+
## Six-Phase Workflow
|
|
13
|
+
|
|
14
|
+
1. **Research** (previous): EXPLORE - ideas, feasibility, market, business, learning
|
|
15
|
+
2. **Discussion** (previous): WHAT and WHY - decisions, architecture, edge cases
|
|
16
|
+
3. **Specification** (YOU): REFINE - validate, filter, enrich into standalone spec
|
|
17
|
+
4. **Planning** (next): HOW - phases, tasks, acceptance criteria
|
|
18
|
+
5. **Implementation** (after): DOING - tests first, then code
|
|
19
|
+
6. **Review** (final): VALIDATING - check work against artifacts
|
|
20
|
+
|
|
21
|
+
You're at step 3. Build the specification. Don't jump to phases, tasks, or code.
|
|
22
|
+
|
|
23
|
+
## The Process
|
|
24
|
+
|
|
25
|
+
**Load**: [specification-guide.md](references/specification-guide.md)
|
|
26
|
+
|
|
27
|
+
**Output**: `docs/workflow/specification/{topic}.md`
|
|
28
|
+
|
|
29
|
+
**When complete**: User signs off, then proceed to technical-planning.
|
|
30
|
+
|
|
31
|
+
## What You Do
|
|
32
|
+
|
|
33
|
+
1. **Filter**: Reference material may contain hallucinations, inaccuracies, or outdated concepts. Validate before including.
|
|
34
|
+
|
|
35
|
+
2. **Enrich**: Reference material may have gaps. Fill them through discussion.
|
|
36
|
+
|
|
37
|
+
3. **Present**: Synthesize and present content to the user in the format it would appear in the specification.
|
|
38
|
+
|
|
39
|
+
4. **Log**: Only when approved, write content verbatim to the specification.
|
|
40
|
+
|
|
41
|
+
The specification must be **standalone** - it contains everything formal planning needs. No references back to discussions or other source material.
|
|
42
|
+
|
|
43
|
+
## Critical Rules
|
|
44
|
+
|
|
45
|
+
**Present before logging**: Never write content to the specification until the user has seen and approved it.
|
|
46
|
+
|
|
47
|
+
**Log verbatim**: When approved, write exactly what was presented - no silent modifications.
|
|
48
|
+
|
|
49
|
+
**Commit frequently**: Commit at natural breaks, after significant exchanges, and before any context refresh. Context refresh = lost work.
|
|
50
|
+
|
|
51
|
+
**Trust nothing without validation**: Synthesize and present, but never assume source material is correct.
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Specification Guide
|
|
2
|
+
|
|
3
|
+
*Reference for **[technical-specification](../SKILL.md)***
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are building a specification - a collaborative workspace where you and the user refine reference material into a validated, standalone document.
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Specification building is a **two-way process**:
|
|
12
|
+
|
|
13
|
+
1. **Filter**: Reference material may contain hallucinations, inaccuracies, or outdated concepts. Validate before including.
|
|
14
|
+
|
|
15
|
+
2. **Enrich**: Reference material may have gaps. Fill them through discussion.
|
|
16
|
+
|
|
17
|
+
The specification is the **bridge document** - a workspace for collecting validated, refined content that will feed formal planning.
|
|
18
|
+
|
|
19
|
+
**The specification must be standalone.** It should contain everything formal planning needs - no references back to discussions or other source material. When complete, it draws a line: formal planning uses only this document.
|
|
20
|
+
|
|
21
|
+
## Source Materials
|
|
22
|
+
|
|
23
|
+
Before starting any topic, review ALL available reference material:
|
|
24
|
+
- Discussion documents (from technical-discussion phase)
|
|
25
|
+
- Any existing partial plans
|
|
26
|
+
- Any existing partial specifications
|
|
27
|
+
- Related documentation
|
|
28
|
+
|
|
29
|
+
**Treat all source material as untrusted input.** Even discussion documents that went through a collaborative process may contain issues. Your job is to synthesize and present - the user validates.
|
|
30
|
+
|
|
31
|
+
## The Workflow
|
|
32
|
+
|
|
33
|
+
Work through the specification **topic by topic**:
|
|
34
|
+
|
|
35
|
+
### 1. Review
|
|
36
|
+
Read all reference material for the current topic. Understand what exists.
|
|
37
|
+
|
|
38
|
+
### 2. Synthesize and Present
|
|
39
|
+
Present your understanding to the user **in the format it would appear in the specification**:
|
|
40
|
+
|
|
41
|
+
> "Here's what I understand about [topic] based on the reference material. This is how I'd write it into the specification:
|
|
42
|
+
>
|
|
43
|
+
> [content as it would appear]
|
|
44
|
+
>
|
|
45
|
+
> Does this capture it? Anything to adjust, remove, or add?"
|
|
46
|
+
|
|
47
|
+
### 3. Discuss and Refine
|
|
48
|
+
Work through the content together:
|
|
49
|
+
- Validate what's accurate
|
|
50
|
+
- Remove what's wrong, outdated, or hallucinated
|
|
51
|
+
- Add what's missing through brief discussion
|
|
52
|
+
- **Course correct** based on knowledge from subsequent project work
|
|
53
|
+
- Refine wording and structure
|
|
54
|
+
|
|
55
|
+
This is a **human-level conversation**, not form-filling. The user brings context from across the project that may not be in the reference material - decisions from other topics, implications from later work, or knowledge that can't all fit in context.
|
|
56
|
+
|
|
57
|
+
### 4. Log When Approved
|
|
58
|
+
Only when the user approves ("yes, log it", "that's good", etc.) do you write it to the specification - **verbatim** as presented and approved.
|
|
59
|
+
|
|
60
|
+
### 5. Repeat
|
|
61
|
+
Move to the next topic.
|
|
62
|
+
|
|
63
|
+
## Context Resurfacing
|
|
64
|
+
|
|
65
|
+
When you discover information that affects **already-logged topics**, resurface them. Even mid-discussion - interrupt, flag what you found, and discuss whether it changes anything.
|
|
66
|
+
|
|
67
|
+
If it does: summarize what's changing in the chat, then re-present the full updated topic. The summary is for discussion only - the specification just gets the clean replacement. Standard workflow applies: user approves before you update.
|
|
68
|
+
|
|
69
|
+
This is encouraged. Better to resurface and confirm "already covered" than let something slip past.
|
|
70
|
+
|
|
71
|
+
## The Specification Document
|
|
72
|
+
|
|
73
|
+
Create `docs/workflow/specification/{topic}.md`
|
|
74
|
+
|
|
75
|
+
This is a single file per topic. Structure is **flexible** - organize around phases and subject matter, not rigid sections. This is a working document.
|
|
76
|
+
|
|
77
|
+
Suggested skeleton:
|
|
78
|
+
|
|
79
|
+
```markdown
|
|
80
|
+
# Specification: [Topic Name]
|
|
81
|
+
|
|
82
|
+
**Status**: Building specification
|
|
83
|
+
**Last Updated**: [timestamp]
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Specification
|
|
88
|
+
|
|
89
|
+
[Validated content accumulates here, organized by topic/phase]
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Working Notes
|
|
94
|
+
|
|
95
|
+
[Optional - capture in-progress discussion if needed]
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Critical Rules
|
|
99
|
+
|
|
100
|
+
**Present before logging**: Never write content to the specification until the user has seen and approved it.
|
|
101
|
+
|
|
102
|
+
**Log verbatim**: When approved, write exactly what was presented - no silent modifications.
|
|
103
|
+
|
|
104
|
+
**Commit frequently**: Commit at natural breaks and before any context refresh. Context refresh = lost work.
|
|
105
|
+
|
|
106
|
+
**Trust nothing without validation**: Synthesize and present, but never assume source material is correct.
|
|
107
|
+
|
|
108
|
+
## After Context Refresh
|
|
109
|
+
|
|
110
|
+
Read the specification. It contains validated, approved content. Trust it - you built it together with the user.
|
|
111
|
+
|
|
112
|
+
If working notes exist, they show where you left off.
|
|
113
|
+
|
|
114
|
+
## Dependencies Section
|
|
115
|
+
|
|
116
|
+
At the end of every specification, add a **Dependencies** section that identifies what other parts of the system need to exist before implementation.
|
|
117
|
+
|
|
118
|
+
The same workflow applies: present the dependencies section for approval, then log verbatim when approved.
|
|
119
|
+
|
|
120
|
+
### How to Identify Dependencies
|
|
121
|
+
|
|
122
|
+
Review the specification for references to:
|
|
123
|
+
- Other systems or features (e.g., "triggers when order is placed" → Order system dependency)
|
|
124
|
+
- Data models from other domains (e.g., "FK to users" → User model must exist)
|
|
125
|
+
- UI or configuration in other systems (e.g., "configured in admin dashboard" → Dashboard dependency)
|
|
126
|
+
- Events or state from other systems (e.g., "listens for payment.completed" → Payment system dependency)
|
|
127
|
+
|
|
128
|
+
### Categorization
|
|
129
|
+
|
|
130
|
+
**Required**: Cannot proceed without this. Core functionality depends on it.
|
|
131
|
+
|
|
132
|
+
**Partial Requirement**: Only specific elements are needed, not the full system. Note the minimum scope.
|
|
133
|
+
|
|
134
|
+
### Format
|
|
135
|
+
|
|
136
|
+
## Dependencies
|
|
137
|
+
|
|
138
|
+
Systems referenced in this specification that need to exist before implementation:
|
|
139
|
+
|
|
140
|
+
### Required
|
|
141
|
+
|
|
142
|
+
| Dependency | Why Needed | Blocking Elements |
|
|
143
|
+
|------------|------------|-------------------|
|
|
144
|
+
| **[System Name]** | [Brief explanation of why] | [What parts of this spec are blocked] |
|
|
145
|
+
|
|
146
|
+
### Partial Requirement
|
|
147
|
+
|
|
148
|
+
| Dependency | Why Needed | Minimum Scope |
|
|
149
|
+
|------------|------------|---------------|
|
|
150
|
+
| **[System Name]** | [Brief explanation] | [What subset is actually needed] |
|
|
151
|
+
|
|
152
|
+
### Notes
|
|
153
|
+
|
|
154
|
+
- [Any clarifications about what can be built independently]
|
|
155
|
+
- [Workarounds or alternatives if dependencies don't exist yet]
|
|
156
|
+
|
|
157
|
+
### Purpose
|
|
158
|
+
|
|
159
|
+
This section feeds into the planning phase, where dependencies become blocking relationships between epics/phases. It helps sequence implementation correctly.
|
|
160
|
+
|
|
161
|
+
Analyze the specification in isolation - identify what it references that must exist, not what you know exists elsewhere in the project.
|
|
162
|
+
|
|
163
|
+
## Transitioning to Formal Planning
|
|
164
|
+
|
|
165
|
+
Specification is complete when:
|
|
166
|
+
- All topics/phases have validated content
|
|
167
|
+
- User confirms the specification is complete
|
|
168
|
+
- No blocking gaps remain
|
|
169
|
+
|
|
170
|
+
Then proceed to formal planning with the **technical-planning** skill.
|