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.
- package/README.md +54 -0
- package/bin/install.js +209 -0
- package/package.json +29 -0
- package/skills/gsd/SKILL.md +178 -0
- package/skills/gsd/apply/.gitkeep +0 -0
- package/skills/gsd/apply/SKILL.md +182 -0
- package/skills/gsd/auto/.gitkeep +0 -0
- package/skills/gsd/auto/SKILL.md +129 -0
- package/skills/gsd/auto/auto-loop.sh +350 -0
- package/skills/gsd/checklists/.gitkeep +0 -0
- package/skills/gsd/checklists/planning-ready.md +36 -0
- package/skills/gsd/checklists/unify-complete.md +41 -0
- package/skills/gsd/discuss/.gitkeep +0 -0
- package/skills/gsd/discuss/SKILL.md +145 -0
- package/skills/gsd/plan/.gitkeep +0 -0
- package/skills/gsd/plan/SKILL.md +250 -0
- package/skills/gsd/prompts/.gitkeep +0 -0
- package/skills/gsd/prompts/apply-instructions.txt +98 -0
- package/skills/gsd/prompts/plan-instructions.txt +76 -0
- package/skills/gsd/prompts/reassess-instructions.txt +65 -0
- package/skills/gsd/prompts/unify-instructions.txt +126 -0
- package/skills/gsd/seed/SKILL.md +186 -0
- package/skills/gsd/seed/types/application/.gitkeep +0 -0
- package/skills/gsd/seed/types/application/config.md +30 -0
- package/skills/gsd/seed/types/application/guide.md +81 -0
- package/skills/gsd/seed/types/application/loadout.md +31 -0
- package/skills/gsd/seed/types/campaign/.gitkeep +0 -0
- package/skills/gsd/seed/types/campaign/config.md +27 -0
- package/skills/gsd/seed/types/campaign/guide.md +57 -0
- package/skills/gsd/seed/types/campaign/loadout.md +30 -0
- package/skills/gsd/seed/types/client/.gitkeep +0 -0
- package/skills/gsd/seed/types/client/config.md +27 -0
- package/skills/gsd/seed/types/client/guide.md +57 -0
- package/skills/gsd/seed/types/client/loadout.md +31 -0
- package/skills/gsd/seed/types/utility/.gitkeep +0 -0
- package/skills/gsd/seed/types/utility/config.md +27 -0
- package/skills/gsd/seed/types/utility/guide.md +49 -0
- package/skills/gsd/seed/types/utility/loadout.md +20 -0
- package/skills/gsd/seed/types/workflow/.gitkeep +0 -0
- package/skills/gsd/seed/types/workflow/config.md +28 -0
- package/skills/gsd/seed/types/workflow/guide.md +65 -0
- package/skills/gsd/seed/types/workflow/loadout.md +21 -0
- package/skills/gsd/status/.gitkeep +0 -0
- package/skills/gsd/status/SKILL.md +157 -0
- package/skills/gsd/templates/.gitkeep +0 -0
- package/skills/gsd/templates/PLAN.xml +65 -0
- package/skills/gsd/templates/PLANNING.md +63 -0
- package/skills/gsd/templates/STATE.md +41 -0
- package/skills/gsd/templates/UNIFY.md +43 -0
- package/skills/gsd/unify/.gitkeep +0 -0
- package/skills/gsd/unify/SKILL.md +230 -0
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-cc-discuss
|
|
3
|
+
description: >
|
|
4
|
+
Pre-planning discussion for the current slice. Identifies gray areas,
|
|
5
|
+
captures implementation decisions, and writes CONTEXT.md. Use when
|
|
6
|
+
/gsd-cc routes here, when user says /gsd-cc-discuss, or before planning a
|
|
7
|
+
slice that has ambiguous requirements.
|
|
8
|
+
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# /gsd-cc-discuss — Implementation Decisions
|
|
12
|
+
|
|
13
|
+
You help the user resolve ambiguities BEFORE planning begins. Your job is to identify gray areas in the current slice and turn them into concrete decisions.
|
|
14
|
+
|
|
15
|
+
## Step 1: Load Context
|
|
16
|
+
|
|
17
|
+
1. Read `.gsd/STATE.md` — get `current_slice` and `milestone`
|
|
18
|
+
2. Read `.gsd/M001-ROADMAP.md` (or current milestone's roadmap) — find the description of the current slice
|
|
19
|
+
3. Read `.gsd/PLANNING.md` — for overall project context
|
|
20
|
+
4. Read `.gsd/DECISIONS.md` — for decisions already made
|
|
21
|
+
5. Read `.gsd/type.json` — for project type and rigor
|
|
22
|
+
|
|
23
|
+
## Step 2: Identify Gray Areas
|
|
24
|
+
|
|
25
|
+
Analyze the slice description and identify areas where implementation details are unclear. Look for these categories:
|
|
26
|
+
|
|
27
|
+
### Visual / UI Decisions
|
|
28
|
+
- Layout: grid vs. list, density, spacing
|
|
29
|
+
- Interactions: modals vs. inline, drag-and-drop, animations
|
|
30
|
+
- Responsive behavior: breakpoints, mobile-first or desktop-first
|
|
31
|
+
- Empty states, loading states, error states
|
|
32
|
+
|
|
33
|
+
### API / Data Decisions
|
|
34
|
+
- Response format: shape of JSON, pagination strategy
|
|
35
|
+
- Error handling: error codes, error messages, retry behavior
|
|
36
|
+
- Verbosity: minimal vs. detailed responses
|
|
37
|
+
- Versioning: URL path vs. header
|
|
38
|
+
|
|
39
|
+
### Data Model Decisions
|
|
40
|
+
- Schema details: field types, constraints, defaults
|
|
41
|
+
- Validation rules: required fields, formats, ranges
|
|
42
|
+
- Migration strategy: how to evolve the schema
|
|
43
|
+
- Relationships: cascade behavior, soft deletes
|
|
44
|
+
|
|
45
|
+
### Architecture Decisions
|
|
46
|
+
- Where does this logic live: frontend, backend, shared?
|
|
47
|
+
- Third-party vs. custom: build or integrate?
|
|
48
|
+
- Performance: caching strategy, lazy loading, pagination
|
|
49
|
+
- State management: where does state live, how does it flow?
|
|
50
|
+
|
|
51
|
+
Not every category applies to every slice. Focus on what's relevant.
|
|
52
|
+
|
|
53
|
+
## Step 3: Ask About Each Gray Area
|
|
54
|
+
|
|
55
|
+
For each gray area you identify:
|
|
56
|
+
|
|
57
|
+
1. **State the ambiguity clearly** — "The slice says 'user list' but doesn't specify: paginated table or infinite scroll? How many users are expected?"
|
|
58
|
+
2. **Offer concrete options** — "Option A: paginated table (simpler, better for large lists). Option B: infinite scroll (smoother UX, more complex)."
|
|
59
|
+
3. **Wait for the user's decision**
|
|
60
|
+
4. **Confirm and move on** — "Got it: paginated table, 25 per page."
|
|
61
|
+
|
|
62
|
+
**Rules:**
|
|
63
|
+
- One gray area at a time. Don't dump all questions at once.
|
|
64
|
+
- Always offer options. Don't ask open-ended "what do you want?" questions.
|
|
65
|
+
- If the user says "you decide" or "whatever's simpler" — make the call, state it clearly, and move on.
|
|
66
|
+
- If rigor is `tight`: be brief, 2-3 gray areas max, don't linger.
|
|
67
|
+
- If rigor is `deep`: be thorough, cover all relevant categories.
|
|
68
|
+
- If rigor is `standard` or `creative`: balanced, 3-5 gray areas.
|
|
69
|
+
|
|
70
|
+
## Step 4: Write CONTEXT.md
|
|
71
|
+
|
|
72
|
+
After all gray areas are resolved, write:
|
|
73
|
+
|
|
74
|
+
### `.gsd/{SLICE_ID}-CONTEXT.md`
|
|
75
|
+
|
|
76
|
+
Example filename: `.gsd/S01-CONTEXT.md`
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
# S01 — Context & Decisions
|
|
80
|
+
|
|
81
|
+
## Slice
|
|
82
|
+
{Slice name and description from roadmap}
|
|
83
|
+
|
|
84
|
+
## Decisions
|
|
85
|
+
|
|
86
|
+
### {Gray Area 1 Title}
|
|
87
|
+
**Question:** {What was ambiguous}
|
|
88
|
+
**Decision:** {What was decided}
|
|
89
|
+
**Rationale:** {Why — user's reasoning or default choice}
|
|
90
|
+
|
|
91
|
+
### {Gray Area 2 Title}
|
|
92
|
+
**Question:** {What was ambiguous}
|
|
93
|
+
**Decision:** {What was decided}
|
|
94
|
+
**Rationale:** {Why}
|
|
95
|
+
|
|
96
|
+
...
|
|
97
|
+
|
|
98
|
+
## Constraints
|
|
99
|
+
{Any constraints that emerged — performance targets, compatibility requirements, etc.}
|
|
100
|
+
|
|
101
|
+
## Notes
|
|
102
|
+
{Anything else relevant for planning — edge cases mentioned, preferences stated, etc.}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Step 5: Update DECISIONS.md
|
|
106
|
+
|
|
107
|
+
Append each decision to `.gsd/DECISIONS.md` under a new section for this slice:
|
|
108
|
+
|
|
109
|
+
```markdown
|
|
110
|
+
## S{nn} — {Slice Name}
|
|
111
|
+
|
|
112
|
+
- {Decision 1} (reason: {rationale})
|
|
113
|
+
- {Decision 2} (reason: {rationale})
|
|
114
|
+
...
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Use `Edit` to append — never overwrite existing content in DECISIONS.md.
|
|
118
|
+
|
|
119
|
+
## Step 6: Update STATE.md
|
|
120
|
+
|
|
121
|
+
Update the `phase` field in `.gsd/STATE.md`:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
phase: discuss-complete
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Step 7: Confirm and Hand Off
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Discussion complete for S{nn}. {n} decisions captured.
|
|
131
|
+
|
|
132
|
+
.gsd/S{nn}-CONTEXT.md — {n} decisions documented
|
|
133
|
+
.gsd/DECISIONS.md — updated
|
|
134
|
+
|
|
135
|
+
Next: type /gsd-cc to plan this slice in detail.
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## When to Skip Discuss
|
|
139
|
+
|
|
140
|
+
Discuss is optional. The `/gsd-cc` router may skip it if:
|
|
141
|
+
- The slice description is already very specific
|
|
142
|
+
- The user explicitly says "skip discuss, go straight to planning"
|
|
143
|
+
- The rigor is `tight` and the slice is small
|
|
144
|
+
|
|
145
|
+
If skipped, the plan phase works without CONTEXT.md — it just has less input.
|
|
File without changes
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-cc-plan
|
|
3
|
+
description: >
|
|
4
|
+
Research, decompose, and plan the current slice. Produces task plans
|
|
5
|
+
with BDD acceptance criteria and explicit boundaries. Use when /gsd-cc
|
|
6
|
+
routes here, when user says /gsd-cc-plan, or when a slice needs planning.
|
|
7
|
+
allowed-tools: Read, Write, Edit, Bash, Glob, Grep
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /gsd-cc-plan — Slice Planning
|
|
11
|
+
|
|
12
|
+
You turn a slice description into a set of executable task plans. Each task gets BDD acceptance criteria and explicit boundaries. The result is a set of files that `/gsd-cc-apply` or `auto-loop.sh` can execute without ambiguity.
|
|
13
|
+
|
|
14
|
+
## Step 1: Load Context
|
|
15
|
+
|
|
16
|
+
Read these files (all that exist):
|
|
17
|
+
|
|
18
|
+
1. `.gsd/STATE.md` — get `current_slice`, `milestone`, `rigor`, `project_type`
|
|
19
|
+
2. `.gsd/M001-ROADMAP.md` — find the current slice description
|
|
20
|
+
3. `.gsd/PLANNING.md` — overall project context
|
|
21
|
+
4. `.gsd/DECISIONS.md` — all decisions made so far
|
|
22
|
+
5. `.gsd/S{nn}-CONTEXT.md` — discuss phase output (if it exists)
|
|
23
|
+
6. `.gsd/type.json` — rigor and type config
|
|
24
|
+
|
|
25
|
+
## Step 2: Research
|
|
26
|
+
|
|
27
|
+
Before decomposing, understand the codebase and ecosystem. Spawn a **read-only research subagent** (or do it yourself if subagents aren't available):
|
|
28
|
+
|
|
29
|
+
### What to Research
|
|
30
|
+
|
|
31
|
+
1. **Codebase scan** — What files exist? What's the project structure? What patterns are established?
|
|
32
|
+
2. **Stack analysis** — What dependencies are installed? What frameworks are in use?
|
|
33
|
+
3. **Existing code** — What's already built from previous slices? What interfaces exist that this slice must integrate with?
|
|
34
|
+
4. **Ecosystem check** — Are there libraries that solve parts of this slice? What's the idiomatic approach for this stack?
|
|
35
|
+
|
|
36
|
+
### Research Output
|
|
37
|
+
|
|
38
|
+
Write `.gsd/M{n}-RESEARCH.md` (one per milestone, append if it exists):
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
## Research for S{nn}
|
|
42
|
+
|
|
43
|
+
### Codebase State
|
|
44
|
+
{What exists, file structure, patterns observed}
|
|
45
|
+
|
|
46
|
+
### Relevant Interfaces
|
|
47
|
+
{Functions, types, APIs that this slice must work with}
|
|
48
|
+
|
|
49
|
+
### Dependencies
|
|
50
|
+
{Installed packages, available tools}
|
|
51
|
+
|
|
52
|
+
### Recommendations
|
|
53
|
+
{Libraries to use, patterns to follow, pitfalls to avoid}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Research is read-only.** Do not create or modify any project files during research. Only write to `.gsd/`.
|
|
57
|
+
|
|
58
|
+
## Step 3: Decompose into Tasks
|
|
59
|
+
|
|
60
|
+
Break the slice into tasks. Follow these iron rules:
|
|
61
|
+
|
|
62
|
+
### Iron Rules
|
|
63
|
+
|
|
64
|
+
1. **A task that doesn't fit in one context window is two tasks.** If you need more than ~15 files of context + output, split it.
|
|
65
|
+
2. **1-7 tasks per slice.** If you have more than 7, the slice is too big — tell the user and suggest splitting the slice.
|
|
66
|
+
3. **Tasks are ordered by dependency.** T01 creates foundations, T02 builds on them, etc.
|
|
67
|
+
4. **Each task is independently verifiable.** After completing T01, you can prove it works before starting T02.
|
|
68
|
+
|
|
69
|
+
### For Each Task, Define:
|
|
70
|
+
|
|
71
|
+
#### `<name>`
|
|
72
|
+
Short, descriptive name. "Core types and interfaces", not "Do stuff".
|
|
73
|
+
|
|
74
|
+
#### `<files>`
|
|
75
|
+
List every file this task will create or modify. Be specific — full paths.
|
|
76
|
+
|
|
77
|
+
#### `<acceptance_criteria>`
|
|
78
|
+
**MANDATORY.** At least one AC per task. Every AC uses BDD format:
|
|
79
|
+
|
|
80
|
+
```xml
|
|
81
|
+
<ac id="AC-1">
|
|
82
|
+
Given {precondition — what state exists before}
|
|
83
|
+
When {action — what the code does}
|
|
84
|
+
Then {outcome — what must be true after}
|
|
85
|
+
</ac>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Good ACs are:
|
|
89
|
+
- **Testable** — you can write a test or run a command to verify
|
|
90
|
+
- **Specific** — "returns a 400 status with error message" not "handles errors"
|
|
91
|
+
- **Independent** — each AC tests one behavior
|
|
92
|
+
|
|
93
|
+
#### `<action>`
|
|
94
|
+
Step-by-step instructions. Numbered list. Concrete enough that Claude Code can execute them without guessing. Reference the ACs: "Write tests covering AC-1 and AC-2."
|
|
95
|
+
|
|
96
|
+
#### `<boundaries>`
|
|
97
|
+
**MANDATORY.** List files that this task MUST NOT change:
|
|
98
|
+
|
|
99
|
+
```xml
|
|
100
|
+
<boundaries>
|
|
101
|
+
DO NOT CHANGE:
|
|
102
|
+
- src/types.ts (read-only, owned by T01)
|
|
103
|
+
- package.json (no new deps without approval)
|
|
104
|
+
- .gsd/ (do not modify state files during execution)
|
|
105
|
+
</boundaries>
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
If there are no restrictions, explicitly state: "No boundary restrictions for this task."
|
|
109
|
+
|
|
110
|
+
Every file created by a previous task that this task should not modify MUST be listed here.
|
|
111
|
+
|
|
112
|
+
#### `<verify>`
|
|
113
|
+
The command or check that proves the ACs pass. Must reference AC IDs:
|
|
114
|
+
|
|
115
|
+
```xml
|
|
116
|
+
<verify>npm test -- --grep "parser" (AC-1, AC-2)</verify>
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
#### `<done>`
|
|
120
|
+
One sentence: what must be true when this task is complete.
|
|
121
|
+
|
|
122
|
+
## Step 4: Write Plan Files
|
|
123
|
+
|
|
124
|
+
### Slice Plan: `.gsd/S{nn}-PLAN.md`
|
|
125
|
+
|
|
126
|
+
Overview of the entire slice:
|
|
127
|
+
|
|
128
|
+
```markdown
|
|
129
|
+
# S{nn} — {Slice Name}
|
|
130
|
+
|
|
131
|
+
## Overview
|
|
132
|
+
{What this slice delivers, 2-3 sentences}
|
|
133
|
+
|
|
134
|
+
## Tasks
|
|
135
|
+
|
|
136
|
+
| Task | Name | Files | ACs |
|
|
137
|
+
|------|------|-------|-----|
|
|
138
|
+
| T01 | {name} | {count} files | {count} ACs |
|
|
139
|
+
| T02 | {name} | {count} files | {count} ACs |
|
|
140
|
+
...
|
|
141
|
+
|
|
142
|
+
## All Acceptance Criteria
|
|
143
|
+
|
|
144
|
+
| AC | Task | Criterion |
|
|
145
|
+
|----|------|-----------|
|
|
146
|
+
| AC-1 | T01 | {Given/When/Then summary} |
|
|
147
|
+
| AC-2 | T01 | {Given/When/Then summary} |
|
|
148
|
+
| AC-3 | T02 | {Given/When/Then summary} |
|
|
149
|
+
...
|
|
150
|
+
|
|
151
|
+
## Boundaries
|
|
152
|
+
|
|
153
|
+
{Consolidated list of all boundary restrictions across tasks}
|
|
154
|
+
|
|
155
|
+
## Dependencies
|
|
156
|
+
|
|
157
|
+
T01 → T02 → T03 (or describe the actual graph)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Per-Task Plans: `.gsd/S{nn}-T{nn}-PLAN.md`
|
|
161
|
+
|
|
162
|
+
One file per task, using the PLAN.xml template format:
|
|
163
|
+
|
|
164
|
+
```xml
|
|
165
|
+
<task id="S{nn}-T{nn}" type="auto">
|
|
166
|
+
<name>{task name}</name>
|
|
167
|
+
|
|
168
|
+
<files>
|
|
169
|
+
{file list}
|
|
170
|
+
</files>
|
|
171
|
+
|
|
172
|
+
<acceptance_criteria>
|
|
173
|
+
<ac id="AC-{n}">
|
|
174
|
+
Given {precondition}
|
|
175
|
+
When {action}
|
|
176
|
+
Then {outcome}
|
|
177
|
+
</ac>
|
|
178
|
+
</acceptance_criteria>
|
|
179
|
+
|
|
180
|
+
<action>
|
|
181
|
+
1. {step}
|
|
182
|
+
2. {step}
|
|
183
|
+
...
|
|
184
|
+
</action>
|
|
185
|
+
|
|
186
|
+
<boundaries>
|
|
187
|
+
DO NOT CHANGE:
|
|
188
|
+
- {file} ({reason})
|
|
189
|
+
</boundaries>
|
|
190
|
+
|
|
191
|
+
<verify>{command} (AC-{n}, AC-{m})</verify>
|
|
192
|
+
<done>{completion criteria}</done>
|
|
193
|
+
</task>
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Step 5: Quality Gate
|
|
197
|
+
|
|
198
|
+
Before finishing, check against `checklists/planning-ready.md`:
|
|
199
|
+
|
|
200
|
+
Read: `~/.claude/skills/gsd/checklists/planning-ready.md`
|
|
201
|
+
(or `./.claude/skills/gsd/checklists/planning-ready.md`)
|
|
202
|
+
|
|
203
|
+
Verify ALL of these:
|
|
204
|
+
|
|
205
|
+
- [ ] Every task has at least 1 acceptance criterion
|
|
206
|
+
- [ ] Every AC has Given/When/Then format
|
|
207
|
+
- [ ] Every task has a boundaries section
|
|
208
|
+
- [ ] No "TBD", "TODO", or "later" in action or files fields
|
|
209
|
+
- [ ] Task count per slice: 1-7
|
|
210
|
+
- [ ] Every task has a `<verify>` that references at least one AC
|
|
211
|
+
- [ ] No circular dependencies between tasks
|
|
212
|
+
- [ ] Each task fits in one context window (~15 files of context + output)
|
|
213
|
+
|
|
214
|
+
If any check fails, fix it before proceeding. Do not skip the quality gate.
|
|
215
|
+
|
|
216
|
+
## Step 6: Create Git Branch
|
|
217
|
+
|
|
218
|
+
Create a branch for this slice:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
git checkout -b gsd/M{n}/S{nn}
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
If the branch already exists (resuming), check it out.
|
|
225
|
+
|
|
226
|
+
## Step 7: Update STATE.md
|
|
227
|
+
|
|
228
|
+
```
|
|
229
|
+
current_slice: S{nn}
|
|
230
|
+
current_task: T01
|
|
231
|
+
phase: plan-complete
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## Step 8: Confirm
|
|
235
|
+
|
|
236
|
+
```
|
|
237
|
+
Planning complete for S{nn}: {slice name}
|
|
238
|
+
|
|
239
|
+
{n} tasks, {m} acceptance criteria
|
|
240
|
+
Boundaries defined for all tasks
|
|
241
|
+
Quality gate passed
|
|
242
|
+
|
|
243
|
+
.gsd/S{nn}-PLAN.md — slice overview
|
|
244
|
+
.gsd/S{nn}-T01-PLAN.md — {task 1 name}
|
|
245
|
+
.gsd/S{nn}-T02-PLAN.md — {task 2 name}
|
|
246
|
+
...
|
|
247
|
+
Branch: gsd/M{n}/S{nn}
|
|
248
|
+
|
|
249
|
+
Next: type /gsd-cc to execute. (manual or auto)
|
|
250
|
+
```
|
|
File without changes
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
You are GSD-CC in auto-mode. Your job: execute one task.
|
|
2
|
+
|
|
3
|
+
The context files are inlined above in XML tags:
|
|
4
|
+
- <state> — current STATE.md
|
|
5
|
+
- <task-plan> — the task plan for this specific task
|
|
6
|
+
- <slice-plan> — the slice overview
|
|
7
|
+
- <decisions> — DECISIONS.md
|
|
8
|
+
- <prior-summary> — summaries of previously completed tasks (zero or more)
|
|
9
|
+
|
|
10
|
+
## Your Task
|
|
11
|
+
|
|
12
|
+
1. Read the task plan from <task-plan>.
|
|
13
|
+
2. Note the boundaries — files listed as DO NOT CHANGE.
|
|
14
|
+
3. Execute the action steps exactly as specified.
|
|
15
|
+
4. Verify all acceptance criteria.
|
|
16
|
+
5. Write a summary.
|
|
17
|
+
6. Commit changes.
|
|
18
|
+
|
|
19
|
+
## Boundary Enforcement
|
|
20
|
+
|
|
21
|
+
Before writing ANY code, read the <boundaries> section.
|
|
22
|
+
|
|
23
|
+
For each file listed as DO NOT CHANGE:
|
|
24
|
+
- Do NOT Edit it.
|
|
25
|
+
- Do NOT Write to it.
|
|
26
|
+
- You MAY Read it for reference.
|
|
27
|
+
- If you must modify a boundary file to complete the task, STOP. Write in the summary that a boundary violation was necessary and why.
|
|
28
|
+
|
|
29
|
+
## Execution
|
|
30
|
+
|
|
31
|
+
Follow the <action> steps in order. For each step:
|
|
32
|
+
- Do exactly what it says.
|
|
33
|
+
- Create or modify only the files listed in <files>.
|
|
34
|
+
- Write tests if the action says to write tests.
|
|
35
|
+
|
|
36
|
+
## Verification
|
|
37
|
+
|
|
38
|
+
Run the <verify> command. For each AC:
|
|
39
|
+
- Determine: Pass / Partial / Fail
|
|
40
|
+
- Record the evidence (test output, error message, etc.)
|
|
41
|
+
|
|
42
|
+
If an AC fails:
|
|
43
|
+
- Try to fix the issue (within this task's scope).
|
|
44
|
+
- Re-run verification.
|
|
45
|
+
- If it still fails, mark as Partial or Fail with explanation.
|
|
46
|
+
|
|
47
|
+
## Files to Write
|
|
48
|
+
|
|
49
|
+
1. `.gsd/S{nn}-T{nn}-SUMMARY.md` with this format:
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
# S{nn}/T{nn} — {task name}
|
|
53
|
+
|
|
54
|
+
## Status
|
|
55
|
+
{complete|partial|blocked}
|
|
56
|
+
|
|
57
|
+
## What Was Done
|
|
58
|
+
- {bullet points}
|
|
59
|
+
|
|
60
|
+
## Files Changed
|
|
61
|
+
- {file}: {one-line description}
|
|
62
|
+
|
|
63
|
+
## Acceptance Criteria Results
|
|
64
|
+
|
|
65
|
+
| AC | Status | Evidence |
|
|
66
|
+
|----|--------|----------|
|
|
67
|
+
| AC-1 | Pass ✓ | {evidence} |
|
|
68
|
+
|
|
69
|
+
## Decisions Made
|
|
70
|
+
{Any decisions not in the original plan, or "None — implemented as planned."}
|
|
71
|
+
|
|
72
|
+
## Issues
|
|
73
|
+
{Any problems, or "None."}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Git
|
|
77
|
+
|
|
78
|
+
Stage and commit only the files this task changed:
|
|
79
|
+
```bash
|
|
80
|
+
git add {specific files}
|
|
81
|
+
git commit -m "feat(S{nn}/T{nn}): {task name}"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Do NOT use `git add -A`.
|
|
85
|
+
|
|
86
|
+
## State Update
|
|
87
|
+
|
|
88
|
+
Update `.gsd/STATE.md`:
|
|
89
|
+
- If more tasks remain: `current_task: T{nn+1}`, `phase: applying`
|
|
90
|
+
- If this was the last task: `phase: apply-complete`, `unify_required: true`
|
|
91
|
+
- Update `last_updated: {now ISO}`
|
|
92
|
+
|
|
93
|
+
## Do NOT
|
|
94
|
+
|
|
95
|
+
- Do NOT modify files listed in boundaries.
|
|
96
|
+
- Do NOT ask for user input — you are running in non-interactive mode.
|
|
97
|
+
- Do NOT deviate from the plan. If the plan is wrong, note it in the summary but follow it.
|
|
98
|
+
- Do NOT modify .gsd/ state files except STATE.md and writing your SUMMARY.md.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
You are GSD-CC in auto-mode. Your job: plan the next slice.
|
|
2
|
+
|
|
3
|
+
The context files are inlined above in XML tags:
|
|
4
|
+
- <state> — current STATE.md
|
|
5
|
+
- <project> — PROJECT.md
|
|
6
|
+
- <roadmap> — ROADMAP.md
|
|
7
|
+
- <decisions> — DECISIONS.md
|
|
8
|
+
|
|
9
|
+
## Your Task
|
|
10
|
+
|
|
11
|
+
1. Read the current slice from <state> (current_slice field).
|
|
12
|
+
2. Find the slice description in <roadmap>.
|
|
13
|
+
3. Research the codebase: scan existing files, understand the project structure, check what's already built.
|
|
14
|
+
4. Decompose the slice into 1-7 tasks, each fitting one context window.
|
|
15
|
+
|
|
16
|
+
## For Each Task, Write:
|
|
17
|
+
|
|
18
|
+
Use this XML format in each task plan file:
|
|
19
|
+
|
|
20
|
+
```xml
|
|
21
|
+
<task id="S{nn}-T{nn}" type="auto">
|
|
22
|
+
<name>{descriptive name}</name>
|
|
23
|
+
<files>{list of files to create/modify}</files>
|
|
24
|
+
<acceptance_criteria>
|
|
25
|
+
<ac id="AC-{n}">
|
|
26
|
+
Given {precondition}
|
|
27
|
+
When {action}
|
|
28
|
+
Then {expected outcome}
|
|
29
|
+
</ac>
|
|
30
|
+
</acceptance_criteria>
|
|
31
|
+
<action>
|
|
32
|
+
1. {concrete step}
|
|
33
|
+
2. {concrete step}
|
|
34
|
+
</action>
|
|
35
|
+
<boundaries>
|
|
36
|
+
DO NOT CHANGE:
|
|
37
|
+
- {file} ({reason})
|
|
38
|
+
</boundaries>
|
|
39
|
+
<verify>{command} (AC-{n})</verify>
|
|
40
|
+
<done>{completion criteria}</done>
|
|
41
|
+
</task>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Rules
|
|
45
|
+
|
|
46
|
+
- Every task MUST have at least 1 AC in Given/When/Then format.
|
|
47
|
+
- Every task MUST have a boundaries section.
|
|
48
|
+
- No "TBD", "TODO", or "later" in action or files.
|
|
49
|
+
- Files from earlier tasks listed as DO NOT CHANGE in later tasks.
|
|
50
|
+
- Tasks ordered by dependency.
|
|
51
|
+
|
|
52
|
+
## Files to Write
|
|
53
|
+
|
|
54
|
+
1. `.gsd/S{nn}-PLAN.md` — slice overview with task table, AC table, boundaries summary, dependency order.
|
|
55
|
+
2. `.gsd/S{nn}-T01-PLAN.md` through `.gsd/S{nn}-T{last}-PLAN.md` — one file per task.
|
|
56
|
+
3. `.gsd/M{n}-RESEARCH.md` — append research findings.
|
|
57
|
+
|
|
58
|
+
## Git
|
|
59
|
+
|
|
60
|
+
Create the slice branch:
|
|
61
|
+
```bash
|
|
62
|
+
git checkout -b gsd/M{n}/S{nn}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## State Update
|
|
66
|
+
|
|
67
|
+
Update `.gsd/STATE.md`:
|
|
68
|
+
- current_task: T01
|
|
69
|
+
- phase: plan-complete
|
|
70
|
+
- last_updated: {now ISO}
|
|
71
|
+
|
|
72
|
+
## Do NOT
|
|
73
|
+
|
|
74
|
+
- Do NOT modify any project source files (only .gsd/ files).
|
|
75
|
+
- Do NOT ask for user input — you are running in non-interactive mode.
|
|
76
|
+
- Do NOT create placeholder content — every AC must be concrete.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
You are GSD-CC in auto-mode. Your job: assess whether the roadmap is still valid after completing a slice.
|
|
2
|
+
|
|
3
|
+
The context files are inlined above in XML tags:
|
|
4
|
+
- <state> — current STATE.md
|
|
5
|
+
- <project> — PROJECT.md
|
|
6
|
+
- <roadmap> — current ROADMAP.md
|
|
7
|
+
- <decisions> — DECISIONS.md
|
|
8
|
+
- <unify-history> — all UNIFY.md files from completed slices
|
|
9
|
+
|
|
10
|
+
## Your Task
|
|
11
|
+
|
|
12
|
+
1. Read all completed UNIFY documents from <unify-history>.
|
|
13
|
+
2. Read the current roadmap from <roadmap>.
|
|
14
|
+
3. Assess whether remaining slices are still appropriate.
|
|
15
|
+
4. If changes are needed, update the roadmap.
|
|
16
|
+
|
|
17
|
+
## What to Look For
|
|
18
|
+
|
|
19
|
+
- **Scope changes:** Did completed slices reveal new requirements not covered by remaining slices?
|
|
20
|
+
- **Deferred issues:** Do accumulated deferred items need their own slice?
|
|
21
|
+
- **Difficulty shifts:** Was something much harder or easier than expected, affecting later slice estimates?
|
|
22
|
+
- **Dependency changes:** Did a completed slice create or remove dependencies for later slices?
|
|
23
|
+
- **Redundancy:** Are any remaining slices now unnecessary because earlier slices covered their scope?
|
|
24
|
+
|
|
25
|
+
## Decision
|
|
26
|
+
|
|
27
|
+
### If roadmap is still valid:
|
|
28
|
+
|
|
29
|
+
Write a brief note to `.gsd/M{n}-REASSESS-S{nn}.md`:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
# Reassessment after S{nn}
|
|
33
|
+
|
|
34
|
+
No changes needed. Remaining slices are still appropriate.
|
|
35
|
+
|
|
36
|
+
Reviewed: {list of remaining slices with one-line confirmation each}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### If roadmap needs update:
|
|
40
|
+
|
|
41
|
+
1. Write `.gsd/M{n}-REASSESS-S{nn}.md` with the detailed reasoning.
|
|
42
|
+
2. Update `.gsd/M{n}-ROADMAP.md` with the changes:
|
|
43
|
+
- Add new slices if needed
|
|
44
|
+
- Remove or merge redundant slices
|
|
45
|
+
- Reorder if dependencies changed
|
|
46
|
+
- Update slice descriptions if scope shifted
|
|
47
|
+
3. Append the changes to `.gsd/DECISIONS.md`:
|
|
48
|
+
```
|
|
49
|
+
## Roadmap Reassessment after S{nn}
|
|
50
|
+
- {change}: {reason}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## State Update
|
|
54
|
+
|
|
55
|
+
Update `.gsd/STATE.md`:
|
|
56
|
+
- Set current_slice to the next pending slice
|
|
57
|
+
- phase: unified (keep — the router will advance to the next action)
|
|
58
|
+
- last_updated: {now ISO}
|
|
59
|
+
|
|
60
|
+
## Do NOT
|
|
61
|
+
|
|
62
|
+
- Do NOT modify any project source files.
|
|
63
|
+
- Do NOT ask for user input.
|
|
64
|
+
- Do NOT remove completed slices from the roadmap (they are historical record).
|
|
65
|
+
- Do NOT change the scope of the project (PLANNING.md) — only adjust the roadmap.
|