Conversation
…, in-lane worker routing, and the incomplete spawn model list Four reference-doc traps reported as #170-#173, all fixed against the shipped source rather than from the prose. - durable-goalplan.md: add the missing `cxc loop add-criterion` line with its real flags, show `init --criterion` repetition, state that criterion ids are generated as c-1, c-2, ... (max existing c-N + 1) and that meet-criterion --id takes those, and give criteria[] its missing `surface` field plus per-field provenance so nobody plans on an --expected-evidence flag that does not exist. (#170, #171) - dispatch-surfaces.md / loop SKILL.md: state the composition rule inside DISPATCH-SURFACE-01 instead of only in the closing section, and route the in-lane worker case in DISPATCH-ROUTE-01. A lane is thread work; a worker inside a lane is subagent work. (#172) - delegation.md: DELEGATE-MODEL-LIST-01 — the advertised spawn_agent override list is a hint, not an allowlist. Pass a user-named model through; only a real spawn rejection proves unavailability. (#173) - structure/20_pabcd_dispatch_doctrine.md: mirror the worker/lane row into the translation table. Docs only; no runtime or CLI behavior changed. Local suite/typecheck/build NOT RUN.
LOOP-DOCS-FIRST-01: the delivery roadmap is written to diff level before the first merge or version edit, not discovered phase by phase. - 000_plan.md — objective, constraints, measured starting state, the four work-phase map, and the delete_branch_on_merge hazard that already cost this repository its dev branch once. - 010 — landing #174 on dev, and why the dev push is a separate CI generation: the release gate reads conclusions by SHA, and WSL never runs on pull requests. - 020 — the exact thirteen version surfaces collectSurfaces() enumerates, which two may carry +codex build metadata, the two declared workspaces (gui, cli) that it does not read, and the hosted tests=3150 measurement the inventory regeneration must use. - 030 — the promotion PR's enforce-target exemption, ruleset protect-main with its six required contexts and no bypass actors, the immovable v* tag ruleset, and the dev restore step the promotion merge will require. Docs only. Local suite/typecheck/build NOT RUN.
Four reference-doc traps reported as #170-#173 and landed on dev as #174: the missing add-criterion CLI surface, generated c-N criterion ids, the in-lane worker routing that DISPATCH-SURFACE-01 buried, and DELEGATE-MODEL-LIST-01 for the incomplete spawn_agent override list. Version surfaces: every surface check-versions.mjs enumerates moves 0.2.27 -> 0.2.28, plus the two declared workspaces it does not read (gui, cli) and the thirteen workspace self-versions in package-lock.json. The plugin manifest and inventory carry the regenerated +codex.20260914090142 build metadata, which never affects precedence. Inventory regenerated with the measured total from hosted CI, not a local run: run 34790437740 job 103813520900 reported "tests 3150" at head 7036f9b. The published badge already read 3,150, so it does not move and the READMEs are untouched — only the inventory's version fields changed. Local suite/typecheck/build/install NOT RUN. Proof for this head is the hosted dev CI generation; the release gate reads conclusions by SHA.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ca326d9e0e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| `scenario` is the `--criterion` text and `surface` comes from `--surface` (default | ||
| `logic`); `id` is auto-assigned and `status` is derived. `expectedEvidence` has no |
There was a problem hiding this comment.
Clarify that init does not apply --surface
When a criterion is registered through the newly documented cxc loop init --criterion ... form, this provenance claim is false: runGoalplanCli constructs each entry as { scenario } and discards the parsed args.surface, so even --surface web or --surface tui is silently stored as logic. Because goalplanNeedsQa uses this field to require visual QA, following the sentence can cause an init-time visual criterion to bypass that gate; either pass the surface through during init or explicitly document that init criteria are always logic.
Useful? React with 👍 / 👎.
| - `cxc loop add-criterion --session <id> --criterion <text> [--surface logic|web|tui]` — | ||
| registers a criterion whose scenario is the `--criterion` text. There is no `--id`: | ||
| ids are assigned as `c-1`, `c-2`, ... (max existing `c-N` + 1, in registration | ||
| order). A duplicate scenario text is rejected. |
There was a problem hiding this comment.
Document duplicate add-criterion calls as idempotent
For the documented add-criterion command, repeating a scenario is not rejected: runAddOp derives its idempotency key solely from the scenario, so applySteeringBatch returns duplicate first and the CLI exits 0 with “nothing to do.” This also means retrying the same scenario with a corrected --surface reports success while retaining the original classification, contrary to this statement; describe the idempotent behavior or include the surface in the operation identity.
Useful? React with 👍 / 👎.
Release promotion for codexclaw 0.2.28.
What is being promoted
Four reference-doc traps reported as #170-#173, fixed against the shipped source rather than the surrounding prose, plus the release preparation for them.
7036f9b8b984aa5cdev93e1c0aadevlog/_plan/260914_skill_doc_triage_release/delivery roadmapca326d9eadd-criterionwas missing fromdurable-goalplan.md's CLI surface while the same file made goalplan registration mandatory, so the natural first call failed andupdate_goal {status:"complete"}stayed hook-denied behind GOAL-COMPLETE-GATE-01.c-1,c-2, ... as max existingc-N+ 1), butmeet-criterion --idread as if the caller picks them.criteria[]also regains its missingsurfacefield and per-field provenance.cxc-loopSKILL.mdmirror it.spawn_agentoverride list is a hint, not an allowlist.Release preparation
Every surface
check-versions.mjsenumerates moves to0.2.28, plus the two declared workspaces it does not read (gui,cli) and the thirteen workspace self-versions inpackage-lock.json. The plugin manifest and inventory carry+codex.20260914090142.The inventory was regenerated with
--tests 3150, taken from thetests 3150line of hosted CI run 34790437740 job 103813520900 — not a local run, and notpass, which is environment-dependent because CI skips the repo-map live smoke. The published badge already read 3,150, so it does not move and the READMEs are untouched.Verification
devheadca326d9eis green on all three lanes, recorded by SHA: CIsuccess, WSLsuccess, Packed install lifecyclesuccess.A release-prep check ran at that head and passed 5/5:
check-versions 0.2.28OK,inventory --check --tests 3150OK, the release-notes extractor returns a 2,778-character 0.2.28 section naming all four issues, no surface still declares0.2.27, and the three hosted lanes are green.Local product suite, typecheck, build and install: NOT RUN. The proof for this line is hosted CI at the exact head SHA plus the release gate, which fails closed.
Closes #170
Closes #171
Closes #172
Closes #173