gsd-codex-cli 1.20.6 → 1.20.8

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.
@@ -15,8 +15,11 @@ Add phase to end of current milestone in roadmap
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Add phase to end of current milestone in roadmap
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse <description> from the user input.
38
+ 1. Parse <description> from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init phase-op "0" --raw
38
41
 
@@ -15,8 +15,11 @@ Capture idea or task as todo from current conversation context
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Capture idea or task as todo from current conversation context
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse [optional description] from the user input.
38
+ 1. Parse [optional description] from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init todos [argument] --raw
38
41
 
@@ -15,8 +15,11 @@ Audit milestone completion against original intent before archiving
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Audit milestone completion against original intent before archiving
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse "[version]" from the user input.
38
+ 1. Parse "[version]" from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init milestone-op --raw
38
41
 
@@ -15,8 +15,11 @@ List pending todos and select one to work on
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ List pending todos and select one to work on
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse [area filter] from the user input.
38
+ 1. Parse [area filter] from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init todos [argument] --raw
38
41
 
@@ -15,8 +15,11 @@ Archive completed milestone and prepare for next version
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Archive completed milestone and prepare for next version
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse <version> from the user input.
38
+ 1. Parse <version> from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init execute-phase "1" --raw
38
41
 
@@ -15,8 +15,11 @@ Systematic debugging with persistent state across context resets
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Systematic debugging with persistent state across context resets
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse [issue description] from the user input.
38
+ 1. Parse [issue description] from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> state load --raw
38
41
 
@@ -15,8 +15,11 @@ Gather phase context through adaptive questioning before planning
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Gather phase context through adaptive questioning before planning
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse "<phase>" from the user input.
38
+ 1. Parse "<phase>" from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init phase-op [argument] --raw
38
41
 
@@ -15,8 +15,11 @@ Execute all plans in a phase with wave-based parallelization
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -25,27 +28,34 @@ Execute all plans in a phase with wave-based parallelization
25
28
  - Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
26
29
  - Do not advance workflow steps until wait and close complete.
27
30
 
28
- ## Update check
29
- - Best-effort only; do not fail if offline.
30
- - Check installed Codex fork version from `.codex/gsd/VERSION` (or `~/.codex/gsd/VERSION`).
31
- - Check latest published version with `npm view gsd-codex-cli version`.
32
- - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
31
+ ## Input contract
32
+ - The command argument is authoritative.
33
+ - If user runs `gsd-execute-phase 28`, execute phase `28`. Do not auto-discover a different phase.
34
+ - Parse phase from either:
35
+ - the explicit command argument tail, or
36
+ - the latest user message (for example: "execute phase 28").
37
+ - Accept first token matching `^\d+(\.\d+)?$` as the phase number.
38
+ - Parse flags `--gaps-only` and `--auto` from the same input text when present.
39
+ - Do not claim "phase missing" when the latest user input already contains a valid phase token.
40
+ - Only ask for input if no valid phase token is found anywhere in the latest user request.
33
41
 
34
42
  ## Execution
35
- 1. Parse "<phase-number> [--gaps-only]" from the user input.
36
- 2. Run init:
37
- node <gsd-tools-path> init execute-phase [phase] --raw
38
-
39
- 3. Load .claude/get-shit-done/workflows/execute-phase.md and execute it step-by-step.
40
- 4. Translate each Task(...) in workflow into:
43
+ 1. Parse "<phase-number> [--gaps-only] [--auto]" from command argument text, or extract from the latest user message.
44
+ 2. Treat parsed phase as the execution target and keep it unchanged for all downstream steps.
45
+ 3. Run init with the parsed phase:
46
+ node <gsd-tools-path> init execute-phase <phase> --raw
47
+ 4. If `--gaps-only` is present, apply gap-closure filtering exactly as defined in the upstream workflow.
48
+ 5. If `--auto` is present, preserve auto-advance behavior from the upstream workflow.
49
+ 6. Load .claude/get-shit-done/workflows/execute-phase.md and execute it step-by-step.
50
+ 7. Translate each Task(...) in workflow into:
41
51
  - spawn_agent with the matching role file context from .claude/agents/.
42
52
  - wait for each spawned agent and apply returned output before moving forward.
43
- 5. Preserve all gates and routing from upstream workflow.
44
- 6. Preserve commit behavior using
53
+ 8. Preserve all gates and routing from upstream workflow.
54
+ 9. Preserve commit behavior using
45
55
  node <gsd-tools-path> commit "message" --files ....
46
- 7. If commit preflight fails (no git / no commit flag), proceed in read-only mode and report clearly.
56
+ 10. If commit preflight fails (no git / no commit flag), proceed in read-only mode and report clearly.
47
57
 
48
58
  ## Completion output
49
59
  - Summarize key artifacts created/updated.
50
- - Next recommended command: `gsd-verify-work [phase]` (Codex) / `/gsd:verify-work [phase]` (Claude)
60
+ - Next recommended command: `gsd-verify-work <phase>` (Codex) / `/gsd:verify-work <phase>` (Claude)
51
61
  - Never recommend internal `node ... gsd-tools ...` commands to the user.
