@undeemed/get-shit-done-codex 1.20.3 → 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.
Files changed (68) hide show
  1. package/README.md +13 -3
  2. package/agents/gsd-codebase-mapper.md +3 -0
  3. package/agents/gsd-debugger.md +3 -0
  4. package/agents/gsd-executor.md +52 -2
  5. package/agents/gsd-integration-checker.md +20 -0
  6. package/agents/gsd-phase-researcher.md +96 -4
  7. package/agents/gsd-plan-checker.md +125 -3
  8. package/agents/gsd-planner.md +38 -3
  9. package/agents/gsd-project-researcher.md +3 -0
  10. package/agents/gsd-research-synthesizer.md +3 -0
  11. package/agents/gsd-roadmapper.md +3 -0
  12. package/agents/gsd-verifier.md +25 -8
  13. package/commands/gsd/add-phase.md +6 -2
  14. package/commands/gsd/add-todo.md +6 -1
  15. package/commands/gsd/audit-milestone.md +1 -7
  16. package/commands/gsd/check-todos.md +6 -2
  17. package/commands/gsd/debug.md +3 -1
  18. package/commands/gsd/discuss-phase.md +1 -5
  19. package/commands/gsd/execute-phase.md +1 -2
  20. package/commands/gsd/insert-phase.md +1 -2
  21. package/commands/gsd/list-phase-assumptions.md +1 -5
  22. package/commands/gsd/new-milestone.md +1 -8
  23. package/commands/gsd/pause-work.md +4 -1
  24. package/commands/gsd/plan-milestone-gaps.md +1 -7
  25. package/commands/gsd/quick.md +2 -1
  26. package/commands/gsd/remove-phase.md +1 -2
  27. package/commands/gsd/research-phase.md +17 -15
  28. package/commands/gsd/verify-work.md +1 -2
  29. package/get-shit-done/bin/gsd-tools.cjs +168 -4858
  30. package/get-shit-done/bin/lib/commands.cjs +556 -0
  31. package/get-shit-done/bin/lib/config.cjs +162 -0
  32. package/get-shit-done/bin/lib/core.cjs +398 -0
  33. package/get-shit-done/bin/lib/frontmatter.cjs +299 -0
  34. package/get-shit-done/bin/lib/init.cjs +694 -0
  35. package/get-shit-done/bin/lib/milestone.cjs +215 -0
  36. package/get-shit-done/bin/lib/phase.cjs +873 -0
  37. package/get-shit-done/bin/lib/roadmap.cjs +298 -0
  38. package/get-shit-done/bin/lib/state.cjs +490 -0
  39. package/get-shit-done/bin/lib/template.cjs +222 -0
  40. package/get-shit-done/bin/lib/verify.cjs +772 -0
  41. package/get-shit-done/references/checkpoints.md +1 -0
  42. package/get-shit-done/templates/VALIDATION.md +104 -0
  43. package/get-shit-done/templates/config.json +2 -1
  44. package/get-shit-done/templates/phase-prompt.md +2 -0
  45. package/get-shit-done/templates/roadmap.md +1 -1
  46. package/get-shit-done/templates/summary.md +2 -0
  47. package/get-shit-done/workflows/audit-milestone.md +63 -8
  48. package/get-shit-done/workflows/complete-milestone.md +26 -0
  49. package/get-shit-done/workflows/diagnose-issues.md +1 -1
  50. package/get-shit-done/workflows/discuss-phase.md +68 -13
  51. package/get-shit-done/workflows/execute-phase.md +54 -9
  52. package/get-shit-done/workflows/execute-plan.md +17 -13
  53. package/get-shit-done/workflows/map-codebase.md +32 -44
  54. package/get-shit-done/workflows/new-milestone.md +16 -7
  55. package/get-shit-done/workflows/new-project.md +34 -31
  56. package/get-shit-done/workflows/plan-milestone-gaps.md +23 -5
  57. package/get-shit-done/workflows/plan-phase.md +106 -76
  58. package/get-shit-done/workflows/progress.md +14 -26
  59. package/get-shit-done/workflows/quick.md +24 -15
  60. package/get-shit-done/workflows/research-phase.md +10 -11
  61. package/get-shit-done/workflows/settings.md +16 -3
  62. package/get-shit-done/workflows/transition.md +5 -0
  63. package/get-shit-done/workflows/verify-work.md +11 -12
  64. package/hooks/dist/gsd-context-monitor.js +122 -0
  65. package/hooks/dist/gsd-statusline.js +17 -0
  66. package/package.json +2 -2
  67. package/scripts/build-hooks.js +1 -0
  68. package/get-shit-done/bin/gsd-tools.test.cjs +0 -2273
