@x0rium/devkit-cli 0.6.0 → 0.7.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.
Files changed (43) hide show
  1. package/dist/constitution.d.ts.map +1 -1
  2. package/dist/constitution.js +62 -8
  3. package/dist/constitution.js.map +1 -1
  4. package/dist/dashboard.d.ts.map +1 -1
  5. package/dist/dashboard.js +6 -2
  6. package/dist/dashboard.js.map +1 -1
  7. package/dist/detector.d.ts.map +1 -1
  8. package/dist/detector.js +5 -2
  9. package/dist/detector.js.map +1 -1
  10. package/dist/escalate.d.ts.map +1 -1
  11. package/dist/escalate.js +8 -3
  12. package/dist/escalate.js.map +1 -1
  13. package/dist/gate.d.ts.map +1 -1
  14. package/dist/gate.js +57 -10
  15. package/dist/gate.js.map +1 -1
  16. package/dist/index.js +10 -6
  17. package/dist/index.js.map +1 -1
  18. package/dist/investigate.d.ts.map +1 -1
  19. package/dist/investigate.js +8 -10
  20. package/dist/investigate.js.map +1 -1
  21. package/dist/rfc.d.ts.map +1 -1
  22. package/dist/rfc.js +8 -10
  23. package/dist/rfc.js.map +1 -1
  24. package/dist/scaffold.d.ts +1 -0
  25. package/dist/scaffold.d.ts.map +1 -1
  26. package/dist/scaffold.js +11 -1
  27. package/dist/scaffold.js.map +1 -1
  28. package/dist/schemas.js +2 -2
  29. package/dist/schemas.js.map +1 -1
  30. package/dist/status.d.ts.map +1 -1
  31. package/dist/status.js +7 -4
  32. package/dist/status.js.map +1 -1
  33. package/dist/validator.js +1 -1
  34. package/dist/validator.js.map +1 -1
  35. package/dist/watch.js +10 -10
  36. package/dist/watch.js.map +1 -1
  37. package/package.json +2 -4
  38. package/skills/arch-kit/SKILL.md +66 -4
  39. package/skills/devkit-init/SKILL.md +35 -60
  40. package/skills/product-kit/SKILL.md +28 -3
  41. package/skills/qa-kit/SKILL.md +44 -2
  42. package/skills/research-kit/SKILL.md +30 -8
  43. package/skills/spec-kit/SKILL.md +133 -39
@@ -4,54 +4,38 @@ description: Initialize DevKit in any project. Use when developer wants to start
4
4
  license: MIT
5
5
  metadata:
6
6
  author: devkit
7
- version: "1.0"
7
+ version: "1.1"
8
8
  ---
9
9
 
10
10
  # DevKit Init
11
11
 
12
12
  Initialize DevKit for any project state. Detect what exists, choose the right mode, set up what's needed.
13
13
 
14
- ## Step 1: Detect Project State
14
+ ## Step 1: Run CLI Init
15
15
 
16
- Check what exists in the current directory:
16
+ Run the CLI command — it auto-detects project state and creates the structure:
17
17
 
18
+ ```bash
19
+ devkit init
18
20
  ```
19
- Check for:
20
- .devkit/ → already initialized
21
- .specify/ → spec-kit exists, no DevKit
22
- source code files → brownfield (code without DevKit)
23
- empty directory → greenfield
24
- ```
25
-
26
- Based on findings, choose mode:
27
21
 
28
- | State | Mode |
29
- |-------|------|
30
- | .devkit/ exists | Already initialized → show status |
31
- | .specify/ only | Upgrade mode wrap spec-kit with DevKit |
32
- | Code, no .devkit/ | Brownfield mode → reconstruct from code |
33
- | Empty / no code | Greenfield mode → start fresh |
22
+ This will:
23
+ - Detect project state (greenfield / brownfield / upgrade / already initialized)
24
+ - Create `.devkit/` directory structure
25
+ - Generate `STATUS.md` with correct mode and phase
26
+ - Report what was created vs skipped
34
27
 
35
- Read the mode guide:
36
- - Greenfield: [greenfield.md](references/greenfield.md)
37
- - Brownfield: [brownfield.md](references/brownfield.md)
38
- - Upgrade from spec-kit: [upgrade.md](references/upgrade.md)
28
+ If `.devkit/` already exists, it safely skips (idempotent).
39
29
 
40
- ## Step 2: Create .devkit/ Structure
30
+ ## Step 2: Verify State
41
31
 
42
- After determining mode, create the directory structure:
43
-
44
- ```
45
- .devkit/
46
- research/ ← ResearchKit artifacts
47
- product/ ← ProductKit artifacts
48
- arch/
49
- decisions/ ← ADR, RFC, Investigation files
50
- qa/
51
- escalations/ ← QA escalation history
32
+ ```bash
33
+ devkit status
52
34
  ```
