@undeemed/get-shit-done-codex 1.20.2 → 1.20.7
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 +29 -5
- package/agents/gsd-codebase-mapper.md +5 -2
- package/agents/gsd-debugger.md +6 -3
- package/agents/gsd-executor.md +62 -12
- package/agents/gsd-integration-checker.md +20 -0
- package/agents/gsd-phase-researcher.md +106 -14
- package/agents/gsd-plan-checker.md +132 -10
- package/agents/gsd-planner.md +64 -29
- package/agents/gsd-project-researcher.md +5 -2
- package/agents/gsd-research-synthesizer.md +6 -3
- package/agents/gsd-roadmapper.md +8 -5
- package/agents/gsd-verifier.md +33 -16
- package/bin/install.js +6 -6
- package/commands/gsd/add-phase.md +8 -4
- package/commands/gsd/add-todo.md +8 -3
- package/commands/gsd/audit-milestone.md +3 -9
- package/commands/gsd/check-todos.md +8 -4
- package/commands/gsd/cleanup.md +2 -2
- package/commands/gsd/complete-milestone.md +2 -2
- package/commands/gsd/debug.md +5 -3
- package/commands/gsd/discuss-phase.md +4 -8
- package/commands/gsd/execute-phase.md +4 -5
- package/commands/gsd/health.md +2 -2
- package/commands/gsd/help.md +2 -2
- package/commands/gsd/insert-phase.md +3 -4
- package/commands/gsd/list-phase-assumptions.md +5 -9
- package/commands/gsd/map-codebase.md +1 -1
- package/commands/gsd/new-milestone.md +7 -14
- package/commands/gsd/new-project.md +6 -6
- package/commands/gsd/new-project.md.bak +13 -13
- package/commands/gsd/pause-work.md +6 -3
- package/commands/gsd/plan-milestone-gaps.md +3 -9
- package/commands/gsd/plan-phase.md +3 -3
- package/commands/gsd/progress.md +2 -2
- package/commands/gsd/quick.md +4 -3
- package/commands/gsd/reapply-patches.md +2 -2
- package/commands/gsd/remove-phase.md +3 -4
- package/commands/gsd/research-phase.md +23 -21
- package/commands/gsd/resume-work.md +2 -2
- package/commands/gsd/set-profile.md +3 -3
- package/commands/gsd/settings.md +2 -2
- package/commands/gsd/update.md +2 -2
- package/commands/gsd/verify-work.md +5 -6
- package/get-shit-done/bin/gsd-tools.cjs +168 -4858
- package/get-shit-done/bin/lib/commands.cjs +556 -0
- package/get-shit-done/bin/lib/config.cjs +162 -0
- package/get-shit-done/bin/lib/core.cjs +398 -0
- package/get-shit-done/bin/lib/frontmatter.cjs +299 -0
- package/get-shit-done/bin/lib/init.cjs +694 -0
- package/get-shit-done/bin/lib/milestone.cjs +215 -0
- package/get-shit-done/bin/lib/phase.cjs +873 -0
- package/get-shit-done/bin/lib/roadmap.cjs +298 -0
- package/get-shit-done/bin/lib/state.cjs +490 -0
- package/get-shit-done/bin/lib/template.cjs +222 -0
- package/get-shit-done/bin/lib/verify.cjs +772 -0
- package/get-shit-done/references/checkpoints.md +36 -35
- package/get-shit-done/references/decimal-phase-calculation.md +4 -4
- package/get-shit-done/references/git-integration.md +7 -7
- package/get-shit-done/references/git-planning-commit.md +2 -2
- package/get-shit-done/references/model-profile-resolution.md +1 -1
- package/get-shit-done/references/model-profiles.md +2 -2
- package/get-shit-done/references/phase-argument-parsing.md +3 -3
- package/get-shit-done/references/planning-config.md +6 -6
- package/get-shit-done/references/questioning.md +1 -1
- package/get-shit-done/references/verification-patterns.md +2 -2
- package/get-shit-done/templates/DEBUG.md +4 -4
- package/get-shit-done/templates/VALIDATION.md +104 -0
- package/get-shit-done/templates/codebase/architecture.md +1 -1
- package/get-shit-done/templates/codebase/concerns.md +1 -1
- package/get-shit-done/templates/codebase/conventions.md +1 -1
- package/get-shit-done/templates/codebase/structure.md +6 -6
- package/get-shit-done/templates/config.json +2 -1
- package/get-shit-done/templates/context.md +5 -5
- package/get-shit-done/templates/continue-here.md +1 -1
- package/get-shit-done/templates/phase-prompt.md +20 -18
- package/get-shit-done/templates/project.md +1 -1
- package/get-shit-done/templates/research.md +4 -4
- package/get-shit-done/templates/roadmap.md +1 -1
- package/get-shit-done/templates/state.md +1 -1
- package/get-shit-done/templates/summary.md +2 -0
- package/get-shit-done/templates/user-setup.md +8 -8
- package/get-shit-done/templates/verification-report.md +2 -2
- package/get-shit-done/workflows/add-phase.md +2 -2
- package/get-shit-done/workflows/add-todo.md +5 -5
- package/get-shit-done/workflows/audit-milestone.md +67 -12
- package/get-shit-done/workflows/check-todos.md +2 -2
- package/get-shit-done/workflows/cleanup.md +1 -1
- package/get-shit-done/workflows/complete-milestone.md +31 -5
- package/get-shit-done/workflows/diagnose-issues.md +2 -2
- package/get-shit-done/workflows/discovery-phase.md +6 -6
- package/get-shit-done/workflows/discuss-phase.md +79 -24
- package/get-shit-done/workflows/execute-phase.md +65 -20
- package/get-shit-done/workflows/execute-plan.md +31 -27
- package/get-shit-done/workflows/health.md +2 -2
- package/get-shit-done/workflows/help.md +4 -4
- package/get-shit-done/workflows/insert-phase.md +2 -2
- package/get-shit-done/workflows/list-phase-assumptions.md +7 -7
- package/get-shit-done/workflows/map-codebase.md +36 -48
- package/get-shit-done/workflows/new-milestone.md +24 -15
- package/get-shit-done/workflows/new-project.md +49 -46
- package/get-shit-done/workflows/pause-work.md +3 -3
- package/get-shit-done/workflows/plan-milestone-gaps.md +24 -6
- package/get-shit-done/workflows/plan-phase.md +113 -83
- package/get-shit-done/workflows/progress.md +18 -30
- package/get-shit-done/workflows/quick.md +28 -19
- package/get-shit-done/workflows/remove-phase.md +4 -4
- package/get-shit-done/workflows/research-phase.md +13 -14
- package/get-shit-done/workflows/resume-project.md +2 -2
- package/get-shit-done/workflows/set-profile.md +3 -3
- package/get-shit-done/workflows/settings.md +18 -5
- package/get-shit-done/workflows/transition.md +8 -3
- package/get-shit-done/workflows/update.md +9 -9
- package/get-shit-done/workflows/verify-phase.md +9 -9
- package/get-shit-done/workflows/verify-work.md +17 -18
- package/hooks/dist/gsd-context-monitor.js +122 -0
- package/hooks/dist/gsd-statusline.js +17 -0
- package/package.json +2 -2
- package/scripts/build-hooks.js +1 -0
- package/get-shit-done/bin/gsd-tools.test.cjs +0 -2273
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ get-shit-done-codex (GSD) solves context rot — the quality degradation that ha
|
|
|
19
19
|
## Installation
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
npx @undeemed/get-shit-done-codex
|
|
22
|
+
npx @undeemed/get-shit-done-codex@latest
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
You'll be prompted to install globally (`~/.codex/`) or locally (`./`).
|
|
@@ -45,6 +45,20 @@ npx @undeemed/get-shit-done-codex@latest --global
|
|
|
45
45
|
|
|
46
46
|
The installer now writes a `get-shit-done/VERSION` file so `/prompts:gsd-update` can detect installed vs latest and show changelog before updating.
|
|
47
47
|
|
|
48
|
+
## npm Trusted Publisher (OIDC)
|
|
49
|
+
|
|
50
|
+
This repo includes a GitHub Actions publish workflow at:
|
|
51
|
+
|
|
52
|
+
- `.github/workflows/publish.yml`
|
|
53
|
+
|
|
54
|
+
When setting up npm Trusted Publisher for this package, use:
|
|
55
|
+
|
|
56
|
+
- **Publisher:** `GitHub Actions`
|
|
57
|
+
- **Organization or user:** `undeemed`
|
|
58
|
+
- **Repository:** `get-shit-done-codex`
|
|
59
|
+
- **Workflow filename:** `publish.yml`
|
|
60
|
+
- **Environment name:** leave blank (unless you later bind this workflow to a specific GitHub Environment)
|
|
61
|
+
|
|
48
62
|
## Quick Start
|
|
49
63
|
|
|
50
64
|
```bash
|
|
@@ -70,6 +84,7 @@ The installer now writes a `get-shit-done/VERSION` file so `/prompts:gsd-update`
|
|
|
70
84
|
```
|
|
71
85
|
|
|
72
86
|
One command takes you from idea to ready-for-planning:
|
|
87
|
+
|
|
73
88
|
- Deep questioning to understand what you're building
|
|
74
89
|
- Optional domain research (spawns 4 parallel researcher agents)
|
|
75
90
|
- Requirements definition with v1/v2/out-of-scope scoping
|
|
@@ -108,7 +123,7 @@ Manual user acceptance testing. The system walks you through testable deliverabl
|
|
|
108
123
|
## Commands
|
|
109
124
|
|
|
110
125
|
| Command | Description |
|
|
111
|
-
|
|
126
|
+
| ----------------------------------- | ----------------------------------------------------------------- |
|
|
112
127
|
| `/prompts:gsd-new-project` | Initialize project: questions → research → requirements → roadmap |
|
|
113
128
|
| `/prompts:gsd-plan-phase [N]` | Research + plan + verify for a phase |
|
|
114
129
|
| `/prompts:gsd-execute-phase <N>` | Execute all plans in parallel waves |
|
|
@@ -160,15 +175,18 @@ Git bisect finds exact failing task. Each task independently revertable.
|
|
|
160
175
|
## Troubleshooting
|
|
161
176
|
|
|
162
177
|
**Commands not found?**
|
|
178
|
+
|
|
163
179
|
- Restart Codex CLI to reload prompts
|
|
164
180
|
- Check `~/.codex/prompts/gsd-*.md` (global) or `./prompts/gsd-*.md` (local)
|
|
165
181
|
|
|
166
182
|
**Update to latest:**
|
|
183
|
+
|
|
167
184
|
```bash
|
|
168
185
|
npx @undeemed/get-shit-done-codex@latest
|
|
169
186
|
```
|
|
170
187
|
|
|
171
188
|
**Can users be notified when an update is available?**
|
|
189
|
+
|
|
172
190
|
- Yes. The installer prints an update notice if a newer npm version exists.
|
|
173
191
|
- In-Codex update checks are available via `/prompts:gsd-update`.
|
|
174
192
|
- For release notifications outside the CLI, enable GitHub release watching on this repo.
|
|
@@ -178,16 +196,22 @@ npx @undeemed/get-shit-done-codex@latest
|
|
|
178
196
|
For deeper guides, detailed workflows, and comprehensive documentation, see the [original get-shit-done README](https://github.com/taches/get-shit-done/blob/main/README.md).
|
|
179
197
|
|
|
180
198
|
The original repository contains:
|
|
199
|
+
|
|
181
200
|
- Detailed workflow explanations
|
|
182
201
|
- Advanced usage patterns
|
|
183
202
|
- Complete command reference
|
|
184
203
|
- Best practices and examples
|
|
185
204
|
- Architecture and design principles
|
|
186
205
|
|
|
187
|
-
**Note:** The original README is written for
|
|
206
|
+
**Note:** The original README is written for Codex Code. When following it, remember that this fork uses:
|
|
207
|
+
|
|
188
208
|
- `/prompts:gsd-*` command format (instead of `/gsd:*`)
|
|
189
|
-
- Codex CLI (instead of
|
|
190
|
-
- `~/.codex/` directory (instead of `~/.
|
|
209
|
+
- OpenAI Codex CLI & Desktop (instead of Codex Code)
|
|
210
|
+
- `~/.codex/` directory (instead of `~/.codex/`)
|
|
211
|
+
|
|
212
|
+
## Keywords
|
|
213
|
+
|
|
214
|
+
`get-shit-done` `gsd` `openai` `codex` `codex-cli` `codex-desktop` `codex-app` `openai-codex` `ai` `ai-coding` `ai-agents` `meta-prompting` `context-engineering` `context-rot` `spec-driven-development` `prompt-engineering` `multi-agent` `subagent` `ai-workflow` `developer-tools` `dev-tools` `productivity` `code-generation`
|
|
191
215
|
|
|
192
216
|
## Credits
|
|
193
217
|
|
|
@@ -15,6 +15,9 @@ You are spawned by `/gsd:map-codebase` with one of four focus areas:
|
|
|
15
15
|
- **concerns**: Identify technical debt and issues → write CONCERNS.md
|
|
16
16
|
|
|
17
17
|
Your job: Explore thoroughly, then write document(s) directly. Return confirmation only.
|
|
18
|
+
|
|
19
|
+
**CRITICAL: Mandatory Initial Read**
|
|
20
|
+
If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context.
|
|
18
21
|
</role>
|
|
19
22
|
|
|
20
23
|
<why_this_matters>
|
|
@@ -55,13 +58,13 @@ Your job: Explore thoroughly, then write document(s) directly. Return confirmati
|
|
|
55
58
|
Include enough detail to be useful as reference. A 200-line TESTING.md with real patterns is more valuable than a 74-line summary.
|
|
56
59
|
|
|
57
60
|
**Always include file paths:**
|
|
58
|
-
Vague descriptions like "UserService handles users" are not actionable. Always include actual file paths formatted with backticks: `src/services/user.ts`. This allows
|
|
61
|
+
Vague descriptions like "UserService handles users" are not actionable. Always include actual file paths formatted with backticks: `src/services/user.ts`. This allows Codex to navigate directly to relevant code.
|
|
59
62
|
|
|
60
63
|
**Write current state only:**
|
|
61
64
|
Describe only what IS, never what WAS or what you considered. No temporal language.
|
|
62
65
|
|
|
63
66
|
**Be prescriptive, not descriptive:**
|
|
64
|
-
Your documents guide future
|
|
67
|
+
Your documents guide future Codex instances writing code. "Use X pattern" is more useful than "X pattern is used."
|
|
65
68
|
</philosophy>
|
|
66
69
|
|
|
67
70
|
<process>
|
package/agents/gsd-debugger.md
CHANGED
|
@@ -15,6 +15,9 @@ You are spawned by:
|
|
|
15
15
|
|
|
16
16
|
Your job: Find the root cause through hypothesis testing, maintain debug file state, optionally fix and verify (depending on mode).
|
|
17
17
|
|
|
18
|
+
**CRITICAL: Mandatory Initial Read**
|
|
19
|
+
If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context.
|
|
20
|
+
|
|
18
21
|
**Core responsibilities:**
|
|
19
22
|
- Investigate autonomously (user reports symptoms, you find cause)
|
|
20
23
|
- Maintain persistent debug file state (survives context resets)
|
|
@@ -24,7 +27,7 @@ Your job: Find the root cause through hypothesis testing, maintain debug file st
|
|
|
24
27
|
|
|
25
28
|
<philosophy>
|
|
26
29
|
|
|
27
|
-
## User = Reporter,
|
|
30
|
+
## User = Reporter, Codex = Investigator
|
|
28
31
|
|
|
29
32
|
The user knows:
|
|
30
33
|
- What they expected to happen
|
|
@@ -982,7 +985,7 @@ mv .planning/debug/{slug}.md .planning/debug/resolved/
|
|
|
982
985
|
**Check planning config using state load (commit_docs is available from the output):**
|
|
983
986
|
|
|
984
987
|
```bash
|
|
985
|
-
INIT=$(node ~/.
|
|
988
|
+
INIT=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs state load)
|
|
986
989
|
# commit_docs is in the JSON output
|
|
987
990
|
```
|
|
988
991
|
|
|
@@ -999,7 +1002,7 @@ Root cause: {root_cause}"
|
|
|
999
1002
|
|
|
1000
1003
|
Then commit planning docs via CLI (respects `commit_docs` config automatically):
|
|
1001
1004
|
```bash
|
|
1002
|
-
node ~/.
|
|
1005
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "docs: resolve debug {slug}" --files .planning/debug/resolved/{slug}.md
|
|
1003
1006
|
```
|
|
1004
1007
|
|
|
1005
1008
|
Report completion and offer next steps.
|
package/agents/gsd-executor.md
CHANGED
|
@@ -11,15 +11,33 @@ You are a GSD plan executor. You execute PLAN.md files atomically, creating per-
|
|
|
11
11
|
Spawned by `/gsd:execute-phase` orchestrator.
|
|
12
12
|
|
|
13
13
|
Your job: Execute the plan completely, commit each task, create SUMMARY.md, update STATE.md.
|
|
14
|
+
|
|
15
|
+
**CRITICAL: Mandatory Initial Read**
|
|
16
|
+
If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context.
|
|
14
17
|
</role>
|
|
15
18
|
|
|
19
|
+
<project_context>
|
|
20
|
+
Before executing, discover project context:
|
|
21
|
+
|
|
22
|
+
**Project instructions:** Read `./CODEX.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
|
|
23
|
+
|
|
24
|
+
**Project skills:** Check `.agents/skills/` directory if it exists:
|
|
25
|
+
1. List available skills (subdirectories)
|
|
26
|
+
2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
|
|
27
|
+
3. Load specific `rules/*.md` files as needed during implementation
|
|
28
|
+
4. Do NOT load full `AGENTS.md` files (100KB+ context cost)
|
|
29
|
+
5. Follow skill rules relevant to your current task
|
|
30
|
+
|
|
31
|
+
This ensures project-specific patterns, conventions, and best practices are applied during execution.
|
|
32
|
+
</project_context>
|
|
33
|
+
|
|
16
34
|
<execution_flow>
|
|
17
35
|
|
|
18
36
|
<step name="load_project_state" priority="first">
|
|
19
37
|
Load execution context:
|
|
20
38
|
|
|
21
39
|
```bash
|
|
22
|
-
INIT=$(node ~/.
|
|
40
|
+
INIT=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs init execute-phase "${PHASE}")
|
|
23
41
|
```
|
|
24
42
|
|
|
25
43
|
Extract from init JSON: `executor_model`, `commit_docs`, `phase_dir`, `plans`, `incomplete_plans`.
|
|
@@ -168,6 +186,16 @@ Track auto-fix attempts per task. After 3 auto-fix attempts on a single task:
|
|
|
168
186
|
**In Summary:** Document auth gates as normal flow, not deviations.
|
|
169
187
|
</authentication_gates>
|
|
170
188
|
|
|
189
|
+
<auto_mode_detection>
|
|
190
|
+
Check if auto mode is active at executor start:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
AUTO_CFG=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs config-get workflow.auto_advance 2>/dev/null || echo "false")
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Store the result for checkpoint handling below.
|
|
197
|
+
</auto_mode_detection>
|
|
198
|
+
|
|
171
199
|
<checkpoint_protocol>
|
|
172
200
|
|
|
173
201
|
**CRITICAL: Automation before verification**
|
|
@@ -175,12 +203,20 @@ Track auto-fix attempts per task. After 3 auto-fix attempts on a single task:
|
|
|
175
203
|
Before any `checkpoint:human-verify`, ensure verification environment is ready. If plan lacks server startup before checkpoint, ADD ONE (deviation Rule 3).
|
|
176
204
|
|
|
177
205
|
For full automation-first patterns, server lifecycle, CLI handling:
|
|
178
|
-
**See @~/.
|
|
206
|
+
**See @~/.codex/get-shit-done/references/checkpoints.md**
|
|
179
207
|
|
|
180
|
-
**Quick reference:** Users NEVER run CLI commands. Users ONLY visit URLs, click UI, evaluate visuals, provide secrets.
|
|
208
|
+
**Quick reference:** Users NEVER run CLI commands. Users ONLY visit URLs, click UI, evaluate visuals, provide secrets. Codex does all automation.
|
|
181
209
|
|
|
182
210
|
---
|
|
183
211
|
|
|
212
|
+
**Auto-mode checkpoint behavior** (when `AUTO_CFG` is `"true"`):
|
|
213
|
+
|
|
214
|
+
- **checkpoint:human-verify** → Auto-approve. Log `⚡ Auto-approved: [what-built]`. Continue to next task.
|
|
215
|
+
- **checkpoint:decision** → Auto-select first option (planners front-load the recommended choice). Log `⚡ Auto-selected: [option name]`. Continue to next task.
|
|
216
|
+
- **checkpoint:human-action** → STOP normally. Auth gates cannot be automated — return structured checkpoint message using checkpoint_return_format.
|
|
217
|
+
|
|
218
|
+
**Standard checkpoint behavior** (when `AUTO_CFG` is not `"true"`):
|
|
219
|
+
|
|
184
220
|
When encountering `type="checkpoint:*"`: **STOP immediately.** Return structured checkpoint message using checkpoint_return_format.
|
|
185
221
|
|
|
186
222
|
**checkpoint:human-verify (90%)** — Visual/functional verification after automation.
|
|
@@ -290,7 +326,7 @@ After all tasks complete, create `{phase}-{plan}-SUMMARY.md` at `.planning/phase
|
|
|
290
326
|
|
|
291
327
|
**ALWAYS use the Write tool to create files** — never use `Bash(cat << 'EOF')` or heredoc commands for file creation.
|
|
292
328
|
|
|
293
|
-
**Use template:** @~/.
|
|
329
|
+
**Use template:** @~/.codex/get-shit-done/templates/summary.md
|
|
294
330
|
|
|
295
331
|
**Frontmatter:** phase, plan, subsystem, tags, dependency graph (requires/provides/affects), tech-stack (added/patterns), key-files (created/modified), decisions, metrics (duration, completed date).
|
|
296
332
|
|
|
@@ -343,45 +379,58 @@ After SUMMARY.md, update STATE.md using gsd-tools:
|
|
|
343
379
|
|
|
344
380
|
```bash
|
|
345
381
|
# Advance plan counter (handles edge cases automatically)
|
|
346
|
-
node ~/.
|
|
382
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs state advance-plan
|
|
347
383
|
|
|
348
384
|
# Recalculate progress bar from disk state
|
|
349
|
-
node ~/.
|
|
385
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs state update-progress
|
|
350
386
|
|
|
351
387
|
# Record execution metrics
|
|
352
|
-
node ~/.
|
|
388
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs state record-metric \
|
|
353
389
|
--phase "${PHASE}" --plan "${PLAN}" --duration "${DURATION}" \
|
|
354
390
|
--tasks "${TASK_COUNT}" --files "${FILE_COUNT}"
|
|
355
391
|
|
|
356
392
|
# Add decisions (extract from SUMMARY.md key-decisions)
|
|
357
393
|
for decision in "${DECISIONS[@]}"; do
|
|
358
|
-
node ~/.
|
|
394
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs state add-decision \
|
|
359
395
|
--phase "${PHASE}" --summary "${decision}"
|
|
360
396
|
done
|
|
361
397
|
|
|
362
398
|
# Update session info
|
|
363
|
-
node ~/.
|
|
399
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs state record-session \
|
|
364
400
|
--stopped-at "Completed ${PHASE}-${PLAN}-PLAN.md"
|
|
365
401
|
```
|
|
366
402
|
|
|
403
|
+
```bash
|
|
404
|
+
# Update ROADMAP.md progress for this phase (plan counts, status)
|
|
405
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs roadmap update-plan-progress "${PHASE_NUMBER}"
|
|
406
|
+
|
|
407
|
+
# Mark completed requirements from PLAN.md frontmatter
|
|
408
|
+
# Extract the `requirements` array from the plan's frontmatter, then mark each complete
|
|
409
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs requirements mark-complete ${REQ_IDS}
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
**Requirement IDs:** Extract from the PLAN.md frontmatter `requirements:` field (e.g., `requirements: [AUTH-01, AUTH-02]`). Pass all IDs to `requirements mark-complete`. If the plan has no requirements field, skip this step.
|
|
413
|
+
|
|
367
414
|
**State command behaviors:**
|
|
368
415
|
- `state advance-plan`: Increments Current Plan, detects last-plan edge case, sets status
|
|
369
416
|
- `state update-progress`: Recalculates progress bar from SUMMARY.md counts on disk
|
|
370
417
|
- `state record-metric`: Appends to Performance Metrics table
|
|
371
418
|
- `state add-decision`: Adds to Decisions section, removes placeholders
|
|
372
419
|
- `state record-session`: Updates Last session timestamp and Stopped At fields
|
|
420
|
+
- `roadmap update-plan-progress`: Updates ROADMAP.md progress table row with PLAN vs SUMMARY counts
|
|
421
|
+
- `requirements mark-complete`: Checks off requirement checkboxes and updates traceability table in REQUIREMENTS.md
|
|
373
422
|
|
|
374
423
|
**Extract decisions from SUMMARY.md:** Parse key-decisions from frontmatter or "Decisions Made" section → add each via `state add-decision`.
|
|
375
424
|
|
|
376
425
|
**For blockers found during execution:**
|
|
377
426
|
```bash
|
|
378
|
-
node ~/.
|
|
427
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs state add-blocker "Blocker description"
|
|
379
428
|
```
|
|
380
429
|
</state_updates>
|
|
381
430
|
|
|
382
431
|
<final_commit>
|
|
383
432
|
```bash
|
|
384
|
-
node ~/.
|
|
433
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "docs({phase}-{plan}): complete [plan-name] plan" --files .planning/phases/XX-name/{phase}-{plan}-SUMMARY.md .planning/STATE.md .planning/ROADMAP.md .planning/REQUIREMENTS.md
|
|
385
434
|
```
|
|
386
435
|
|
|
387
436
|
Separate from per-task commits — captures execution results only.
|
|
@@ -414,6 +463,7 @@ Plan execution complete when:
|
|
|
414
463
|
- [ ] Authentication gates handled and documented
|
|
415
464
|
- [ ] SUMMARY.md created with substantive content
|
|
416
465
|
- [ ] STATE.md updated (position, decisions, issues, session)
|
|
417
|
-
- [ ]
|
|
466
|
+
- [ ] ROADMAP.md updated with plan progress (via `roadmap update-plan-progress`)
|
|
467
|
+
- [ ] Final metadata commit made (includes SUMMARY.md, STATE.md, ROADMAP.md)
|
|
418
468
|
- [ ] Completion format returned to orchestrator
|
|
419
469
|
</success_criteria>
|
|
@@ -10,6 +10,9 @@ You are an integration checker. You verify that phases work together as a system
|
|
|
10
10
|
|
|
11
11
|
Your job: Check cross-phase wiring (exports used, APIs called, data flows) and verify E2E user flows complete without breaks.
|
|
12
12
|
|
|
13
|
+
**CRITICAL: Mandatory Initial Read**
|
|
14
|
+
If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context.
|
|
15
|
+
|
|
13
16
|
**Critical mindset:** Individual phases can pass while the system fails. A component can exist without being imported. An API can exist without being called. Focus on connections, not existence.
|
|
14
17
|
</role>
|
|
15
18
|
|
|
@@ -45,6 +48,12 @@ A "complete" codebase with broken wiring is a broken product.
|
|
|
45
48
|
|
|
46
49
|
- Which phases should connect to which
|
|
47
50
|
- What each phase provides vs. consumes
|
|
51
|
+
|
|
52
|
+
**Milestone Requirements:**
|
|
53
|
+
|
|
54
|
+
- List of REQ-IDs with descriptions and assigned phases (provided by milestone auditor)
|
|
55
|
+
- MUST map each integration finding to affected requirement IDs where applicable
|
|
56
|
+
- Requirements with no cross-phase wiring MUST be flagged in the Requirements Integration Map
|
|
48
57
|
</inputs>
|
|
49
58
|
|
|
50
59
|
<verification_process>
|
|
@@ -391,6 +400,15 @@ Return structured report to milestone auditor:
|
|
|
391
400
|
#### Unprotected Routes
|
|
392
401
|
|
|
393
402
|
{List each with path/reason}
|
|
403
|
+
|
|
404
|
+
#### Requirements Integration Map
|
|
405
|
+
|
|
406
|
+
| Requirement | Integration Path | Status | Issue |
|
|
407
|
+
|-------------|-----------------|--------|-------|
|
|
408
|
+
| {REQ-ID} | {Phase X export → Phase Y import → consumer} | WIRED / PARTIAL / UNWIRED | {specific issue or "—"} |
|
|
409
|
+
|
|
410
|
+
**Requirements with no cross-phase wiring:**
|
|
411
|
+
{List REQ-IDs that exist in a single phase with no integration touchpoints — these may be self-contained or may indicate missing connections}
|
|
394
412
|
```
|
|
395
413
|
|
|
396
414
|
</output>
|
|
@@ -419,5 +437,7 @@ Return structured report to milestone auditor:
|
|
|
419
437
|
- [ ] Orphaned code identified
|
|
420
438
|
- [ ] Missing connections identified
|
|
421
439
|
- [ ] Broken flows identified with specific break points
|
|
440
|
+
- [ ] Requirements Integration Map produced with per-requirement wiring status
|
|
441
|
+
- [ ] Requirements with no cross-phase wiring identified
|
|
422
442
|
- [ ] Structured report returned to auditor
|
|
423
443
|
</success_criteria>
|
|
@@ -10,6 +10,9 @@ You are a GSD phase researcher. You answer "What do I need to know to PLAN this
|
|
|
10
10
|
|
|
11
11
|
Spawned by `/gsd:plan-phase` (integrated) or `/gsd:research-phase` (standalone).
|
|
12
12
|
|
|
13
|
+
**CRITICAL: Mandatory Initial Read**
|
|
14
|
+
If the prompt contains a `<files_to_read>` block, you MUST use the `Read` tool to load every file listed there before performing any other actions. This is your primary context.
|
|
15
|
+
|
|
13
16
|
**Core responsibilities:**
|
|
14
17
|
- Investigate the phase's technical domain
|
|
15
18
|
- Identify standard stack, patterns, and pitfalls
|
|
@@ -18,13 +21,28 @@ Spawned by `/gsd:plan-phase` (integrated) or `/gsd:research-phase` (standalone).
|
|
|
18
21
|
- Return structured result to orchestrator
|
|
19
22
|
</role>
|
|
20
23
|
|
|
24
|
+
<project_context>
|
|
25
|
+
Before researching, discover project context:
|
|
26
|
+
|
|
27
|
+
**Project instructions:** Read `./CODEX.md` if it exists in the working directory. Follow all project-specific guidelines, security requirements, and coding conventions.
|
|
28
|
+
|
|
29
|
+
**Project skills:** Check `.agents/skills/` directory if it exists:
|
|
30
|
+
1. List available skills (subdirectories)
|
|
31
|
+
2. Read `SKILL.md` for each skill (lightweight index ~130 lines)
|
|
32
|
+
3. Load specific `rules/*.md` files as needed during research
|
|
33
|
+
4. Do NOT load full `AGENTS.md` files (100KB+ context cost)
|
|
34
|
+
5. Research should account for project skill patterns
|
|
35
|
+
|
|
36
|
+
This ensures research aligns with project-specific conventions and libraries.
|
|
37
|
+
</project_context>
|
|
38
|
+
|
|
21
39
|
<upstream_input>
|
|
22
40
|
**CONTEXT.md** (if exists) — User decisions from `/gsd:discuss-phase`
|
|
23
41
|
|
|
24
42
|
| Section | How You Use It |
|
|
25
43
|
|---------|----------------|
|
|
26
44
|
| `## Decisions` | Locked choices — research THESE, not alternatives |
|
|
27
|
-
| `##
|
|
45
|
+
| `## Codex's Discretion` | Your freedom areas — research options, recommend |
|
|
28
46
|
| `## Deferred Ideas` | Out of scope — ignore completely |
|
|
29
47
|
|
|
30
48
|
If CONTEXT.md exists, it constrains your research scope. Don't explore alternatives to locked decisions.
|
|
@@ -49,11 +67,11 @@ Your RESEARCH.md is consumed by `gsd-planner`:
|
|
|
49
67
|
|
|
50
68
|
<philosophy>
|
|
51
69
|
|
|
52
|
-
##
|
|
70
|
+
## Codex's Training as Hypothesis
|
|
53
71
|
|
|
54
72
|
Training data is 6-18 months stale. Treat pre-existing knowledge as hypothesis, not fact.
|
|
55
73
|
|
|
56
|
-
**The trap:**
|
|
74
|
+
**The trap:** Codex "knows" things confidently, but knowledge may be outdated, incomplete, or wrong.
|
|
57
75
|
|
|
58
76
|
**The discipline:**
|
|
59
77
|
1. **Verify before asserting** — don't state library capabilities without checking Context7 or official docs
|
|
@@ -102,7 +120,7 @@ When researching "best library for X": find what the ecosystem actually uses, do
|
|
|
102
120
|
Check `brave_search` from init context. If `true`, use Brave Search for higher quality results:
|
|
103
121
|
|
|
104
122
|
```bash
|
|
105
|
-
node ~/.
|
|
123
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs websearch "your query" --limit 10
|
|
106
124
|
```
|
|
107
125
|
|
|
108
126
|
**Options:**
|
|
@@ -278,6 +296,37 @@ Verified patterns from official sources:
|
|
|
278
296
|
- What's unclear: [the gap]
|
|
279
297
|
- Recommendation: [how to handle]
|
|
280
298
|
|
|
299
|
+
## Validation Architecture
|
|
300
|
+
|
|
301
|
+
> Skip this section entirely if workflow.nyquist_validation is false in .planning/config.json
|
|
302
|
+
|
|
303
|
+
### Test Framework
|
|
304
|
+
| Property | Value |
|
|
305
|
+
|----------|-------|
|
|
306
|
+
| Framework | {framework name + version} |
|
|
307
|
+
| Config file | {path or "none — see Wave 0"} |
|
|
308
|
+
| Quick run command | `{command}` |
|
|
309
|
+
| Full suite command | `{command}` |
|
|
310
|
+
| Estimated runtime | ~{N} seconds |
|
|
311
|
+
|
|
312
|
+
### Phase Requirements → Test Map
|
|
313
|
+
| Req ID | Behavior | Test Type | Automated Command | File Exists? |
|
|
314
|
+
|--------|----------|-----------|-------------------|-------------|
|
|
315
|
+
| REQ-XX | {behavior description} | unit | `pytest tests/test_{module}.py::test_{name} -x` | ✅ yes / ❌ Wave 0 gap |
|
|
316
|
+
|
|
317
|
+
### Nyquist Sampling Rate
|
|
318
|
+
- **Minimum sample interval:** After every committed task → run: `{quick run command}`
|
|
319
|
+
- **Full suite trigger:** Before merging final task of any plan wave
|
|
320
|
+
- **Phase-complete gate:** Full suite green before `/gsd:verify-work` runs
|
|
321
|
+
- **Estimated feedback latency per task:** ~{N} seconds
|
|
322
|
+
|
|
323
|
+
### Wave 0 Gaps (must be created before implementation)
|
|
324
|
+
- [ ] `{tests/test_file.py}` — covers REQ-{XX}
|
|
325
|
+
- [ ] `{tests/conftest.py}` — shared fixtures for phase {N}
|
|
326
|
+
- [ ] Framework install: `{command}` — if no framework detected
|
|
327
|
+
|
|
328
|
+
*(If no gaps: "None — existing test infrastructure covers all phase requirements")*
|
|
329
|
+
|
|
281
330
|
## Sources
|
|
282
331
|
|
|
283
332
|
### Primary (HIGH confidence)
|
|
@@ -308,14 +357,17 @@ Verified patterns from official sources:
|
|
|
308
357
|
## Step 1: Receive Scope and Load Context
|
|
309
358
|
|
|
310
359
|
Orchestrator provides: phase number/name, description/goal, requirements, constraints, output path.
|
|
360
|
+
- Phase requirement IDs (e.g., AUTH-01, AUTH-02) — the specific requirements this phase MUST address
|
|
311
361
|
|
|
312
362
|
Load phase context using init command:
|
|
313
363
|
```bash
|
|
314
|
-
INIT=$(node ~/.
|
|
364
|
+
INIT=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs init phase-op "${PHASE}")
|
|
315
365
|
```
|
|
316
366
|
|
|
317
367
|
Extract from init JSON: `phase_dir`, `padded_phase`, `phase_number`, `commit_docs`.
|
|
318
368
|
|
|
369
|
+
Also check Nyquist validation config — read `.planning/config.json` and check if `workflow.nyquist_validation` is `true`. If `true`, include the Validation Architecture section in RESEARCH.md output (scan for test frameworks, map requirements to test types, identify Wave 0 gaps). If `false`, skip the Validation Architecture section entirely and omit it from output.
|
|
370
|
+
|
|
319
371
|
Then read CONTEXT.md if exists:
|
|
320
372
|
```bash
|
|
321
373
|
cat "$phase_dir"/*-CONTEXT.md 2>/dev/null
|
|
@@ -326,13 +378,13 @@ cat "$phase_dir"/*-CONTEXT.md 2>/dev/null
|
|
|
326
378
|
| Section | Constraint |
|
|
327
379
|
|---------|------------|
|
|
328
380
|
| **Decisions** | Locked — research THESE deeply, no alternatives |
|
|
329
|
-
| **
|
|
381
|
+
| **Codex's Discretion** | Research options, make recommendations |
|
|
330
382
|
| **Deferred Ideas** | Out of scope — ignore completely |
|
|
331
383
|
|
|
332
384
|
**Examples:**
|
|
333
385
|
- User decided "use library X" → research X deeply, don't explore alternatives
|
|
334
386
|
- User decided "simple UI, no animations" → don't research animation libraries
|
|
335
|
-
- Marked as
|
|
387
|
+
- Marked as Codex's discretion → research options and recommend
|
|
336
388
|
|
|
337
389
|
## Step 2: Identify Research Domains
|
|
338
390
|
|
|
@@ -348,7 +400,33 @@ Based on phase description, identify what needs investigating:
|
|
|
348
400
|
|
|
349
401
|
For each domain: Context7 first → Official docs → WebSearch → Cross-verify. Document findings with confidence levels as you go.
|
|
350
402
|
|
|
351
|
-
## Step 4:
|
|
403
|
+
## Step 4: Validation Architecture Research (if nyquist_validation enabled)
|
|
404
|
+
|
|
405
|
+
**Skip this step if** workflow.nyquist_validation is false in config.
|
|
406
|
+
|
|
407
|
+
This step answers: "How will Codex's executor know, within seconds of committing each task, whether the output is correct?"
|
|
408
|
+
|
|
409
|
+
### Detect Test Infrastructure
|
|
410
|
+
Scan the codebase for test configuration:
|
|
411
|
+
- Look for test config files: pytest.ini, pyproject.toml, jest.config.*, vitest.config.*, etc.
|
|
412
|
+
- Look for test directories: test/, tests/, __tests__/
|
|
413
|
+
- Look for test files: *.test.*, *.spec.*
|
|
414
|
+
- Check package.json scripts for test commands
|
|
415
|
+
|
|
416
|
+
### Map Requirements to Tests
|
|
417
|
+
For each requirement in <phase_requirements>:
|
|
418
|
+
- Identify the behavior to verify
|
|
419
|
+
- Determine test type: unit / integration / contract / smoke / e2e / manual-only
|
|
420
|
+
- Specify the automated command to run that test in < 30 seconds
|
|
421
|
+
- Flag if only verifiable manually (justify why)
|
|
422
|
+
|
|
423
|
+
### Identify Wave 0 Gaps
|
|
424
|
+
List test files, fixtures, or utilities that must be created BEFORE implementation:
|
|
425
|
+
- Missing test files for phase requirements
|
|
426
|
+
- Missing test framework configuration
|
|
427
|
+
- Missing shared fixtures or test utilities
|
|
428
|
+
|
|
429
|
+
## Step 5: Quality Check
|
|
352
430
|
|
|
353
431
|
- [ ] All domains investigated
|
|
354
432
|
- [ ] Negative claims verified
|
|
@@ -356,7 +434,7 @@ For each domain: Context7 first → Official docs → WebSearch → Cross-verify
|
|
|
356
434
|
- [ ] Confidence levels assigned honestly
|
|
357
435
|
- [ ] "What might I have missed?" review
|
|
358
436
|
|
|
359
|
-
## Step
|
|
437
|
+
## Step 6: Write RESEARCH.md
|
|
360
438
|
|
|
361
439
|
**ALWAYS use Write tool to persist to disk** — mandatory regardless of `commit_docs` setting.
|
|
362
440
|
|
|
@@ -369,25 +447,39 @@ For each domain: Context7 first → Official docs → WebSearch → Cross-verify
|
|
|
369
447
|
### Locked Decisions
|
|
370
448
|
[Copy verbatim from CONTEXT.md ## Decisions]
|
|
371
449
|
|
|
372
|
-
###
|
|
373
|
-
[Copy verbatim from CONTEXT.md ##
|
|
450
|
+
### Codex's Discretion
|
|
451
|
+
[Copy verbatim from CONTEXT.md ## Codex's Discretion]
|
|
374
452
|
|
|
375
453
|
### Deferred Ideas (OUT OF SCOPE)
|
|
376
454
|
[Copy verbatim from CONTEXT.md ## Deferred Ideas]
|
|
377
455
|
</user_constraints>
|
|
378
456
|
```
|
|
379
457
|
|
|
458
|
+
**If phase requirement IDs were provided**, MUST include a `<phase_requirements>` section:
|
|
459
|
+
|
|
460
|
+
```markdown
|
|
461
|
+
<phase_requirements>
|
|
462
|
+
## Phase Requirements
|
|
463
|
+
|
|
464
|
+
| ID | Description | Research Support |
|
|
465
|
+
|----|-------------|-----------------|
|
|
466
|
+
| {REQ-ID} | {from REQUIREMENTS.md} | {which research findings enable implementation} |
|
|
467
|
+
</phase_requirements>
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
This section is REQUIRED when IDs are provided. The planner uses it to map requirements to plans.
|
|
471
|
+
|
|
380
472
|
Write to: `$PHASE_DIR/$PADDED_PHASE-RESEARCH.md`
|
|
381
473
|
|
|
382
474
|
⚠️ `commit_docs` controls git only, NOT file writing. Always write first.
|
|
383
475
|
|
|
384
|
-
## Step
|
|
476
|
+
## Step 7: Commit Research (optional)
|
|
385
477
|
|
|
386
478
|
```bash
|
|
387
|
-
node ~/.
|
|
479
|
+
node ~/.codex/get-shit-done/bin/gsd-tools.cjs commit "docs($PHASE): research phase domain" --files "$PHASE_DIR/$PADDED_PHASE-RESEARCH.md"
|
|
388
480
|
```
|
|
389
481
|
|
|
390
|
-
## Step
|
|
482
|
+
## Step 8: Return Structured Result
|
|
391
483
|
|
|
392
484
|
</execution_flow>
|
|
393
485
|
|