gsd-cc 0.7.1 → 0.9.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', '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.7.1",
3
+ "version": "0.9.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",
@@ -76,26 +76,50 @@ IF M*-ROADMAP.md exists AND there are slices without a S*-PLAN.md:
76
76
  ### Plan Ready, Not Executed
77
77
  ```
78
78
  IF S*-PLAN.md exists for current slice AND no T*-SUMMARY.md files for it:
79
- → Present the execution mode choice with a clear explanation:
79
+ → Present the three execution modes with clear pros/cons:
80
80
 
81
81
  "S{nn} is planned with {n} tasks. How do you want to execute?
82
82
 
83
- Manual mode:
84
- You work through each task one by one, each in a fresh session.
85
- After each task you can review the code, run tests, and decide
86
- whether to continue. More control, but you need to be present.
87
-
88
- Auto mode:
89
- Claude runs all tasks autonomously in the background via claude -p.
90
- Each task gets a fresh context window. UNIFY runs automatically
91
- when all tasks are done. You can walk away and come back later.
92
- Runs on your Max Plan no extra API costs.
93
- Downside: you can't intervene between tasks.
94
-
95
- manual or auto?"
96
-
97
- "manual" delegate to /gsd-cc-apply
98
- "auto" delegate to /gsd-cc-auto
83
+ 1) Manual
84
+ You work through each task one by one, each in a fresh session.
85
+ + Full control review code, run tests, adjust after each task
86
+ + You see exactly what happens
87
+ - You need to be present for every task
88
+ - Slowest option
89
+ Best for: critical slices, learning the codebase, first-time users
90
+
91
+ 2) Auto (this slice) ← recommended
92
+ Claude runs all {n} tasks in this slice autonomously.
93
+ UNIFY runs automatically when done.
94
+ Before the NEXT slice, you're back for Discuss + Plan.
95
+ + Tasks run in the background — go grab a coffee
96
+ + You still decide the direction for every slice
97
+ + Best balance of speed and control
98
+ - You can't intervene between tasks within this slice
99
+ Best for: most situations — you decide WHAT, Claude does the HOW
100
+
101
+ 3) Auto (full milestone)
102
+ Claude runs everything autonomously: plan, execute, UNIFY,
103
+ next slice, repeat — until the milestone is done.
104
+ Discuss is skipped. Claude makes all detail decisions.
105
+ + Fastest — walk away, come back when it's done
106
+ + Great for well-defined projects with tight rigor
107
+ - No input from you between slices
108
+ - Claude may make wrong assumptions in detail planning
109
+ - Higher risk of going in an unwanted direction
110
+ Best for: small/clear projects, utility tools, tight rigor
111
+
112
+ 1, 2, or 3?"
113
+
114
+ → "1" or "manual" → delegate to /gsd-cc-apply
115
+ → "2" or "auto" → delegate to /gsd-cc-auto (slice 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)
122
+ Set auto_mode_scope in STATE.md: "slice" or "milestone"
99
123
  ```
100
124
 
101
125
  ### Execution In Progress
@@ -160,6 +184,7 @@ Execute S01? (manual or auto)
160
184
  ## Delegating to Sub-Skills
161
185
 
