gsdd-cli 0.18.5 → 0.19.1

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 (101) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +610 -608
  3. package/agents/DISTILLATION.md +421 -421
  4. package/agents/README.md +62 -62
  5. package/agents/approach-explorer.md +370 -361
  6. package/agents/debugger.md +82 -82
  7. package/agents/executor.md +473 -394
  8. package/agents/integration-checker.md +318 -318
  9. package/agents/mapper.md +103 -103
  10. package/agents/planner.md +342 -313
  11. package/agents/researcher.md +84 -84
  12. package/agents/roadmapper.md +296 -296
  13. package/agents/synthesizer.md +236 -236
  14. package/agents/verifier.md +337 -337
  15. package/bin/adapters/agents.mjs +34 -34
  16. package/bin/adapters/claude.mjs +193 -191
  17. package/bin/adapters/codex.mjs +85 -85
  18. package/bin/adapters/index.mjs +20 -20
  19. package/bin/adapters/opencode.mjs +280 -278
  20. package/bin/gsdd.mjs +123 -116
  21. package/bin/lib/cli-utils.mjs +28 -28
  22. package/bin/lib/evidence-contract.mjs +325 -112
  23. package/bin/lib/file-ops.mjs +186 -144
  24. package/bin/lib/health-truth.mjs +196 -178
  25. package/bin/lib/health.mjs +246 -226
  26. package/bin/lib/init-flow.mjs +247 -231
  27. package/bin/lib/init-prompts.mjs +248 -247
  28. package/bin/lib/init-runtime.mjs +193 -190
  29. package/bin/lib/init.mjs +17 -17
  30. package/bin/lib/lifecycle-preflight.mjs +760 -326
  31. package/bin/lib/lifecycle-state.mjs +356 -267
  32. package/bin/lib/manifest.mjs +116 -114
  33. package/bin/lib/models.mjs +411 -411
  34. package/bin/lib/phase.mjs +365 -358
  35. package/bin/lib/plan-constants.mjs +35 -30
  36. package/bin/lib/provenance.mjs +109 -106
  37. package/bin/lib/rendering.mjs +119 -83
  38. package/bin/lib/runtime-freshness.mjs +214 -214
  39. package/bin/lib/session-fingerprint.mjs +91 -14
  40. package/bin/lib/templates.mjs +225 -224
  41. package/bin/lib/workspace-root.mjs +2 -1
  42. package/distilled/DESIGN.md +2461 -2323
  43. package/distilled/EVIDENCE-INDEX.md +418 -392
  44. package/distilled/README.md +196 -193
  45. package/distilled/SKILL.md +86 -85
  46. package/distilled/templates/agents.block.md +21 -21
  47. package/distilled/templates/agents.md +6 -6
  48. package/distilled/templates/approach.md +272 -232
  49. package/distilled/templates/auth-matrix.md +78 -78
  50. package/distilled/templates/brownfield-change/CHANGE.md +99 -0
  51. package/distilled/templates/brownfield-change/HANDOFF.md +38 -0
  52. package/distilled/templates/brownfield-change/VERIFICATION.md +56 -0
  53. package/distilled/templates/codebase/architecture.md +110 -110
  54. package/distilled/templates/codebase/concerns.md +95 -95
  55. package/distilled/templates/codebase/conventions.md +193 -193
  56. package/distilled/templates/codebase/stack.md +96 -96
  57. package/distilled/templates/delegates/approach-explorer.md +28 -25
  58. package/distilled/templates/delegates/mapper-arch.md +26 -26
  59. package/distilled/templates/delegates/mapper-concerns.md +27 -27
  60. package/distilled/templates/delegates/mapper-quality.md +28 -28
  61. package/distilled/templates/delegates/mapper-tech.md +25 -25
  62. package/distilled/templates/delegates/plan-checker.md +78 -68
  63. package/distilled/templates/delegates/researcher-architecture.md +30 -30
  64. package/distilled/templates/delegates/researcher-features.md +30 -30
  65. package/distilled/templates/delegates/researcher-pitfalls.md +30 -30
  66. package/distilled/templates/delegates/researcher-stack.md +30 -30
  67. package/distilled/templates/delegates/researcher-synthesizer.md +31 -31
  68. package/distilled/templates/research/architecture.md +57 -57
  69. package/distilled/templates/research/features.md +23 -23
  70. package/distilled/templates/research/pitfalls.md +46 -46
  71. package/distilled/templates/research/stack.md +45 -45
  72. package/distilled/templates/research/summary.md +67 -67
  73. package/distilled/templates/roadmap.md +74 -62
  74. package/distilled/templates/spec.md +110 -110
  75. package/distilled/workflows/audit-milestone.md +303 -271
  76. package/distilled/workflows/complete-milestone.md +349 -332
  77. package/distilled/workflows/execute.md +457 -450
  78. package/distilled/workflows/map-codebase.md +253 -253
  79. package/distilled/workflows/new-milestone.md +242 -238
  80. package/distilled/workflows/new-project.md +398 -398
  81. package/distilled/workflows/pause.md +160 -156
  82. package/distilled/workflows/plan-milestone-gaps.md +183 -183
  83. package/distilled/workflows/plan.md +454 -448
  84. package/distilled/workflows/progress.md +227 -223
  85. package/distilled/workflows/quick.md +351 -347
  86. package/distilled/workflows/resume.md +220 -212
  87. package/distilled/workflows/verify-work.md +260 -260
  88. package/distilled/workflows/verify.md +431 -429
  89. package/docs/BROWNFIELD-PROOF.md +95 -95
  90. package/docs/RUNTIME-SUPPORT.md +80 -69
  91. package/docs/USER-GUIDE.md +394 -386
  92. package/docs/VERIFICATION-DISCIPLINE.md +59 -59
  93. package/docs/claude/context-monitor.md +98 -98
  94. package/docs/proof/consumer-node-cli/README.md +37 -37
  95. package/docs/proof/consumer-node-cli/ROADMAP.md +14 -14
  96. package/docs/proof/consumer-node-cli/SPEC.md +17 -17
  97. package/docs/proof/consumer-node-cli/brief.md +9 -9
  98. package/docs/proof/consumer-node-cli/phases/01-foundation/01-01-PLAN.md +34 -34
  99. package/docs/proof/consumer-node-cli/phases/01-foundation/01-01-SUMMARY.md +10 -10
  100. package/docs/proof/consumer-node-cli/phases/01-foundation/01-VERIFICATION.md +30 -30
  101. package/package.json +62 -61
