gsd-codex-cli 1.20.1 → 1.20.3
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/.codex/prompts/gsd-add-phase.md +7 -0
- package/.codex/prompts/gsd-add-todo.md +7 -0
- package/.codex/prompts/gsd-audit-milestone.md +7 -0
- package/.codex/prompts/gsd-check-todos.md +7 -0
- package/.codex/prompts/gsd-complete-milestone.md +7 -0
- package/.codex/prompts/gsd-debug.md +7 -0
- package/.codex/prompts/gsd-discuss-phase.md +7 -0
- package/.codex/prompts/gsd-execute-phase.md +7 -0
- package/.codex/prompts/gsd-help.md +7 -0
- package/.codex/prompts/gsd-insert-phase.md +7 -0
- package/.codex/prompts/gsd-list-phase-assumptions.md +7 -0
- package/.codex/prompts/gsd-map-codebase.md +7 -0
- package/.codex/prompts/gsd-new-milestone.md +7 -0
- package/.codex/prompts/gsd-new-project.md +7 -0
- package/.codex/prompts/gsd-pause-work.md +7 -0
- package/.codex/prompts/gsd-plan-milestone-gaps.md +7 -0
- package/.codex/prompts/gsd-plan-phase.md +7 -0
- package/.codex/prompts/gsd-progress.md +7 -0
- package/.codex/prompts/gsd-quick.md +7 -0
- package/.codex/prompts/gsd-remove-phase.md +7 -0
- package/.codex/prompts/gsd-research-phase.md +7 -0
- package/.codex/prompts/gsd-resume-work.md +7 -0
- package/.codex/prompts/gsd-set-profile.md +7 -0
- package/.codex/prompts/gsd-settings.md +7 -0
- package/.codex/prompts/gsd-update.md +7 -0
- package/.codex/prompts/gsd-verify-work.md +7 -0
- package/bin/install-codex.js +18 -15
- package/get-shit-done/bin/gsd-tools.cjs +75 -20
- package/hooks/dist/gsd-check-update.js +9 -4
- package/package.json +1 -1
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse <description> from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse [optional description] from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse "[version]" from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse [area filter] from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse <version> from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse [issue description] from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse "<phase>" from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse "<phase-number> [--gaps-only]" from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse [none] from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse <after> <description> from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse "[phase]" from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse "[optional: specific area to map, for example api or auth]" from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse "[milestone name, for example v1.1 Notifications]" from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse "[--auto]" from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse [none] from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse [none] from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse "[phase] [--research] [--skip-research] [--gaps] [--skip-verify]" from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse [none] from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse [none] from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse <phase-number> from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse "[phase]" from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse [none] from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse <profile> from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse [none] from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse [none] from the user input.
|
|
28
35
|
2. Run init:
|
|
@@ -23,6 +23,13 @@ node .claude/get-shit-done/bin/gsd-tools.js ...
|
|
|
23
23
|
- Spawn only when the upstream workflow defines an agent role.
|
|
24
24
|
- Use `.claude/agents/gsd-*.md` as role context for each spawned agent.
|
|
25
25
|
- Do not advance workflow steps until wait and close complete.
|
|
26
|
+
## Update check
|
|
27
|
+
- Run:
|
|
28
|
+
$update = node .claude/get-shit-done/bin/gsd-tools.cjs update check --raw | ConvertFrom-Json
|
|
29
|
+
- If $update.update_available is true, surface:
|
|
30
|
+
"Update available: $($update.installed) -> $($update.latest). Run /gsd:update or re-run npx gsd-codex-cli@latest."
|
|
31
|
+
|
|
32
|
+
|
|
26
33
|
## Execution
|
|
27
34
|
1. Parse "[phase number, for example 4]" from the user input.
|
|
28
35
|
2. Run init:
|
package/bin/install-codex.js
CHANGED
|
@@ -65,21 +65,24 @@ function resolveSourceDir(repoRelative, fallbackRelative) {
|
|
|
65
65
|
throw new Error(`Missing source directory "${repoRelative}"${fallbackMessage} in repository root ${repoRoot}`);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
function copyCodexToDirectory(baseDir) {
|
|
69
|
-
const targetCodex = path.join(baseDir, '.codex');
|
|
70
|
-
const targetClaude = path.join(baseDir, '.claude');
|
|
71
|
-
const sourceCodex = path.join(repoRoot, '.codex');
|
|
72
|
-
const sourceGetShitDone = resolveSourceDir('get-shit-done', '.claude/get-shit-done');
|
|
73
|
-
const sourceAgents = resolveSourceDir('agents', '.claude/agents');
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
ensureDir(
|
|
77
|
-
ensureDir(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
copyRecursive(
|
|
81
|
-
copyRecursive(
|
|
82
|
-
|
|
68
|
+
function copyCodexToDirectory(baseDir) {
|
|
69
|
+
const targetCodex = path.join(baseDir, '.codex');
|
|
70
|
+
const targetClaude = path.join(baseDir, '.claude');
|
|
71
|
+
const sourceCodex = path.join(repoRoot, '.codex');
|
|
72
|
+
const sourceGetShitDone = resolveSourceDir('get-shit-done', '.claude/get-shit-done');
|
|
73
|
+
const sourceAgents = resolveSourceDir('agents', '.claude/agents');
|
|
74
|
+
const versionDest = path.join(targetClaude, 'get-shit-done', 'VERSION');
|
|
75
|
+
|
|
76
|
+
ensureDir(baseDir);
|
|
77
|
+
ensureDir(targetCodex);
|
|
78
|
+
ensureDir(targetClaude);
|
|
79
|
+
|
|
80
|
+
copyRecursive(sourceCodex, targetCodex);
|
|
81
|
+
copyRecursive(sourceGetShitDone, path.join(targetClaude, 'get-shit-done'));
|
|
82
|
+
copyRecursive(sourceAgents, path.join(targetClaude, 'agents'));
|
|
83
|
+
ensureDir(path.dirname(versionDest));
|
|
84
|
+
fs.writeFileSync(versionDest, `${pkg.version}\n`);
|
|
85
|
+
}
|
|
83
86
|
|
|
84
87
|
copyCodexToDirectory(targetDir);
|
|
85
88
|
|
|
@@ -53,8 +53,11 @@
|
|
|
53
53
|
* Progress:
|
|
54
54
|
* progress [json|table|bar] Render progress in various formats
|
|
55
55
|
*
|
|
56
|
-
* Todos:
|
|
57
|
-
* todo complete <filename> Move todo from pending to completed
|
|
56
|
+
* Todos:
|
|
57
|
+
* todo complete <filename> Move todo from pending to completed
|
|
58
|
+
*
|
|
59
|
+
* Update:
|
|
60
|
+
* update check Check npm for newer GSD version
|
|
58
61
|
*
|
|
59
62
|
* Scaffolding:
|
|
60
63
|
* scaffold context --phase <N> Create CONTEXT.md template
|
|
@@ -119,9 +122,10 @@
|
|
|
119
122
|
* init progress All context for progress workflow
|
|
120
123
|
*/
|
|
121
124
|
|
|
122
|
-
const fs = require('fs');
|
|
123
|
-
const path = require('path');
|
|
124
|
-
const
|
|
125
|
+
const fs = require('fs');
|
|
126
|
+
const path = require('path');
|
|
127
|
+
const os = require('os');
|
|
128
|
+
const { execSync } = require('child_process');
|
|
125
129
|
|
|
126
130
|
// ─── Model Profile Table ─────────────────────────────────────────────────────
|
|
127
131
|
|
|
@@ -562,10 +566,10 @@ function cmdListTodos(cwd, area, raw) {
|
|
|
562
566
|
output(result, raw, count.toString());
|
|
563
567
|
}
|
|
564
568
|
|
|
565
|
-
function cmdVerifyPathExists(cwd, targetPath, raw) {
|
|
566
|
-
if (!targetPath) {
|
|
567
|
-
error('path required for verification');
|
|
568
|
-
}
|
|
569
|
+
function cmdVerifyPathExists(cwd, targetPath, raw) {
|
|
570
|
+
if (!targetPath) {
|
|
571
|
+
error('path required for verification');
|
|
572
|
+
}
|
|
569
573
|
|
|
570
574
|
const fullPath = path.isAbsolute(targetPath) ? targetPath : path.join(cwd, targetPath);
|
|
571
575
|
|
|
@@ -577,8 +581,49 @@ function cmdVerifyPathExists(cwd, targetPath, raw) {
|
|
|
577
581
|
} catch {
|
|
578
582
|
const result = { exists: false, type: null };
|
|
579
583
|
output(result, raw, 'false');
|
|
580
|
-
}
|
|
581
|
-
}
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
function cmdUpdateCheck(cwd, raw) {
|
|
588
|
+
const homeDir = os.homedir();
|
|
589
|
+
const cacheDir = path.join(homeDir, '.claude', 'cache');
|
|
590
|
+
const cacheFile = path.join(cacheDir, 'gsd-update-check.json');
|
|
591
|
+
const projectVersionFile = path.join(cwd, '.claude', 'get-shit-done', 'VERSION');
|
|
592
|
+
const globalVersionFile = path.join(homeDir, '.claude', 'get-shit-done', 'VERSION');
|
|
593
|
+
|
|
594
|
+
let installed = '0.0.0';
|
|
595
|
+
try {
|
|
596
|
+
if (fs.existsSync(projectVersionFile)) {
|
|
597
|
+
installed = fs.readFileSync(projectVersionFile, 'utf8').trim();
|
|
598
|
+
} else if (fs.existsSync(globalVersionFile)) {
|
|
599
|
+
installed = fs.readFileSync(globalVersionFile, 'utf8').trim();
|
|
600
|
+
}
|
|
601
|
+
} catch {}
|
|
602
|
+
|
|
603
|
+
let latest = null;
|
|
604
|
+
try {
|
|
605
|
+
latest = execSync('npm view gsd-codex-cli version', { encoding: 'utf8', timeout: 10000, windowsHide: true }).trim();
|
|
606
|
+
} catch {}
|
|
607
|
+
if (!latest) {
|
|
608
|
+
try {
|
|
609
|
+
latest = execSync('npm view get-shit-done-cc version', { encoding: 'utf8', timeout: 10000, windowsHide: true }).trim();
|
|
610
|
+
} catch {}
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
const result = {
|
|
614
|
+
update_available: !!(latest && installed && latest !== installed),
|
|
615
|
+
installed,
|
|
616
|
+
latest: latest || 'unknown',
|
|
617
|
+
checked: Math.floor(Date.now() / 1000),
|
|
618
|
+
};
|
|
619
|
+
|
|
620
|
+
try {
|
|
621
|
+
fs.mkdirSync(cacheDir, { recursive: true });
|
|
622
|
+
fs.writeFileSync(cacheFile, JSON.stringify(result));
|
|
623
|
+
} catch {}
|
|
624
|
+
|
|
625
|
+
output(result, raw);
|
|
626
|
+
}
|
|
582
627
|
|
|
583
628
|
function cmdConfigEnsureSection(cwd, raw) {
|
|
584
629
|
const configPath = path.join(cwd, '.planning', 'config.json');
|
|
@@ -5058,15 +5103,25 @@ async function main() {
|
|
|
5058
5103
|
break;
|
|
5059
5104
|
}
|
|
5060
5105
|
|
|
5061
|
-
case 'config-get': {
|
|
5062
|
-
cmdConfigGet(cwd, args[1], raw);
|
|
5063
|
-
break;
|
|
5064
|
-
}
|
|
5065
|
-
|
|
5066
|
-
case '
|
|
5067
|
-
|
|
5068
|
-
|
|
5069
|
-
|
|
5106
|
+
case 'config-get': {
|
|
5107
|
+
cmdConfigGet(cwd, args[1], raw);
|
|
5108
|
+
break;
|
|
5109
|
+
}
|
|
5110
|
+
|
|
5111
|
+
case 'update': {
|
|
5112
|
+
const subcommand = args[1];
|
|
5113
|
+
if (subcommand === 'check') {
|
|
5114
|
+
cmdUpdateCheck(cwd, raw);
|
|
5115
|
+
} else {
|
|
5116
|
+
error('Unknown update subcommand. Available: check');
|
|
5117
|
+
}
|
|
5118
|
+
break;
|
|
5119
|
+
}
|
|
5120
|
+
|
|
5121
|
+
case 'history-digest': {
|
|
5122
|
+
cmdHistoryDigest(cwd, raw);
|
|
5123
|
+
break;
|
|
5124
|
+
}
|
|
5070
5125
|
|
|
5071
5126
|
case 'phases': {
|
|
5072
5127
|
const subcommand = args[1];
|
|
@@ -40,10 +40,15 @@ const child = spawn(process.execPath, ['-e', `
|
|
|
40
40
|
}
|
|
41
41
|
} catch (e) {}
|
|
42
42
|
|
|
43
|
-
let latest = null;
|
|
44
|
-
try {
|
|
45
|
-
latest = execSync('npm view
|
|
46
|
-
} catch (e) {}
|
|
43
|
+
let latest = null;
|
|
44
|
+
try {
|
|
45
|
+
latest = execSync('npm view gsd-codex-cli version', { encoding: 'utf8', timeout: 10000, windowsHide: true }).trim();
|
|
46
|
+
} catch (e) {}
|
|
47
|
+
if (!latest) {
|
|
48
|
+
try {
|
|
49
|
+
latest = execSync('npm view get-shit-done-cc version', { encoding: 'utf8', timeout: 10000, windowsHide: true }).trim();
|
|
50
|
+
} catch (e) {}
|
|
51
|
+
}
|
|
47
52
|
|
|
48
53
|
const result = {
|
|
49
54
|
update_available: latest && installed !== latest,
|