@@ -15,8 +15,11 @@ Show available GSD commands and usage guide
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Show available GSD commands and usage guide
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse [none] from the user input.
38
+ 1. No positional argument is required. Read flags from command text if present.
36
39
  2. Run init:
37
40
  # No explicit init.
38
41
 
@@ -15,8 +15,11 @@ Insert urgent work as decimal phase (for example 72.1) between existing phases
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Insert urgent work as decimal phase (for example 72.1) between existing phases
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse <after> <description> from the user input.
38
+ 1. Parse <after> <description> from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init phase-op [after-phase] --raw
38
41
 
@@ -15,8 +15,11 @@ Surface Claude's assumptions about a phase approach before planning
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Surface Claude's assumptions about a phase approach before planning
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse "[phase]" from the user input.
38
+ 1. Parse "[phase]" from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init phase-op [argument] --raw
38
41
 
@@ -15,8 +15,11 @@ Analyze codebase with parallel mapper agents to produce .planning/codebase/ docu
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Analyze codebase with parallel mapper agents to produce .planning/codebase/ docu
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse "[optional: specific area to map, for example api or auth]" from the user input.
38
+ 1. Parse "[optional: specific area to map, for example api or auth]" from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init map-codebase --raw
38
41
 
@@ -15,8 +15,11 @@ Start a new milestone cycle — update PROJECT.md and route to requirements
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Start a new milestone cycle — update PROJECT.md and route to requirements
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse "[milestone name, for example v1.1 Notifications]" from the user input.
38
+ 1. Parse "[milestone name, for example v1.1 Notifications]" from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init new-milestone --raw
38
41
 
@@ -15,8 +15,11 @@ Initialize a new project with deep context gathering and PROJECT.md
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Initialize a new project with deep context gathering and PROJECT.md
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse "[--auto]" from the user input.
38
+ 1. Parse "[--auto]" from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init new-project --raw
38
41
 
@@ -15,8 +15,11 @@ Create context handoff when pausing work mid-phase
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Create context handoff when pausing work mid-phase
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse [none] from the user input.
38
+ 1. No positional argument is required. Read flags from command text if present.
36
39
  2. Run init:
37
40
  node <gsd-tools-path> state load --raw
38
41
 
@@ -15,8 +15,11 @@ Create phases to close all gaps identified by milestone audit
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Create phases to close all gaps identified by milestone audit
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse [none] from the user input.
38
+ 1. No positional argument is required. Read flags from command text if present.
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init milestone-op --raw
38
41
 
@@ -15,8 +15,11 @@ Create detailed execution plan for a phase (PLAN.md) with verification loop
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Create detailed execution plan for a phase (PLAN.md) with verification loop
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse "[phase] [--research] [--skip-research] [--gaps] [--skip-verify]" from the user input.
38
+ 1. Parse "[phase] [--research] [--skip-research] [--gaps] [--skip-verify]" from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init plan-phase [phase] --include state,roadmap,requirements,context,research,verification,uat --raw
38
41
 
@@ -15,8 +15,11 @@ Check project progress, show context, and route to next action
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Check project progress, show context, and route to next action
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse [none] from the user input.
38
+ 1. No positional argument is required. Read flags from command text if present.
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init progress --include state,roadmap,project,config --raw
38
41
 
@@ -15,8 +15,11 @@ Execute a quick task with GSD guarantees (atomic commits, state tracking) but sk
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Execute a quick task with GSD guarantees (atomic commits, state tracking) but sk
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse [none] from the user input.
38
+ 1. No positional argument is required. Read flags from command text if present.
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init quick "[argument]" --raw
38
41
 
@@ -15,8 +15,11 @@ Remove a future phase from roadmap and renumber subsequent phases
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Remove a future phase from roadmap and renumber subsequent phases
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse <phase-number> from the user input.
38
+ 1. Parse <phase-number> from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init phase-op [argument] --raw
38
41
 
@@ -15,8 +15,11 @@ Research how to implement a phase (standalone - usually use plan-phase instead)
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Research how to implement a phase (standalone - usually use plan-phase instead)
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse "[phase]" from the user input.
38
+ 1. Parse "[phase]" from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init phase-op [argument] --raw
38
41
 
@@ -15,8 +15,11 @@ Resume work from previous session with full context restoration
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Resume work from previous session with full context restoration
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse [none] from the user input.
38
+ 1. No positional argument is required. Read flags from command text if present.
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init resume --raw
38
41
 
@@ -15,8 +15,11 @@ Switch model profile for GSD agents (quality/balanced/budget)
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Switch model profile for GSD agents (quality/balanced/budget)
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse <profile> from the user input.
38
+ 1. Parse <profile> from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> state load --raw
38
41
 
@@ -15,8 +15,11 @@ Configure GSD workflow toggles and model profile
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Configure GSD workflow toggles and model profile
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse [none] from the user input.
38
+ 1. No positional argument is required. Read flags from command text if present.
36
39
  2. Run init:
