gsd-cc 0.1.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 (51) hide show
  1. package/README.md +54 -0
  2. package/bin/install.js +209 -0
  3. package/package.json +29 -0
  4. package/skills/gsd/SKILL.md +178 -0
  5. package/skills/gsd/apply/.gitkeep +0 -0
  6. package/skills/gsd/apply/SKILL.md +182 -0
  7. package/skills/gsd/auto/.gitkeep +0 -0
  8. package/skills/gsd/auto/SKILL.md +129 -0
  9. package/skills/gsd/auto/auto-loop.sh +350 -0
  10. package/skills/gsd/checklists/.gitkeep +0 -0
  11. package/skills/gsd/checklists/planning-ready.md +36 -0
  12. package/skills/gsd/checklists/unify-complete.md +41 -0
  13. package/skills/gsd/discuss/.gitkeep +0 -0
  14. package/skills/gsd/discuss/SKILL.md +145 -0
  15. package/skills/gsd/plan/.gitkeep +0 -0
  16. package/skills/gsd/plan/SKILL.md +250 -0
  17. package/skills/gsd/prompts/.gitkeep +0 -0
  18. package/skills/gsd/prompts/apply-instructions.txt +98 -0
  19. package/skills/gsd/prompts/plan-instructions.txt +76 -0
  20. package/skills/gsd/prompts/reassess-instructions.txt +65 -0
  21. package/skills/gsd/prompts/unify-instructions.txt +126 -0
  22. package/skills/gsd/seed/SKILL.md +186 -0
  23. package/skills/gsd/seed/types/application/.gitkeep +0 -0
  24. package/skills/gsd/seed/types/application/config.md +30 -0
  25. package/skills/gsd/seed/types/application/guide.md +81 -0
  26. package/skills/gsd/seed/types/application/loadout.md +31 -0
  27. package/skills/gsd/seed/types/campaign/.gitkeep +0 -0
  28. package/skills/gsd/seed/types/campaign/config.md +27 -0
  29. package/skills/gsd/seed/types/campaign/guide.md +57 -0
  30. package/skills/gsd/seed/types/campaign/loadout.md +30 -0
  31. package/skills/gsd/seed/types/client/.gitkeep +0 -0
  32. package/skills/gsd/seed/types/client/config.md +27 -0
  33. package/skills/gsd/seed/types/client/guide.md +57 -0
  34. package/skills/gsd/seed/types/client/loadout.md +31 -0
  35. package/skills/gsd/seed/types/utility/.gitkeep +0 -0
  36. package/skills/gsd/seed/types/utility/config.md +27 -0
  37. package/skills/gsd/seed/types/utility/guide.md +49 -0
  38. package/skills/gsd/seed/types/utility/loadout.md +20 -0
  39. package/skills/gsd/seed/types/workflow/.gitkeep +0 -0
  40. package/skills/gsd/seed/types/workflow/config.md +28 -0
  41. package/skills/gsd/seed/types/workflow/guide.md +65 -0
  42. package/skills/gsd/seed/types/workflow/loadout.md +21 -0
  43. package/skills/gsd/status/.gitkeep +0 -0
  44. package/skills/gsd/status/SKILL.md +157 -0
  45. package/skills/gsd/templates/.gitkeep +0 -0
  46. package/skills/gsd/templates/PLAN.xml +65 -0
  47. package/skills/gsd/templates/PLANNING.md +63 -0
  48. package/skills/gsd/templates/STATE.md +41 -0
  49. package/skills/gsd/templates/UNIFY.md +43 -0
  50. package/skills/gsd/unify/.gitkeep +0 -0
  51. package/skills/gsd/unify/SKILL.md +230 -0
