@ai-dev-methodologies/rlp-desk 0.11.0 → 0.12.0

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 (44) hide show
  1. package/docs/rlp-desk/artifact-schema.md +99 -0
  2. package/docs/rlp-desk/ci-setup.md +100 -0
  3. package/docs/rlp-desk/e2e-scenarios.md +102 -0
  4. package/docs/rlp-desk/plans/rlp-desk-0.11.1-tmux-pane-disappearance.md +260 -0
  5. package/docs/rlp-desk/plans/rlp-desk-tmux-flywheel-routing.md +730 -0
  6. package/install.sh +93 -20
  7. package/package.json +8 -2
  8. package/scripts/build-node-manifest.js +52 -0
  9. package/scripts/postinstall.js +162 -8
  10. package/src/commands/rlp-desk.md +48 -25
  11. package/src/governance.md +68 -6
  12. package/src/node/MANIFEST.txt +15 -0
  13. package/src/node/cli/command-builder.mjs +25 -5
  14. package/src/node/constants.mjs +19 -0
  15. package/src/node/polling/signal-poller.mjs +119 -3
  16. package/src/node/runner/campaign-main-loop.mjs +470 -41
  17. package/src/node/runner/leader-registry.mjs +100 -0
  18. package/src/node/runner/prompt-dismisser.mjs +200 -0
  19. package/src/node/shared/fs.mjs +38 -0
  20. package/src/node/util/debug-log.mjs +56 -0
  21. package/src/node/util/shell-quote.mjs +12 -0
  22. package/docs/superpowers/plans/2026-04-24-gpt-5-5-default.md +0 -517
  23. package/docs/superpowers/specs/2026-04-24-gpt-5-5-default.md +0 -107
  24. /package/docs/{TODO-verification-next.md → rlp-desk/TODO-verification-next.md} +0 -0
  25. /package/docs/{architecture.md → rlp-desk/architecture.md} +0 -0
  26. /package/docs/{blueprints → rlp-desk/blueprints}/blueprint-flywheel-enhancement.md +0 -0
  27. /package/docs/{blueprints → rlp-desk/blueprints}/blueprint-pivot-step.md +0 -0
  28. /package/docs/{blueprints → rlp-desk/blueprints}/plan-flywheel-enhancement.md +0 -0
  29. /package/docs/{blueprints → rlp-desk/blueprints}/sv-architecture-rethink.md +0 -0
  30. /package/docs/{getting-started.md → rlp-desk/getting-started.md} +0 -0
  31. /package/docs/{internal → rlp-desk/internal}/verification-policy-gap-analysis.md +0 -0
  32. /package/docs/{internal → rlp-desk/internal}/verification-strategy-research.md +0 -0
  33. /package/docs/{multi-mission-orchestration.md → rlp-desk/multi-mission-orchestration.md} +0 -0
  34. /package/docs/{plans → rlp-desk/plans}/cozy-gliding-trinket.md +0 -0
  35. /package/docs/{plans → rlp-desk/plans}/frolicking-churning-honey.md +0 -0
  36. /package/docs/{plans → rlp-desk/plans}/keen-sauteeing-snowflake.md +0 -0
  37. /package/docs/{plans → rlp-desk/plans}/mutable-booping-corbato.md +0 -0
  38. /package/docs/{plans → rlp-desk/plans}/rlp-desk-0.11-handoff-7fixes.md +0 -0
  39. /package/docs/{plans → rlp-desk/plans}/rlp-desk-elegant-papert-agent-a8cd695ffca2a3ad8.md +0 -0
  40. /package/docs/{plans → rlp-desk/plans}/rlp-desk-elegant-papert.md +0 -0
  41. /package/docs/{plans → rlp-desk/plans}/toasty-whistling-diffie-agent-a6814625642e956da.md +0 -0
  42. /package/docs/{plans → rlp-desk/plans}/toasty-whistling-diffie.md +0 -0
  43. /package/docs/{plans → rlp-desk/plans}/validated-snacking-crayon.md +0 -0
  44. /package/docs/{protocol-reference.md → rlp-desk/protocol-reference.md} +0 -0
