gsdd-cli 0.27.0 → 0.29.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/README.md +53 -22
- package/agents/DISTILLATION.md +2 -2
- package/agents/README.md +4 -4
- package/agents/approach-explorer.md +4 -4
- package/agents/executor.md +20 -20
- package/agents/integration-checker.md +2 -2
- package/agents/planner.md +10 -26
- package/agents/researcher.md +2 -2
- package/agents/roadmapper.md +6 -6
- package/agents/synthesizer.md +18 -18
- package/agents/verifier.md +3 -3
- package/bin/adapters/agents.mjs +3 -3
- package/bin/adapters/claude.mjs +16 -14
- package/bin/adapters/opencode.mjs +15 -12
- package/bin/gsdd.mjs +16 -13
- package/bin/lib/{models.mjs → config.mjs} +23 -16
- package/bin/lib/control-map.mjs +17 -488
- package/bin/lib/health-truth.mjs +8 -13
- package/bin/lib/health.mjs +25 -39
- package/bin/lib/init-flow.mjs +44 -38
- package/bin/lib/init-prompts.mjs +3 -3
- package/bin/lib/init-runtime.mjs +11 -30
- package/bin/lib/lifecycle-preflight.mjs +97 -410
- package/bin/lib/lifecycle-state.mjs +2 -1
- package/bin/lib/next.mjs +243 -20
- package/bin/lib/phase.mjs +706 -280
- package/bin/lib/plan-constants.mjs +0 -5
- package/bin/lib/rendering.mjs +64 -44
- package/bin/lib/runtime-freshness.mjs +18 -15
- package/bin/lib/state-dir.mjs +45 -0
- package/bin/lib/templates.mjs +59 -22
- package/bin/lib/work-context.mjs +12 -1
- package/bin/lib/workflows.mjs +0 -1
- package/bin/lib/workspace-root.mjs +11 -6
- package/distilled/DESIGN.md +89 -31
- package/distilled/EVIDENCE-INDEX.md +18 -5
- package/distilled/README.md +23 -33
- package/distilled/SKILL.md +9 -10
- package/distilled/templates/agents.block.md +5 -5
- package/distilled/templates/approach.md +3 -3
- package/distilled/templates/auth-matrix.md +2 -2
- package/distilled/templates/brownfield-change/CHANGE.md +1 -1
- package/distilled/templates/delegates/approach-explorer.md +5 -5
- package/distilled/templates/delegates/mapper-arch.md +3 -3
- package/distilled/templates/delegates/mapper-concerns.md +4 -4
- package/distilled/templates/delegates/mapper-quality.md +3 -3
- package/distilled/templates/delegates/mapper-tech.md +3 -3
- package/distilled/templates/delegates/plan-checker.md +18 -19
- package/distilled/templates/delegates/researcher-architecture.md +3 -3
- package/distilled/templates/delegates/researcher-features.md +3 -3
- package/distilled/templates/delegates/researcher-pitfalls.md +3 -3
- package/distilled/templates/delegates/researcher-stack.md +3 -3
- package/distilled/templates/delegates/researcher-synthesizer.md +7 -7
- package/distilled/templates/research/architecture.md +1 -1
- package/distilled/templates/research/pitfalls.md +1 -1
- package/distilled/templates/research/stack.md +1 -1
- package/distilled/templates/roadmap.md +4 -4
- package/distilled/templates/spec.md +2 -2
- package/distilled/templates/ui-proof.md +81 -181
- package/distilled/workflows/audit-milestone.md +23 -23
- package/distilled/workflows/complete-milestone.md +35 -35
- package/distilled/workflows/execute.md +34 -35
- package/distilled/workflows/map-codebase.md +30 -30
- package/distilled/workflows/new-milestone.md +18 -18
- package/distilled/workflows/new-project.md +45 -45
- package/distilled/workflows/pause.md +15 -15
- package/distilled/workflows/plan.md +106 -114
- package/distilled/workflows/progress.md +40 -39
- package/distilled/workflows/quick.md +49 -50
- package/distilled/workflows/resume.md +23 -22
- package/distilled/workflows/verify-work.md +7 -7
- package/distilled/workflows/verify.md +26 -26
- package/docs/BROWNFIELD-PROOF.md +1 -1
- package/docs/RUNTIME-SUPPORT.md +13 -13
- package/docs/USER-GUIDE.md +26 -21
- package/docs/claude/context-monitor.md +1 -1
- package/docs/proof/consumer-node-cli/README.md +1 -1
- package/package.json +3 -3
- package/bin/lib/closeout-report.mjs +0 -318
- package/bin/lib/evidence-contract.mjs +0 -325
- package/bin/lib/provenance.mjs +0 -390
- package/bin/lib/session-fingerprint.mjs +0 -223
- package/bin/lib/ui-proof.mjs +0 -1007
- package/distilled/workflows/plan-milestone-gaps.md +0 -204
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
<role>
|
|
2
|
-
You are the GAP CLOSURE PLANNER. Your job is to read the audit results from a completed milestone audit and create focused phases in ROADMAP.md that will close the identified gaps, so the milestone can be re-audited and eventually completed.
|
|
3
|
-
|
|
4
|
-
Core mindset: gaps are specific and concrete — name them, group them logically, and create phases that close them. Do not create vague "cleanup" phases.
|
|
5
|
-
|
|
6
|
-
Scope boundary: you create gap closure phases in ROADMAP.md. You do not plan the phases — that is `/gsdd-plan` territory. You do not close the gaps yourself.
|
|
7
|
-
</role>
|
|
8
|
-
|
|
9
|
-
<prerequisites>
|
|
10
|
-
`.planning/ROADMAP.md` must exist.
|
|
11
|
-
`.planning/SPEC.md` must exist.
|
|
12
|
-
A `.planning/v*-MILESTONE-AUDIT.md` file must exist with `status: gaps_found`.
|
|
13
|
-
|
|
14
|
-
If no audit file exists: stop and direct the user to run `/gsdd-audit-milestone` first.
|
|
15
|
-
If audit status is `passed`: stop and direct the user to run `/gsdd-complete-milestone` instead.
|
|
16
|
-
</prerequisites>
|
|
17
|
-
|
|
18
|
-
<repo_root_helper_contract>
|
|
19
|
-
All `node .planning/bin/gsdd.mjs ...` helper commands below assume the current working directory is the repo root. If the runtime launched from a subdirectory, change to the repo root before running them.
|
|
20
|
-
</repo_root_helper_contract>
|
|
21
|
-
|
|
22
|
-
<lifecycle_preflight>
|
|
23
|
-
Before writing ROADMAP gap-closure phases or phase directories, run:
|
|
24
|
-
|
|
25
|
-
- `node .planning/bin/gsdd.mjs lifecycle-preflight plan-milestone-gaps`
|
|
26
|
-
|
|
27
|
-
If the preflight result is `blocked`, STOP and report the blocker. This workflow intentionally mutates planning truth, so it must not proceed through pre-existing planning-state drift.
|
|
28
|
-
</lifecycle_preflight>
|
|
29
|
-
|
|
30
|
-
<load_context>
|
|
31
|
-
Before starting, read these files:
|
|
32
|
-
|
|
33
|
-
1. `.planning/v*-MILESTONE-AUDIT.md` (most recent) — gap details, requirement failures, integration issues, broken flows
|
|
34
|
-
2. `.planning/SPEC.md` — requirement priorities (v1/v2), requirement descriptions
|
|
35
|
-
3. `.planning/ROADMAP.md` — existing phases (to determine phase numbering continuation)
|
|
36
|
-
</load_context>
|
|
37
|
-
|
|
38
|
-
<process>
|
|
39
|
-
|
|
40
|
-
## 1. Load Audit Gaps
|
|
41
|
-
|
|
42
|
-
Parse the MILESTONE-AUDIT.md. Extract all gap objects:
|
|
43
|
-
- **Requirement gaps** — requirements marked unsatisfied with reason and missing evidence
|
|
44
|
-
- **Integration gaps** — cross-phase wiring failures (e.g., module A exports not consumed by module B)
|
|
45
|
-
- **Flow gaps** — E2E user flows broken at specific steps
|
|
46
|
-
|
|
47
|
-
For each gap, note:
|
|
48
|
-
- Gap type (requirement / integration / flow)
|
|
49
|
-
- Priority: derive from SPEC.md (`v1` requirement = must close, `v2` = optional)
|
|
50
|
-
- What is missing or broken
|
|
51
|
-
|
|
52
|
-
If no gaps are found after parsing, stop and direct the user to `/gsdd-complete-milestone`.
|
|
53
|
-
|
|
54
|
-
## 2. Prioritize Gaps
|
|
55
|
-
|
|
56
|
-
Sort gaps into two buckets:
|
|
57
|
-
|
|
58
|
-
**Must close** (v1 requirements, or integration/flow gaps affecting v1 requirements):
|
|
59
|
-
- These must become phases. The milestone cannot complete until they are resolved.
|
|
60
|
-
|
|
61
|
-
**Optional** (v2 requirements, low-severity integration gaps):
|
|
62
|
-
- Present to user: include in this milestone or defer?
|
|
63
|
-
|
|
64
|
-
Present the gap summary:
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
## Gap Analysis
|
|
68
|
-
|
|
69
|
-
Must close ([N] gaps):
|
|
70
|
-
- [REQ-ID]: [description] — [reason it failed]
|
|
71
|
-
- Integration [Phase X → Phase Y]: [what is missing]
|
|
72
|
-
- Flow "[flow name]": broken at [step]
|
|
73
|
-
|
|
74
|
-
Optional ([M] gaps):
|
|
75
|
-
- [REQ-ID]: [description] (v2 priority)
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**STOP. Ask the user which optional gaps to include.**
|
|
79
|
-
|
|
80
|
-
Exception: if `config.json -> mode` is `yolo`, include all must-close gaps and skip optional gaps.
|
|
81
|
-
|
|
82
|
-
## 3. Group Gaps into Phases
|
|
83
|
-
|
|
84
|
-
Cluster the selected gaps into logical phases using these rules:
|
|
85
|
-
- Same affected phase or subsystem → combine into one gap closure phase
|
|
86
|
-
- Dependency order: fix broken foundations before wiring dependents
|
|
87
|
-
- Keep phases focused: 2-4 tasks each
|
|
88
|
-
- Name phases after what they fix, not just "Gap Closure"
|
|
89
|
-
|
|
90
|
-
**Example grouping:**
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
Gaps:
|
|
94
|
-
- AUTH-03 unsatisfied (password reset flow missing)
|
|
95
|
-
- Integration: Session → Dashboard (auth header not passed)
|
|
96
|
-
- Flow "Reset password" broken at email dispatch
|
|
97
|
-
|
|
98
|
-
→ Phase N: "Auth Reset Flow"
|
|
99
|
-
- Implement password reset email dispatch
|
|
100
|
-
- Wire session auth header to dashboard API calls
|
|
101
|
-
- Test reset flow end-to-end
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
## 4. Determine Phase Numbers
|
|
105
|
-
|
|
106
|
-
Find the highest existing phase number in ROADMAP.md. New gap closure phases continue from there.
|
|
107
|
-
|
|
108
|
-
Example: if ROADMAP.md has Phases 1–5, gap closure phases start at Phase 6.
|
|
109
|
-
|
|
110
|
-
## 5. Present Gap Closure Plan
|
|
111
|
-
|
|
112
|
-
Present the proposed gap closure phases for confirmation:
|
|
113
|
-
|
|
114
|
-
```
|
|
115
|
-
## Gap Closure Plan
|
|
116
|
-
|
|
117
|
-
Milestone: v[X.Y]
|
|
118
|
-
Gaps to close: [N] requirement, [M] integration, [K] flow
|
|
119
|
-
|
|
120
|
-
**Phase [N]: [Name]**
|
|
121
|
-
Closes:
|
|
122
|
-
- [REQ-ID]: [description]
|
|
123
|
-
- Integration: [from] → [to]
|
|
124
|
-
Estimated tasks: [2-4]
|
|
125
|
-
|
|
126
|
-
**Phase [N+1]: [Name]**
|
|
127
|
-
Closes:
|
|
128
|
-
- [REQ-ID]: [description]
|
|
129
|
-
Estimated tasks: [2-4]
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
**STOP. Wait for user confirmation before writing to ROADMAP.md.**
|
|
133
|
-
|
|
134
|
-
If the user requests adjustments, revise and re-present.
|
|
135
|
-
|
|
136
|
-
## 6. Add Phases to ROADMAP.md
|
|
137
|
-
|
|
138
|
-
Once confirmed, append the gap closure phases below the existing phases in ROADMAP.md:
|
|
139
|
-
|
|
140
|
-
```markdown
|
|
141
|
-
### v[X.Y] Gap Closure
|
|
142
|
-
|
|
143
|
-
- [ ] **Phase [N]: [Name]** — [goal]
|
|
144
|
-
- [ ] **Phase [N+1]: [Name]** — [goal]
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
If the current ROADMAP.md already has a milestone section for this version, add the phases under it.
|
|
148
|
-
|
|
149
|
-
## 7. Create Phase Directories
|
|
150
|
-
|
|
151
|
-
Create a directory for each gap closure phase:
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
.planning/phases/[NN]-[phase-name-kebab]/
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
No files inside — `/gsdd-plan` populates them.
|
|
158
|
-
|
|
159
|
-
## 8. Rebaseline Planning Fingerprint
|
|
160
|
-
|
|
161
|
-
After confirming the ROADMAP update and phase directories exist, run:
|
|
162
|
-
|
|
163
|
-
- `node .planning/bin/gsdd.mjs session-fingerprint write --allow-changed ROADMAP.md`
|
|
164
|
-
|
|
165
|
-
This records the user-confirmed ROADMAP mutation so the recommended `/gsdd-plan [N]` handoff does not immediately block on expected `planning_state_drift`. The `--allow-changed ROADMAP.md` guard must fail if `SPEC.md` or `config.json` also drifted after preflight; stop and reconcile that unexpected drift instead of rebaselining it. Do not run this if the ROADMAP write failed or the phase directories are missing.
|
|
166
|
-
|
|
167
|
-
</process>
|
|
168
|
-
|
|
169
|
-
<success_criteria>
|
|
170
|
-
- [ ] MILESTONE-AUDIT.md loaded and all gaps parsed
|
|
171
|
-
- [ ] Gaps categorized by type (requirement / integration / flow) and priority (must / optional)
|
|
172
|
-
- [ ] User confirmed which optional gaps to include
|
|
173
|
-
- [ ] Gaps grouped into logical phases with clear goals
|
|
174
|
-
- [ ] Phase numbering continues from highest existing phase
|
|
175
|
-
- [ ] User confirmed gap closure plan before ROADMAP.md was updated
|
|
176
|
-
- [ ] ROADMAP.md updated with new gap closure phases
|
|
177
|
-
- [ ] Phase directories created
|
|
178
|
-
- [ ] `session-fingerprint write` ran after the reviewed ROADMAP update so `/gsdd-plan [N]` is not stranded by expected planning drift
|
|
179
|
-
</success_criteria>
|
|
180
|
-
|
|
181
|
-
**MANDATORY: `.planning/ROADMAP.md` must be updated on disk before this workflow is complete. If the write fails, STOP and report the failure. Without the updated ROADMAP, the phase cycle cannot begin.**
|
|
182
|
-
|
|
183
|
-
<completion>
|
|
184
|
-
Report to the user what was created, then present the next step:
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
**Completed:** Gap closure plan created.
|
|
188
|
-
|
|
189
|
-
Created:
|
|
190
|
-
- [N] gap closure phases in `ROADMAP.md` (Phases [start]–[end])
|
|
191
|
-
- Phase directories in `.planning/phases/`
|
|
192
|
-
|
|
193
|
-
Gaps addressed:
|
|
194
|
-
- [brief summary of what the phases close]
|
|
195
|
-
|
|
196
|
-
**Next step:** `/gsdd-plan [N]` — plan Phase [N]: [phase name]
|
|
197
|
-
|
|
198
|
-
After all gap closure phases complete:
|
|
199
|
-
- `/gsdd-audit-milestone` — re-audit to verify gaps are closed
|
|
200
|
-
- `/gsdd-complete-milestone` — archive when audit passes
|
|
201
|
-
|
|
202
|
-
Consider clearing context before starting the next workflow for best results.
|
|
203
|
-
---
|
|
204
|
-
</completion>
|