gsd-cc 0.3.2 → 0.5.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 +56 -4
- package/package.json +1 -1
- package/skills/gsd/SKILL.md +2 -1
- package/skills/gsd/apply/SKILL.md +1 -1
- package/skills/gsd/auto/SKILL.md +1 -1
- package/skills/gsd/config/SKILL.md +56 -0
- package/skills/gsd/discuss/SKILL.md +1 -1
- package/skills/gsd/help/SKILL.md +1 -1
- package/skills/gsd/plan/SKILL.md +1 -1
- package/skills/gsd/seed/SKILL.md +4 -10
- package/skills/gsd/status/SKILL.md +1 -1
- package/skills/gsd/unify/SKILL.md +1 -1
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', 'discuss', 'help', 'plan', 'seed', 'status', 'tutorial', 'unify', 'update'];
|
|
30
|
+
const SUB_SKILLS = ['apply', 'auto', 'config', 'discuss', 'help', 'plan', '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'];
|
|
@@ -156,9 +156,58 @@ function install(isGlobal) {
|
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
console.log(` ${green}✓${reset} Installed ${fileCount} files to ${label}`);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Write language to CLAUDE.md
|
|
163
|
+
*/
|
|
164
|
+
function writeLanguageConfig(isGlobal, language) {
|
|
165
|
+
const claudeMdPath = isGlobal
|
|
166
|
+
? path.join(os.homedir(), '.claude', 'CLAUDE.md')
|
|
167
|
+
: path.join(process.cwd(), 'CLAUDE.md');
|
|
168
|
+
|
|
169
|
+
const gsdBlock = `\n# GSD-CC Config\nGSD-CC language: ${language}\n`;
|
|
170
|
+
|
|
171
|
+
if (fs.existsSync(claudeMdPath)) {
|
|
172
|
+
let content = fs.readFileSync(claudeMdPath, 'utf-8');
|
|
173
|
+
// Replace existing GSD-CC config block if present
|
|
174
|
+
const gsdRegex = /\n?# GSD-CC Config\nGSD-CC language: .+\n/;
|
|
175
|
+
if (gsdRegex.test(content)) {
|
|
176
|
+
content = content.replace(gsdRegex, gsdBlock);
|
|
177
|
+
} else {
|
|
178
|
+
content += gsdBlock;
|
|
179
|
+
}
|
|
180
|
+
fs.writeFileSync(claudeMdPath, content);
|
|
181
|
+
} else {
|
|
182
|
+
fs.mkdirSync(path.dirname(claudeMdPath), { recursive: true });
|
|
183
|
+
fs.writeFileSync(claudeMdPath, gsdBlock.trimStart());
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Prompt for language, then finish
|
|
189
|
+
*/
|
|
190
|
+
function promptLanguage(isGlobal) {
|
|
191
|
+
const rl = readline.createInterface({
|
|
192
|
+
input: process.stdin,
|
|
193
|
+
output: process.stdout,
|
|
194
|
+
});
|
|
195
|
+
|
|
159
196
|
console.log(`
|
|
160
|
-
${
|
|
197
|
+
${yellow}Which language should GSD-CC use?${reset}
|
|
198
|
+
${dim}(e.g. English, Deutsch, Français, Español, ...)${reset}
|
|
199
|
+
${dim}You can change this anytime with /gsd-cc-config in Claude Code${reset}
|
|
161
200
|
`);
|
|
201
|
+
|
|
202
|
+
rl.question(` Language ${dim}[English]${reset}: `, (answer) => {
|
|
203
|
+
rl.close();
|
|
204
|
+
const language = answer.trim() || 'English';
|
|
205
|
+
writeLanguageConfig(isGlobal, language);
|
|
206
|
+
console.log(` ${green}✓${reset} Language set to ${cyan}${language}${reset}
|
|
207
|
+
`);
|
|
208
|
+
console.log(` ${green}Done.${reset} Open Claude Code and type ${cyan}/gsd-cc${reset} to start.
|
|
209
|
+
`);
|
|
210
|
+
});
|
|
162
211
|
}
|
|
163
212
|
|
|
164
213
|
/**
|
|
@@ -232,8 +281,9 @@ function promptLocation() {
|
|
|
232
281
|
rl.question(` Choice ${dim}[1]${reset}: `, (answer) => {
|
|
233
282
|
rl.close();
|
|
234
283
|
console.log();
|
|
235
|
-
const
|
|
236
|
-
install(
|
|
284
|
+
const isGlobal = (answer.trim() || '1') !== '2';
|
|
285
|
+
install(isGlobal);
|
|
286
|
+
promptLanguage(isGlobal);
|
|
237
287
|
});
|
|
238
288
|
}
|
|
239
289
|
|
|
@@ -245,8 +295,10 @@ if (hasUninstall) {
|
|
|
245
295
|
process.exit(1);
|
|
246
296
|
} else if (hasGlobal) {
|
|
247
297
|
install(true);
|
|
298
|
+
promptLanguage(true);
|
|
248
299
|
} else if (hasLocal) {
|
|
249
300
|
install(false);
|
|
301
|
+
promptLanguage(false);
|
|
250
302
|
} else {
|
|
251
303
|
promptLocation();
|
|
252
304
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gsd-cc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.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
|
@@ -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
|
-
|
|
17
|
+
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output — messages, suggestions, file content — must use that language. If not found, default to English.
|
|
18
18
|
|
|
19
19
|
## Step 1: Detect State
|
|
20
20
|
|
|
@@ -148,6 +148,7 @@ When routing to a sub-skill, tell the user what you're doing and then invoke the
|
|
|
148
148
|
- Auto mode → `/gsd-cc-auto`
|
|
149
149
|
- Status overview → `/gsd-cc-status`
|
|
150
150
|
- Update skills → `/gsd-cc-update`
|
|
151
|
+
- Settings → `/gsd-cc-config`
|
|
151
152
|
- Help → `/gsd-cc-help`
|
|
152
153
|
- Tutorial → `/gsd-cc-tutorial`
|
|
153
154
|
|
|
@@ -14,7 +14,7 @@ You execute one task at a time from the current slice plan. Each task has a plan
|
|
|
14
14
|
|
|
15
15
|
## Language
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output — messages, summaries, commit messages — must use that language. If not found, default to English.
|
|
18
18
|
|
|
19
19
|
## Step 1: Determine Current Task
|
|
20
20
|
|
package/skills/gsd/auto/SKILL.md
CHANGED
|
@@ -13,7 +13,7 @@ You start the auto-loop that executes tasks autonomously, each in a fresh contex
|
|
|
13
13
|
|
|
14
14
|
## Language
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output — messages, status updates — must use that language. If not found, default to English.
|
|
17
17
|
|
|
18
18
|
## Step 1: Check Prerequisites
|
|
19
19
|
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-cc-config
|
|
3
|
+
description: >
|
|
4
|
+
Change GSD-CC settings like language. Updates CLAUDE.md so changes
|
|
5
|
+
take effect immediately. Use when user says /gsd-cc-config, wants to
|
|
6
|
+
change language, or asks about GSD-CC settings.
|
|
7
|
+
allowed-tools: Read, Write, Edit, Glob
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /gsd-cc-config — Settings
|
|
11
|
+
|
|
12
|
+
You manage GSD-CC configuration stored in CLAUDE.md.
|
|
13
|
+
|
|
14
|
+
## Language
|
|
15
|
+
|
|
16
|
+
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output must use that language. If not found, default to English.
|
|
17
|
+
|
|
18
|
+
## Step 1: Show Current Settings
|
|
19
|
+
|
|
20
|
+
Read the CLAUDE.md file (project-level first, then global `~/.claude/CLAUDE.md`). Look for the `# GSD-CC Config` section.
|
|
21
|
+
|
|
22
|
+
Show:
|
|
23
|
+
```
|
|
24
|
+
GSD-CC Settings
|
|
25
|
+
|
|
26
|
+
Language: {current language or "English (default)"}
|
|
27
|
+
Config: {which CLAUDE.md file — project or global}
|
|
28
|
+
|
|
29
|
+
What would you like to change?
|
|
30
|
+
1) Language
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Step 2: Change Language
|
|
34
|
+
|
|
35
|
+
If the user wants to change the language:
|
|
36
|
+
|
|
37
|
+
1. Ask: "Which language? (e.g. English, Deutsch, Français, Español, ...)"
|
|
38
|
+
2. Update CLAUDE.md:
|
|
39
|
+
- If a `# GSD-CC Config` section exists, replace the `GSD-CC language:` line
|
|
40
|
+
- If not, append the section at the end:
|
|
41
|
+
```
|
|
42
|
+
# GSD-CC Config
|
|
43
|
+
GSD-CC language: {language}
|
|
44
|
+
```
|
|
45
|
+
3. Confirm: "Language changed to {language}. Takes effect immediately."
|
|
46
|
+
|
|
47
|
+
## Where to Write
|
|
48
|
+
|
|
49
|
+
- If a project-level `CLAUDE.md` exists (in current working directory), update that one
|
|
50
|
+
- Otherwise update `~/.claude/CLAUDE.md` (global)
|
|
51
|
+
- If the user wants to change scope (project vs global), ask which one
|
|
52
|
+
|
|
53
|
+
## Safety
|
|
54
|
+
|
|
55
|
+
- **Never delete existing CLAUDE.md content.** Only add or modify the GSD-CC Config section.
|
|
56
|
+
- **Preserve all other content** in CLAUDE.md — it may contain important project instructions.
|
|
@@ -14,7 +14,7 @@ You help the user resolve ambiguities BEFORE planning begins. Your job is to ide
|
|
|
14
14
|
|
|
15
15
|
## Language
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output — messages, questions, decision records — must use that language. If not found, default to English.
|
|
18
18
|
|
|
19
19
|
## Step 1: Load Context
|
|
20
20
|
|
package/skills/gsd/help/SKILL.md
CHANGED
|
@@ -10,7 +10,7 @@ allowed-tools: Read, Glob
|
|
|
10
10
|
|
|
11
11
|
## Language
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output must use that language. If not found, default to English.
|
|
14
14
|
|
|
15
15
|
## Output
|
|
16
16
|
|
package/skills/gsd/plan/SKILL.md
CHANGED
|
@@ -13,7 +13,7 @@ You turn a slice description into a set of executable task plans. Each task gets
|
|
|
13
13
|
|
|
14
14
|
## Language
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output — messages, plans, acceptance criteria, boundaries — must use that language. If not found, default to English.
|
|
17
17
|
|
|
18
18
|
## Step 1: Load Context
|
|
19
19
|
|
package/skills/gsd/seed/SKILL.md
CHANGED
|
@@ -14,21 +14,15 @@ 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
|
|
17
|
+
### Step 0: Language
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). Use that language for all communication and generated files. If not found, default to English.
|
|
20
20
|
|
|
21
|
+
Tell the user which language you're using:
|
|
21
22
|
```
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Which language should I use? (e.g. English, Deutsch, Français, ...)
|
|
25
|
-
Default: English
|
|
23
|
+
Language: {language} (change with /gsd-cc-config)
|
|
26
24
|
```
|
|
27
25
|
|
|
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.
|
|
29
|
-
|
|
30
|
-
Store the chosen language. **All communication, generated files, plans, acceptance criteria, UNIFY reports, and status output will use this language from now on.**
|
|
31
|
-
|
|
32
26
|
### Step 1: Ask What They're Building
|
|
33
27
|
|
|
34
28
|
If not already answered in Step 0, ask:
|
|
@@ -13,7 +13,7 @@ You show a clear, concise overview of where the project stands. No actions — j
|
|
|
13
13
|
|
|
14
14
|
## Language
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output — messages, progress reports — must use that language. If not found, default to English.
|
|
17
17
|
|
|
18
18
|
## Step 1: Read State
|
|
19
19
|
|
|
@@ -15,7 +15,7 @@ UNIFY is not optional. It runs after every slice. The `/gsd-cc` router blocks al
|
|
|
15
15
|
|
|
16
16
|
## Language
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
Check for "GSD-CC language: {lang}" in CLAUDE.md (loaded automatically). All output — messages, UNIFY reports, deviation analysis — must use that language. If not found, default to English.
|
|
19
19
|
|
|
20
20
|
## Why UNIFY Exists
|
|
21
21
|
|