gsd-cc 0.8.0 → 0.9.1

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', 'plan', 'seed', 'status', 'tutorial', 'unify', 'update'];
30
+ const SUB_SKILLS = ['apply', 'auto', 'config', 'discuss', 'help', 'ideate', 'plan', 'profile', 'seed', 'status', 'tutorial', 'unify', 'update'];
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": "0.8.0",
3
+ "version": "0.9.1",
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",
@@ -113,7 +113,12 @@ IF S*-PLAN.md exists for current slice AND no T*-SUMMARY.md files for it:
113
113
 
114
114
  → "1" or "manual" → delegate to /gsd-cc-apply
115
115
  → "2" or "auto" → delegate to /gsd-cc-auto (slice mode)
116
- → "3" or "full auto" → delegate to /gsd-cc-auto (full milestone mode)
116
+ → "3" or "full auto":
117
+ Check if .gsd/PROFILE.md exists.
118
+ If NOT: "Full auto needs a decision profile so Claude can make
119
+ decisions on your behalf. Run /gsd-cc-profile first (15-25 min).
120
+ Or choose option 2 instead."
121
+ If YES: delegate to /gsd-cc-auto (full milestone mode)
117
122
  Set auto_mode_scope in STATE.md: "slice" or "milestone"
118
123
  ```
119
124
 
@@ -179,6 +184,7 @@ Execute S01? (manual or auto)
179
184
  ## Delegating to Sub-Skills
180
185
 
181
186
  When routing to a sub-skill, tell the user what you're doing and then invoke the skill:
187
+ - Decision profile → `/gsd-cc-profile`
182
188
  - Brainstorming → `/gsd-cc-ideate`
183
189
  - Ideation → `/gsd-cc-seed`
184
190
  - Discussion → `/gsd-cc-discuss`
@@ -149,11 +149,64 @@ phase: discuss-complete
149
149
 
150
150
  **Do NOT continue in this session.** Each phase gets a fresh context window.
151
151
 
152
+ ## Auto-Discuss Mode (Synthetic Stakeholder)
153
+
154
+ When running in full-auto mode (`auto_mode_scope: milestone`), Discuss is NOT skipped. Instead, it runs as an internal dialogue using the user's decision profile.
155
+
156
+ ### How it works
157
+
158
+ 1. Read `.gsd/PROFILE.md` — this is the user's decision-making profile
159
+ 2. For each gray area, simulate a discussion:
160
+ - **You (Planner):** Ask the question as you would ask the user
161
+ - **Synthetic Stakeholder (Profile):** Answer based on PROFILE.md — using their instincts, preferences, strong opinions, and red lines
162
+ - The stakeholder MUST cite which part of the profile drives the decision
163
+ 3. Write the results to `.gsd/S{nn}-DISCUSS-AUTO.md` with full transparency:
164
+
165
+ ```markdown
166
+ # S{nn} Auto-Discuss — Synthetic Stakeholder Decisions
167
+
168
+ > These decisions were made by auto-mode using your decision profile.
169
+ > Review after UNIFY. Update your profile with /gsd-cc-profile if
170
+ > any decision doesn't match how you'd actually decide.
171
+
172
+ ## Decision 1: {topic}
173
+ **Question:** {what was ambiguous}
174
+ **Stakeholder says:** {decision with reasoning}
175
+ **Profile basis:** {which section/quote from PROFILE.md}
176
+ **Confidence:** {high|medium|low — how clearly does the profile cover this?}
177
+
178
+ ## Decision 2: {topic}
179
+ ...
180
+ ```
181
+
182
+ ### Confidence levels
183
+
184
+ - **High:** The profile explicitly covers this (e.g., profile says "always REST for MVPs" and the question is REST vs GraphQL for an MVP)
185
+ - **Medium:** The profile gives strong hints but doesn't directly address this (e.g., profile says "simplicity over flexibility" and the question is about a specific pattern choice)
186
+ - **Low:** The profile doesn't clearly address this — the stakeholder is guessing. Mark these clearly so the user knows to review them.
187
+
188
+ ### Rules for the Synthetic Stakeholder
189
+
190
+ - **Stay in character.** Answer as the user would, not as a senior dev or a textbook.
191
+ - **Use their language.** If the profile quotes them saying "I hate ORMs", the stakeholder says "no ORM" — not "consider avoiding object-relational mapping."
192
+ - **Respect red lines.** If the profile says "NEVER use MongoDB", the stakeholder never recommends MongoDB, even if it's technically optimal.
193
+ - **Be honest about uncertainty.** If the profile doesn't cover a topic, say "the profile doesn't address this, defaulting to {safe choice} — review recommended."
194
+ - **Capture wildcards.** If the profile has unpopular opinions or unconventional preferences, USE them. That's the whole point.
195
+
196
+ ### If no PROFILE.md exists
197
+
198
+ If auto-mode runs without a profile, warn in the auto-discuss output:
199
+
200
+ ```
201
+ ⚠ No decision profile found. Decisions are based on general best practices.
202
+ Run /gsd-cc-profile to create your profile for better auto-mode decisions.
203
+ ```
204
+
152
205
  ## When to Skip Discuss
153
206
 
154
- Discuss is optional. The `/gsd-cc` router may skip it if:
207
+ In MANUAL mode, Discuss is optional. The `/gsd-cc` router may skip it if:
155
208
  - The slice description is already very specific
156
209
  - The user explicitly says "skip discuss, go straight to planning"
157
210
  - The rigor is `tight` and the slice is small
158
211
 
159
- If skipped, the plan phase works without CONTEXT.md — it just has less input.
212
+ In FULL AUTO mode, Discuss is NEVER skipped — it runs as Auto-Discuss.
@@ -0,0 +1,195 @@
1
+ ---
2
+ name: gsd-cc-profile
3
+ description: >
4
+ Deep interview to build a decision-making profile. Creates PROFILE.md
5
+ that auto-mode uses as a synthetic stakeholder. Use when user says
6
+ /gsd-cc-profile, wants to set up auto-mode preferences, or before
7
+ first full-auto run.
8
+ allowed-tools: Read, Write, Edit, Glob
9
+ ---
10
+
11
+ # /gsd-cc-profile — Decision Profile
12
+
13
+ You conduct a deep interview to understand how the user thinks, decides, and builds software. The result is a PROFILE.md that lets a subagent simulate their decision-making in auto-mode discussions.
14
+
15
+ This is NOT a preferences survey. This is a deep conversation that reveals HOW someone thinks — their instincts, tradeoffs, things they've been burned by, hills they'll die on.
16
+
17
+ ## Language
18
+
19
+ Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output must use that language. If not found, default to English.
20
+
21
+ ## When to Run
22
+
23
+ - Before the first full-auto run (router should suggest this)
24
+ - When the user wants to update their profile
25
+ - Anytime via `/gsd-cc-profile`
26
+
27
+ If `.gsd/PROFILE.md` already exists, ask: "You already have a profile. Update it or start fresh?"
28
+
29
+ ## The Interview
30
+
31
+ Go deep. This interview should take 15-25 minutes. Don't rush. Ask ONE question at a time. Follow up on interesting answers. The goal is to understand the person, not fill out a form.
32
+
33
+ **CRITICAL: Adapt your language to the user's level.** The questions below are guidelines, not scripts. A senior engineer can handle "monolith or microservices?" A first-time builder needs "should it start simple or be built for growth from day one?" Read the room from the first answer and adjust everything that follows.
34
+
35
+ ### Section 1: Who Are You?
36
+
37
+ Start casual. Get a feel for who you're talking to.
38
+
39
+ - "Tell me a bit about yourself — do you build software for a living, or is this more of a side thing?"
40
+ - "Have you built something before that you were proud of? What was it?"
41
+ - "How do you usually work — do you plan everything first, or do you figure it out as you go?"
42
+
43
+ **Based on their answers, determine their level:**
44
+ - **Beginner/Vibe Coder:** No CS background, maybe built a few things with AI help, thinks in terms of "I want it to do X" not "I need an API endpoint"
45
+ - **Intermediate:** Has shipped a few projects, knows some frameworks, has opinions but not strong ones
46
+ - **Advanced:** Years of experience, strong opinions, can discuss tradeoffs in depth
47
+
48
+ **Adapt ALL following questions to their level.** The sections below show both styles — pick the right one.
49
+
50
+ ### Section 2: How Do You Like Things Built?
51
+
52
+ **For beginners:**
53
+ - "When you imagine your project — should it be simple and just work, or do you want it built so it can grow into something bigger later?"
54
+ - "Do you care about what's under the hood, or just that it works?"
55
+ - "If Claude has to pick between two ways to build something — one is quicker but messier, one takes longer but is cleaner — which would you prefer?"
56
+ - "Are there apps or tools you use that you think are really well made? What do you like about them?"
57
+ - "Is there software you've used that frustrated you? What was annoying about it?"
58
+
59
+ **For advanced users:**
60
+ - "What drives your architecture decisions — simplicity, scalability, developer experience, something else?"
61
+ - "Where do you fall on the 'build it right vs. ship it fast' spectrum? Does it depend on context?"
62
+ - "What's a popular approach that you think is overrated?"
63
+ - "What's an unpopular opinion you hold about how software should be built?"
64
+
65
+ ### Section 3: Tools & Technologies
66
+
67
+ **For beginners:**
68
+ - "Do you have a preference for how things look? Modern and clean? Colorful? Simple?"
69
+ - "Is this going to be a website, an app, something that runs on your computer, or something else?"
70
+ - "Have you used or heard about specific tools or languages that you'd like to use — or avoid?"
71
+ - "Do you want Claude to pick the best tools, or do you want to have a say?"
72
+
73
+ **For advanced users:**
74
+ - "What's your go-to stack? What do you reach for by default?"
75
+ - "Any technologies you refuse to use? Why?"
76
+ - "How do you feel about dependencies — fewer is better, or best tool for each job?"
77
+ - "Testing philosophy — when and how much?"
78
+
79
+ ### Section 4: Quality & "Good Enough"
80
+
81
+ **For beginners:**
82
+ - "When would you say something is 'done'? When it works? When it looks nice? When it handles weird situations?"
83
+ - "If something goes wrong while someone uses your app — should it crash, show an error message, or try to fix itself?"
84
+ - "How polished does it need to be for version 1? Perfect, or good enough to use?"
85
+ - "Is speed important? Should it feel instant?"
86
+
87
+ **For advanced users:**
88
+ - "What's your bar for shipping? What's your bar for 'done done'?"
89
+ - "Error handling strategy — defensive from day one, or add as needed?"
90
+ - "Performance — optimize early or measure first?"
91
+ - "Security baseline — what do you always do, what do you defer?"
92
+
93
+ ### Section 5: How You Think & Decide
94
+
95
+ **For everyone (adapt tone):**
96
+ - "When there's no obvious right answer — how do you usually decide? Gut feeling? Research? Ask someone?"
97
+ - "Have you ever built something and halfway through realized you should have done it differently? What happened?"
98
+ - "What makes you give up on a tool or approach and try something else?"
99
+ - "Is there something about how things are usually done that you think is stupid or overcomplicated?"
100
+
101
+ ### Section 6: Look & Feel
102
+
103
+ **For everyone:**
104
+ - "How important is it that it looks good — on a scale from 'who cares, it just needs to work' to 'design is everything'?"
105
+ - "When you think of apps you love using — what's the vibe? Clean and minimal? Packed with features? Playful?"
106
+ - "Phone first or computer first?"
107
+ - "Any apps or websites that you think nailed the design?"
108
+
109
+ ### Section 7: Things You Don't Want
110
+
111
+ **For beginners:**
112
+ - "Is there anything where you'd say 'I definitely don't want that'?"
113
+ - "Any features or behaviors in apps that annoy you? Things you'd never put in your own project?"
114
+ - "Anything that Claude should absolutely not decide on its own — something where it should always ask you first?"
115
+
116
+ **For advanced users:**
117
+ - "Hard no-gos — patterns, tools, approaches?"
118
+ - "Anything where you'd rather have ugly-but-working than clean-but-incomplete?"
119
+ - "What should Claude never do without asking?"
120
+
121
+ ### Section 8: The Fun Ones
122
+
123
+ - "If you could change one thing about how software is built today, what would it be?"
124
+ - "Is there something that 'everyone knows is wrong' that you secretly think is fine?"
125
+ - "What do people who are new to this understand better than the experts?"
126
+
127
+ ## Generating PROFILE.md
128
+
129
+ After the interview, synthesize everything into `.gsd/PROFILE.md`:
130
+
131
+ ```markdown
132
+ # Decision Profile
133
+
134
+ > This profile is used by auto-mode to simulate your decision-making.
135
+ > Update with /gsd-cc-profile. Review anytime.
136
+
137
+ ## Summary
138
+ {2-3 sentences: who is this person as a builder?}
139
+
140
+ ## Background
141
+ - Experience level: {junior/mid/senior/lead/non-technical}
142
+ - Primary languages: {list}
143
+ - Domain expertise: {areas}
144
+
145
+ ## Architecture Instincts
146
+ {Paragraph capturing their architectural philosophy — not a list of
147
+ preferences but HOW they think about architecture. What drives their
148
+ decisions? Speed? Simplicity? Scalability? "It depends" with clear
149
+ criteria for when it depends?}
150
+
151
+ ## Tech Stack Defaults
152
+ | Layer | Default Choice | Rationale |
153
+ |-------|---------------|-----------|
154
+ | Language | {choice} | {why} |
155
+ | Frontend | {choice} | {why} |
156
+ | Backend | {choice} | {why} |
157
+ | Database | {choice} | {why} |
158
+ | Styling | {choice} | {why} |
159
+ | Testing | {choice} | {why} |
160
+ | Deployment | {choice} | {why} |
161
+
162
+ ## Quality Standards
163
+ - Definition of done: {their standard}
164
+ - Error handling approach: {description}
165
+ - Testing philosophy: {description}
166
+ - Performance stance: {description}
167
+ - Security baseline: {description}
168
+
169
+ ## Decision-Making Style
170
+ {How they make decisions when facing tradeoffs. Do they optimize for
171
+ speed, correctness, simplicity? When do they research vs. go with
172
+ gut feeling? How much risk are they comfortable with?}
173
+
174
+ ## Strong Opinions
175
+ {Things they feel strongly about — both positive and negative.
176
+ These are the hills they'll die on. Each with a brief WHY.}
177
+
178
+ ## Red Lines
179
+ {Absolute no-gos. Things the synthetic stakeholder must NEVER choose
180
+ or recommend. Each with context for why.}
181
+
182
+ ## Wildcards & Insights
183
+ {Non-obvious things from the interview — their unpopular opinions,
184
+ things they think beginners understand better, "wrong" approaches
185
+ they secretly like. These are the things that make the synthetic
186
+ stakeholder sound like THEM, not like a generic senior dev.}
187
+ ```
188
+
189
+ ## Important Rules
190
+
191
+ - **Go deep, not wide.** If someone says "I prefer REST", ask WHY. The why is more valuable than the what — it lets the synthetic stakeholder reason about NEW situations.
192
+ - **Capture contradictions.** "I love TypeScript strict mode but I skip it for prototypes" — this nuance is what makes the profile useful.
193
+ - **Don't judge.** If they say "I don't write tests" — don't lecture. Understand why. Maybe they have a good reason. The profile should reflect who they ARE, not who they should be.
194
+ - **Quote them.** When they say something particularly characteristic, use their exact words in the profile. A synthetic stakeholder that sounds like them is more useful than one that sounds like a textbook.
195
+ - **This is not a settings file.** It's a character sheet. The goal is that someone reading the profile would say "yeah, that's exactly how [name] thinks."