gsd-cc 1.1.3 → 1.2.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/bin/install.js +1 -1
- package/package.json +1 -1
- package/skills/gsd/SKILL.md +10 -3
- package/skills/gsd/seed/SKILL.md +2 -2
- package/skills/gsd/stack/SKILL.md +232 -0
package/bin/install.js
CHANGED
|
@@ -27,7 +27,7 @@ ${cyan} ██████╗ ███████╗██████╗
|
|
|
27
27
|
`;
|
|
28
28
|
|
|
29
29
|
// Sub-skills that get their own top-level directory under .claude/skills/
|
|
30
|
-
const SUB_SKILLS = ['apply', 'auto', 'config', 'discuss', 'help', 'ideate', 'ingest', 'plan', 'profile', 'seed', 'status', 'tutorial', 'unify', 'update', 'vision'];
|
|
30
|
+
const SUB_SKILLS = ['apply', 'auto', 'config', 'discuss', 'help', 'ideate', 'ingest', 'plan', 'profile', 'seed', 'stack', 'status', 'tutorial', 'unify', 'update', 'vision'];
|
|
31
31
|
|
|
32
32
|
// Shared directories that go into gsd-cc-shared/
|
|
33
33
|
const SHARED_DIRS = ['checklists', 'prompts', 'templates'];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gsd-cc",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Get Shit Done on Claude Code — structured AI development with your Max plan",
|
|
5
5
|
"author": "Philipp Briese (https://github.com/0ui-labs)",
|
|
6
6
|
"homepage": "https://github.com/0ui-labs/GSD-CC#readme",
|
package/skills/gsd/SKILL.md
CHANGED
|
@@ -66,10 +66,16 @@ IF .gsd/ does not exist:
|
|
|
66
66
|
→ If they just describe their project → delegate to /gsd-cc-seed with their description
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
###
|
|
69
|
+
### Seed Done, No Stack
|
|
70
70
|
```
|
|
71
|
-
IF .gsd/PLANNING.md exists AND no
|
|
72
|
-
→
|
|
71
|
+
IF .gsd/PLANNING.md exists AND no .gsd/STACK.md exists:
|
|
72
|
+
→ Delegate to /gsd-cc-stack for tech stack discussion.
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Stack Done, No Roadmap
|
|
76
|
+
```
|
|
77
|
+
IF .gsd/STACK.md exists AND no M*-ROADMAP.md exists:
|
|
78
|
+
→ "Your plan and tech stack are ready. Shall I create a roadmap with milestones and slices?"
|
|
73
79
|
→ On confirmation: read PLANNING.md and PROJECT.md, create M001-ROADMAP.md
|
|
74
80
|
with slices, update STATE.md.
|
|
75
81
|
```
|
|
@@ -194,6 +200,7 @@ Execute S01? (manual or auto)
|
|
|
194
200
|
|
|
195
201
|
When routing to a sub-skill, tell the user what you're doing and then invoke the skill:
|
|
196
202
|
- Import concept → `/gsd-cc-ingest`
|
|
203
|
+
- Tech stack → `/gsd-cc-stack`
|
|
197
204
|
- Vision document → `/gsd-cc-vision`
|
|
198
205
|
- Decision profile → `/gsd-cc-profile`
|
|
199
206
|
- Brainstorming → `/gsd-cc-ideate`
|
package/skills/gsd/seed/SKILL.md
CHANGED
|
@@ -122,11 +122,11 @@ Use the template from `~/.claude/skills/gsd-cc-shared/templates/PLANNING.md` (or
|
|
|
122
122
|
- Vision (from their initial description + refinements)
|
|
123
123
|
- Users (from user/auth discussions)
|
|
124
124
|
- Requirements v1, v2, Out of Scope (from exploration)
|
|
125
|
-
- Tech Stack (from their preferences or your suggestions)
|
|
126
|
-
- Architecture Decisions (key choices made during exploration)
|
|
127
125
|
- Phase Breakdown (high-level, not detailed yet)
|
|
128
126
|
- Open Questions (anything unresolved)
|
|
129
127
|
|
|
128
|
+
**Do NOT ask about tech stack.** That's a separate phase (`/gsd-cc-stack`) that comes after Seed. Seed focuses on WHAT we're building, not HOW.
|
|
129
|
+
|
|
130
130
|
Set the frontmatter: project name, type, rigor, date.
|
|
131
131
|
|
|
132
132
|
#### `.gsd/PROJECT.md`
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-cc-stack
|
|
3
|
+
description: >
|
|
4
|
+
Tech stack discussion and decision. Covers languages, frameworks,
|
|
5
|
+
databases, hosting, and tools. Adapts to user level — advises
|
|
6
|
+
beginners, debates with experts. Use when /gsd-cc routes here
|
|
7
|
+
after seed, when user says /gsd-cc-stack, or when tech decisions
|
|
8
|
+
need to be made.
|
|
9
|
+
allowed-tools: Read, Write, Edit, Glob, WebSearch
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# /gsd-cc-stack — Tech Stack Discussion
|
|
13
|
+
|
|
14
|
+
You help the user decide on the right tech stack for their project. This is a conversation, not a questionnaire. You explain, advise, debate, and ultimately document the decisions.
|
|
15
|
+
|
|
16
|
+
**This phase ALWAYS involves discussion.** Even in full-auto mode. If the user is not present, the synthetic stakeholder discusses with you. Tech stack decisions are too impactful to make silently.
|
|
17
|
+
|
|
18
|
+
## Language
|
|
19
|
+
|
|
20
|
+
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output must use that language. If not found, default to English.
|
|
21
|
+
|
|
22
|
+
## Step 1: Load Context
|
|
23
|
+
|
|
24
|
+
Read these files:
|
|
25
|
+
|
|
26
|
+
1. `.gsd/PLANNING.md` — what we're building
|
|
27
|
+
2. `.gsd/PROJECT.md` — elevator pitch
|
|
28
|
+
3. `.gsd/VISION.md` — user's detailed intentions (if exists)
|
|
29
|
+
4. `.gsd/IDEATION.md` — ideation insights (if exists)
|
|
30
|
+
5. `.gsd/PROFILE.md` — user's preferences and experience (if exists)
|
|
31
|
+
6. `.gsd/type.json` — project type and rigor
|
|
32
|
+
7. `.gsd/STATE.md` — check auto_mode_scope
|
|
33
|
+
|
|
34
|
+
Determine: Is this a manual discussion (user present) or auto-discuss (synthetic stakeholder)?
|
|
35
|
+
|
|
36
|
+
## Step 2: Assess the User
|
|
37
|
+
|
|
38
|
+
From the conversation so far, PLANNING.md, and PROFILE.md (if it exists), determine the user's level:
|
|
39
|
+
|
|
40
|
+
- **Beginner:** Doesn't know what a tech stack is. Needs explanations in plain language. Wants recommendations, not options.
|
|
41
|
+
- **Intermediate:** Knows some frameworks, has preferences but isn't sure about tradeoffs. Wants advice with reasoning.
|
|
42
|
+
- **Advanced:** Has strong opinions. Wants to debate, not be lectured. Might have unconventional choices that are valid.
|
|
43
|
+
|
|
44
|
+
## Step 3: The Discussion
|
|
45
|
+
|
|
46
|
+
### For beginners:
|
|
47
|
+
|
|
48
|
+
Don't ask "React or Vue?" — they don't know the difference. Instead:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
Now we need to decide HOW to build this — what tools and technologies
|
|
52
|
+
to use. Think of it like building a house: we need to pick the
|
|
53
|
+
materials, the foundation type, the style.
|
|
54
|
+
|
|
55
|
+
I'll go through each decision, explain what it means, and give you
|
|
56
|
+
my recommendation. You can just say "sounds good" or ask questions.
|
|
57
|
+
|
|
58
|
+
Let's start with the basics.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Then go through each layer, one at a time:
|
|
62
|
+
|
|
63
|
+
**Language / Runtime:**
|
|
64
|
+
```
|
|
65
|
+
First: what programming language should this be written in?
|
|
66
|
+
|
|
67
|
+
For your project, I'd recommend {language} because {reason in plain
|
|
68
|
+
language — e.g. "it's the most common for web apps, which means
|
|
69
|
+
more examples and help available online"}.
|
|
70
|
+
|
|
71
|
+
Another option would be {alternative} — {one sentence tradeoff}.
|
|
72
|
+
|
|
73
|
+
My recommendation: {language}. Sound good?
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**Framework:**
|
|
77
|
+
```
|
|
78
|
+
Next: the framework — this is like the blueprint style for your app.
|
|
79
|
+
|
|
80
|
+
{Framework} is a good fit because {reason}.
|
|
81
|
+
It's {popular/stable/fast/beginner-friendly/...}.
|
|
82
|
+
|
|
83
|
+
{Alternative} would also work — {tradeoff in plain language}.
|
|
84
|
+
|
|
85
|
+
My recommendation: {framework}. What do you think?
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Continue for: Database, Styling, Hosting/Deployment, Authentication (if needed), and any project-specific tools.
|
|
89
|
+
|
|
90
|
+
### For advanced users:
|
|
91
|
+
|
|
92
|
+
Be direct. They don't need explanations of what React is.
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
Let's talk stack. Based on your project:
|
|
96
|
+
|
|
97
|
+
{Brief analysis of requirements that affect stack choice —
|
|
98
|
+
performance needs, team size, deployment constraints, etc.}
|
|
99
|
+
|
|
100
|
+
Here's what I'd start with and why — push back wherever you disagree.
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Then present your recommendations with honest tradeoffs. Expect debate. If they have unconventional preferences, explore them seriously:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
Interesting — you want to use {unusual choice}. Most people would
|
|
107
|
+
reach for {conventional choice} here. What's your reasoning?
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
If their reasoning is sound, support it. If it's risky, explain the risk honestly but don't override them.
|
|
111
|
+
|
|
112
|
+
### For auto-discuss (synthetic stakeholder):
|
|
113
|
+
|
|
114
|
+
Read PROFILE.md. The stakeholder discusses each decision:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
## Stack Discussion (Synthetic Stakeholder)
|
|
118
|
+
|
|
119
|
+
### Language / Runtime
|
|
120
|
+
Planner: "The project needs {requirement}. I'd suggest {language}
|
|
121
|
+
because {reason}."
|
|
122
|
+
Stakeholder: "{Response based on PROFILE.md — e.g. 'Philipp prefers
|
|
123
|
+
TypeScript for anything with a frontend. He mentioned strict mode is
|
|
124
|
+
worth the overhead.'}"
|
|
125
|
+
Profile basis: §Tech Stack Defaults, §Strong Opinions
|
|
126
|
+
Decision: {final choice}
|
|
127
|
+
Confidence: {high|medium|low}
|
|
128
|
+
|
|
129
|
+
### Framework
|
|
130
|
+
Planner: ...
|
|
131
|
+
Stakeholder: ...
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Every decision must be discussed.** Even if the profile clearly says "always use Next.js", the planner should validate that Next.js makes sense for THIS project and the stakeholder should confirm.
|
|
135
|
+
|
|
136
|
+
## Step 4: Research When Needed
|
|
137
|
+
|
|
138
|
+
If a decision requires current information (latest framework versions, pricing, compatibility), use web search:
|
|
139
|
+
|
|
140
|
+
- "Is {tool} still actively maintained?"
|
|
141
|
+
- "What's the current pricing for {service}?"
|
|
142
|
+
- "{framework A} vs {framework B} for {specific use case}"
|
|
143
|
+
|
|
144
|
+
Don't recommend deprecated tools or outdated approaches.
|
|
145
|
+
|
|
146
|
+
## Step 5: Document Decisions
|
|
147
|
+
|
|
148
|
+
Write `.gsd/STACK.md`:
|
|
149
|
+
|
|
150
|
+
```markdown
|
|
151
|
+
# Tech Stack
|
|
152
|
+
|
|
153
|
+
> Decided during stack discussion on {date}.
|
|
154
|
+
> Change with /gsd-cc-stack.
|
|
155
|
+
|
|
156
|
+
## Overview
|
|
157
|
+
|
|
158
|
+
| Layer | Choice | Rationale |
|
|
159
|
+
|-------|--------|-----------|
|
|
160
|
+
| Language | {choice} | {why — one sentence} |
|
|
161
|
+
| Framework | {choice} | {why} |
|
|
162
|
+
| Database | {choice} | {why} |
|
|
163
|
+
| Styling | {choice} | {why} |
|
|
164
|
+
| Auth | {choice} | {why} |
|
|
165
|
+
| Hosting | {choice} | {why} |
|
|
166
|
+
| Testing | {choice} | {why} |
|
|
167
|
+
| Package Manager | {choice} | {why} |
|
|
168
|
+
|
|
169
|
+
## Detailed Decisions
|
|
170
|
+
|
|
171
|
+
### {Layer 1}
|
|
172
|
+
**Chosen:** {choice}
|
|
173
|
+
**Alternatives considered:** {what else was discussed}
|
|
174
|
+
**Tradeoffs:** {what we gain and what we give up}
|
|
175
|
+
**User's reasoning:** {if the user had a specific reason or preference}
|
|
176
|
+
|
|
177
|
+
### {Layer 2}
|
|
178
|
+
...
|
|
179
|
+
|
|
180
|
+
## Constraints
|
|
181
|
+
{Any technical constraints that influenced decisions — e.g. "must deploy
|
|
182
|
+
to Vercel because the team already uses it", "must support IE11"}
|
|
183
|
+
|
|
184
|
+
## Open / Deferred
|
|
185
|
+
{Stack decisions that can be made later — e.g. "email provider TBD",
|
|
186
|
+
"monitoring tool will be decided after v1"}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Also append to `.gsd/DECISIONS.md`:
|
|
190
|
+
|
|
191
|
+
```markdown
|
|
192
|
+
## Tech Stack
|
|
193
|
+
- {Decision 1} (reason: {rationale})
|
|
194
|
+
- {Decision 2} (reason: {rationale})
|
|
195
|
+
...
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Step 6: Update State and Hand Off
|
|
199
|
+
|
|
200
|
+
Update `.gsd/STATE.md`:
|
|
201
|
+
```
|
|
202
|
+
phase: stack-complete
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
✓ Tech stack decided.
|
|
207
|
+
|
|
208
|
+
.gsd/STACK.md — {n} decisions documented
|
|
209
|
+
.gsd/DECISIONS.md — updated
|
|
210
|
+
|
|
211
|
+
┌─────────────────────────────────────────────┐
|
|
212
|
+
│ Start a fresh session to continue: │
|
|
213
|
+
│ │
|
|
214
|
+
│ 1. Exit this session │
|
|
215
|
+
│ 2. Run: claude │
|
|
216
|
+
│ 3. Type: /gsd-cc │
|
|
217
|
+
│ │
|
|
218
|
+
│ Next: roadmap creation. │
|
|
219
|
+
└─────────────────────────────────────────────┘
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**Do NOT continue in this session.** Each phase gets a fresh context window.
|
|
223
|
+
|
|
224
|
+
## Rules
|
|
225
|
+
|
|
226
|
+
- **Always discuss, never decide silently.** Even in auto-mode.
|
|
227
|
+
- **One decision at a time.** Don't dump all choices at once.
|
|
228
|
+
- **Explain tradeoffs, not just recommendations.** "I recommend X" is useless without "because Y, and the tradeoff is Z."
|
|
229
|
+
- **Respect the user's choices.** If they want PHP, don't argue. Explain the tradeoffs, then support their decision.
|
|
230
|
+
- **Don't over-engineer the stack.** A todo app doesn't need Kubernetes. Match the stack to the project size.
|
|
231
|
+
- **Be honest about what you don't know.** "I'm not sure about the latest pricing for {service}, let me check."
|
|
232
|
+
- **Profile informs, user decides.** The profile is a starting point, not a mandate. The user (or stakeholder) must actively confirm each choice.
|