@@ -10,6 +10,9 @@ You are a GSD phase verifier. You verify that a phase achieved its GOAL, not jus
10
10
 
11
11
  Your job: Goal-backward verification. Start from what the phase SHOULD deliver, verify it actually exists and works in the codebase.
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:** Do NOT trust SUMMARY.md claims. SUMMARYs document what Codex SAID it did. You verify what ACTUALLY exists in the code. These often differ.
14
17
  </role>
15
18
 
@@ -233,17 +236,31 @@ Status: WIRED (state displayed) | NOT_WIRED (state exists, not rendered)
233
236
 
234
237
  ## Step 6: Check Requirements Coverage
235
238
 
236
- If REQUIREMENTS.md has requirements mapped to this phase:
239
+ **6a. Extract requirement IDs from PLAN frontmatter:**
237
240
 
238
241
  ```bash
239
- grep -E "Phase $PHASE_NUM" .planning/REQUIREMENTS.md 2>/dev/null
242
+ grep -A5 "^requirements:" "$PHASE_DIR"/*-PLAN.md 2>/dev/null
240
243
  ```
241
244
 
242
- For each requirement: parse description identify supporting truths/artifacts → determine status.
245
+ Collect ALL requirement IDs declared across plans for this phase.
246
+
247
+ **6b. Cross-reference against REQUIREMENTS.md:**
248
+
249
+ For each requirement ID from plans:
250
+ 1. Find its full description in REQUIREMENTS.md (`**REQ-ID**: description`)
251
+ 2. Map to supporting truths/artifacts verified in Steps 3-5
252
+ 3. Determine status:
253
+ - ✓ SATISFIED: Implementation evidence found that fulfills the requirement
254
+ - ✗ BLOCKED: No evidence or contradicting evidence
255
+ - ? NEEDS HUMAN: Can't verify programmatically (UI behavior, UX quality)
256
+
257
+ **6c. Check for orphaned requirements:**
258
+
259
+ ```bash
260
+ grep -E "Phase $PHASE_NUM" .planning/REQUIREMENTS.md 2>/dev/null
261
+ ```
243
262
 
244
- - SATISFIED: All supporting truths verified
245
- - ✗ BLOCKED: One or more supporting truths failed
246
- - ? NEEDS HUMAN: Can't verify programmatically
263
+ If REQUIREMENTS.md maps additional IDs to this phase that don't appear in ANY plan's `requirements` field, flag as **ORPHANED** — these requirements were expected but no plan claimed them. ORPHANED requirements MUST appear in the verification report.
247
264
 
248
265
  ## Step 7: Scan for Anti-Patterns
249
266
 
@@ -396,8 +413,8 @@ human_verification: # Only if status: human_needed
396
413
 
397
414
  ### Requirements Coverage
398
415
 
399
- | Requirement | Status | Blocking Issue |
400
- | ----------- | ------ | -------------- |
416
+ | Requirement | Source Plan | Description | Status | Evidence |
417
+ | ----------- | ---------- | ----------- | ------ | -------- |
401
418
 
402
419
  ### Anti-Patterns Found
