golem-cc 0.1.10 → 0.1.12
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/README.md +24 -11
- package/bin/golem +13 -98
- package/bin/install.cjs +8 -5
- package/commands/golem/help.md +10 -7
- package/golem/agents/spec-builder.md +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -46,9 +46,10 @@ Golem is an autonomous coding loop that implements features while you watch (or
|
|
|
46
46
|
│ "I need user auth, a REST API for tasks, and filtering" │
|
|
47
47
|
│ │ │
|
|
48
48
|
│ ▼ │
|
|
49
|
-
│
|
|
50
|
-
│
|
|
51
|
-
│
|
|
49
|
+
│ ┌────────────────────┐ │
|
|
50
|
+
│ │ claude │ ← Interactive │
|
|
51
|
+
│ │ → /golem:spec │ conversation │
|
|
52
|
+
│ └────────────────────┘ │
|
|
52
53
|
│ │ │
|
|
53
54
|
│ ▼ │
|
|
54
55
|
│ specs/*.md │
|
|
@@ -57,17 +58,17 @@ Golem is an autonomous coding loop that implements features while you watch (or
|
|
|
57
58
|
│ GOLEM │
|
|
58
59
|
│ │ │
|
|
59
60
|
│ ▼ │
|
|
60
|
-
│
|
|
61
|
-
│
|
|
62
|
-
│
|
|
61
|
+
│ ┌────────────────┐ │
|
|
62
|
+
│ │ golem run plan │ ← Analyzes specs │
|
|
63
|
+
│ └────────────────┘ vs. codebase │
|
|
63
64
|
│ │ │
|
|
64
65
|
│ ▼ │
|
|
65
66
|
│ IMPLEMENTATION_PLAN.md │
|
|
66
67
|
│ │ │
|
|
67
68
|
│ ▼ │
|
|
68
|
-
│
|
|
69
|
-
│
|
|
70
|
-
│
|
|
69
|
+
│ ┌─────────────────┐ │
|
|
70
|
+
│ │ golem run build │ ← Autonomous loop │
|
|
71
|
+
│ └─────────────────┘ │
|
|
71
72
|
│ │ │
|
|
72
73
|
│ ┌─────────────────┼─────────────────┐ │
|
|
73
74
|
│ ▼ ▼ ▼ │
|
|
@@ -109,7 +110,9 @@ cd my-project
|
|
|
109
110
|
golem --install
|
|
110
111
|
|
|
111
112
|
# 2. Define what you're building (interactive)
|
|
112
|
-
|
|
113
|
+
claude
|
|
114
|
+
> /golem:spec
|
|
115
|
+
> exit
|
|
113
116
|
|
|
114
117
|
# 3. Generate the task list
|
|
115
118
|
golem run plan
|
|
@@ -141,15 +144,25 @@ Then it loops. Fresh context each time. No degradation.
|
|
|
141
144
|
|
|
142
145
|
## Commands
|
|
143
146
|
|
|
147
|
+
### CLI Commands
|
|
144
148
|
| Command | Description |
|
|
145
149
|
|---------|-------------|
|
|
146
150
|
| `golem --install` | Initialize golem in current project |
|
|
147
|
-
| `golem spec` | Build specs through guided conversation |
|
|
148
151
|
| `golem run plan` | Create implementation plan from specs |
|
|
149
152
|
| `golem run build` | Run the autonomous build loop |
|
|
150
153
|
| `golem simplify` | Run code simplifier on demand |
|
|
151
154
|
| `golem status` | Show progress |
|
|
152
155
|
|
|
156
|
+
### Slash Commands (inside Claude)
|
|
157
|
+
| Command | Description |
|
|
158
|
+
|---------|-------------|
|
|
159
|
+
| `/golem:spec` | Build specs through guided conversation |
|
|
160
|
+
| `/golem:plan` | Create implementation plan |
|
|
161
|
+
| `/golem:build` | Run build loop (single iteration) |
|
|
162
|
+
| `/golem:simplify` | Run code simplifier |
|
|
163
|
+
| `/golem:status` | Show project status |
|
|
164
|
+
| `/golem:help` | Show all commands |
|
|
165
|
+
|
|
153
166
|
### Options
|
|
154
167
|
|
|
155
168
|
```bash
|
package/bin/golem
CHANGED
|
@@ -50,7 +50,6 @@ print_usage() {
|
|
|
50
50
|
echo -e "${BLUE}Usage:${NC} golem <command> [options]"
|
|
51
51
|
echo ""
|
|
52
52
|
echo -e "${BLUE}Commands:${NC}"
|
|
53
|
-
echo " spec Build specs through guided conversation"
|
|
54
53
|
echo " run plan Create implementation plan from specs"
|
|
55
54
|
echo " run build Run autonomous build loop"
|
|
56
55
|
echo " simplify [path] Run code simplifier"
|
|
@@ -63,9 +62,9 @@ print_usage() {
|
|
|
63
62
|
echo " --no-simplify Skip code simplification in build loop"
|
|
64
63
|
echo ""
|
|
65
64
|
echo -e "${BLUE}Workflow:${NC}"
|
|
66
|
-
echo " 1. golem
|
|
67
|
-
echo " 2. golem run plan Generate
|
|
68
|
-
echo " 3. golem run build Autonomous
|
|
65
|
+
echo " 1. claude → /golem:spec Define requirements (interactive)"
|
|
66
|
+
echo " 2. golem run plan Generate implementation plan"
|
|
67
|
+
echo " 3. golem run build Autonomous build loop"
|
|
69
68
|
}
|
|
70
69
|
|
|
71
70
|
# Check if golem is installed in current project
|
|
@@ -145,7 +144,7 @@ EOF
|
|
|
145
144
|
echo -e "${GREEN}✓${NC} Created specs/ directory"
|
|
146
145
|
echo ""
|
|
147
146
|
echo -e "${BLUE}Next steps:${NC}"
|
|
148
|
-
echo -e " 1. Run ${CYAN}golem
|
|
147
|
+
echo -e " 1. Run ${CYAN}claude${NC} then ${CYAN}/golem:spec${NC} to define requirements"
|
|
149
148
|
echo -e " 2. Run ${CYAN}golem run plan${NC} to create implementation plan"
|
|
150
149
|
echo -e " 3. Run ${CYAN}golem run build${NC} to start autonomous coding"
|
|
151
150
|
}
|
|
@@ -212,104 +211,20 @@ EOF
|
|
|
212
211
|
fi
|
|
213
212
|
}
|
|
214
213
|
|
|
215
|
-
#
|
|
214
|
+
# Show spec workflow hint
|
|
216
215
|
cmd_spec() {
|
|
217
|
-
check_installed
|
|
218
216
|
print_banner
|
|
219
217
|
echo -e "${BLUE}Spec Builder${NC}"
|
|
220
|
-
echo -e "${DIM}Type 'done' when finished, Ctrl+C to exit${NC}"
|
|
221
218
|
echo ""
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
Spec file format (save to specs/{topic-name}.md):
|
|
232
|
-
# {Topic Name}
|
|
233
|
-
## Purpose
|
|
234
|
-
## Requirements (Must Have, Should Have, Must Not)
|
|
235
|
-
## Acceptance Criteria
|
|
236
|
-
|
|
237
|
-
Keep responses concise. Ask one question at a time."
|
|
238
|
-
|
|
239
|
-
local tmp_err=$(mktemp)
|
|
240
|
-
trap "rm -f $tmp_err" EXIT
|
|
241
|
-
|
|
242
|
-
# Helper to run claude and handle errors
|
|
243
|
-
run_claude() {
|
|
244
|
-
local output
|
|
245
|
-
local exit_code
|
|
246
|
-
|
|
247
|
-
output=$(claude "$@" 2>"$tmp_err")
|
|
248
|
-
exit_code=$?
|
|
249
|
-
|
|
250
|
-
if [[ $exit_code -ne 0 ]] || grep -q "API Error" "$tmp_err" 2>/dev/null; then
|
|
251
|
-
local err_msg=$(cat "$tmp_err")
|
|
252
|
-
if [[ "$err_msg" == *"tool_use"* ]] || [[ "$err_msg" == *"invalid_request_error"* ]]; then
|
|
253
|
-
echo ""
|
|
254
|
-
echo -e "${YELLOW}Session corrupted. Starting fresh...${NC}"
|
|
255
|
-
echo ""
|
|
256
|
-
return 1
|
|
257
|
-
else
|
|
258
|
-
echo -e "${RED}Error: $err_msg${NC}"
|
|
259
|
-
return 1
|
|
260
|
-
fi
|
|
261
|
-
fi
|
|
262
|
-
|
|
263
|
-
echo "$output"
|
|
264
|
-
return 0
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
# First message - starts a new session
|
|
268
|
-
echo -e "${CYAN}Claude:${NC}"
|
|
269
|
-
if ! run_claude -p --dangerously-skip-permissions --append-system-prompt "$spec_prompt" \
|
|
270
|
-
"Start the spec-building conversation. Ask what I'm building."; then
|
|
271
|
-
echo -e "${RED}Failed to start session${NC}"
|
|
272
|
-
return 1
|
|
273
|
-
fi
|
|
219
|
+
echo -e "To build specs, run ${CYAN}claude${NC} and use the ${CYAN}/golem:spec${NC} command."
|
|
220
|
+
echo ""
|
|
221
|
+
echo -e "${DIM}Workflow:${NC}"
|
|
222
|
+
echo -e " 1. ${CYAN}claude${NC} - Start Claude Code"
|
|
223
|
+
echo -e " 2. ${CYAN}/golem:spec${NC} - Build specs through conversation"
|
|
224
|
+
echo -e " 3. ${CYAN}exit${NC} - Exit when done"
|
|
225
|
+
echo -e " 4. ${CYAN}golem run plan${NC} - Generate implementation plan"
|
|
226
|
+
echo -e " 5. ${CYAN}golem run build${NC} - Run autonomous build loop"
|
|
274
227
|
echo ""
|
|
275
|
-
|
|
276
|
-
# Conversation loop
|
|
277
|
-
local restart_needed=false
|
|
278
|
-
while true; do
|
|
279
|
-
echo -ne "${GREEN}You:${NC} "
|
|
280
|
-
read -r user_input
|
|
281
|
-
|
|
282
|
-
[[ -z "$user_input" ]] && continue
|
|
283
|
-
[[ "$user_input" == "done" ]] && {
|
|
284
|
-
echo ""
|
|
285
|
-
echo -e "${GREEN}Done!${NC} Specs saved to specs/"
|
|
286
|
-
echo -e "Next: Run ${CYAN}golem run plan${NC} to create implementation plan"
|
|
287
|
-
break
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
echo ""
|
|
291
|
-
echo -e "${CYAN}Claude:${NC}"
|
|
292
|
-
if ! run_claude -p --continue --dangerously-skip-permissions "$user_input"; then
|
|
293
|
-
# Session error - offer to restart
|
|
294
|
-
echo -e "${YELLOW}Would you like to start a new session? (y/n)${NC} "
|
|
295
|
-
read -r restart_choice
|
|
296
|
-
if [[ "$restart_choice" == "y" ]]; then
|
|
297
|
-
echo ""
|
|
298
|
-
echo -e "${BLUE}Starting new session...${NC}"
|
|
299
|
-
echo -e "${DIM}Paste your previous context to continue where you left off.${NC}"
|
|
300
|
-
echo ""
|
|
301
|
-
echo -e "${CYAN}Claude:${NC}"
|
|
302
|
-
if ! run_claude -p --dangerously-skip-permissions --append-system-prompt "$spec_prompt" \
|
|
303
|
-
"Start the spec-building conversation. Ask what I'm building."; then
|
|
304
|
-
echo -e "${RED}Failed to start new session${NC}"
|
|
305
|
-
return 1
|
|
306
|
-
fi
|
|
307
|
-
else
|
|
308
|
-
echo -e "${DIM}Type 'done' to exit or try again${NC}"
|
|
309
|
-
fi
|
|
310
|
-
fi
|
|
311
|
-
echo ""
|
|
312
|
-
done
|
|
313
228
|
}
|
|
314
229
|
|
|
315
230
|
# Run the loop (plan or build mode)
|
package/bin/install.cjs
CHANGED
|
@@ -53,15 +53,18 @@ if (hasHelp) {
|
|
|
53
53
|
|
|
54
54
|
${yellow}After Installation:${reset}
|
|
55
55
|
golem --install Install golem to current project
|
|
56
|
-
golem spec Build specs through conversation
|
|
57
56
|
golem run plan Create implementation plan
|
|
58
57
|
golem run build Run autonomous build loop
|
|
59
58
|
golem simplify Simplify code
|
|
60
59
|
golem status Show project status
|
|
61
60
|
|
|
62
61
|
${yellow}Slash Commands (inside Claude):${reset}
|
|
63
|
-
/golem:
|
|
62
|
+
/golem:spec Build specs through conversation
|
|
63
|
+
/golem:plan Create implementation plan
|
|
64
|
+
/golem:build Run build loop iteration
|
|
65
|
+
/golem:simplify Simplify code
|
|
64
66
|
/golem:status Show project status
|
|
67
|
+
/golem:help Show all commands
|
|
65
68
|
`);
|
|
66
69
|
process.exit(0);
|
|
67
70
|
}
|
|
@@ -278,9 +281,9 @@ function install(isGlobal) {
|
|
|
278
281
|
2. Run ${cyan}golem --install${reset} in your project directory
|
|
279
282
|
|
|
280
283
|
${yellow}Workflow:${reset}
|
|
281
|
-
golem
|
|
282
|
-
golem run plan
|
|
283
|
-
golem run build
|
|
284
|
+
claude → /golem:spec → Define requirements (interactive)
|
|
285
|
+
golem run plan → Generate implementation plan
|
|
286
|
+
golem run build → Run autonomous coding loop
|
|
284
287
|
`);
|
|
285
288
|
}
|
|
286
289
|
|
package/commands/golem/help.md
CHANGED
|
@@ -31,9 +31,10 @@ UTILITY COMMANDS
|
|
|
31
31
|
|
|
32
32
|
WORKFLOW
|
|
33
33
|
|
|
34
|
-
1.
|
|
35
|
-
2.
|
|
36
|
-
3.
|
|
34
|
+
1. /golem:spec Define requirements through conversation
|
|
35
|
+
2. exit claude
|
|
36
|
+
3. golem run plan Generate IMPLEMENTATION_PLAN.md (headless)
|
|
37
|
+
4. golem run build Start autonomous coding loop (headless)
|
|
37
38
|
|
|
38
39
|
Each build iteration:
|
|
39
40
|
• Selects highest-priority task
|
|
@@ -49,10 +50,12 @@ FILES
|
|
|
49
50
|
IMPLEMENTATION_PLAN.md Task list with priorities
|
|
50
51
|
.golem/ Configuration and prompts
|
|
51
52
|
|
|
52
|
-
CLI USAGE
|
|
53
|
+
CLI USAGE (outside Claude)
|
|
53
54
|
|
|
54
|
-
golem
|
|
55
|
-
golem
|
|
56
|
-
golem
|
|
55
|
+
golem --install Install golem in a project
|
|
56
|
+
golem run plan Generate implementation plan
|
|
57
|
+
golem run build Run autonomous build loop
|
|
58
|
+
golem simplify Simplify code
|
|
59
|
+
golem status Show project status
|
|
57
60
|
```
|
|
58
61
|
</process>
|
|
@@ -140,8 +140,8 @@ When all specs and AGENTS.md are written:
|
|
|
140
140
|
```
|
|
141
141
|
Next steps:
|
|
142
142
|
1. Review specs/ files and adjust if needed
|
|
143
|
-
2.
|
|
144
|
-
3. Run 'golem
|
|
143
|
+
2. Exit Claude, then run 'golem run plan' to create implementation plan
|
|
144
|
+
3. Run 'golem run build' to start autonomous coding
|
|
145
145
|
```
|
|
146
146
|
3. Ask if they want to make any changes before proceeding
|
|
147
147
|
|