53
35
 
54
- ## Step 3: Install spec-kit if not present
36
+ Review the output: mode, current phase, progress. This confirms init worked correctly.
37
+
38
+ ## Step 3: Install spec-kit if not present (optional)
55
39
 
56
40
  Check if `specify` CLI is available:
57
41
 
@@ -59,41 +43,32 @@ Check if `specify` CLI is available:
59
43
  specify --version
60
44
  ```
61
45
 
62
- If not found, output instructions:
46
+ If not found, inform the developer (do not block init):
63
47
  ```
64
- spec-kit not found. Install with:
48
+ Note: spec-kit not found. DevKit works independently.
49
+ If you want SpecKit integration, install with:
65
50
  uv tool install specify-cli --from git+https://github.com/github/spec-kit.git
66
-
67
51
  Then run: specify init . --ai claude
68
52
  ```
69
53
 
70
- If found but `.specify/` doesn't exist:
71
- ```bash
72
- specify init . --ai claude
73
- ```
54
+ Important: spec-kit installation is optional. DevKit init must succeed regardless of spec-kit availability.
74
55
 
75
- ## Step 4: Confirm and Show Next Step
56
+ ## Step 4: Mode-Specific Setup
76
57
 
77
- After init, tell developer what to do next based on mode:
58
+ For **brownfield** mode, also follow [brownfield.md](references/brownfield.md) to reconstruct invariants from existing code.
78
59
 
79
- Greenfield:
80
- ```
81
- DevKit initialized.
82
- Start with: /research-kit
83
- Describe your idea and we'll explore feasibility together.
84
- ```
60
+ For **upgrade** mode, follow [upgrade.md](references/upgrade.md) to extract artifacts from existing constitution.
85
61
 
86
- Brownfield:
87
- ```
88
- DevKit initialized in brownfield mode.
89
- Reconstructed N invariants (review required).
90
- Next: review .devkit/arch/invariants.md and confirm or correct.
91
- Then: /arch-kit to fill gaps.
92
- ```
62
+ For **greenfield**, no extra setup needed.
93
63
 
94
- Upgrade:
95
- ```
96
- DevKit initialized over existing spec-kit project.
97
- Reconstructed constitution into ArchKit artifacts.
98
- Next: review .devkit/arch/invariants.md
64
+ ## Step 5: Confirm and Show Next Step
65
+
66
+ ```bash
67
+ devkit status
99
68
  ```
69
+
70
+ Tell developer what to do next based on detected mode:
71
+
72
+ - Greenfield: "Start with: /research-kit — describe your idea"
73
+ - Brownfield: "Review .devkit/arch/invariants.md, then /arch-kit to fill gaps"
74
+ - Upgrade: "Review .devkit/arch/invariants.md extracted from constitution"
@@ -4,7 +4,7 @@ description: DevKit Level 2. Use after ResearchKit when developer needs to defin
4
4
  license: MIT
5
5
  metadata:
6
6
  author: devkit
7
- version: "1.0"
7
+ version: "1.1"
8
8
  layer: "2-of-5"
9
9
  prev: research-kit
10
10
  next: arch-kit
@@ -14,6 +14,14 @@ metadata:
14
14
 
15
15
  You are operating in ProductKit phase. Your job is to define the user, establish UX invariants, and set roadmap priorities before any architecture decisions are made.
16
16
 
17
+ ## Start
18
+
19
+ ```bash
20
+ devkit status
21
+ ```
22
+
23
+ Confirm you are in the product phase. If not, check gate status of the previous phase.
24
+
17
25
  ## Your Role
18
26
 
19
27
  - Define who the user is and how they interact with the product
@@ -62,8 +70,18 @@ Read templates from:
62
70
 
63
71
  Save artifacts to `.devkit/product/`.
64
72
 
73
+ **After creating or updating artifacts, always run:**
74
+ ```bash
75
+ devkit validate
76
+ ```
77
+ Fix any errors before proceeding.
78
+
65
79
  ## Gate: When Can We Move to ArchKit?
66
80
 