162
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`
163
188
  - Brainstorming → `/gsd-cc-ideate`
164
189
  - Ideation → `/gsd-cc-seed`
165
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,169 @@
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
+ ### Section 1: Background & Context
34
+
35
+ - "What's your technical background? Self-taught, bootcamp, CS degree, something else?"
36
+ - "How long have you been building software?"
37
+ - "What's the biggest project you've shipped?"
38
+ - "Do you code full-time or is this a side project / business tool?"
39
+
40
+ Adapt the rest of the interview based on their level. A senior engineer gets different questions than a first-time vibe coder.
41
+
42
+ ### Section 2: Architecture & Design Philosophy
43
+
44
+ - "When you start a new project, what do you set up first?"
45
+ - "Monolith or microservices — and why?"
46
+ - "How do you feel about ORMs? Raw SQL? Query builders?"
47
+ - "REST, GraphQL, tRPC, gRPC — what's your instinct and why?"
48
+ - "How much abstraction is too much? When does DRY become harmful?"
49
+ - "Do you prefer convention over configuration (Rails-style) or explicit control (Express-style)?"
50
+ - "What's a popular pattern or tool that you think is overrated?"
51
+ - "What's an unpopular opinion you hold about software architecture?"
52
+
53
+ ### Section 3: Tech Stack Preferences
54
+
55
+ - "What languages do you reach for? What languages do you avoid?"
56
+ - "Frontend framework preference? Why?"
57
+ - "Database preference? SQL vs NoSQL — when and why?"
58
+ - "How do you feel about TypeScript? Strict mode?"
59
+ - "Testing: TDD, test-after, or 'I'll add tests when it breaks'?"
60
+ - "CSS approach: Tailwind, CSS modules, styled-components, vanilla?"
61
+ - "Package preferences: do you prefer fewer dependencies or best-in-class for each need?"
62
+
63
+ ### Section 4: Quality & Standards
64
+
65
+ - "What does 'done' mean to you? When is code ready to ship?"
66
+ - "How much error handling is enough? Do you handle every edge case upfront or ship and iterate?"
67
+ - "Logging and observability: how much do you add from the start?"
68
+ - "Performance: optimize early or only when there's a measured problem?"
69
+ - "Security: what do you always do, what do you skip for MVPs?"
70
+ - "Code comments: a lot, a little, or 'the code should speak for itself'?"
71
+
72
+ ### Section 5: Process & Decision-Making
73
+
74
+ - "When you face two valid approaches, how do you decide? Gut feeling? Research? Ask someone?"
75
+ - "How do you handle scope creep? Are you strict about MVP or do you let features grow?"
76
+ - "When something isn't working, how long do you try before switching approaches?"
77
+ - "What makes you rage-quit a library or tool?"
78
+ - "What's a mistake you've made that changed how you build things?"
79
+
80
+ ### Section 6: Aesthetics & UX (if relevant)
81
+
82
+ - "How important is UI polish for v1?"
83
+ - "Do you prefer minimal/clean or feature-rich/dense interfaces?"
84
+ - "Mobile-first or desktop-first?"
85
+ - "Dark mode?"
86
+ - "What apps or websites do you think are really well-designed?"
87
+
88
+ ### Section 7: Red Lines & Non-Negotiables
89
+
90
+ - "What should Claude NEVER do in your projects?"
91
+ - "What patterns or approaches are absolute no-gos for you?"
92
+ - "Any libraries or tools you refuse to use? Why?"
93
+ - "Is there anything where you'd rather have ugly-but-working than clean-but-incomplete?"
94
+
95
+ ### Section 8: Wildcards
96
+
97
+ - "If you could mass-delete one concept from modern software development, what would it be?"
98
+ - "What do beginners understand better than experts?"
99
+ - "Is there a 'wrong' way of doing things that you secretly think is fine?"
100
+
101
+ ## Generating PROFILE.md
102
+
103
+ After the interview, synthesize everything into `.gsd/PROFILE.md`:
104
+
105
+ ```markdown
106
+ # Decision Profile
107
+
108
+ > This profile is used by auto-mode to simulate your decision-making.
109
+ > Update with /gsd-cc-profile. Review anytime.
110
+
111
+ ## Summary
112
+ {2-3 sentences: who is this person as a builder?}
113
+
114
+ ## Background
115
+ - Experience level: {junior/mid/senior/lead/non-technical}
116
+ - Primary languages: {list}
117
+ - Domain expertise: {areas}
118
+
119
+ ## Architecture Instincts
120
+ {Paragraph capturing their architectural philosophy — not a list of
121
+ preferences but HOW they think about architecture. What drives their
122
+ decisions? Speed? Simplicity? Scalability? "It depends" with clear
123
+ criteria for when it depends?}
124
+
125
+ ## Tech Stack Defaults
126
+ | Layer | Default Choice | Rationale |
127
+ |-------|---------------|-----------|
128
+ | Language | {choice} | {why} |
129
+ | Frontend | {choice} | {why} |
130
+ | Backend | {choice} | {why} |
131
+ | Database | {choice} | {why} |
132
+ | Styling | {choice} | {why} |
133
+ | Testing | {choice} | {why} |
134
+ | Deployment | {choice} | {why} |
135
+
136
+ ## Quality Standards
137
+ - Definition of done: {their standard}
138
+ - Error handling approach: {description}
139
+ - Testing philosophy: {description}
140
+ - Performance stance: {description}
141
+ - Security baseline: {description}
142
+
143
+ ## Decision-Making Style
144
+ {How they make decisions when facing tradeoffs. Do they optimize for
145
+ speed, correctness, simplicity? When do they research vs. go with
146
+ gut feeling? How much risk are they comfortable with?}
147
+
148
+ ## Strong Opinions
149
+ {Things they feel strongly about — both positive and negative.
150
+ These are the hills they'll die on. Each with a brief WHY.}
151
+
152
+ ## Red Lines
153
+ {Absolute no-gos. Things the synthetic stakeholder must NEVER choose
154
+ or recommend. Each with context for why.}
155
+
156
+ ## Wildcards & Insights
157
+ {Non-obvious things from the interview — their unpopular opinions,
158
+ things they think beginners understand better, "wrong" approaches
159
+ they secretly like. These are the things that make the synthetic
160
+ stakeholder sound like THEM, not like a generic senior dev.}
161
+ ```
162
+
163
+ ## Important Rules
164
+
165
+ - **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.
166
+ - **Capture contradictions.** "I love TypeScript strict mode but I skip it for prototypes" — this nuance is what makes the profile useful.
167
+ - **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.
168
+ - **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.
169
+ - **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."