403
420
 
@@ -19,11 +19,15 @@ Routes to the add-phase workflow which handles:
19
19
  </objective>
20
20
 
21
21
  <execution_context>
22
- @.planning/ROADMAP.md
23
- @.planning/STATE.md
24
22
  @~/.codex/get-shit-done/workflows/add-phase.md
25
23
  </execution_context>
26
24
 
25
+ <context>
26
+ Arguments: $ARGUMENTS (phase description)
27
+
28
+ Roadmap and state are resolved in-workflow via `init phase-op` and targeted tool calls.
29
+ </context>
30
+
27
31
  <process>
28
32
  **Follow the add-phase workflow** from `@~/.codex/get-shit-done/workflows/add-phase.md`.
29
33
 
@@ -23,10 +23,15 @@ Routes to the add-todo workflow which handles:
23
23
  </objective>
24
24
 
25
25
  <execution_context>
26
- @.planning/STATE.md
27
26
  @~/.codex/get-shit-done/workflows/add-todo.md
28
27
  </execution_context>
29
28
 
29
+ <context>
30
+ Arguments: $ARGUMENTS (optional todo description)
31
+
32
+ State is resolved in-workflow via `init todos` and targeted reads.
33
+ </context>
34
+
30
35
  <process>
31
36
  **Follow the add-todo workflow** from `@~/.codex/get-shit-done/workflows/add-todo.md`.
32
37
 
@@ -23,13 +23,7 @@ Verify milestone achieved its definition of done. Check requirements coverage, c
23
23
  <context>
24
24
  Version: $ARGUMENTS (optional — defaults to current milestone)
25
25
 
26
- **Original Intent:**
27
- @.planning/PROJECT.md
28
- @.planning/REQUIREMENTS.md
29
-
30
- **Planned Work:**
31
- @.planning/ROADMAP.md
32
- @.planning/config.json (if exists)
26
+ Core planning files are resolved in-workflow (`init milestone-op`) and loaded only as needed.
33
27
 
34
28
  **Completed Work:**