@@ -1,517 +0,0 @@
1
- # Default Codex Model Migration (gpt-5.4 → gpt-5.5) Implementation Plan
2
-
3
- > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
4
-
5
- **Goal:** Migrate rlp-desk's default Codex model references and env-var defaults from `gpt-5.4` to `gpt-5.5` across 6 source files, without adding remap logic or altering reasoning-effort tiers. Ship as v0.10.0.
6
-
7
- **Architecture:** Purely textual replacement in configuration sites (shell defaults, Node defaults, upgrade-chain keys, doc examples, upgrade-table markdown) plus a `version` bump. No runtime logic is added. User-supplied model strings are unchanged — Codex CLI already accepts any passthrough name.
8
-
9
- **Tech Stack:** zsh, Node.js (ESM), markdown, npm (package.json). No new dependencies.
10
-
11
- **Branch:** `feature/gpt-5-5-default` (already created at plan time).
12
-
13
- **Spec:** `docs/superpowers/specs/2026-04-24-gpt-5-5-default.md`.
14
-
15
- ---
16
-
17
- ## File Map
18
-
19
- | File | Role after this plan |
20
- |---|---|
21
- | `src/scripts/run_ralph_desk.zsh` | Shell entrypoint. Env var defaults now quote `gpt-5.5` in four places and in two CLI fallback sites. |
22
- | `src/node/run.mjs` | Node CLI defaults. `consensusModel` and `finalConsensusModel` default to `gpt-5.5:medium` / `gpt-5.5:high`. |
23
- | `src/node/runner/campaign-main-loop.mjs` | Upgrade chain keys use `gpt-5.5` namespace. Claude-engine and spark rows unchanged. |
24
- | `src/model-upgrade-table.md` | "Non-Pro" section retitled to `gpt-5.5`; table cells use `gpt-5.5:*`. |
25
- | `src/commands/rlp-desk.md` | Recommendation table, worker-model guidance, batch warnings, examples, and help text reference `gpt-5.5`. |
26
- | `package.json` | `version` bumped from `0.9.3` to `0.10.0`. |
27
- | `docs/superpowers/specs/2026-04-24-gpt-5-5-default.md` | Already written; intentionally contains `gpt-5.4` as historical context. Excluded from regression sweep. |
28
-
29
- Self-verification gate (per `CLAUDE.md`) is a required workflow step before commit; it does not produce tracked files but is captured as Task 8.
30
-
31
- ---
32
-
33
- ## Task 1: Update shell defaults in `run_ralph_desk.zsh`
34
-
35
- **Files:**
36
- - Modify: `src/scripts/run_ralph_desk.zsh:33,35,104,106,114-115,2762,2766`
37
-
38
- - [ ] **Step 1: Replace comment defaults on lines 33 and 35**
39
-
40
- Before (lines 33 and 35):
41
-
42
- ```zsh
43
- # WORKER_CODEX_MODEL - codex model for Worker (default: gpt-5.4)
44
- ...
45
- # VERIFIER_CODEX_MODEL - codex model for Verifier (default: gpt-5.4)
46
- ```
47
-
48
- After:
49
-
50
- ```zsh
51
- # WORKER_CODEX_MODEL - codex model for Worker (default: gpt-5.5)
52
- ...
53
- # VERIFIER_CODEX_MODEL - codex model for Verifier (default: gpt-5.5)
54
- ```
55
-
56
- Edit via the Edit tool, matching the full line so the change is unambiguous.
57
-
58
- - [ ] **Step 2: Replace env var defaults on lines 104 and 106**
59
-
60
- Before:
61
-
62
- ```zsh
63
- WORKER_CODEX_MODEL="${WORKER_CODEX_MODEL:-gpt-5.4}"
64
- WORKER_CODEX_REASONING="${WORKER_CODEX_REASONING:-high}" # low|medium|high
65
- VERIFIER_CODEX_MODEL="${VERIFIER_CODEX_MODEL:-gpt-5.4}"
66
- ```
67
-
68
- After:
69
-
70
- ```zsh
71
- WORKER_CODEX_MODEL="${WORKER_CODEX_MODEL:-gpt-5.5}"
72
- WORKER_CODEX_REASONING="${WORKER_CODEX_REASONING:-high}" # low|medium|high
73
- VERIFIER_CODEX_MODEL="${VERIFIER_CODEX_MODEL:-gpt-5.5}"
74
- ```
75
-
76
- - [ ] **Step 3: Replace consensus defaults on lines 114 and 115**
77
-
78
- Before:
79
-
80
- ```zsh
81
- CONSENSUS_MODEL="${CONSENSUS_MODEL:-gpt-5.4:medium}" # per-US cross-verifier (lighter)
82
- FINAL_CONSENSUS_MODEL="${FINAL_CONSENSUS_MODEL:-gpt-5.4:high}" # final cross-verifier (stricter)
83
- ```
84
-
85
- After:
86
-
87
- ```zsh
88
- CONSENSUS_MODEL="${CONSENSUS_MODEL:-gpt-5.5:medium}" # per-US cross-verifier (lighter)
89
- FINAL_CONSENSUS_MODEL="${FINAL_CONSENSUS_MODEL:-gpt-5.5:high}" # final cross-verifier (stricter)
90
- ```
91
-
92
- - [ ] **Step 4: Replace CLI fallback defaults on lines 2762 and 2766**
93
-
94
- Before:
95
-
96
- ```zsh
97
- --consensus-model)
98
- (( _cli_i++ ))
99
- CONSENSUS_MODEL="${@[$_cli_i]:-gpt-5.4:medium}"
100
- ;;
101
- --final-consensus-model)
102
- (( _cli_i++ ))
103
- FINAL_CONSENSUS_MODEL="${@[$_cli_i]:-gpt-5.4:high}"
104
- ;;
105
- ```
106
-
107
- After:
108
-
109
- ```zsh
110
- --consensus-model)
111
- (( _cli_i++ ))
112
- CONSENSUS_MODEL="${@[$_cli_i]:-gpt-5.5:medium}"
113
- ;;
114
- --final-consensus-model)
115
- (( _cli_i++ ))
116
- FINAL_CONSENSUS_MODEL="${@[$_cli_i]:-gpt-5.5:high}"
117
- ;;
118
- ```
119
-
120
- - [ ] **Step 5: Verify zero residual `gpt-5.4` in file**
121
-
122
- Run:
123
-
124
- ```bash
125
- grep -n "gpt-5\.4" src/scripts/run_ralph_desk.zsh
126
- ```
127
-
128
- Expected: no output. Any hit means the previous steps missed a line.
129
-
130
- - [ ] **Step 6: Shell syntax sanity check**
131
-
132
- Run:
133
-
134
- ```bash
135
- zsh -n src/scripts/run_ralph_desk.zsh
136
- ```
137
-
138
- Expected: no output (exit 0). Parse errors would be shown to stderr.
139
-
140
- ---
141
-
142
- ## Task 2: Update Node defaults in `run.mjs`
143
-
144
- **Files:**
145
- - Modify: `src/node/run.mjs:14-15`
146
-
147
- - [ ] **Step 1: Replace default model strings in `RUN_DEFAULTS`**
148
-
149
- Before (lines 14-15):
150
-
151
- ```js
152
- consensusModel: 'gpt-5.4:medium',
153
- finalConsensusModel: 'gpt-5.4:high',
154
- ```
155
-
156
- After:
157
-
158
- ```js
159
- consensusModel: 'gpt-5.5:medium',
160
- finalConsensusModel: 'gpt-5.5:high',
161
- ```
162
-
163
- - [ ] **Step 2: Verify zero residual `gpt-5.4` in file**
164
-
165
- Run:
166
-
167
- ```bash
168
- grep -n "gpt-5\.4" src/node/run.mjs
169
- ```
170
-
171
- Expected: no output.
172
-
173
- - [ ] **Step 3: Parse check**
174
-
175
- Run:
176
-
177
- ```bash
178
- node --check src/node/run.mjs
179
- ```
180
-
181
- Expected: no output (exit 0). Syntax errors would print to stderr.
182
-
183
- ---
184
-
185
- ## Task 3: Update upgrade chain in `campaign-main-loop.mjs`
186
-
187
- **Files:**
188
- - Modify: `src/node/runner/campaign-main-loop.mjs:29-31`
189
-
190
- - [ ] **Step 1: Replace the non-spark rows of `MODEL_UPGRADES`**
191
-
192
- Before (lines 28-35):
193
-
194
- ```js
195
- const MODEL_UPGRADES = {
196
- 'gpt-5.4:medium': 'gpt-5.4:high',
197
- 'gpt-5.4:high': 'gpt-5.4:xhigh',
198
- 'gpt-5.4:xhigh': 'BLOCKED',
199
- 'gpt-5.3-codex-spark:medium': 'gpt-5.3-codex-spark:high',
200
- 'gpt-5.3-codex-spark:high': 'gpt-5.3-codex-spark:xhigh',
201
- 'gpt-5.3-codex-spark:xhigh': 'BLOCKED',
202
- };
203
- ```
204
-
205
- After:
206
-
207
- ```js
208
- const MODEL_UPGRADES = {
209
- 'gpt-5.5:medium': 'gpt-5.5:high',
210
- 'gpt-5.5:high': 'gpt-5.5:xhigh',
211
- 'gpt-5.5:xhigh': 'BLOCKED',
212
- 'gpt-5.3-codex-spark:medium': 'gpt-5.3-codex-spark:high',
213
- 'gpt-5.3-codex-spark:high': 'gpt-5.3-codex-spark:xhigh',
214
- 'gpt-5.3-codex-spark:xhigh': 'BLOCKED',
215
- };
216
- ```
217
-
218
- - [ ] **Step 2: Verify zero residual `gpt-5.4` in file**
219
-
220
- Run:
221
-
222
- ```bash
223
- grep -n "gpt-5\.4" src/node/runner/campaign-main-loop.mjs
224
- ```
225
-
226
- Expected: no output.
227
-
228
- - [ ] **Step 3: Parse check**
229
-
230
- Run:
231
-
232
- ```bash
233
- node --check src/node/runner/campaign-main-loop.mjs
234
- ```
235
-
236
- Expected: no output.
237
-
238
- ---
239
-
240
- ## Task 4: Update upgrade table in `model-upgrade-table.md`
241
-
242
- **Files:**
243
- - Modify: `src/model-upgrade-table.md:21-28`
244
-
245
- - [ ] **Step 1: Rename the Non-Pro section and rewrite the table body**
246
-
247
- Before (lines 21-28):
248
-
249
- ```markdown
250
- ## Non-Pro (gpt-5.4)
251
-
252
- | Complexity | 1-2 | 3-4 | 5-6 | 7+ |
253
- |------------|-----|-----|-----|-----|
254
- | LOW | gpt-5.4:low | gpt-5.4:medium | gpt-5.4:high | BLOCKED |
255
- | MEDIUM | gpt-5.4:medium | gpt-5.4:high | gpt-5.4:xhigh | BLOCKED |
256
- | HIGH | gpt-5.4:high | gpt-5.4:xhigh | gpt-5.4:xhigh | BLOCKED |
257
- | CRITICAL | gpt-5.4:xhigh | gpt-5.4:xhigh | gpt-5.4:xhigh | BLOCKED |
258
- ```
259
-
260
- After:
261
-
262
- ```markdown
263
- ## Non-Pro (gpt-5.5)
264
-
265
- | Complexity | 1-2 | 3-4 | 5-6 | 7+ |
266
- |------------|-----|-----|-----|-----|
267
- | LOW | gpt-5.5:low | gpt-5.5:medium | gpt-5.5:high | BLOCKED |
268
- | MEDIUM | gpt-5.5:medium | gpt-5.5:high | gpt-5.5:xhigh | BLOCKED |
269
- | HIGH | gpt-5.5:high | gpt-5.5:xhigh | gpt-5.5:xhigh | BLOCKED |
270
- | CRITICAL | gpt-5.5:xhigh | gpt-5.5:xhigh | gpt-5.5:xhigh | BLOCKED |
271
- ```
272
-
273
- The GPT Pro and Claude-only sections remain unchanged.
274
-
275
- - [ ] **Step 2: Verify zero residual `gpt-5.4` in file**
276
-
277
- Run:
278
-
279
- ```bash
280
- grep -n "gpt-5\.4" src/model-upgrade-table.md
281
- ```
282
-
283
- Expected: no output.
284
-
285
- ---
286
-
287
- ## Task 5: Update user-facing documentation in `rlp-desk.md`
288
-
289
- **Files:**
290
- - Modify: `src/commands/rlp-desk.md` (14 known occurrences across ~6 blocks: lines 78-81, 84, 94-95, 167, 173, 180, 185-186, 243, 251-252, 295-296, 476-477, 735, 740-741)
291
-
292
- Because the same token (`gpt-5.4`) appears with both `:medium` and `:high` suffixes in a tabular document, use a global replace rather than editing each occurrence individually.
293
-
294
- - [ ] **Step 1: Perform global replace of `gpt-5.4` → `gpt-5.5`**
295
-
296
- Use the Edit tool with `replace_all: true` on the single token `gpt-5.4`. This is safe because:
297
- - No reasoning effort label matches `gpt-5.4` as a substring.
298
- - No URL or external reference in the file uses `gpt-5.4`.
299
- - The spec file that intentionally mentions `gpt-5.4` lives in `docs/superpowers/specs/`, not `src/commands/`.
300
-
301
- Edit parameters:
302
-
303
- ```
304
- old_string: "gpt-5.4"
305
- new_string: "gpt-5.5"
306
- replace_all: true
307
- ```
308
-
309
- - [ ] **Step 2: Verify zero residual `gpt-5.4` in file**
310
-
311
- Run:
312
-
313
- ```bash
314
- grep -n "gpt-5\.4" src/commands/rlp-desk.md
315
- ```
316
-
317
- Expected: no output.
318
-
319
- - [ ] **Step 3: Spot-check a few critical lines**
320
-
321
- Run:
322
-
323
- ```bash
324
- grep -n "gpt-5\.5" src/commands/rlp-desk.md | head -20
325
- ```
326
-
327
- Expected: at least 14 lines referencing `gpt-5.5`, including the recommendation table body (two rows with `gpt-5.5:medium`, two with `gpt-5.5:high`), the worker model selection bullet, batch warnings, env var echo lines, example commands, and the help text.
328
-
329
- ---
330
-
331
- ## Task 6: Bump version to 0.10.0
332
-
333
- **Files:**
334
- - Modify: `package.json:3`
335
-
336
- - [ ] **Step 1: Edit the `version` field**
337
-
338
- Before:
339
-
340
- ```json
341
- "version": "0.9.3",
342
- ```
343
-
344
- After:
345
-
346
- ```json
347
- "version": "0.10.0",
348
- ```
349
-
350
- - [ ] **Step 2: Verify package.json is still valid JSON**
351
-
352
- Run:
353
-
354
- ```bash
355
- node -e 'const pkg = require("./package.json"); console.log(pkg.version)'
356
- ```
357
-
358
- Expected stdout: `0.10.0`.
359
-
360
- ---
361
-
362
- ## Task 7: Repo-wide regression sweep
363
-
364
- **Files:** none modified in this task — it is a verification gate.
365
-
366
- - [ ] **Step 1: Confirm zero `gpt-5.4` hits under `src/`**
367
-
368
- Run:
369
-
370
- ```bash
371
- grep -rn "gpt-5\.4" src/
372
- ```
373
-
374
- Expected: no output.
375
-
376
- - [ ] **Step 2: Confirm zero `gpt-5.4` hits under `docs/` except the spec file**
377
-
378
- Run:
379
-
380
- ```bash
381
- grep -rn "gpt-5\.4" docs/ --exclude-dir=specs
382
- ```
383
-
384
- Expected: no output.
385
-
386
- And:
387
-
388
- ```bash
389
- grep -rln "gpt-5\.4" docs/superpowers/specs/
390
- ```
391
-
392
- Expected: exactly one file — `docs/superpowers/specs/2026-04-24-gpt-5-5-default.md`.
393
-
394
- - [ ] **Step 3: Confirm `gpt-5.5` references now exist**
395
-
396
- Run:
397
-
398
- ```bash
399
- grep -rc "gpt-5\.5" src/ | grep -v ':0$'
400
- ```
401
-
402
- Expected: at least 5 files each with a non-zero count, covering `run_ralph_desk.zsh`, `run.mjs`, `campaign-main-loop.mjs`, `model-upgrade-table.md`, and `commands/rlp-desk.md`.
403
-
404
- If any step here fails, stop and repair the offending file before continuing. Do not proceed to Task 8 until the sweep is clean.
405
-
406
- ---
407
-
408
- ## Task 8: Self-verification gate (CLAUDE.md §Self-Verification Gate)
409
-
410
- **Files:** none modified directly. This task produces three verifier verdict records that must all PASS before Task 9.
411
-
412
- This task is mandatory because Tasks 1 and 5 modified `src/scripts/run_ralph_desk.zsh` and `src/commands/rlp-desk.md`. Per `CLAUDE.md`, all three scenarios must run with real Worker (`execution_steps`) → Verifier (5 categories with `reasoning`) → PASS. Any FAIL blocks commit; fix and re-run all three.
413
-
414
- - [ ] **Step 1: Scenario LOW — default env propagation (L1+L3)**
415
-
416
- Describe:
417
- - **Worker task:** From the repo root, source `src/scripts/run_ralph_desk.zsh` (or simulate by evaluating only the env-var default block, lines 104-115 and 2760-2768) and print `WORKER_CODEX_MODEL`, `VERIFIER_CODEX_MODEL`, `CONSENSUS_MODEL`, `FINAL_CONSENSUS_MODEL`. Execution steps must include the exact commands run and their stdout.
418
- - **Verifier categories:** (1) Correctness — all four variables equal the expected `gpt-5.5*` strings. (2) Completeness — no variable is empty or inherits an unexpected default. (3) Regression — the script still parses under `zsh -n`. (4) Docs alignment — the printed value matches what `rlp-desk.md` now documents. (5) Reasoning — one paragraph explaining why the result is convincing.
419
- - **PASS criteria:** All four variables equal `gpt-5.5`, `gpt-5.5`, `gpt-5.5:medium`, `gpt-5.5:high` respectively, with zsh parse success.
420
-
421
- - [ ] **Step 2: Scenario MEDIUM — explicit override passthrough (L1+L2+L3)**
422
-
423
- Describe:
424
- - **Worker task:** Invoke the shell with `CONSENSUS_MODEL=gpt-5.4:high` exported before sourcing, then print the resulting `CONSENSUS_MODEL`. Also invoke with an unknown model string such as `CONSENSUS_MODEL=foo-model:custom` and print the result. Execution steps must include both runs and their stdout.
425
- - **Verifier categories:** (1) Correctness — both overrides are preserved byte-for-byte. (2) Completeness — no remap or warning is emitted to stderr. (3) Integration — the downstream variables that reference `CONSENSUS_MODEL` (e.g., when building consensus prompts) carry the override. (4) Docs alignment — `rlp-desk.md` describes `--consensus-model` as passthrough with a documented default. (5) Reasoning — justify why passthrough is the intended contract.
426
- - **PASS criteria:** `gpt-5.4:high` and `foo-model:custom` appear unchanged; stderr is silent about remapping.
427
-
428
- - [ ] **Step 3: Scenario CRITICAL — upgrade chain + security check (L1+L2+L3 + security)**
429
-
430
- Describe:
431
- - **Worker task:** In a Node one-off, import the `MODEL_UPGRADES` table from `src/node/runner/campaign-main-loop.mjs` (or inline-copy if import surface is not exposed) and assert the chain `gpt-5.5:medium → gpt-5.5:high → gpt-5.5:xhigh → BLOCKED`. Then verify the spark chain is untouched. Execution steps must include the exact Node invocation and output.
432
- - **Verifier categories:** (1) Correctness — the four assertions hold. (2) Completeness — no extra keys were introduced; legacy `gpt-5.4:*` keys are gone; spark keys remain exact. (3) Error-path — hitting `BLOCKED` is the terminal state; no silent key lookup fallback. (4) Security — confirm no shell expansion, template injection, or model-string concatenation was added to the hot path by this change set (spot-check `campaign-main-loop.mjs` diff). (5) Reasoning — one paragraph.
433
- - **PASS criteria:** All four assertions pass; spark chain intact; security spot-check clean.
434
-
435
- - [ ] **Step 4: Gate decision**
436
-
437
- If any scenario FAIL:
438
- - Fix the underlying code (not the test).
439
- - Re-run the failing scenario first; then re-run all three for clean slate.
440
- - Do not proceed to Task 9.
441
-
442
- If all three PASS, record the verdicts (even informally in the plan checkbox list) and move on.
443
-
444
- ---
445
-
446
- ## Task 9: Local file sync verification (CLAUDE.md §Local File Sync)
447
-
448
- **Files:** none modified; this is a sync-and-verify gate executed after commit approval.
449
-
450
- Per `CLAUDE.md`, after every commit that changes any `src/` file, sync ALL distributable files to `~/.claude/` and verify with `diff -q`.
451
-
452
- This task is listed for completeness but is executed AFTER user approval of the commit, which is outside the plan's automated scope.
453
-
454
- - [ ] **Step 1: Confirm sync list is current**
455
-
456
- Re-read the Local File Sync section of `CLAUDE.md` and confirm the list of files covers: `src/commands/rlp-desk.md`, `src/governance.md`, `src/model-upgrade-table.md`, `src/scripts/init_ralph_desk.zsh`, `src/scripts/run_ralph_desk.zsh`, `src/scripts/lib_ralph_desk.zsh`, `README.md`, `install.sh`, `docs/architecture.md`, `docs/getting-started.md`, `docs/protocol-reference.md`, `docs/TODO-verification-next.md`, `docs/internal/*`, `docs/blueprints/*`.
457
-
458
- - [ ] **Step 2: Sync all runtime files**
459
-
460
- Run:
461
-
462
- ```bash
463
- cp src/commands/rlp-desk.md ~/.claude/commands/rlp-desk.md
464
- cp src/governance.md ~/.claude/ralph-desk/governance.md
465
- cp src/model-upgrade-table.md ~/.claude/ralph-desk/model-upgrade-table.md
466
- cp src/scripts/init_ralph_desk.zsh ~/.claude/ralph-desk/init_ralph_desk.zsh
467
- cp src/scripts/run_ralph_desk.zsh ~/.claude/ralph-desk/run_ralph_desk.zsh
468
- cp src/scripts/lib_ralph_desk.zsh ~/.claude/ralph-desk/lib_ralph_desk.zsh
469
- ```
470
-
471
- - [ ] **Step 3: Sync reference docs**
472
-
473
- Run:
474
-
475
- ```bash
476
- cp README.md ~/.claude/ralph-desk/README.md
477
- cp install.sh ~/.claude/ralph-desk/install.sh
478
- cp docs/architecture.md ~/.claude/ralph-desk/docs/architecture.md
479
- cp docs/getting-started.md ~/.claude/ralph-desk/docs/getting-started.md
480
- cp docs/protocol-reference.md ~/.claude/ralph-desk/docs/protocol-reference.md
481
- cp docs/TODO-verification-next.md ~/.claude/ralph-desk/docs/TODO-verification-next.md
482
- cp -r docs/internal/. ~/.claude/ralph-desk/docs/internal/
483
- cp -r docs/blueprints/. ~/.claude/ralph-desk/docs/blueprints/
484
- ```
485
-
486
- - [ ] **Step 4: Verify each runtime file is byte-identical**
487
-
488
- Run:
489
-
490
- ```bash
491
- diff -q src/commands/rlp-desk.md ~/.claude/commands/rlp-desk.md
492
- diff -q src/governance.md ~/.claude/ralph-desk/governance.md
493
- diff -q src/model-upgrade-table.md ~/.claude/ralph-desk/model-upgrade-table.md
494
- diff -q src/scripts/init_ralph_desk.zsh ~/.claude/ralph-desk/init_ralph_desk.zsh
495
- diff -q src/scripts/run_ralph_desk.zsh ~/.claude/ralph-desk/run_ralph_desk.zsh
496
- diff -q src/scripts/lib_ralph_desk.zsh ~/.claude/ralph-desk/lib_ralph_desk.zsh
497
- diff -q README.md ~/.claude/ralph-desk/README.md
498
- ```
499
-
500
- Expected: no output from any of the seven `diff -q` commands. Any line of output means sync failed and must be repeated.
501
-
502
- ---
503
-
504
- ## Release workflow (outside plan automation, user approval gated)
505
-
506
- After Task 9 succeeds, the following release steps happen with explicit user approval at each stage, per `CLAUDE.md`:
507
-
508
- 1. `ralplan` + `codex review` both reach zero issues.
509
- 2. `git commit` with user-approved message.
510
- 3. `git push -u origin feature/gpt-5-5-default`.
511
- 4. Open PR, merge to `main` after approvals.
512
- 5. `npm version` is already set to `0.10.0` inside `package.json` by Task 6; skip the implicit tag bump and commit the bump directly.
513
- 6. `gh release create v0.10.0` with release notes limited to user-facing changes (see spec §Release notes draft).
514
- 7. `npm publish`.
515
- 8. Re-run Task 9 sync verification against the released tarball layout.
516
-
517
- Each step above is documented here as a reminder, not as an automated step. The engineer executing this plan must stop at Task 9 and request user approval before continuing.
@@ -1,107 +0,0 @@
1
- # Spec: Default Codex Model Migration gpt-5.4 → gpt-5.5
2
-
3
- **Date:** 2026-04-24
4
- **Version target:** 0.10.0 (minor bump)
5
- **Branch:** `feature/gpt-5-5-default`
6
-
7
- ## Background
8
-
9
- Codex CLI 0.124.0 now ships with `gpt-5.5` as the default model in `~/.codex/config.toml` (replacing `gpt-5.4`). The user's reasoning effort default is `high`. rlp-desk's documented defaults, example commands, and upgrade tables still reference `gpt-5.4`, which creates drift between what users see in rlp-desk and what their Codex CLI actually runs.
10
-
11
- This spec migrates every rlp-desk default, example, and upgrade chain entry from `gpt-5.4` to `gpt-5.5`. User-supplied model flags are untouched — Codex CLI accepts any model name passthrough, so users who explicitly request `gpt-5.4:high` (or any other version) continue to work without rlp-desk interference.
12
-
13
- ## Decisions
14
-
15
- | # | Decision | Rationale |
16
- |---|---|---|
17
- | D1 | Full replacement (`gpt-5.4` → `gpt-5.5` everywhere) | Codex CLI default changed; rlp-desk must mirror current reality. |
18
- | D2 | No auto-remap, no deprecation warning | User-supplied model names are passed through to Codex CLI as-is. rlp-desk is not a policy layer on model selection. |
19
- | D3 | Reasoning effort tiers (`low`/`medium`/`high`/`xhigh`) unchanged | Progressive upgrade philosophy preserved. Model name only. |
20
- | D4 | Minor bump 0.9.3 → 0.10.0 | Default behavior changes; semver-compliant. |
21
-
22
- ## Scope
23
-
24
- ### Files with `gpt-5.4` references (in-scope)
25
-
26
- | File | Change | Lines |
27
- |---|---|---|
28
- | `src/scripts/run_ralph_desk.zsh` | Default env values | 33, 35, 104, 106, 114-115, 2762, 2766 |
29
- | `src/node/run.mjs` | `consensusModel` / `finalConsensusModel` defaults | 14-15 |
30
- | `src/node/runner/campaign-main-loop.mjs` | Upgrade chain keys | 29-31 |
31
- | `src/model-upgrade-table.md` | Section header + full table | 21-28 |
32
- | `src/commands/rlp-desk.md` | Recommendation table, examples, help text | ~14 occurrences |
33
- | `package.json` | `version` field | — |
34
-
35
- ### Out of scope (no changes)
36
-
37
- - `src/node/cli/command-builder.mjs` — no remap logic added.
38
- - `src/scripts/lib_ralph_desk.zsh` `parse_model_flag()` — accepts any model name as before.
39
- - `gpt-5.3-codex-spark` (GPT Pro) section in `model-upgrade-table.md` — distinct token limit, tracked separately.
40
- - Reasoning effort tier labels and progressive upgrade chain logic.
41
- - CLI flag names (`--worker-model`, `--consensus-model`, `--final-consensus-model`).
42
-
43
- ## Release workflow
44
-
45
- Per `CLAUDE.md` gate rules (absolute):
46
-
47
- 1. All source edits on `feature/gpt-5-5-default` branch.
48
- 2. Self-verification gate triggered by changes to `src/commands/rlp-desk.md` and `src/scripts/run_ralph_desk.zsh`:
49
- - LOW scenario: L1+L3
50
- - MEDIUM scenario: L1+L2+L3
51
- - CRITICAL scenario: L1+L2+L3 + security check
52
- - All three must PASS before commit.
53
- 3. `ralplan` + `codex review` must both reach 0 issues before merge.
54
- 4. User approval for each: commit, version bump, merge, release, publish, local file sync.
55
- 5. Local file sync of all 5 runtime files + reference docs per CLAUDE.md.
56
- 6. Release notes: user-facing only (per `feedback_release_notes_scope.md`).
57
-
58
- ## Release notes draft
59
-
60
- ```
61
- ### Changed
62
- - Default Codex model upgraded from `gpt-5.4` to `gpt-5.5` to match Codex CLI 0.124.0 defaults.
63
- - `WORKER_CODEX_MODEL`, `VERIFIER_CODEX_MODEL`, `CONSENSUS_MODEL`, `FINAL_CONSENSUS_MODEL` env defaults updated.
64
- - Upgrade chain in `model-upgrade-table.md` now references `gpt-5.5`.
65
- - Example commands in `/rlp-desk` recommendation table updated.
66
-
67
- ### Unchanged
68
- - Users may still pass `--worker-model gpt-5.4:high` or any other model name explicitly; rlp-desk passes model flags through to Codex CLI without modification.
69
- - Reasoning effort tiers and progressive upgrade logic unchanged.
70
- - GPT Pro (`gpt-5.3-codex-spark`) path unchanged.
71
- ```
72
-
73
- ## Test plan
74
-
75
- ### Self-verification scenarios (per CLAUDE.md §Self-Verification Gate)
76
-
77
- 1. **LOW — default env value propagation.** Run `/rlp-desk run <slug>` with no model flags; confirm `WORKER_CODEX_MODEL=gpt-5.5` and `CONSENSUS_MODEL=gpt-5.5:medium` appear in the spawned command line.
78
- 2. **MEDIUM — explicit override.** Run `/rlp-desk run <slug> --worker-model gpt-5.4:high`; confirm `gpt-5.4:high` is passed through unchanged to Codex CLI.
79
- 3. **CRITICAL — upgrade chain.** Simulate a Worker failure; confirm the upgrade chain `gpt-5.5:medium → gpt-5.5:high → gpt-5.5:xhigh → BLOCKED` is followed.
80
-
81
- Each scenario: Worker (with `execution_steps`) → Verifier (5 categories, with `reasoning`) → PASS. Any FAIL blocks commit.
82
-
83
- ### Regression sweep
84
-
85
- ```bash
86
- grep -rn "gpt-5\.4" src/
87
- # Expected: zero hits.
88
-
89
- grep -rn "gpt-5\.4" docs/ --exclude-dir=superpowers/specs
90
- # Expected: zero hits. (This spec lives under superpowers/specs/ and intentionally mentions gpt-5.4.)
91
- ```
92
-
93
- ## Known follow-up (out of scope for v0.10.0)
94
-
95
- `tests/test_us004_self_verification.sh` has 4 pre-existing failures (PASS=42, FAIL=4) that surfaced during the post-migration full-suite sweep:
96
- - `AC4-boundary` / `AC13-happy`: `init_ralph_desk.zsh` lacks "no PRD found — treating as first-run" fallback language.
97
- - `AC13-boundary`: no note printed when `--mode` is provided but no PRD exists.
98
- - `AC13-runtime-happy`: `--mode improve` against a directory without a PRD does not exit 0 + print note + create a fresh PRD from template.
99
-
100
- Verified pre-existing via `git stash` baseline against pre-migration HEAD. These failures represent an unimplemented feature in `init_ralph_desk.zsh` (PRD template scaffolding for the no-PRD path), not a regression introduced by this migration. They will be tracked in a separate spec/PR (`init-no-prd-fallback`) targeting v0.10.1 or v0.11.0.
101
-
102
- ## Rollback
103
-
104
- If a regression surfaces post-release:
105
- - Revert the `feature/gpt-5-5-default` merge commit.
106
- - Publish `0.10.1` with restored `gpt-5.4` defaults.
107
- - Users can always override via `--worker-model gpt-5.5:high` while rollback is in flight.