@@ -0,0 +1,230 @@
1
+ ---
2
+ name: gsd-cc-unify
3
+ description: >
4
+ Mandatory reconciliation after all tasks in a slice are done. Compares
5
+ plan vs. actual, documents decisions and deviations, checks boundary
6
+ violations, squash-merges the slice branch. Use when /gsd-cc routes here
7
+ (mandatory), when user says /gsd-cc-unify, or when phase is apply-complete.
8
+ CANNOT be skipped.
9
+ allowed-tools: Read, Write, Edit, Bash, Glob, Grep
10
+ ---
11
+
12
+ # /gsd-cc-unify — Mandatory Reconciliation
13
+
14
+ UNIFY is not optional. It runs after every slice. The `/gsd-cc` router blocks all other actions until UNIFY is complete. This is the single most important quality mechanism in GSD-CC.
15
+
16
+ ## Why UNIFY Exists
17
+
18
+ - Without UNIFY, the next slice builds on assumptions instead of facts.
19
+ - Without UNIFY, decisions made during execution are lost.
20
+ - Without UNIFY, deferred issues accumulate invisibly.
21
+ - Without UNIFY, boundary violations go unnoticed.
22
+
23
+ ## Enforcement
24
+
25
+ If `STATE.md` has `phase: apply-complete` and no `S{nn}-UNIFY.md` exists:
26
+
27
+ **UNIFY MUST run NOW.** Do not offer alternatives. Do not let the user skip to another slice. Do not accept "I'll do it later." Execute UNIFY immediately.
28
+
29
+ ## Step 1: Load Context
30
+
31
+ Read ALL of these:
32
+
33
+ | File | Purpose |
34
+ |------|---------|
35
+ | `.gsd/S{nn}-PLAN.md` | What was planned |
36
+ | `.gsd/S{nn}-T{nn}-PLAN.md` | Per-task plans (all tasks in slice) |
37
+ | `.gsd/S{nn}-T{nn}-SUMMARY.md` | What actually happened (all tasks in slice) |
38
+ | `.gsd/DECISIONS.md` | Existing decisions |
39
+
40
+ Use `Glob` to find all matching files for the current slice.
41
+
42
+ ## Step 2: Compare Plan vs. Actual
43
+
44
+ For each task in the slice plan, compare:
45
+
46
+ 1. **Was the task completed?** (SUMMARY.md exists)
47
+ 2. **What was planned vs. what was done?** (plan description vs. summary description)
48
+ 3. **Was it as-planned, expanded, partial, or skipped?**
49
+
50
+ Build the Plan vs. Actual table:
51
+
52
+ ```markdown
53
+ ## Plan vs. Actual
54
+
55
+ | Task | Planned | Actual | Status |
56
+ |------|---------|--------|--------|
57
+ | T01 | {from plan} | {from summary} | ✅ as planned |
58
+ | T02 | {from plan} | {from summary} | ✅ expanded |
59
+ | T03 | {from plan} | {from summary} | ⚠️ partial |
60
+ ```
61
+
62
+ Status meanings:
63
+ - **✅ as planned** — done exactly as specified
64
+ - **✅ expanded** — done with additional work (not a problem, just document it)
65
+ - **⚠️ partial** — some parts not completed (document what's missing)
66
+ - **❌ skipped** — not done at all (document why)
67
+
68
+ ## Step 3: Evaluate Acceptance Criteria
69
+
70
+ For each AC across all tasks:
71
+
72
+ 1. Read the AC from the task plan
73
+ 2. Read the verification result from the task summary
74
+ 3. Determine status: Pass / Partial / Fail
75
+
76
+ ```markdown
77
+ ## Acceptance Criteria
78
+
79
+ | AC | Task | Status | Evidence |
80
+ |------|------|--------|----------|
81
+ | AC-1 | T01 | ✅ Pass | {from summary} |
82
+ | AC-2 | T01 | ✅ Pass | {from summary} |
83
+ | AC-3 | T02 | ⚠️ Partial | {what's missing} |
84
+ ```
85
+
86
+ ## Step 4: Document Decisions
87
+
88
+ Collect all decisions from task summaries that were NOT in the original plan:
89
+
90
+ ```markdown
91
+ ## Decisions Made
92
+
93
+ - {Decision 1} (reason: {rationale from summary})
94
+ - {Decision 2} (reason: {rationale})
95
+ ```
96
+
97
+ If no ad-hoc decisions were made: "No additional decisions made during execution."
98
+
99
+ **Also append these decisions to `.gsd/DECISIONS.md`** under the slice heading.
100
+
101
+ ## Step 5: Check Boundary Violations
102
+
103
+ For each task, compare:
104
+ - The `<boundaries>` from its plan (files marked DO NOT CHANGE)
105
+ - The `Files Changed` from its summary
106
+
107
+ If a task modified a file that was in its boundaries:
108
+
109
+ ```markdown
110
+ ## Boundary Violations
111
+
112
+ - T02 modified `src/types.ts` which was listed as DO NOT CHANGE (owned by T01).
113
+ Reason: {if a reason was given in the summary, include it}
114
+ ```
115
+
116
+ If no violations: "None."
117
+
118
+ **This is a critical check.** Boundary violations indicate either a bad plan or undisciplined execution. Both need to be visible.
119
+
120
+ ## Step 6: Collect Deferred Issues
121
+
122
+ From all task summaries, collect issues that were pushed to later:
123
+
124
+ ```markdown
125
+ ## Deferred
126
+
127
+ - [ ] {Issue 1} → {target slice or "later"}
128
+ - [ ] {Issue 2} → {target slice or "later"}
129
+ ```
130
+
131
+ If nothing was deferred: leave the section empty with a note "Nothing deferred."
132
+
133
+ ## Step 7: Roadmap Reassessment
134
+
135
+ Based on everything learned in this slice, assess the remaining roadmap:
136
+
137
+ 1. Read `.gsd/M001-ROADMAP.md`
138
+ 2. Consider: Did this slice reveal anything that changes the plan?
139
+ - New requirements discovered?
140
+ - Approach that turned out harder/easier than expected?
141
+ - Dependencies that shifted?
142
+ - Deferred issues that need their own slice?
143
+
144
+ ```markdown
145
+ ## Reassessment
146
+
147
+ Roadmap still valid.
148
+ ```
149
+
150
+ OR:
151
+
152
+ ```markdown
153
+ ## Reassessment
154
+
155
+ Roadmap needs update:
156
+ - {What changed and why}
157
+ - {Suggested adjustment}
158
+ ```
159
+
160
+ If the roadmap needs an update, describe what should change but do NOT modify the roadmap file. That happens in the next planning phase.
161
+
162
+ ## Step 8: Quality Gate
163
+
164
+ Check against `checklists/unify-complete.md`:
165
+
166
+ Read: `~/.claude/skills/gsd/checklists/unify-complete.md`
167
+ (or `./.claude/skills/gsd/checklists/unify-complete.md`)
168
+
169
+ Verify ALL items pass. If any fails, fix the UNIFY document before proceeding.
170
+
171
+ ## Step 9: Write UNIFY.md
172
+
173
+ Write `.gsd/S{nn}-UNIFY.md` using the template from `templates/UNIFY.md`. Include all sections from Steps 2-7.
174
+
175
+ Set frontmatter:
176
+ ```yaml
177
+ ---
178
+ slice: S{nn}
179
+ date: {now ISO}
180
+ status: {complete|partial|failed}
181
+ ---
182
+ ```
183
+
184
+ Status:
185
+ - `complete` — all ACs pass, no critical issues
186
+ - `partial` — some ACs partial/failed, but slice is usable
187
+ - `failed` — critical issues, slice may need rework
188
+
189
+ ## Step 10: Git Squash-Merge
190
+
191
+ Merge the slice branch back to main with a squash:
192
+
193
+ ```bash
194
+ git checkout main
195
+ git merge --squash gsd/M{n}/S{nn}
196
+ git commit -m "feat(M{n}/S{nn}): {slice name}"
197
+ ```
198
+
199
+ This produces one clean commit on main per slice. The per-task history is preserved on the slice branch.
200
+
201
+ **Do NOT delete the slice branch.** It contains per-task commit history.
202
+
203
+ If there are merge conflicts, tell the user and help resolve them.
204
+
205
+ ## Step 11: Update STATE.md
206
+
207
+ ```
208
+ phase: unified
209
+ unify_required: false
210
+ ```
211
+
212
+ Update the Progress table: set the current slice to `done` with AC counts.
213
+
214
+ ## Step 12: Confirm
215
+
216
+ ```
217
+ UNIFY complete for S{nn}.
218
+
219
+ Plan vs. Actual: {n} tasks — {summary}
220
+ Acceptance Criteria: {passed}/{total} passed
221
+ Boundary Violations: {none|count}
222
+ Decisions: {count} logged
223
+ Deferred: {count} items
224
+ Reassessment: {verdict}
225
+
226
+ Merged: gsd/M{n}/S{nn} → main
227
+ Commit: feat(M{n}/S{nn}): {slice name}
228
+
229
+ Next: type /gsd-cc to continue with the next slice.
230
+ ```