81
+ ```bash
82
+ devkit gate
83
+ ```
84
+
67
85
  ALLOWED to proceed when:
68
86
  - Primary user and happy path defined
69
87
  - UX invariants established for MVP scope
@@ -85,11 +103,18 @@ Response:
85
103
  > [check ux_invariants.md]
86
104
  > This conflicts with [U_N]. Running ProductKit investigation before continuing."
87
105
 
88
- Open `product/investigations/PROD-XXX.md`, explore options, update ux_invariants.md, propagate changes to ArchKit.
106
+ Review ux_invariants.md, explore options, update invariants if needed, propagate changes to ArchKit via `devkit rfc`.
89
107
 
90
108
  ## Handoff
91
109
 
92
- When gate conditions are met:
110
+ When `devkit gate` shows ALLOWED:
111
+
112
+ ```bash
113
+ devkit advance
114
+ devkit status
115
+ ```
116
+
117
+ Then generate summary:
93
118
  ```
94
119
  PRODUCT COMPLETE
95
120
  USER: [one-line description]
@@ -4,7 +4,7 @@ description: DevKit Level 5. Use after implementation to verify the system again
4
4
  license: MIT
5
5
  metadata:
6
6
  author: devkit
7
- version: "1.0"
7
+ version: "1.1"
8
8
  layer: "5-of-5"
9
9
  prev: spec-kit
10
10
  ---
@@ -13,6 +13,14 @@ metadata:
13
13
 
14
14
  You are operating in QAKit phase. Your job is not just to find bugs — it is to verify the system against every level of decisions made in DevKit.
15
15
 
16
+ ## Start
17
+
18
+ ```bash
19
+ devkit status
20
+ ```
21
+
22
+ Confirm you are in the qa phase. If not, check gate status of the previous phase.
23
+
16
24
  ## Your Role
17
25
 
18
26
  - Generate test contracts from invariants (not from code)
@@ -44,9 +52,19 @@ For each invariant, generate a test contract:
44
52
 
45
53
  Save to `.devkit/qa/test_contracts.md`.
46
54
 
55
+ **After creating contracts, validate:**
56
+ ```bash
57
+ devkit validate
58
+ ```
59
+
47
60
  ### Phase 2: Coverage Analysis
48
61
  Map every invariant to its test contract.
49
62
  Identify uncovered invariants — these are explicit technical debt.
63
+
64
+ ```bash
65
+ devkit coverage
66
+ ```
67
+
50
68
  Save to `.devkit/qa/coverage_map.md`.
51
69
 
52
70
  ### Phase 3: Assumption Validation
@@ -55,6 +73,10 @@ For each assumption, check whether reality confirmed or rejected it.
55
73
  Rejected assumptions → escalate to ResearchKit.
56
74
  Save findings to `.devkit/qa/assumption_checks.md`.
57
75
 
76
+ ```bash
77
+ devkit validate
78
+ ```
79
+
58
80
  ## Artifacts to Produce
59
81
 
60
82
  Read templates from:
@@ -64,6 +86,12 @@ Read templates from:
64
86
 
65
87
  Save to `.devkit/qa/`.
66
88
 
89
+ **After creating or updating artifacts, always run:**
90
+ ```bash
91
+ devkit validate
92
+ ```
93
+ Fix any errors before proceeding.
94
+
67
95
  ## Escalation Logic
68
96
 
69
97
  When a test fails or a problem is found:
@@ -87,7 +115,12 @@ Did a research assumption prove false in production?
87
115
  ```
88
116
 
89
117
  ### Step 3: Document the escalation
90
- Create `.devkit/qa/escalations/ESC-XXX.md`:
118
+
119
+ ```bash
120
+ devkit escalate "description of failure"
121
+ ```
122
+
123
+ This creates `.devkit/qa/escalations/ESC-XXX.md`. Fill in:
91
124
  - What was found
92
125
  - Which level it escalated to
93
126
  - What decision was triggered
@@ -95,6 +128,10 @@ Create `.devkit/qa/escalations/ESC-XXX.md`:
95
128
 
96
129
  ## Gate: Ready for Production?
97
130
 
131
+ ```bash
132
+ devkit gate
133
+ ```
134
+
98
135
  ALLOWED when:
99
136
  - All BLOCKER test contracts pass
100
137
  - No open escalations of blocker severity
@@ -104,6 +141,11 @@ BLOCKED when:
104
141
  - Any BLOCKER contract fails
105
142
  - Open blocker-level escalation exists