35
29
  Glob: .planning/phases/*/*-SUMMARY.md
@@ -21,11 +21,15 @@ Routes to the check-todos workflow which handles:
21
21
  </objective>
22
22
 
23
23
  <execution_context>
24
- @.planning/STATE.md
25
- @.planning/ROADMAP.md
26
24
  @~/.codex/get-shit-done/workflows/check-todos.md
27
25
  </execution_context>
28
26
 
27
+ <context>
28
+ Arguments: $ARGUMENTS (optional area filter)
29
+
30
+ Todo state and roadmap correlation are loaded in-workflow using `init todos` and targeted reads.
31
+ </context>
32
+
29
33
  <process>
30
34
  **Follow the check-todos workflow** from `@~/.codex/get-shit-done/workflows/check-todos.md`.
31
35
 
@@ -129,7 +129,9 @@ Continue debugging {slug}. Evidence is in the debug file.
129
129
  </objective>
130
130
 
131
131
  <prior_state>
132
- Debug file: @.planning/debug/{slug}.md
132
+ <files_to_read>
133
+ - .planning/debug/{slug}.md (Debug session state)
134
+ </files_to_read>
133
135
  </prior_state>
134
136
 
135
137
  <checkpoint_response>
@@ -32,11 +32,7 @@ Extract implementation decisions that downstream agents need — researcher and
32
32
  <context>
33
33
  Phase number: $ARGUMENTS (required)
34
34
 
35
- **Load project state:**
36
- @.planning/STATE.md
37
-
38
- **Load roadmap:**
39
- @.planning/ROADMAP.md
35
+ Context files are resolved in-workflow using `init phase-op` and roadmap/state tool calls.
40
36
  </context>
41
37
 
42
38
  <process>
@@ -32,8 +32,7 @@ Phase: $ARGUMENTS
32
32
  **Flags:**
33
33
  - `--gaps-only` — Execute only gap closure plans (plans with `gap_closure: true` in frontmatter). Use after verify-work creates fix plans.
34
34
 
35
- @.planning/ROADMAP.md
36
- @.planning/STATE.md
35
+ Context files are resolved inside the workflow via `gsd-tools init execute-phase` and per-subagent `<files_to_read>` blocks.
37
36
  </context>
38
37
 
39
38
  <process>
@@ -23,8 +23,7 @@ Purpose: Handle urgent work discovered during execution without renumbering enti
23
23
  <context>
24
24
  Arguments: $ARGUMENTS (format: <after-phase-number> <description>)
25
25
 
26
- @.planning/ROADMAP.md
27
- @.planning/STATE.md
26
+ Roadmap and state are resolved in-workflow via `init phase-op` and targeted tool calls.
28
27
  </context>
29
28
 
30
29
  <process>
@@ -23,11 +23,7 @@ Output: Conversational output only (no file creation) - ends with "What do you t
23
23
  <context>
24
24
  Phase number: $ARGUMENTS (required)
25
25
 
26
- **Load project state first:**
27
- @.planning/STATE.md
28
-
29
- **Load roadmap:**
30
- @.planning/ROADMAP.md
26
+ Project state and roadmap are loaded in-workflow using targeted reads.
31
27
  </context>
32
28
 
33
29
  <process>
@@ -35,14 +35,7 @@ Brownfield equivalent of new-project. Project exists, PROJECT.md has history. Ga
35
35
  <context>
36
36
  Milestone name: $ARGUMENTS (optional - will prompt if not provided)
37
37
 
38
- **Load project context:**
39
- @.planning/PROJECT.md
40
- @.planning/STATE.md
41
- @.planning/MILESTONES.md
42
- @.planning/config.json
43
-
44
- **Load milestone context (if exists, from /gsd:discuss-milestone):**
45
- @.planning/MILESTONE-CONTEXT.md
38
+ Project and milestone context files are resolved inside the workflow (`init new-milestone`) and delegated via `<files_to_read>` blocks where subagents are used.
46
39
  </context>
47
40
 
48
41
  <process>
@@ -19,10 +19,13 @@ Routes to the pause-work workflow which handles:
19
19
  </objective>
20
20
 
21
21
  <execution_context>
22
- @.planning/STATE.md
23
22
  @~/.codex/get-shit-done/workflows/pause-work.md
24
23
  </execution_context>
25
24
 
25
+ <context>
26
+ State and phase progress are gathered in-workflow with targeted reads.
27
+ </context>
28
+
26
29
  <process>
27
30
  **Follow the pause-work workflow** from `@~/.codex/get-shit-done/workflows/pause-work.md`.
28
31
 
@@ -25,13 +25,7 @@ One command creates all fix phases — no manual `/gsd:add-phase` per gap.
25
25
  **Audit results:**
26
26
  Glob: .planning/v*-MILESTONE-AUDIT.md (use most recent)
27
27
 
28
- **Original intent (for prioritization):**
29
- @.planning/PROJECT.md
30
- @.planning/REQUIREMENTS.md
31
-
32
- **Current state:**
33
- @.planning/ROADMAP.md
34
- @.planning/STATE.md
28
+ Original intent and current planning state are loaded on demand inside the workflow.
35
29
  </context>
36
30
 
37
31
  <process>
@@ -30,8 +30,9 @@ Quick mode is the same system with a shorter path:
30
30
  </execution_context>
31
31
 
32
32
  <context>
33
- @.planning/STATE.md
34
33
  $ARGUMENTS
34
+
35
+ Context files are resolved inside the workflow (`init quick`) and delegated via `<files_to_read>` blocks.
35
36
  </context>
36
37
 
37
38
  <process>
@@ -22,8 +22,7 @@ Output: Phase deleted, all subsequent phases renumbered, git commit as historica
22
22
  <context>
23
23
  Phase: $ARGUMENTS
24
24
 
25
- @.planning/ROADMAP.md
26
- @.planning/STATE.md
25
+ Roadmap and state are resolved in-workflow via `init phase-op` and targeted reads.
27
26
  </context>
28
27
 
29
28
  <process>
@@ -37,7 +37,7 @@ Normalize phase input in step 1 before any directory lookups.
37
37
  INIT=$(node ~/.codex/get-shit-done/bin/gsd-tools.cjs init phase-op "$ARGUMENTS")
38
38
  ```
39
39
 
40
- Extract from init JSON: `phase_dir`, `phase_number`, `phase_name`, `phase_found`, `commit_docs`, `has_research`.
40
+ Extract from init JSON: `phase_dir`, `phase_number`, `phase_name`, `phase_found`, `commit_docs`, `has_research`, `state_path`, `requirements_path`, `context_path`, `research_path`.
41
41
 
42
42
  Resolve researcher model:
43
43
  ```bash
@@ -64,15 +64,12 @@ ls .planning/phases/${PHASE}-*/RESEARCH.md 2>/dev/null
64
64
 
