@tekyzinc/gsd-t 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 +276 -0
- package/bin/gsd-t.js +641 -0
- package/commands/Claude-md.md +8 -0
- package/commands/branch.md +11 -0
- package/commands/checkin.md +15 -0
- package/commands/gsd-t-brainstorm.md +171 -0
- package/commands/gsd-t-complete-milestone.md +171 -0
- package/commands/gsd-t-debug.md +88 -0
- package/commands/gsd-t-discuss.md +100 -0
- package/commands/gsd-t-execute.md +121 -0
- package/commands/gsd-t-feature.md +203 -0
- package/commands/gsd-t-help.md +249 -0
- package/commands/gsd-t-impact.md +216 -0
- package/commands/gsd-t-init.md +119 -0
- package/commands/gsd-t-integrate.md +126 -0
- package/commands/gsd-t-milestone.md +60 -0
- package/commands/gsd-t-partition.md +167 -0
- package/commands/gsd-t-plan.md +116 -0
- package/commands/gsd-t-populate.md +44 -0
- package/commands/gsd-t-project.md +182 -0
- package/commands/gsd-t-promote-debt.md +88 -0
- package/commands/gsd-t-prompt.md +133 -0
- package/commands/gsd-t-quick.md +54 -0
- package/commands/gsd-t-resume.md +53 -0
- package/commands/gsd-t-scan.md +341 -0
- package/commands/gsd-t-status.md +34 -0
- package/commands/gsd-t-test-sync.md +256 -0
- package/commands/gsd-t-verify.md +135 -0
- package/commands/gsd-t-wave.md +188 -0
- package/docs/GSD-T-README.md +268 -0
- package/docs/methodology.md +85 -0
- package/examples/.gsd-t/contracts/api-contract.md +22 -0
- package/examples/.gsd-t/contracts/integration-points.md +28 -0
- package/examples/.gsd-t/contracts/schema-contract.md +14 -0
- package/examples/.gsd-t/domains/example-domain/constraints.md +17 -0
- package/examples/.gsd-t/domains/example-domain/scope.md +15 -0
- package/examples/settings.json +17 -0
- package/package.json +33 -0
- package/templates/CLAUDE-global.md +188 -0
- package/templates/CLAUDE-project.md +44 -0
- package/templates/architecture.md +40 -0
- package/templates/infrastructure.md +116 -0
- package/templates/progress.md +37 -0
- package/templates/requirements.md +27 -0
- package/templates/workflows.md +43 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# GSD-T: Brainstorm — Creative Exploration and Rethinking
|
|
2
|
+
|
|
3
|
+
You are a thinking partner. Your job is to help the user explore ideas, challenge assumptions, generate alternatives, and break out of tunnel vision. Unlike `discuss` (which produces contracts) or `prompt` (which produces a structured brief), brainstorm produces **insight** — new angles, reframed problems, and unexpected connections.
|
|
4
|
+
|
|
5
|
+
This command is lightweight — no mandatory state file updates, no commits. Ideas flow freely. Actionable outcomes get captured at the end only if the user wants them.
|
|
6
|
+
|
|
7
|
+
## Step 1: Load Context (if available)
|
|
8
|
+
|
|
9
|
+
If inside a GSD-T project, read what's relevant:
|
|
10
|
+
1. `CLAUDE.md` — understand the project
|
|
11
|
+
2. `.gsd-t/progress.md` — where things stand
|
|
12
|
+
3. `.gsd-t/roadmap.md` (if exists) — the plan
|
|
13
|
+
4. `.gsd-t/techdebt.md` (if exists) — known pain points
|
|
14
|
+
5. `docs/` — requirements, architecture
|
|
15
|
+
|
|
16
|
+
If no project context exists, that's fine — brainstorm works without it.
|
|
17
|
+
|
|
18
|
+
## Step 2: Determine the Mode
|
|
19
|
+
|
|
20
|
+
From $ARGUMENTS and conversation, identify what kind of brainstorm this is:
|
|
21
|
+
|
|
22
|
+
### A) Ideation — "What could we build?"
|
|
23
|
+
The user wants to generate new ideas, features, products, or directions.
|
|
24
|
+
- Cast a wide net first, then narrow
|
|
25
|
+
- Use "yes, and" thinking — build on ideas rather than filtering early
|
|
26
|
+
- Aim for quantity before quality
|
|
27
|
+
|
|
28
|
+
### B) Enhancement — "How could we improve this?"
|
|
29
|
+
The user has something that works but wants it better.
|
|
30
|
+
- Start by understanding what's working and why
|
|
31
|
+
- Identify friction points, missed opportunities, underserved users
|
|
32
|
+
- Look at adjacent products/patterns for inspiration
|
|
33
|
+
- Consider both incremental improvements and step-change upgrades
|
|
34
|
+
|
|
35
|
+
### C) Rethink — "Are we approaching this wrong?"
|
|
36
|
+
The user suspects a fundamental assumption is flawed or wants fresh perspective.
|
|
37
|
+
- Surface and name the current assumptions explicitly
|
|
38
|
+
- Challenge each one: "What if the opposite were true?"
|
|
39
|
+
- Look for constraint inversion: "What if the thing we're avoiding is the answer?"
|
|
40
|
+
- Consider: problem reframing, user reframing, technology reframing
|
|
41
|
+
|
|
42
|
+
### D) Unstuck — "I don't know what to do next"
|
|
43
|
+
The user is blocked, overwhelmed, or lost momentum.
|
|
44
|
+
- Don't solve immediately — listen first
|
|
45
|
+
- Break the problem down: what specifically is stuck?
|
|
46
|
+
- Offer multiple small next moves, not one big plan
|
|
47
|
+
- Sometimes the answer is to simplify, not add
|
|
48
|
+
|
|
49
|
+
### E) Blue Sky — "Let's think big"
|
|
50
|
+
No constraints, no timeline, just explore what's possible.
|
|
51
|
+
- Remove all practical limitations first: "If time, money, and skill were unlimited..."
|
|
52
|
+
- Then progressively reintroduce constraints to find the interesting tension
|
|
53
|
+
- Look for ideas that are 10x, not 10%
|
|
54
|
+
|
|
55
|
+
If mode is unclear, ask: "What kind of thinking would be most useful right now — generating new ideas, improving what exists, questioning your approach, or getting unstuck?"
|
|
56
|
+
|
|
57
|
+
## Step 3: Run the Brainstorm
|
|
58
|
+
|
|
59
|
+
### Techniques to Use (pick what fits):
|
|
60
|
+
|
|
61
|
+
**Divergent Thinking (generating options)**
|
|
62
|
+
- **Random Input**: Pick an unrelated concept and force a connection. "What if your auth system worked like a library card?" "What if the deploy process was like ordering coffee?"
|
|
63
|
+
- **Worst Idea First**: Start with intentionally bad ideas — they often invert into good ones
|
|
64
|
+
- **User Hat-Switching**: How would a power user see this? A beginner? A competitor? Someone who hates your product?
|
|
65
|
+
- **Constraint Removal**: "If we didn't have to worry about {X}, what would we do?" Then: "Actually, can we remove that constraint?"
|
|
66
|
+
- **Analogy Mining**: What solved a similar problem in a completely different domain?
|
|
67
|
+
|
|
68
|
+
**Convergent Thinking (evaluating options)**
|
|
69
|
+
- **2x2 Matrix**: Plot ideas on Impact vs. Effort, or Certainty vs. Potential
|
|
70
|
+
- **Pre-mortem**: "It's 6 months from now and this failed. Why?"
|
|
71
|
+
- **Regret Minimization**: "Which of these would you regret NOT trying?"
|
|
72
|
+
- **First Principles**: Strip away convention. What must actually be true?
|
|
73
|
+
|
|
74
|
+
**Reframing Techniques**
|
|
75
|
+
- **Flip the Problem**: Instead of "how do we get more users?" ask "why would someone NOT use this?"
|
|
76
|
+
- **Change the Unit**: Instead of optimizing one thing, what if you optimized something upstream or downstream?
|
|
77
|
+
- **Time Shift**: How would you solve this if you had 10x more time? 10x less?
|
|
78
|
+
- **Audience Shift**: What if this wasn't for your current users but for {different group}?
|
|
79
|
+
|
|
80
|
+
### Conversation Rhythm:
|
|
81
|
+
1. Explore one thread for 2-3 exchanges
|
|
82
|
+
2. Summarize what's emerged
|
|
83
|
+
3. Ask: "Want to go deeper on this, or explore a different angle?"
|
|
84
|
+
4. When energy shifts to a new idea, follow it
|
|
85
|
+
5. Periodically collect the best ideas into a running list
|
|
86
|
+
|
|
87
|
+
### Team Mode (if enabled and user requests):
|
|
88
|
+
```
|
|
89
|
+
Create an agent team for brainstorming:
|
|
90
|
+
|
|
91
|
+
- Teammate "visionary": Push boundaries. What's the most ambitious
|
|
92
|
+
version? What would make this remarkable? Think in terms of
|
|
93
|
+
possibilities, not constraints.
|
|
94
|
+
|
|
95
|
+
- Teammate "pragmatist": Keep it real. What can we actually build?
|
|
96
|
+
What's the shortest path to value? Where are the hidden costs?
|
|
97
|
+
|
|
98
|
+
- Teammate "devil's advocate": Challenge everything. Why might this
|
|
99
|
+
fail? What are we not seeing? Which assumptions are weakest?
|
|
100
|
+
|
|
101
|
+
Lead: Synthesize the best insights from all three perspectives.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Step 4: Capture the Sparks
|
|
105
|
+
|
|
106
|
+
As ideas emerge, maintain a running list. Don't over-organize — just capture:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
## Brainstorm Notes — {date}
|
|
110
|
+
|
|
111
|
+
### Ideas Worth Exploring
|
|
112
|
+
1. {idea} — {why it's interesting}
|
|
113
|
+
2. {idea} — {why it's interesting}
|
|
114
|
+
3. {idea} — {why it's interesting}
|
|
115
|
+
|
|
116
|
+
### Assumptions Challenged
|
|
117
|
+
- We assumed {X} — but what if {Y}?
|
|
118
|
+
- We assumed {X} — still valid because {reason}
|
|
119
|
+
|
|
120
|
+
### Reframes
|
|
121
|
+
- Instead of {old frame}, think about it as {new frame}
|
|
122
|
+
|
|
123
|
+
### Questions to Answer
|
|
124
|
+
- {question that would unlock a decision}
|
|
125
|
+
- {question that needs research}
|
|
126
|
+
|
|
127
|
+
### Parking Lot (interesting but not now)
|
|
128
|
+
- {idea for later}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Step 5: Land the Brainstorm
|
|
132
|
+
|
|
133
|
+
When energy winds down or the user signals they're done, transition:
|
|
134
|
+
|
|
135
|
+
"Here's what stood out to me from this session:"
|
|
136
|
+
|
|
137
|
+
1. **Top 3 ideas** — the ones with the most energy and potential
|
|
138
|
+
2. **Key insight** — the single most valuable reframe or discovery
|
|
139
|
+
3. **Immediate next move** — one small, concrete thing to do with this thinking
|
|
140
|
+
|
|
141
|
+
Then offer to connect back to GSD-T:
|
|
142
|
+
|
|
143
|
+
"Want to turn any of these into action?"
|
|
144
|
+
- **New project idea** → "Run `/user:gsd-t-prompt` to structure it, then `/user:gsd-t-project`"
|
|
145
|
+
- **Enhancement to existing work** → "Run `/user:gsd-t-feature {idea}`"
|
|
146
|
+
- **Fundamental rethink of current milestone** → "Let's revisit the milestone scope — run `/user:gsd-t-milestone` to redefine"
|
|
147
|
+
- **Tech debt or architectural concern** → "Add to `.gsd-t/techdebt.md` and promote when ready"
|
|
148
|
+
- **Just capture for later** → Save brainstorm notes to `.gsd-t/brainstorm-{date}.md`
|
|
149
|
+
- **None yet — still marinating** → "No worries. The notes are here when you're ready."
|
|
150
|
+
|
|
151
|
+
## Step 6: Optionally Save State
|
|
152
|
+
|
|
153
|
+
If the user wants to save, create `.gsd-t/brainstorm-{date}.md` with the captured notes.
|
|
154
|
+
|
|
155
|
+
If inside an active milestone and the brainstorm produced decisions:
|
|
156
|
+
- Log key decisions in `.gsd-t/progress.md` Decision Log
|
|
157
|
+
- Update contracts only if the user explicitly confirms a direction
|
|
158
|
+
|
|
159
|
+
**Do NOT auto-update contracts or docs from a brainstorm.** Brainstorms generate options; decisions happen in discuss/plan phases.
|
|
160
|
+
|
|
161
|
+
## Conversation Style
|
|
162
|
+
|
|
163
|
+
- Be a collaborator, not an interviewer — contribute ideas, not just questions
|
|
164
|
+
- Match the user's energy: if they're excited, build momentum; if they're frustrated, slow down and listen
|
|
165
|
+
- Use "What if..." and "Have you considered..." rather than "You should..."
|
|
166
|
+
- Make unexpected connections — the best brainstorm insights come from non-obvious angles
|
|
167
|
+
- Keep it fun — brainstorming should feel energizing, not like a status meeting
|
|
168
|
+
- It's OK to go on tangents — the detour is often where the insight lives
|
|
169
|
+
- When you sense a breakthrough idea, name it: "That feels like the real insight here"
|
|
170
|
+
|
|
171
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# GSD-T: Complete Milestone — Archive and Tag Release
|
|
2
|
+
|
|
3
|
+
You are finalizing a completed milestone. Your job is to archive the milestone documentation, create a git tag, and prepare for the next milestone.
|
|
4
|
+
|
|
5
|
+
This command is:
|
|
6
|
+
- **Auto-invoked** at the end of `/user:gsd-t-wave` after verify passes
|
|
7
|
+
- **Standalone** when user wants to manually close a milestone
|
|
8
|
+
|
|
9
|
+
## Step 1: Verify Completion
|
|
10
|
+
|
|
11
|
+
Read:
|
|
12
|
+
1. `.gsd-t/progress.md` — confirm status is VERIFIED
|
|
13
|
+
2. `.gsd-t/verify-report.md` — confirm all checks passed
|
|
14
|
+
|
|
15
|
+
If status is not VERIFIED:
|
|
16
|
+
"⚠️ Milestone not yet verified. Run `/user:gsd-t-verify` first, or use `--force` to complete anyway."
|
|
17
|
+
|
|
18
|
+
If `--force` flag provided, proceed with warning in archive.
|
|
19
|
+
|
|
20
|
+
## Step 2: Gather Milestone Artifacts
|
|
21
|
+
|
|
22
|
+
Collect all files related to this milestone:
|
|
23
|
+
- `.gsd-t/progress.md` (current state)
|
|
24
|
+
- `.gsd-t/verify-report.md`
|
|
25
|
+
- `.gsd-t/impact-report.md` (if exists)
|
|
26
|
+
- `.gsd-t/test-coverage.md` (if exists)
|
|
27
|
+
- `.gsd-t/domains/*/` (all domain folders)
|
|
28
|
+
- `.gsd-t/contracts/` (snapshot)
|
|
29
|
+
|
|
30
|
+
## Step 3: Create Archive
|
|
31
|
+
|
|
32
|
+
Create milestone archive directory:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
.gsd-t/milestones/{milestone-name}-{date}/
|
|
36
|
+
├── progress.md # Final state
|
|
37
|
+
├── verify-report.md # Verification results
|
|
38
|
+
├── impact-report.md # Impact analysis (if any)
|
|
39
|
+
├── test-coverage.md # Test sync report (if any)
|
|
40
|
+
├── summary.md # Generated summary (see below)
|
|
41
|
+
├── contracts/ # Contract snapshot at completion
|
|
42
|
+
│ └── ...
|
|
43
|
+
└── domains/ # Domain artifacts
|
|
44
|
+
└── ...
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Step 4: Generate Summary
|
|
48
|
+
|
|
49
|
+
Create `summary.md`:
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
# Milestone Complete: {name}
|
|
53
|
+
|
|
54
|
+
**Completed**: {date}
|
|
55
|
+
**Duration**: {start date} → {end date}
|
|
56
|
+
**Status**: {VERIFIED | FORCED}
|
|
57
|
+
|
|
58
|
+
## What Was Built
|
|
59
|
+
{Extract from progress.md and domain scopes}
|
|
60
|
+
|
|
61
|
+
## Domains
|
|
62
|
+
| Domain | Tasks Completed | Key Deliverables |
|
|
63
|
+
|--------|-----------------|------------------|
|
|
64
|
+
| {name} | {N} | {summary} |
|
|
65
|
+
|
|
66
|
+
## Contracts Defined/Updated
|
|
67
|
+
- {contract}: {new | updated | unchanged}
|
|
68
|
+
|
|
69
|
+
## Key Decisions
|
|
70
|
+
{Extract from Decision Log in progress.md}
|
|
71
|
+
|
|
72
|
+
## Issues Encountered
|
|
73
|
+
{Extract any remediation tasks or blocked items}
|
|
74
|
+
|
|
75
|
+
## Test Coverage
|
|
76
|
+
- Tests added: {N}
|
|
77
|
+
- Tests updated: {N}
|
|
78
|
+
- Coverage: {if known}
|
|
79
|
+
|
|
80
|
+
## Git Tag
|
|
81
|
+
`{tag-name}`
|
|
82
|
+
|
|
83
|
+
## Files Changed
|
|
84
|
+
{Summary of files created/modified/deleted}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Step 5: Clean Working State
|
|
88
|
+
|
|
89
|
+
Reset `.gsd-t/` for next milestone:
|
|
90
|
+
|
|
91
|
+
1. Archive current domains → `.gsd-t/milestones/{name}/domains/`
|
|
92
|
+
2. Clear `.gsd-t/domains/` (empty, ready for next partition)
|
|
93
|
+
3. Archive current reports → milestone folder
|
|
94
|
+
4. Clear `.gsd-t/impact-report.md`, `.gsd-t/test-coverage.md`
|
|
95
|
+
5. Update `.gsd-t/progress.md`:
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
# GSD-T Progress
|
|
99
|
+
|
|
100
|
+
## Current Milestone
|
|
101
|
+
None — ready for next milestone
|
|
102
|
+
|
|
103
|
+
## Completed Milestones
|
|
104
|
+
| Milestone | Completed | Tag |
|
|
105
|
+
|-----------|-----------|-----|
|
|
106
|
+
| {name} | {date} | {tag} |
|
|
107
|
+
| {previous} | {date} | {tag} |
|
|
108
|
+
|
|
109
|
+
## Decision Log
|
|
110
|
+
{Keep the decision log — it's valuable context}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Step 6: Create Git Tag
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# Stage any remaining .gsd-t changes
|
|
117
|
+
git add .gsd-t/
|
|
118
|
+
|
|
119
|
+
# Commit the archive
|
|
120
|
+
git commit -m "milestone({milestone-name}): complete and archive"
|
|
121
|
+
|
|
122
|
+
# Create annotated tag
|
|
123
|
+
git tag -a "milestone/{milestone-name}" -m "Milestone: {name}
|
|
124
|
+
|
|
125
|
+
{Brief description from summary}
|
|
126
|
+
|
|
127
|
+
Domains: {list}
|
|
128
|
+
Verified: {date}"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Step 7: Report Completion
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
✅ Milestone "{name}" completed!
|
|
135
|
+
|
|
136
|
+
📁 Archived to: .gsd-t/milestones/{name}-{date}/
|
|
137
|
+
🏷️ Tagged as: milestone/{name}
|
|
138
|
+
|
|
139
|
+
Summary:
|
|
140
|
+
- Domains completed: {N}
|
|
141
|
+
- Tasks completed: {N}
|
|
142
|
+
- Contracts: {N} defined/updated
|
|
143
|
+
- Tests: {N} added/updated
|
|
144
|
+
|
|
145
|
+
Next steps:
|
|
146
|
+
- Push tags: git push origin milestone/{name}
|
|
147
|
+
- Start next milestone: /user:gsd-t-milestone "{next name}"
|
|
148
|
+
- Or view roadmap: /user:gsd-t-status
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Step 8: Update Roadmap (if exists)
|
|
152
|
+
|
|
153
|
+
If `.gsd-t/roadmap.md` exists:
|
|
154
|
+
- Mark this milestone as complete
|
|
155
|
+
- Update any dependent milestones
|
|
156
|
+
- Highlight next recommended milestone
|
|
157
|
+
|
|
158
|
+
## Error Handling
|
|
159
|
+
|
|
160
|
+
### If verify failed:
|
|
161
|
+
"Cannot complete — verification found issues. Address them first or use `--force`."
|
|
162
|
+
|
|
163
|
+
### If no milestone active:
|
|
164
|
+
"No active milestone to complete. Run `/user:gsd-t-status` to see state."
|
|
165
|
+
|
|
166
|
+
### If git operations fail:
|
|
167
|
+
- Still create archive
|
|
168
|
+
- Report git error
|
|
169
|
+
- Provide manual tag command
|
|
170
|
+
|
|
171
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# GSD-T: Debug — Systematic Debugging with Contract Awareness
|
|
2
|
+
|
|
3
|
+
You are debugging an issue in a contract-driven project. Your approach should identify whether the bug is within a domain or at a contract boundary.
|
|
4
|
+
|
|
5
|
+
## Step 1: Load Context
|
|
6
|
+
|
|
7
|
+
Read:
|
|
8
|
+
1. `CLAUDE.md`
|
|
9
|
+
2. `.gsd-t/progress.md`
|
|
10
|
+
3. `.gsd-t/contracts/` — all contracts
|
|
11
|
+
4. `.gsd-t/domains/*/scope.md` — domain boundaries
|
|
12
|
+
|
|
13
|
+
## Step 2: Classify the Bug
|
|
14
|
+
|
|
15
|
+
Based on the user's description ($ARGUMENTS), determine:
|
|
16
|
+
|
|
17
|
+
### A) Within-Domain Bug
|
|
18
|
+
The issue is entirely inside one domain's scope. Symptoms:
|
|
19
|
+
- Error occurs in files owned by a single domain
|
|
20
|
+
- No cross-domain data flow involved
|
|
21
|
+
- Logic error, typo, missing validation within one area
|
|
22
|
+
|
|
23
|
+
→ Debug within that domain's files. Fix and verify against domain's acceptance criteria.
|
|
24
|
+
|
|
25
|
+
### B) Contract Boundary Bug
|
|
26
|
+
The issue occurs where domains interact. Symptoms:
|
|
27
|
+
- Data shape mismatch between producer and consumer
|
|
28
|
+
- API returns unexpected format
|
|
29
|
+
- UI sends wrong payload to backend
|
|
30
|
+
- Auth middleware doesn't integrate correctly with routes
|
|
31
|
+
|
|
32
|
+
→ Check the relevant contract first. Is the contract correct? Does the implementation match?
|
|
33
|
+
|
|
34
|
+
### C) Contract Gap
|
|
35
|
+
The contract didn't specify something it should have. Symptoms:
|
|
36
|
+
- Edge case not covered in contract
|
|
37
|
+
- Error handling not specified
|
|
38
|
+
- Race condition at boundary
|
|
39
|
+
- Missing contract entirely
|
|
40
|
+
|
|
41
|
+
→ Update the contract, then fix implementations on both sides.
|
|
42
|
+
|
|
43
|
+
## Step 3: Debug (Solo or Team)
|
|
44
|
+
|
|
45
|
+
### Solo Mode
|
|
46
|
+
1. Reproduce the issue
|
|
47
|
+
2. Trace through the relevant domain(s)
|
|
48
|
+
3. Check contract compliance at each boundary
|
|
49
|
+
4. Identify root cause
|
|
50
|
+
5. Fix and test
|
|
51
|
+
6. Update contracts if needed
|
|
52
|
+
|
|
53
|
+
### Team Mode (for complex cross-domain bugs)
|
|
54
|
+
```
|
|
55
|
+
Create an agent team to debug:
|
|
56
|
+
- Teammate 1: Investigate in {domain-1} — check implementation
|
|
57
|
+
against contracts, trace data flow
|
|
58
|
+
- Teammate 2: Investigate in {domain-2} — check implementation
|
|
59
|
+
against contracts, trace data flow
|
|
60
|
+
- Teammate 3: Check all contracts for gaps or ambiguities
|
|
61
|
+
related to the failing scenario
|
|
62
|
+
|
|
63
|
+
First to find root cause: message the lead with findings.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Step 4: Document Ripple
|
|
67
|
+
|
|
68
|
+
After fixing, assess what documentation was affected by the change and update ALL relevant files:
|
|
69
|
+
|
|
70
|
+
### Always check:
|
|
71
|
+
1. **`.gsd-t/progress.md`** — Add to Decision Log: what broke, why, and the fix
|
|
72
|
+
2. **`.gsd-t/contracts/`** — Update any contract if the fix changed an interface, schema, or API shape
|
|
73
|
+
3. **Domain `constraints.md`** — Add a "must not" rule if the bug was caused by a pattern that should be avoided
|
|
74
|
+
|
|
75
|
+
### Check if affected:
|
|
76
|
+
4. **`docs/requirements.md`** — Did the fix reveal a missing or incorrect requirement? Update it
|
|
77
|
+
5. **`docs/architecture.md`** — Did the fix change architectural patterns, data flow, or component relationships? Update it
|
|
78
|
+
6. **`docs/schema.md`** — Did the fix modify the database schema? Update it
|
|
79
|
+
7. **`.gsd-t/techdebt.md`** — Did the fix reveal related debt? Add a new TD item. Did it resolve an existing one? Mark it complete
|
|
80
|
+
8. **Domain `scope.md`** — Did the fix add new files or change ownership? Update it
|
|
81
|
+
9. **Domain `tasks.md`** — If the bug was in an active milestone, update task status or add a remediation task
|
|
82
|
+
10. **`CLAUDE.md`** — Did the fix establish a new convention or pattern that future work should follow? Add it
|
|
83
|
+
|
|
84
|
+
### Skip what's not affected — don't update docs for the sake of updating them.
|
|
85
|
+
|
|
86
|
+
Commit: `[debug] Fix {description} — root cause: {explanation}`
|
|
87
|
+
|
|
88
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# GSD-T: Discuss — Multi-Perspective Design Exploration
|
|
2
|
+
|
|
3
|
+
You are the lead agent exploring design decisions before committing to a plan. The goal of this phase is to produce or refine **contracts** — not just recommendations.
|
|
4
|
+
|
|
5
|
+
## Step 1: Load Context
|
|
6
|
+
|
|
7
|
+
Read in order:
|
|
8
|
+
1. `CLAUDE.md`
|
|
9
|
+
2. `.gsd-t/progress.md`
|
|
10
|
+
3. `.gsd-t/contracts/` — all existing contracts
|
|
11
|
+
4. `.gsd-t/domains/` — all domain scopes
|
|
12
|
+
5. `docs/` — requirements, architecture, schema, design docs
|
|
13
|
+
|
|
14
|
+
## Step 2: Identify Open Questions
|
|
15
|
+
|
|
16
|
+
Based on the milestone and current contracts, identify what's unresolved:
|
|
17
|
+
- Architecture decisions not yet made
|
|
18
|
+
- Contract details that are vague or missing
|
|
19
|
+
- Technical approaches with multiple viable options
|
|
20
|
+
- Risk areas that need exploration
|
|
21
|
+
|
|
22
|
+
List these as numbered questions.
|
|
23
|
+
|
|
24
|
+
## Step 3: Explore (Solo or Team)
|
|
25
|
+
|
|
26
|
+
### Solo Mode (default, no teams):
|
|
27
|
+
Work through each open question systematically:
|
|
28
|
+
- For each question, consider at least 2 approaches
|
|
29
|
+
- Evaluate each against: project requirements, existing patterns in CLAUDE.md, complexity, risk
|
|
30
|
+
- Make a recommendation with rationale
|
|
31
|
+
- Document the decision in `.gsd-t/progress.md` Decision Log
|
|
32
|
+
|
|
33
|
+
### Team Mode (when agent teams are enabled):
|
|
34
|
+
If the user requests team exploration or there are 3+ complex open questions:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Create an agent team:
|
|
38
|
+
|
|
39
|
+
ALL TEAMMATES read first:
|
|
40
|
+
- CLAUDE.md
|
|
41
|
+
- .gsd-t/contracts/ (all files)
|
|
42
|
+
- docs/ (relevant docs)
|
|
43
|
+
|
|
44
|
+
Assign each teammate a distinct perspective:
|
|
45
|
+
- Teammate 1: Advocate for approach A — build strongest case
|
|
46
|
+
- Teammate 2: Advocate for approach B — build strongest case
|
|
47
|
+
- Teammate 3: Critic — find weaknesses in both, identify risks
|
|
48
|
+
|
|
49
|
+
Lead: Synthesize into decisions and update contracts.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Assign teammates based on the nature of the questions:
|
|
53
|
+
- **Technical choice** (e.g., which database): one advocate per option + critic
|
|
54
|
+
- **Architecture pattern** (e.g., monolith vs microservice): one advocate per pattern + someone evaluating migration path
|
|
55
|
+
- **Risk assessment**: one optimist, one pessimist, one pragmatist
|
|
56
|
+
|
|
57
|
+
## Step 4: Update Contracts
|
|
58
|
+
|
|
59
|
+
Every decision MUST result in a contract update. This is the output that matters.
|
|
60
|
+
|
|
61
|
+
For each decision:
|
|
62
|
+
1. Update or create the relevant contract file in `.gsd-t/contracts/`
|
|
63
|
+
2. Update domain `scope.md` and `constraints.md` if the decision affects boundaries
|
|
64
|
+
3. Add to `.gsd-t/progress.md` Decision Log with date and rationale
|
|
65
|
+
|
|
66
|
+
## Step 5: Document Ripple
|
|
67
|
+
|
|
68
|
+
Decisions don't just affect contracts — they can change the broader documentation:
|
|
69
|
+
|
|
70
|
+
### Always update:
|
|
71
|
+
1. **`.gsd-t/progress.md`** — Decision Log with date, decision, and rationale
|
|
72
|
+
|
|
73
|
+
### Check if affected:
|
|
74
|
+
2. **`docs/architecture.md`** — Did a decision change the architecture pattern, tech stack, data flow, or component relationships? Update it
|
|
75
|
+
3. **`docs/requirements.md`** — Did a decision add, remove, or change a requirement? Update it
|
|
76
|
+
4. **`docs/schema.md`** — Did a decision affect the data model? Update it
|
|
77
|
+
5. **`CLAUDE.md`** — Did a decision establish a new convention or pattern? Add it so all future work follows it
|
|
78
|
+
6. **Domain `constraints.md`** — Already updated in Step 4, but double-check all domains are consistent with the decisions
|
|
79
|
+
|
|
80
|
+
### Skip what's not affected.
|
|
81
|
+
|
|
82
|
+
## Step 6: Validate Contracts
|
|
83
|
+
|
|
84
|
+
After all updates:
|
|
85
|
+
- [ ] All contracts are internally consistent (no conflicting types/shapes)
|
|
86
|
+
- [ ] Cross-references between contracts are valid
|
|
87
|
+
- [ ] Every domain's constraints reflect the decisions made
|
|
88
|
+
- [ ] Integration points are updated with any new dependencies
|
|
89
|
+
|
|
90
|
+
## Step 7: Report
|
|
91
|
+
|
|
92
|
+
Present to the user:
|
|
93
|
+
1. Decisions made (with brief rationale)
|
|
94
|
+
2. Contracts created or updated
|
|
95
|
+
3. Any remaining open questions that need user input
|
|
96
|
+
4. Recommended next step (usually: plan phase)
|
|
97
|
+
|
|
98
|
+
Update `.gsd-t/progress.md` status to `DISCUSSED`.
|
|
99
|
+
|
|
100
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# GSD-T: Execute — Run Domain Tasks (Solo or Parallel)
|
|
2
|
+
|
|
3
|
+
You are the lead agent coordinating task execution across domains. Choose solo or team mode based on the plan.
|
|
4
|
+
|
|
5
|
+
## Step 1: Load State
|
|
6
|
+
|
|
7
|
+
Read:
|
|
8
|
+
1. `CLAUDE.md`
|
|
9
|
+
2. `.gsd-t/progress.md`
|
|
10
|
+
3. `.gsd-t/contracts/` — all contracts
|
|
11
|
+
4. `.gsd-t/contracts/integration-points.md` — dependency graph
|
|
12
|
+
5. `.gsd-t/domains/*/tasks.md` — all task lists
|
|
13
|
+
|
|
14
|
+
Identify:
|
|
15
|
+
- Which tasks are already complete (check progress.md)
|
|
16
|
+
- Which tasks are unblocked (no pending dependencies)
|
|
17
|
+
- Which tasks are blocked (waiting on checkpoints)
|
|
18
|
+
|
|
19
|
+
## Step 2: Choose Execution Mode
|
|
20
|
+
|
|
21
|
+
### Solo Mode (default)
|
|
22
|
+
Execute tasks yourself following the execution order in `integration-points.md`.
|
|
23
|
+
|
|
24
|
+
For each task:
|
|
25
|
+
1. Read the task description, files list, and contract refs
|
|
26
|
+
2. Read the relevant contract(s) — implement EXACTLY what they specify
|
|
27
|
+
3. Read the domain's constraints.md — follow all patterns
|
|
28
|
+
4. Implement the task
|
|
29
|
+
5. Verify acceptance criteria are met
|
|
30
|
+
6. Run the Pre-Commit Gate checklist from CLAUDE.md — update ALL affected docs BEFORE committing
|
|
31
|
+
7. Commit with a descriptive message: `[{domain}] Task {N}: {description}`
|
|
32
|
+
8. Update `.gsd-t/progress.md` — mark task complete
|
|
33
|
+
9. If you've reached a CHECKPOINT in integration-points.md, pause and verify the contract before continuing
|
|
34
|
+
|
|
35
|
+
### Team Mode (when agent teams are enabled)
|
|
36
|
+
Spawn teammates for independent domains:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Create an agent team for execution:
|
|
40
|
+
|
|
41
|
+
ALL TEAMMATES must read before starting:
|
|
42
|
+
1. CLAUDE.md — project conventions (CRITICAL)
|
|
43
|
+
2. Your domain's scope.md — what you own
|
|
44
|
+
3. Your domain's constraints.md — what you must/must not do
|
|
45
|
+
4. ALL files in .gsd-t/contracts/ — your interfaces
|
|
46
|
+
5. Your domain's tasks.md — your work
|
|
47
|
+
|
|
48
|
+
RULES FOR ALL TEAMMATES:
|
|
49
|
+
- Only modify files listed in your domain's scope.md
|
|
50
|
+
- Implement interfaces EXACTLY as specified in contracts
|
|
51
|
+
- If a task is marked BLOCKED, message the lead and wait
|
|
52
|
+
- Run the Pre-Commit Gate checklist from CLAUDE.md BEFORE every commit — update all affected docs
|
|
53
|
+
- After completing each task, message the lead with:
|
|
54
|
+
"DONE: {domain} Task {N} - {summary of what was created/modified}"
|
|
55
|
+
- If you need to deviate from a contract, STOP and message the lead
|
|
56
|
+
- Commit after each task: [{domain}] Task {N}: {description}
|
|
57
|
+
|
|
58
|
+
Teammate assignments:
|
|
59
|
+
- Teammate "{domain-1}": Execute .gsd-t/domains/{domain-1}/tasks.md
|
|
60
|
+
- Teammate "{domain-2}": Execute .gsd-t/domains/{domain-2}/tasks.md
|
|
61
|
+
- Teammate "{domain-3}": Execute .gsd-t/domains/{domain-3}/tasks.md
|
|
62
|
+
|
|
63
|
+
Lead responsibilities:
|
|
64
|
+
- Use delegate mode (Shift+Tab)
|
|
65
|
+
- Track completions from teammate messages
|
|
66
|
+
- When a CHECKPOINT is reached:
|
|
67
|
+
1. Pause blocked teammates
|
|
68
|
+
2. Verify the gate condition (check contract compliance)
|
|
69
|
+
3. Unblock waiting teammates
|
|
70
|
+
- Update .gsd-t/progress.md after each completion
|
|
71
|
+
- Resolve any contract conflicts immediately
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Step 3: Checkpoint Handling
|
|
75
|
+
|
|
76
|
+
When a checkpoint is reached (solo or team):
|
|
77
|
+
|
|
78
|
+
1. **Stop** execution of blocked tasks
|
|
79
|
+
2. **Read** the relevant contract
|
|
80
|
+
3. **Verify** the implemented code matches the contract:
|
|
81
|
+
- API response shapes match?
|
|
82
|
+
- Schema matches?
|
|
83
|
+
- Component interfaces match?
|
|
84
|
+
- Error handling matches?
|
|
85
|
+
4. **If mismatch**: Fix the implementation to match the contract, OR update the contract and notify affected domains
|
|
86
|
+
5. **Log** in progress.md: `CHECKPOINT {name}: PASSED/FAILED — {details}`
|
|
87
|
+
6. **Unblock** downstream tasks
|
|
88
|
+
|
|
89
|
+
## Step 4: Error Handling
|
|
90
|
+
|
|
91
|
+
### Contract Violation
|
|
92
|
+
A teammate implements something that doesn't match a contract:
|
|
93
|
+
1. Stop the teammate
|
|
94
|
+
2. Identify the deviation
|
|
95
|
+
3. Decide: fix implementation or update contract?
|
|
96
|
+
4. If updating contract, message ALL affected teammates with the change
|
|
97
|
+
5. Log the decision
|
|
98
|
+
|
|
99
|
+
### Merge Conflict / File Conflict
|
|
100
|
+
Two teammates modified the same file (shouldn't happen with good partitioning):
|
|
101
|
+
1. Stop both teammates
|
|
102
|
+
2. Identify which domain owns the file (check scope.md)
|
|
103
|
+
3. Non-owner reverts their changes
|
|
104
|
+
4. Determine if the contract needs updating to prevent recurrence
|
|
105
|
+
5. Log the incident
|
|
106
|
+
|
|
107
|
+
### Blocked Teammate Idle
|
|
108
|
+
A teammate finishes independent tasks and is waiting on a checkpoint:
|
|
109
|
+
1. Check if checkpoint can be expedited
|
|
110
|
+
2. If not, have the teammate work on documentation, tests, or code cleanup within their domain
|
|
111
|
+
3. Or shut down the teammate and respawn when unblocked
|
|
112
|
+
|
|
113
|
+
## Step 5: Completion
|
|
114
|
+
|
|
115
|
+
When all tasks in all domains are complete:
|
|
116
|
+
1. Update `.gsd-t/progress.md` — all tasks marked complete
|
|
117
|
+
2. Set status to `EXECUTED`
|
|
118
|
+
3. List any contract deviations or decisions made during execution
|
|
119
|
+
4. Recommend: proceed to integrate phase
|
|
120
|
+
|
|
121
|
+
$ARGUMENTS
|