106
143
 
144
+ Check coverage threshold:
145
+ ```bash
146
+ devkit coverage
147
+ ```
148
+
107
149
  ## Continuous QA
108
150
 
109
151
  QAKit is not a one-time gate. It runs:
@@ -4,7 +4,7 @@ description: DevKit Level 1. Use when developer has a new idea and needs to expl
4
4
  license: MIT
5
5
  metadata:
6
6
  author: devkit
7
- version: "1.0"
7
+ version: "1.1"
8
8
  layer: "1-of-5"
9
9
  next: product-kit
10
10
  ---
@@ -13,6 +13,10 @@ metadata:
13
13
 
14
14
  You are operating in ResearchKit phase. Your job is to help the developer explore the idea space before any architecture or implementation decisions are made.
15
15
 
16
+ ## Start
17
+
18
+ Run `devkit status` to confirm you are in the research phase. If the project is not initialized, run `devkit init` first.
19
+
16
20
  ## Your Role
17
21
 
18
22
  - Ask questions, explore unknowns, map risks
@@ -54,8 +58,19 @@ Read templates from:
54
58
 
55
59
  Save artifacts to `.devkit/research/`.
56
60
 
61
+ **After creating or updating artifacts, always run:**
62
+ ```bash
63
+ devkit validate
64
+ ```
65
+ Fix any errors before proceeding.
66
+
57
67
  ## Gate: When Can We Move to ProductKit?
58
68
 
69
+ Check readiness with CLI:
70
+ ```bash
71
+ devkit gate
72
+ ```
73
+
59
74
  ALLOWED to proceed when:
60
75
  - All HIGH RISK unknowns have a validation path
61
76
  - Feasibility is `yes` or `conditional` with known conditions
@@ -65,16 +80,16 @@ BLOCKED when:
65
80
  - Any BLOCKER unknown has no validation path
66
81
  - Feasibility is `no`
67
82
 
68
- ## Event Detection
83
+ ## Handoff
69
84
 
70
- If developer mentions during ResearchKit:
71
- - New technical constraint → update feasibility.md
72
- - New analogue found → update market.md
73
- - Resolved unknown → update status in unknowns.md
85
+ When `devkit gate` shows ALLOWED:
74
86
 
75
- ## Handoff
87
+ ```bash
88
+ devkit advance
89
+ devkit status
90
+ ```
76
91
 
77
- When gate conditions are met, generate summary:
92
+ Then generate summary:
78
93
  ```
79
94
  RESEARCH COMPLETE
80
95
  FEASIBILITY: yes/conditional/no
@@ -82,3 +97,10 @@ KEY UNKNOWNS RESOLVED: N
82
97
  REMAINING RISKS: [list with mitigations]
83
98
  READY FOR: ProductKit
84
99
  ```
100
+
101
+ ## Event Detection
102
+
103
+ If developer mentions during ResearchKit:
104
+ - New technical constraint → update feasibility.md → `devkit validate`
105
+ - New analogue found → update market.md → `devkit validate`
106
+ - Resolved unknown → update status in unknowns.md → `devkit validate`
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: spec-kit
3
- description: DevKit Level 4. Use when architecture is verified and it's time to write specifications and implement features. Integrates with github/spec-kit workflow. Monitors conversation for architectural events (new requirements, technical blockers, UX problems) and escalates to the appropriate DevKit level automatically.
3
+ description: DevKit Level 4. Activated when architecture is verified and constitution is synced. Delegates implementation to github/spec-kit (specify-cli) as the execution engine. DevKit provides event detection (RFC, Investigation, Product Blocker) that interrupts spec-kit workflow when invariants are touched. Triggers on phrases like "let's build", "implement", "start coding", "write the feature".
4
4
  license: MIT
5
5
  metadata:
6
6
  author: devkit
7
- version: "1.0"
7
+ version: "2.0"
8
8
  layer: "4-of-5"
9
9
  prev: arch-kit
10
10
  next: qa-kit
@@ -12,32 +12,99 @@ metadata:
12
12
 
13
13
  # SpecKit — Level 4: "Build it."
14
14
 