65
65
  ## 3. Gather Phase Context
66
66
 
67
- ```bash
68
- # Phase section already loaded in PHASE_INFO
69
- echo "$PHASE_INFO" | jq -r '.section'
70
- cat .planning/REQUIREMENTS.md 2>/dev/null
71
- cat .planning/phases/${PHASE}-*/*-CONTEXT.md 2>/dev/null
72
- grep -A30 "### Decisions Made" .planning/STATE.md 2>/dev/null
73
- ```
67
+ Use paths from INIT (do not inline file contents in orchestrator context):
68
+ - `requirements_path`
69
+ - `context_path`
70
+ - `state_path`
74
71
 
75
- Present summary with phase description, requirements, prior decisions.
72
+ Present summary with phase description and what files the researcher will load.
76
73
 
77
74
  ## 4. Spawn gsd-phase-researcher Agent
78
75
 
@@ -101,12 +98,15 @@ Research implementation approach for Phase {phase_number}: {phase_name}
101
98
  Mode: ecosystem
102
99
  </objective>
103
100
 
104
- <context>
101
+ <files_to_read>
102
+ - {requirements_path} (Requirements)
103
+ - {context_path} (Phase context from discuss-phase, if exists)
104
+ - {state_path} (Prior project decisions and blockers)
105
+ </files_to_read>
106
+
107
+ <additional_context>
105
108
  **Phase description:** {phase_description}
106
- **Requirements:** {requirements_list}
107
- **Prior decisions:** {decisions_if_any}
108
- **Phase context:** {context_md_content}
109
- </context>
109
+ </additional_context>
110
110
 
111
111
  <downstream_consumer>
112
112
  Your RESEARCH.md will be loaded by `/gsd:plan-phase` which uses specific sections:
@@ -158,7 +158,9 @@ Continue research for Phase {phase_number}: {phase_name}
158
158
  </objective>
159
159
 
160
160
  <prior_state>
161
- Research file: @.planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md
161
+ <files_to_read>
162
+ - .planning/phases/${PHASE}-{slug}/${PHASE}-RESEARCH.md (Existing research)
163
+ </files_to_read>
162
164
  </prior_state>
163
165
 
164
166
  <checkpoint_response>
@@ -29,8 +29,7 @@ Phase: $ARGUMENTS (optional)
29
29
  - If provided: Test specific phase (e.g., "4")
30
30
  - If not provided: Check for active sessions or prompt for phase
31
31
 
32
- @.planning/STATE.md
33
- @.planning/ROADMAP.md
32
+ Context files are resolved inside the workflow (`init verify-work`) and delegated via `<files_to_read>` blocks.
34
33
  </context>
35
34
 
36
35
  <process>