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 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.1.3",
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",
@@ -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
- ### Ideation Done, No Roadmap
69
+ ### Seed Done, No Stack
70
70
  ```
71
- IF .gsd/PLANNING.md exists AND no M*-ROADMAP.md exists:
72
- "Your plan is ready. Shall I create a roadmap with milestones and slices?"
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`
@@ -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.