15
- You are operating in SpecKit phase. Architecture is verified. You have a constitution.md. Now you build — using the github/spec-kit workflow as the implementation engine.
15
+ You are operating in SpecKit phase. Architecture is verified. Constitution is synced to `.specify/memory/constitution.md`. Now you build — using **github/spec-kit** as the implementation engine.
16
+
17
+ ## Start
18
+
19
+ ```bash
20
+ devkit status
21
+ ```
22
+
23
+ Confirm you are in the spec phase. If not, check gate status of the previous phase.
24
+
25
+ ## Prerequisites
26
+
27
+ Before any spec work, verify:
28
+
29
+ 1. Constitution exists and is synced:
30
+ ```bash
31
+ ls .specify/memory/constitution.md
32
+ ```
33
+ If missing:
34
+ ```bash
35
+ devkit generate-constitution
36
+ devkit sync
37
+ ```
38
+
39
+ 2. spec-kit is initialized:
40
+ ```bash
41
+ ls .specify/scripts/
42
+ ```
43
+ If missing:
44
+ ```bash
45
+ specify init . --ai claude
46
+ ```
16
47
 
17
48
  ## Your Role
18
49
 
19
- - Follow github/spec-kit methodology for specification and implementation
50
+ - Delegate specification and implementation to spec-kit `/speckit.*` commands
20
51
  - Monitor every developer message for escalation triggers
21
52
  - STOP and escalate before proceeding when triggers are detected
22
53
  - Never silently modify architecture within a spec
23
54
 
24
- ## Constitution
55
+ ## spec-kit Workflow
25
56
 
26
- Before any spec work, confirm constitution.md exists at `.specify/constitution.md`.
27
- If it doesn't exist, stop and run: `/arch-kit generate-constitution`
57
+ Execute these commands in order. Each is a slash command provided by spec-kit:
28
58
 
29
- The constitution comes from ArchKit — do not edit it manually. It contains the verified invariants that all specs must respect.
59
+ ### Step 1: Create Feature Specification
60
+ ```
61
+ /speckit.specify <feature description>
62
+ ```
63
+ Creates `.specify/specs/NNN-feature-name/spec.md` + git branch.
64
+ Focuses on WHAT and WHY, not HOW. Max 3 `[NEEDS CLARIFICATION]` markers.
30
65
 
31
- ## Standard Workflow (github/spec-kit)
66
+ ### Step 2: Resolve Ambiguities
67
+ ```
68
+ /speckit.clarify
69
+ ```
70
+ Structured ambiguity scan across 11 categories. Asks up to 5 questions per session.
71
+ Updates spec.md with `## Clarifications` section.
32
72
 
73
+ ### Step 3: Technical Implementation Plan
33
74
  ```
34
- /constitution — already generated by ArchKit, review only
35
- /specify — describe the feature
36
- /clarify — resolve ambiguities before planning
37
- /plan — technical plan respecting invariants
38
- /tasks — break into reviewable units
39
- /analyze — check cross-spec consistency
40
- /implement — generate code
75
+ /speckit.plan <tech stack preferences>
76
+ ```
77
+ Generates: `plan.md`, `research.md`, `data-model.md`, `contracts/`, `quickstart.md`.
78
+ Performs constitution compliance check automatically.
79
+
80
+ ### Step 4: Task Breakdown
81
+ ```
82
+ /speckit.tasks
83
+ ```
84
+ Generates `tasks.md` with dependency ordering.
85
+ Tasks tagged `[P]` for parallelizable, `[USn]` mapped to user stories.
86
+
87
+ ### Step 5: Cross-Artifact Consistency Analysis
88
+ ```
89
+ /speckit.analyze
90
+ ```
91
+ Read-only analysis: duplication, ambiguity, underspecification, constitution alignment, coverage gaps, inconsistency. Outputs severity-rated findings.
92
+
93
+ ### Step 6: Quality Checklists
94
+ ```
95
+ /speckit.checklist <domain>
96
+ ```
97
+ "Unit tests for English" — validates that requirements themselves are complete, clear, consistent, and measurable. Domains: security, ux, api, etc.
98
+
99
+ ### Step 7: Implement
100
+ ```
101
+ /speckit.implement
102
+ ```
103
+ Executes tasks phase-by-phase, marks completed in tasks.md, validates against spec.
104
+
105
+ ### Bonus: Export to GitHub Issues
106
+ ```
107
+ /speckit.taskstoissues
41
108
  ```
42
109
 
43
110
  ## Invariant Guard
@@ -50,7 +117,12 @@ TECHNICAL: [I1, I3] from .devkit/arch/invariants.md
50
117
  UX: [U2] from .devkit/product/ux_invariants.md
