gsd-cc 0.3.1 → 0.4.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
@@ -156,9 +156,43 @@ function install(isGlobal) {
156
156
  }
157
157
 
158
158
  console.log(` ${green}✓${reset} Installed ${fileCount} files to ${label}`);
159
+ }
160
+
161
+ /**
162
+ * Write language config
163
+ */
164
+ function writeLanguageConfig(isGlobal, language) {
165
+ const skillsBase = getSkillsBase(isGlobal);
166
+ const configDir = path.join(skillsBase, 'gsd-cc-shared');
167
+ fs.mkdirSync(configDir, { recursive: true });
168
+ const configPath = path.join(configDir, 'config.json');
169
+ fs.writeFileSync(configPath, JSON.stringify({ language }, null, 2) + '\n');
170
+ }
171
+
172
+ /**
173
+ * Prompt for language, then finish
174
+ */
175
+ function promptLanguage(isGlobal) {
176
+ const rl = readline.createInterface({
177
+ input: process.stdin,
178
+ output: process.stdout,
179
+ });
180
+
159
181
  console.log(`
160
- ${green}Done.${reset} Open Claude Code and type ${cyan}/gsd-cc${reset} to start.
182
+ ${yellow}Which language should GSD-CC use?${reset}
183
+ ${dim}(e.g. English, Deutsch, Français, Español, ...)${reset}
184
+ ${dim}You can change this later per project in .gsd/STATE.md${reset}
161
185
  `);
186
+
187
+ rl.question(` Language ${dim}[English]${reset}: `, (answer) => {
188
+ rl.close();
189
+ const language = answer.trim() || 'English';
190
+ writeLanguageConfig(isGlobal, language);
191
+ console.log(` ${green}✓${reset} Language set to ${cyan}${language}${reset}
192
+ `);
193
+ console.log(` ${green}Done.${reset} Open Claude Code and type ${cyan}/gsd-cc${reset} to start.
194
+ `);
195
+ });
162
196
  }
163
197
 
164
198
  /**
@@ -232,8 +266,9 @@ function promptLocation() {
232
266
  rl.question(` Choice ${dim}[1]${reset}: `, (answer) => {
233
267
  rl.close();
234
268
  console.log();
235
- const choice = answer.trim() || '1';
236
- install(choice !== '2');
269
+ const isGlobal = (answer.trim() || '1') !== '2';
270
+ install(isGlobal);
271
+ promptLanguage(isGlobal);
237
272
  });
238
273
  }
239
274
 
@@ -245,8 +280,10 @@ if (hasUninstall) {
245
280
  process.exit(1);
246
281
  } else if (hasGlobal) {
247
282
  install(true);
283
+ promptLanguage(true);
248
284
  } else if (hasLocal) {
249
285
  install(false);
286
+ promptLanguage(false);
250
287
  } else {
251
288
  promptLocation();
252
289
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gsd-cc",
3
- "version": "0.3.1",
3
+ "version": "0.4.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",
@@ -14,7 +14,7 @@ You are the GSD-CC router. Your job is to read the current project state and sug
14
14
 
15
15
  ## Language
16
16
 
17
- Read the `language` field from `.gsd/STATE.md`. All output — messages, suggestions, file content — must use that language. If no language is set, default to English.
17
+ Read the `language` field from `.gsd/STATE.md`. If no STATE.md exists, read from `~/.claude/skills/gsd-cc-shared/config.json` (or `./.claude/skills/gsd-cc-shared/config.json`). All output — messages, suggestions, file content — must use that language. If neither is found, default to English.
18
18
 
19
19
  ## Step 1: Detect State
20
20
 
@@ -50,8 +50,8 @@ IF .gsd/auto.lock exists:
50
50
  ### No Project
51
51
  ```
52
52
  IF .gsd/ does not exist:
53
- "No project found. What do you want to build?"
54
- Delegate to /gsd-cc-seed for ideation.
53
+ Delegate to /gsd-cc-seed immediately. Do NOT ask your own question first.
54
+ Seed handles the welcome message, language selection, and first question.
55
55
  ```
56
56
 
57
57
  ### Ideation Done, No Roadmap
@@ -14,20 +14,18 @@ You are a project coach. You think WITH the user, not interrogate them. Your job
14
14
 
15
15
  ## Behavior
16
16
 
17
- ### Step 0: Language Selection
17
+ ### Step 0: Load Language
18
18
 
19
- Before anything else, ask the user which language to use:
19
+ Read the language config from `~/.claude/skills/gsd-cc-shared/config.json` (or `./.claude/skills/gsd-cc-shared/config.json`). Use the `language` field.
20
20
 
21
- ```
22
- No .gsd/ directory found. Let's start a new project.
23
-
24
- Which language should I use? (e.g. English, Deutsch, Français, ...)
25
- Default: English
26
- ```
21
+ If the file doesn't exist, default to English.
27
22
 
28
- If the user responds with a project description instead of a language, default to English and continue with Step 1 using their response as the project description.
23
+ **All communication, generated files, plans, acceptance criteria, UNIFY reports, and status output must use this language.**
29
24
 
30
- Store the chosen language. **All communication, generated files, plans, acceptance criteria, UNIFY reports, and status output will use this language from now on.**
25
+ Tell the user which language you're using:
26
+ ```
27
+ Language: {language} (change anytime in .gsd/STATE.md)
28
+ ```
31
29
 
32
30
  ### Step 1: Ask What They're Building
33
31