@@ -1,59 +1,59 @@
1
- # Verification Discipline
2
-
3
- Workspine is not just a set of prompts. Its core delivery claim depends on explicit checking and verification loops that survive across runtimes.
4
-
5
- ## The delivery contract
6
-
7
- The durable loop is:
8
-
9
- `init -> plan -> execute -> verify`
10
-
11
- Within that loop, the framework preserves two important review seams.
12
-
13
- ### 1. Plan checking
14
-
15
- `gsdd-plan` does not stop at "write a plan."
16
-
17
- It includes a review loop where the plan is checked against concrete dimensions such as:
18
-
19
- - requirement coverage
20
- - task completeness
21
- - dependency correctness
22
- - scope sanity
23
- - context compliance
24
-
25
- On runtimes with stronger native support, that can be a fresh-context checker path. On weaker surfaces, the framework stays honest about reduced assurance instead of pretending the same check happened.
26
-
27
- ### 2. Verification after execution
28
-
29
- `gsdd-verify` uses a three-level gate:
30
-
31
- - **Exists** — the expected artifacts are present
32
- - **Substantive** — the output is real, not empty or stubbed
33
- - **Wired** — the behavior is connected and actually works
34
-
35
- This is paired with anti-pattern checks so "files exist" does not get mistaken for "the work is done."
36
-
37
- ## Anti-false-closure in practice
38
-
39
- The exported brownfield proof pack demonstrates the intended behavior:
40
-
41
- - the first implementation missed a real requirement
42
- - verification caught it
43
- - the repo then recorded the fix and the successful re-verification
44
-
45
- See `docs/BROWNFIELD-PROOF.md` for the reader-facing narrative and `docs/proof/consumer-node-cli/README.md` for the tracked artifact chain.
46
-
47
- ## What this note does and does not claim
48
-
49
- This note explains the release-floor discipline that Workspine can prove publicly today.
50
-
51
- It does **not** claim:
52
-
53
- - perfect parity of checker mechanics on every runtime
54
- - autonomous orchestration platform behavior
55
- - proof of every possible brownfield workflow shape
56
-
57
- It claims something narrower and more defensible:
58
-
59
- Workspine keeps a repo-native delivery contract with explicit review and verification seams, and that contract is already strong enough to catch and recover from real misses.
1
+ # Verification Discipline
2
+
3
+ Workspine is not just a set of prompts. Its core delivery claim depends on explicit checking and verification loops that survive across runtimes.
4
+
5
+ ## The delivery contract
6
+
7
+ The durable loop is:
8
+
9
+ `init -> plan -> execute -> verify`
10
+
11
+ Within that loop, the framework preserves two important review seams.
12
+
13
+ ### 1. Plan checking
14
+
15
+ `gsdd-plan` does not stop at "write a plan."
16
+
17
+ It includes a review loop where the plan is checked against concrete dimensions such as:
18
+
19
+ - requirement coverage
20
+ - task completeness
21
+ - dependency correctness
22
+ - scope sanity
23
+ - context compliance
24
+
25
+ On runtimes with stronger native support, that can be a fresh-context checker path. On weaker surfaces, the framework stays honest about reduced assurance instead of pretending the same check happened.
26
+
27
+ ### 2. Verification after execution
28
+
29
+ `gsdd-verify` uses a three-level gate:
30
+
31
+ - **Exists** — the expected artifacts are present
32
+ - **Substantive** — the output is real, not empty or stubbed
33
+ - **Wired** — the behavior is connected and actually works
34
+
35
+ This is paired with anti-pattern checks so "files exist" does not get mistaken for "the work is done."
36
+
37
+ ## Anti-false-closure in practice
38
+
39
+ The exported brownfield proof pack demonstrates the intended behavior:
40
+
41
+ - the first implementation missed a real requirement
42
+ - verification caught it
43
+ - the repo then recorded the fix and the successful re-verification
44
+
45
+ See `docs/BROWNFIELD-PROOF.md` for the reader-facing narrative and `docs/proof/consumer-node-cli/README.md` for the tracked artifact chain.
46
+
47
+ ## What this note does and does not claim
48
+
49
+ This note explains the release-floor discipline that Workspine can prove publicly today.
50
+
51
+ It does **not** claim:
52
+
53
+ - perfect parity of checker mechanics on every runtime
54
+ - autonomous orchestration platform behavior
55
+ - proof of every possible brownfield workflow shape
56
+
57
+ It claims something narrower and more defensible:
58
+
59
+ Workspine keeps a repo-native delivery contract with explicit review and verification seams, and that contract is already strong enough to catch and recover from real misses.
@@ -1,98 +1,98 @@
1
- > **Claude Code only.** This feature uses Claude Code's `statusLine` and `PostToolUse` hook APIs. Other platforms do not support this hook mechanism.
2
-
3
- # Context Window Monitor
4
-
5
- A PostToolUse hook that warns the agent when context window usage is high.
6
-
7
- ## Problem
8
-
9
- The statusline shows context usage to the **user**, but the **agent** has no awareness of context limits. When context runs low, the agent continues working until it hits the wall — potentially mid-task with no state saved.
10
-
11
- ## How It Works
12
-
13
- 1. The statusline hook writes context metrics to `/tmp/claude-ctx-{session_id}.json`
14
- 2. After each tool use, the context monitor reads these metrics
15
- 3. When remaining context drops below thresholds, it injects a warning as `additionalContext`
16
- 4. The agent receives the warning in its conversation and can act accordingly
17
-
18
- ## Thresholds
19
-
20
- | Level | Remaining | Agent Behavior |
21
- |-------|-----------|----------------|
22
- | Normal | > 35% | No warning |
23
- | WARNING | <= 35% | Wrap up current task, avoid starting new complex work |
24
- | CRITICAL | <= 25% | Stop immediately, save state (`gsdd-pause`) |
25
-
26
- ## Debounce
27
-
28
- To avoid spamming the agent with repeated warnings:
29
- - First warning always fires immediately
30
- - Subsequent warnings require 5 tool uses between them
31
- - Severity escalation (WARNING -> CRITICAL) bypasses debounce
32
-
33
- ## Architecture
34
-
35
- ```
36
- Statusline Hook (gsd-statusline.js)
37
- | writes
38
- v
39
- /tmp/claude-ctx-{session_id}.json
40
- ^ reads
41
- |
42
- Context Monitor (gsd-context-monitor.js, PostToolUse)
43
- | injects
44
- v
45
- additionalContext -> Agent sees warning
46
- ```
47
-
48
- The bridge file is a simple JSON object:
49
-
50
- ```json
51
- {
52
- "session_id": "abc123",
53
- "remaining_percentage": 28.5,
54
- "used_pct": 71,
55
- "timestamp": 1708200000
56
- }
57
- ```
58
-
59
- ## Integration with GSDD
60
-
61
- GSDD's `gsdd-pause` workflow saves execution state to `.planning/.continue-here.md`. The WARNING message suggests using it. The CRITICAL message instructs immediate state save.
62
-
63
- ## Setup
64
-
65
- Register both hooks manually in your Claude Code settings:
66
-
67
- - **Statusline** (writes bridge file): Registered as `statusLine` in settings.json
68
- - **Context Monitor** (reads bridge file): Registered as `PostToolUse` hook in settings.json
69
-
70
- Manual registration in `~/.claude/settings.json`:
71
-
72
- ```json
73
- {
74
- "statusLine": {
75
- "type": "command",
76
- "command": "node ~/.claude/hooks/gsd-statusline.js"
77
- },
78
- "hooks": {
79
- "PostToolUse": [
80
- {
81
- "hooks": [
82
- {
83
- "type": "command",
84
- "command": "node ~/.claude/hooks/gsd-context-monitor.js"
85
- }
86
- ]
87
- }
88
- ]
89
- }
90
- }
91
- ```
92
-
93
- ## Safety
94
-
95
- - The hook wraps everything in try/catch and exits silently on error
96
- - It never blocks tool execution — a broken monitor should not break the agent's workflow
97
- - Stale metrics (older than 60s) are ignored
98
- - Missing bridge files are handled gracefully (subagents, fresh sessions)
1
+ > **Claude Code only.** This feature uses Claude Code's `statusLine` and `PostToolUse` hook APIs. Other platforms do not support this hook mechanism.
2
+
3
+ # Context Window Monitor
4
+
5
+ A PostToolUse hook that warns the agent when context window usage is high.
6
+
7
+ ## Problem
8
+
9
+ The statusline shows context usage to the **user**, but the **agent** has no awareness of context limits. When context runs low, the agent continues working until it hits the wall — potentially mid-task with no state saved.
10
+
11
+ ## How It Works
12
+
13
+ 1. The statusline hook writes context metrics to `/tmp/claude-ctx-{session_id}.json`
14
+ 2. After each tool use, the context monitor reads these metrics
15
+ 3. When remaining context drops below thresholds, it injects a warning as `additionalContext`
16
+ 4. The agent receives the warning in its conversation and can act accordingly
17
+
18
+ ## Thresholds
19
+
20
+ | Level | Remaining | Agent Behavior |
21
+ |-------|-----------|----------------|
22
+ | Normal | > 35% | No warning |
23
+ | WARNING | <= 35% | Wrap up current task, avoid starting new complex work |
24
+ | CRITICAL | <= 25% | Stop immediately, save state (`gsdd-pause`) |
25
+
26
+ ## Debounce
27
+
28
+ To avoid spamming the agent with repeated warnings:
29
+ - First warning always fires immediately
30
+ - Subsequent warnings require 5 tool uses between them
31
+ - Severity escalation (WARNING -> CRITICAL) bypasses debounce
32
+
33
+ ## Architecture
34
+
35
+ ```
36
+ Statusline Hook (gsd-statusline.js)
37
+ | writes
38
+ v
39
+ /tmp/claude-ctx-{session_id}.json
40
+ ^ reads
41
+ |
42
+ Context Monitor (gsd-context-monitor.js, PostToolUse)
43
+ | injects
44
+ v
45
+ additionalContext -> Agent sees warning
46
+ ```
47
+
48
+ The bridge file is a simple JSON object:
49
+
50
+ ```json
51
+ {
52
+ "session_id": "abc123",
53
+ "remaining_percentage": 28.5,
54
+ "used_pct": 71,
55
+ "timestamp": 1708200000
56
+ }
57
+ ```
58
+
59
+ ## Integration with GSDD
60
+
61
+ GSDD's `gsdd-pause` workflow saves execution state to `.planning/.continue-here.md`. The WARNING message suggests using it. The CRITICAL message instructs immediate state save.
62
+
63
+ ## Setup
64
+
65
+ Register both hooks manually in your Claude Code settings:
66
+
67
+ - **Statusline** (writes bridge file): Registered as `statusLine` in settings.json
68
+ - **Context Monitor** (reads bridge file): Registered as `PostToolUse` hook in settings.json
69
+
70
+ Manual registration in `~/.claude/settings.json`:
71
+
72
+ ```json
73
+ {
74
+ "statusLine": {
75
+ "type": "command",
76
+ "command": "node ~/.claude/hooks/gsd-statusline.js"
77
+ },
78
+ "hooks": {
79
+ "PostToolUse": [
80
+ {
81
+ "hooks": [
82
+ {
83
+ "type": "command",
84
+ "command": "node ~/.claude/hooks/gsd-context-monitor.js"
85
+ }
86
+ ]
87
+ }
88
+ ]
89
+ }
90
+ }
91
+ ```
92
+
93
+ ## Safety
94
+
95
+ - The hook wraps everything in try/catch and exits silently on error
96
+ - It never blocks tool execution — a broken monitor should not break the agent's workflow
97
+ - Stale metrics (older than 60s) are ignored
98
+ - Missing bridge files are handled gracefully (subagents, fresh sessions)
@@ -1,37 +1,37 @@
1
- # Consumer Node CLI Proof Pack
2
-
3
- This tracked proof pack is the public export of the Phase 22 release-floor brownfield run. It preserves the smallest artifact chain a reader needs to inspect the real consumer story without opening local-only planning state.
4
-
5
- ## What is in this pack
6
-
7
- - `brief.md` — the original project brief
8
- - `SPEC.md` — the consumer spec created from that brief
9
- - `ROADMAP.md` — the single-phase roadmap used for the proof run
10
- - `phases/01-foundation/01-01-PLAN.md` — the execution plan
11
- - `phases/01-foundation/01-01-SUMMARY.md` — the execution summary
12
- - `phases/01-foundation/01-VERIFICATION.md` — the verification record that captured the miss and the fix
13
-
14
- ## Release-floor story
15
-
16
- The proof pack shows one full release-floor loop:
17
-
18
- 1. `gsdd init` created a real consumer workspace with portable skills and Codex checker support.
19
- 2. The brief required both the default greeting and the `--name Ada` greeting path.
20
- 3. The first implementation shipped `Hello, world!` for both commands, so verification failed for the named greeting.
21
- 4. The implementation and tests were corrected, then verification passed with `Hello, Ada!`.
22
-
23
- ## Key proof strings
24
-
25
- - `node index.js` -> `Hello, world!`
26
- - `node index.js --name Ada` -> `Hello, Ada!`
27
- - `--name Ada` appears in both the brief and the phase artifacts
28
-
29
- ## Provenance and scope
30
-
31
- - Exported from the Phase 22 launch-proof consumer run.
32
- - This is the tracked reader-facing release-floor proof surface.
33
- - The local `.planning/live-proof/consumer-node-cli` tree remains evidence-only source material and is intentionally not the public entry surface.
34
-
35
- ## Why this pack exists
36
-
37
- Public proof should be inspectable from tracked docs. This pack keeps the concrete brownfield evidence in-repo while letting the local live-proof workspace stay an implementation input instead of the public citation target.
1
+ # Consumer Node CLI Proof Pack
2
+
3
+ This tracked proof pack is the public export of the Phase 22 release-floor brownfield run. It preserves the smallest artifact chain a reader needs to inspect the real consumer story without opening local-only planning state.
4
+
5
+ ## What is in this pack
6
+
7
+ - `brief.md` — the original project brief
8
+ - `SPEC.md` — the consumer spec created from that brief
9
+ - `ROADMAP.md` — the single-phase roadmap used for the proof run
10
+ - `phases/01-foundation/01-01-PLAN.md` — the execution plan
11
+ - `phases/01-foundation/01-01-SUMMARY.md` — the execution summary
12
+ - `phases/01-foundation/01-VERIFICATION.md` — the verification record that captured the miss and the fix
13
+
14
+ ## Release-floor story
15
+
16
+ The proof pack shows one full release-floor loop:
17
+
18
+ 1. `gsdd init` created a real consumer workspace with portable skills and Codex checker support.
19
+ 2. The brief required both the default greeting and the `--name Ada` greeting path.
20
+ 3. The first implementation shipped `Hello, world!` for both commands, so verification failed for the named greeting.
21
+ 4. The implementation and tests were corrected, then verification passed with `Hello, Ada!`.
22
+
23
+ ## Key proof strings
24
+
25
+ - `node index.js` -> `Hello, world!`
26
+ - `node index.js --name Ada` -> `Hello, Ada!`
27
+ - `--name Ada` appears in both the brief and the phase artifacts
28
+
29
+ ## Provenance and scope
30
+
31
+ - Exported from the Phase 22 launch-proof consumer run.
32
+ - This is the tracked reader-facing release-floor proof surface.
33
+ - The local `.planning/live-proof/consumer-node-cli` tree remains evidence-only source material and is intentionally not the public entry surface.
34
+
35
+ ## Why this pack exists
36
+
37
+ Public proof should be inspectable from tracked docs. This pack keeps the concrete brownfield evidence in-repo while letting the local live-proof workspace stay an implementation input instead of the public citation target.
@@ -1,14 +1,14 @@
1
- # Roadmap
2
-
3
- - [x] **Phase 1: Foundation** - ship a runnable greeting CLI with one fast test command
4
-
5
- ### Phase 1: Foundation
6
- **Goal:** Create a runnable `hello-proof` CLI that supports the default greeting, a `--name` override, and one immediate automated test command.
7
- **Success Criteria:**
8
- - `node index.js` prints `Hello, world!`
9
- - `node index.js --name Ada` prints `Hello, Ada!`
10
- - `npm test` passes in a fresh clone
11
-
12
- ### Current Phase
13
-
14
- Phase 1 is the active launch-proof phase.
1
+ # Roadmap
2
+
3
+ - [x] **Phase 1: Foundation** - ship a runnable greeting CLI with one fast test command
4
+
5
+ ### Phase 1: Foundation
6
+ **Goal:** Create a runnable `hello-proof` CLI that supports the default greeting, a `--name` override, and one immediate automated test command.
7
+ **Success Criteria:**
8
+ - `node index.js` prints `Hello, world!`
9
+ - `node index.js --name Ada` prints `Hello, Ada!`
10
+ - `npm test` passes in a fresh clone
11
+
12
+ ### Current Phase
13
+
14
+ Phase 1 is the active launch-proof phase.
@@ -1,17 +1,17 @@
1
- # Hello Proof Spec
2
-
3
- ## Product
4
-
5
- `hello-proof` is a tiny framework-free Node CLI used to prove Workspine's launch flow in a fresh consumer repo.
6
-
7
- ## Must-Have Requirements
8
-
9
- - `HP-01`: Running `node index.js` prints `Hello, world!`
10
- - `HP-02`: Running `node index.js --name Ada` prints `Hello, Ada!`
11
- - `HP-03`: A stranger can run one automated test command immediately after setup
12
-
13
- ## Constraints
14
-
15
- - Keep the project intentionally small
16
- - Use plain Node.js without a framework
17
- - Document the run and test commands in `README.md`
1
+ # Hello Proof Spec
2
+
3
+ ## Product
4
+
5
+ `hello-proof` is a tiny framework-free Node CLI used to prove Workspine's launch flow in a fresh consumer repo.
6
+
7
+ ## Must-Have Requirements
8
+
9
+ - `HP-01`: Running `node index.js` prints `Hello, world!`
10
+ - `HP-02`: Running `node index.js --name Ada` prints `Hello, Ada!`
11
+ - `HP-03`: A stranger can run one automated test command immediately after setup
12
+
13
+ ## Constraints
14
+
15
+ - Keep the project intentionally small
16
+ - Use plain Node.js without a framework
17
+ - Document the run and test commands in `README.md`
@@ -1,9 +1,9 @@
1
- # Hello Proof
2
-
3
- Build a tiny Node CLI called `hello-proof`.
4
-
5
- Requirements:
6
- - Running `node index.js` prints `Hello, world!`
7
- - Running `node index.js --name Ada` prints `Hello, Ada!`
8
- - Include one automated test command that a stranger can run immediately
9
- - Keep the project intentionally small and framework-free
1
+ # Hello Proof
2
+
3
+ Build a tiny Node CLI called `hello-proof`.
4
+
5
+ Requirements:
6
+ - Running `node index.js` prints `Hello, world!`
7
+ - Running `node index.js --name Ada` prints `Hello, Ada!`
8
+ - Include one automated test command that a stranger can run immediately
9
+ - Keep the project intentionally small and framework-free
@@ -1,34 +1,34 @@
1
- ---
2
- phase: 01-foundation
3
- plan: 01
4
- runtime: codex-cli
5
- assurance: self_checked
6
- ---
7
-
8
- # Phase 1 Plan
9
-
10
- ## Objective
11
-
12
- Ship the first runnable version of `hello-proof` and document how to run and test it.
13
-
14
- ## Tasks
15
-
16
- <task id="01-01" type="code">
17
- <files>
18
- - CREATE: package.json
19
- - CREATE: index.js
20
- - CREATE: tests/cli.test.cjs
21
- - CREATE: README.md
22
- </files>
23
- <action>
24
- Create a minimal Node CLI with a default greeting, add one automated test command, and document how to run it.
25
- </action>
26
- <verify>
27
- - `node index.js`
28
- - `node index.js --name Ada`
29
- - `npm test`
30
- </verify>
31
- <done>
32
- The CLI runs locally, the test command is wired, and README explains the run/test path.
33
- </done>
34
- </task>
1
+ ---
2
+ phase: 01-foundation
3
+ plan: 01
4
+ runtime: codex-cli
5
+ assurance: self_checked
6
+ ---
7
+
8
+ # Phase 1 Plan
9
+
10
+ ## Objective
11
+
12
+ Ship the first runnable version of `hello-proof` and document how to run and test it.
13
+
14
+ ## Tasks
15
+
16
+ <task id="01-01" type="code">
17
+ <files>
18
+ - CREATE: package.json
19
+ - CREATE: index.js
20
+ - CREATE: tests/cli.test.cjs
21
+ - CREATE: README.md
22
+ </files>
23
+ <action>
24
+ Create a minimal Node CLI with a default greeting, add one automated test command, and document how to run it.
25
+ </action>
26
+ <verify>
27
+ - `node index.js`
28
+ - `node index.js --name Ada`
29
+ - `npm test`
30
+ </verify>
31
+ <done>
32
+ The CLI runs locally, the test command is wired, and README explains the run/test path.
33
+ </done>
34
+ </task>
@@ -1,10 +1,10 @@
1
- ---
2
- phase: 01-foundation
3
- plan: 01
4
- runtime: codex-cli
5
- assurance: self_checked
6
- ---
7
-
8
- # Phase 1 Summary
9
-
10
- Created the first runnable `hello-proof` CLI, added a fast Node test command, documented how to run and test the project, and completed the missing `--name` greeting path after verification caught it.
1
+ ---
2
+ phase: 01-foundation
3
+ plan: 01
4
+ runtime: codex-cli
5
+ assurance: self_checked
6
+ ---
7
+
8
+ # Phase 1 Summary
9
+
10
+ Created the first runnable `hello-proof` CLI, added a fast Node test command, documented how to run and test the project, and completed the missing `--name` greeting path after verification caught it.
@@ -1,30 +1,30 @@
1
- ---
2
- phase: 01-foundation
3
- runtime: codex-cli
4
- assurance: self_checked
5
- status: passed
6
- ---
7
-
8
- # Phase 1 Verification
9
-
10
- ## Initial Verification
11
-
12
- - `node index.js` -> `Hello, world!`
13
- - `node index.js --name Ada` -> `Hello, world!`
14
- - `npm test` -> passed, but only covered the default greeting
15
-
16
- Result: failed. The phase goal required the named greeting path, and the implementation ignored the provided `--name` value.
17
-
18
- ## Fix Applied
19
-
20
- - Updated `index.js` to read the value after `--name`
21
- - Extended `tests/cli.test.cjs` to assert the named greeting path
22
- - Updated the phase summary to reflect the verification-driven fix
23
-
24
- ## Re-Verification
25
-
26
- - `node index.js` -> `Hello, world!`
27
- - `node index.js --name Ada` -> `Hello, Ada!`
28
- - `npm test` -> passed with both greeting paths covered
29
-
30
- Result: passed. The phase now satisfies all three roadmap success criteria.
1
+ ---
2
+ phase: 01-foundation
3
+ runtime: codex-cli
4
+ assurance: self_checked
5
+ status: passed
6
+ ---
7
+
8
+ # Phase 1 Verification
9
+
10
+ ## Initial Verification
11
+
12
+ - `node index.js` -> `Hello, world!`
13
+ - `node index.js --name Ada` -> `Hello, world!`
14
+ - `npm test` -> passed, but only covered the default greeting
15
+
16
+ Result: failed. The phase goal required the named greeting path, and the implementation ignored the provided `--name` value.
17
+
18
+ ## Fix Applied
19
+
20
+ - Updated `index.js` to read the value after `--name`
21
+ - Extended `tests/cli.test.cjs` to assert the named greeting path
22
+ - Updated the phase summary to reflect the verification-driven fix
23
+
24
+ ## Re-Verification
25
+
26
+ - `node index.js` -> `Hello, world!`
27
+ - `node index.js --name Ada` -> `Hello, Ada!`
28
+ - `npm test` -> passed with both greeting paths covered
29
+
30
+ Result: passed. The phase now satisfies all three roadmap success criteria.