51
118
  ```
52
119
 
53
- If implementation requires deviating from an invariant STOP. Do not implement. Open RFC.
120
+ If implementation requires deviating from an invariant STOP. Do not implement. Open RFC:
121
+
122
+ ```bash
123
+ devkit impact "description of deviation"
124
+ devkit rfc "description"
125
+ ```
54
126
 
55
127
  ## Event Detection — CRITICAL
56
128
 
@@ -60,49 +132,71 @@ Monitor every developer message. Before continuing spec work, check for triggers
60
132
  Patterns: "we also need", "add support for", "client wants", "what about", "can we also"
61
133
 
62
134
  Action:
63
- > "This sounds like a new requirement. Let me check if it touches our invariants.
64
- > [read .devkit/arch/invariants.md]
65
- > This affects invariant [I_N]. I need to open an RFC before continuing.
66
- > Estimated impact: [N specs affected]. Proceed with RFC? /arch-kit rfc"
135
+ > "This sounds like a new requirement. Let me check if it touches our invariants."
136
+
137
+ ```bash
138
+ devkit impact "new requirement description"
139
+ devkit rfc "description"
140
+ ```
67
141
 
68
142
  Do NOT continue spec work until RFC is resolved.
69
143
 
70
144
  ### Investigation Trigger — Technical Blocker
71
- Patterns: "bug in library", "this doesn't support", "benchmark shows", "unexpected behavior", "doesn't work as expected", "performance issue"
145
+ Patterns: "bug in library", "this doesn't support", "benchmark shows", "unexpected behavior", "performance issue"
72
146
 
73
147
  Action:
74
- > "This breaks an architectural assumption. Let me identify which one.
75
- > [read .devkit/arch/decisions/ADR-*.md]
76
- > This breaks the assumption in [ADR-N]. Opening Investigation.
77
- > /arch-kit investigate"
148
+ > "This breaks an architectural assumption. Opening Investigation."
149
+
150
+ ```bash
151
+ devkit investigate "description of blocker"
152
+ ```
78
153
 
79
154
  Do NOT work around the blocker silently.
80
155
 
81
156
  ### Product Blocker Trigger — UX Problem
82
- Patterns: "this is hard to use", "too many parameters", "confusing", "users won't get this", "awkward interface"
157
+ Patterns: "this is hard to use", "too many parameters", "confusing", "users won't get this"
83
158
 
84
159
  Action:
85
- > "This looks like a UX invariant issue. Let me check.
86
- > [read .devkit/product/ux_invariants.md]
87
- > This conflicts with [U_N]. Escalating to ProductKit investigation."
160
+ > "This looks like a UX invariant issue."
88
161
 
89
- Do NOT continue with the current design.
162
+ Check `.devkit/product/ux_invariants.md`. If violated escalate to ProductKit.
90
163
 
91
164
  ### No Trigger — Normal Work
92
- When none of the above apply: proceed with standard spec-kit workflow.
165
+ When none of the above apply: proceed with spec-kit workflow.
93
166
 
94
- ## Spec Numbering
167
+ **After creating or updating DevKit artifacts, always run:**
168
+ ```bash
169
+ devkit validate
170
+ ```
171
+
172
+ ## Gate: When Can We Move to QAKit?
95
173
 
96
- Specs are numbered sequentially: spec_001, spec_002, etc.
97
- When specs are revised after an RFC, they keep their number and get revision suffix: spec_003_r1.
174
+ ```bash
175
+ devkit gate
176
+ ```
98
177
 
99
- ## Handoff to QAKit
178
+ ALLOWED when:
179
+ - At least one spec-kit feature implemented (`.specify/specs/NNN-*/`)
180
+ - No open RFCs or Investigations
181
+
182
+ BLOCKED when:
183
+ - Open RFC or Investigation exists
184
+ - No features in `.specify/specs/`
185
+
186
+ ## Handoff
187
+
188
+ When `devkit gate` shows ALLOWED:
189
+
190
+ ```bash
191
+ devkit advance
192
+ devkit status
193
+ ```
100
194
 
101
- After implementation of a feature or milestone:
195
+ Then generate summary:
102
196
  ```
103
197
  IMPLEMENTATION COMPLETE
104
- SPECS: [list]
105
- INVARIANTS COVERED: [list]
198
+ SPECS: [list of .specify/specs/NNN-*/ directories]
199
+ INVARIANTS COVERED: [list from spec invariant coverage sections]
106
200
  OPEN ITEMS: none / [list with owners]
107
201
  READY FOR: QAKit
108
202
  ```