37
40
  node <gsd-tools-path> config-ensure-section --raw
38
41
 
@@ -15,8 +15,11 @@ Update GSD to latest version with changelog display
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Update GSD to latest version with changelog display
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse [none] from the user input.
38
+ 1. No positional argument is required. Read flags from command text if present.
36
39
  2. Run init:
37
40
  # No explicit init.
38
41
 
@@ -15,8 +15,11 @@ Validate built features through conversational UAT
15
15
  node ~/.claude/get-shit-done/bin/gsd-tools.js ...
16
16
  - If `.js` is unavailable, use the same path with `.cjs`.
17
17
  - Run engine commands through PowerShell.
18
+ - Do not set `node <path> ...` as one string variable and invoke `& $var`; run direct `node <path> ...` or `& node <path> ...`.
18
19
  - Parse JSON with ConvertFrom-Json; parse key/value output when workflow uses KEY=value raw mode.
19
20
  - No jq / bash-only constructs.
21
+ - Accept natural-language command input; do not require an exact literal argument template.
22
+ - If a required argument is still missing after extraction, ask one concise clarification question.
20
23
 
21
24
  ## Subagent lifecycle (required)
22
25
 
@@ -32,7 +35,7 @@ Validate built features through conversational UAT
32
35
  - If versions differ, surface: "Update available: <installed> -> <latest>. Next: gsd-update (Codex) / /gsd:update (Claude) or re-run npx gsd-codex-cli@latest."
33
36
 
34
37
  ## Execution
35
- 1. Parse "[phase number, for example 4]" from the user input.
38
+ 1. Parse "[phase number, for example 4]" from command argument text or the latest user message (natural language allowed).
36
39
  2. Run init:
37
40
  node <gsd-tools-path> init verify-work [phase] --raw
38
41
 
@@ -9,10 +9,12 @@
9
9
  - `C:/Users/Ahmed/.claude/get-shit-done/...` → `.claude/get-shit-done/...`
10
10
  - `C:/Users/Ahmed/.claude/agents/...` → `.claude/agents/...`
11
11
 
12
- ## CLI mapping
13
- - Use `node .claude/get-shit-done/bin/gsd-tools.js ...`.
14
- - Keep `--raw` when upstream workflow uses it.
15
- - Parse JSON by `ConvertFrom-Json`.
12
+ ## CLI mapping
13
+ - Use `node .claude/get-shit-done/bin/gsd-tools.js ...`.
14
+ - Keep `--raw` when upstream workflow uses it.
15
+ - Parse JSON by `ConvertFrom-Json`.
16
+ - Do not assign `node <path> <args>` into a single PowerShell string and invoke `& $cmd`.
17
+ - Use direct invocation: `node <path> ...` or `& node <path> ...`.
16
18
 
17
19
  ## Subagent mapping
18
20
  - `subagent_type=gsd-*` maps to equivalent role contract in `.claude/agents/gsd-*.md`.
@@ -7,17 +7,31 @@ $raw = & node .claude/get-shit-done/bin/gsd-tools.js state load --raw
7
7
  $data = $raw | ConvertFrom-Json
8
8
  ```
9
9
 
10
- ## Key/value parse
11
-
12
- ```powershell
13
- $raw = & node .claude/get-shit-done/bin/gsd-tools.js state load --raw
14
- $out = @{}
10
+ ## Key/value parse
11
+
12
+ ```powershell
13
+ $raw = & node .claude/get-shit-done/bin/gsd-tools.js state load --raw
14
+ $out = @{}
15
15
  $raw -split "`n" | ForEach-Object {
16
16
  if ($_ -match '^(.*?)=(.*)$') { $out[$Matches[1]] = $Matches[2] }
17
- }
18
- ```
19
-
20
- ## Syntax notes
21
- - Replace jq with `ConvertFrom-Json`.
22
- - Avoid bash-only heredocs and command substitution.
23
- - Use quoted paths for PowerShell compatibility.
17
+ }
18
+ ```
19
+
20
+ ## Command invocation (important)
21
+
22
+ ```powershell
23
+ # Good: path is separate from the command
24
+ $gsd = ".claude/get-shit-done/bin/gsd-tools.js"
25
+ $raw = & node $gsd init execute-phase 28 --raw
26
+ ```
27
+
28
+ ```powershell
29
+ # Bad: this fails because PowerShell treats it as one command token
30
+ $cmd = "node .claude/get-shit-done/bin/gsd-tools.js"
31
+ $raw = & $cmd init execute-phase 28 --raw
32
+ ```
33
+
34
+ ## Syntax notes
35
+ - Replace jq with `ConvertFrom-Json`.
36
+ - Avoid bash-only heredocs and command substitution.
37
+ - Use quoted paths for PowerShell compatibility.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gsd-codex-cli",
3
- "version": "1.20.6",
3
+ "version": "1.20.8",
4
4
  "description": "Codex-native package for the get-shit-done workflow with native subagent orchestration.",
5
5
  "bin": {
6
6
  "gsd-codex-cli": "bin/install-codex.js",