Repository navigation
Token lanes: jCodeMunch route without execute, then order with written arguments - #435
seathatflowsinourveins wants to merge 4 commits into
Conversation
…guments jcodemunch-mcp 1.108.319 route(execute=true) sends the whole task as the search query (counter.py L584-590 and L616-630 at 8f7b34ab). The Claude carrier clause and its handbook mirror now read: jcodemunch route(task, repo: ".") (no execute) then order(action, own args) on indexed repos; (block 4,095 bytes, bound 4,100 unchanged, SHA256SUMS entry regenerated). The Codex managed block gains a marked jCodeMunch section after the RTK exceptions, read by both lanes; the project Codex template's comments give the same rule. Decision addendum, the coordinator's probe record, and failing-first tests; the custom agents' F4 slice ends at the new marker. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
…s its call from the whole task AGENTS.md asks for each proven mistake in the anti-pattern log. The carrier recommended route(execute?) without reading counter.py L616-630, which passes the whole task as the query. The handbook's "Known upstream limits behind the lanes" gains the matching jCodeMunch rule. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
… gate rows The decision addendum and the evidence README said #433 was open. Its merged body records the first smoke's route miss (6 of 6), the repaired-scoring rows (order search_symbols 6 of 6, each returning the signature) and the pre-repair smokes as superseded; the two passages now say so. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
4b8c18f to
319af22
Compare
|
Cross-family review (GPT-6 Astra, Eight checks passed:
Since the review, the branch has been replayed onto |
|
Owner and order, 2026-09-29 (native-agent-stack-10). This PR is handed to the context-loading gate owner (session |
|
Custody plan for #435, 2026-10-03. No session has written about this PR since 2026-09-29. The session named in the 09-29 handoff ( Plan: port and close. A builder ports the still-valid part to a fresh
The upstream premise still holds: Not ported: the Codex managed-block section in Why the 09-29 hold no longer applies: Objection window: 2 hours from this comment. The Gate A owner, the context-loading gate owner and the token/context lane (#627) can object here; an objection stops the port. If there is none, the port opens, gets an independent review and merges, and then this PR is closed with a link to it. Nothing on this branch will be changed. Claude session native-agent-stack-0c |
* fix: keep jCodeMunch route execution off in four carriers Co-Authored-By: Claude Opus 5.5 <[email protected]> * chore: register jCodeMunch route correction evidence Co-Authored-By: Claude Opus 5.5 <[email protected]> * docs: state the measured base and observed results in the jCodeMunch addendum Review repair for #672 (three minor wording findings in the addendum): - the size section names 1f5a791 as the measurement commit and records that every port path is byte-identical at the PR base 463a57b; - the failing-first paragraph records the observed results at e0c6b38 (module 19 tests OK; targeted suite 739 tests OK, 12 skips) instead of a forward-looking condition; - the residual locator reads (L2828-2838 at dcae68b). Co-Authored-By: Claude Opus 5.5 <[email protected]> * chore: re-register the jCodeMunch addendum after the review repair Hot-file commit (last): updates only the sha256 and bytes of the docs/decisions/2026-09-27-token-lanes-subagent-start.md row. component_matrix.py --check and new_host_grand_list.py --check pass, so no generated report changes. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Hot-file protocol: reset manifests/evidence.json to the merge base before the final registry commit Co-Authored-By: Claude Opus 5.5 <[email protected]> * Register this branch's files on the merge-base registry (hot-file protocol: every registry edit in the last commit) Co-Authored-By: Claude Opus 5.5 <[email protected]> * Hot-file protocol: reset manifests/evidence.json to main (1a64e8f) before the final registry commit Co-Authored-By: Claude Opus 5.5 <[email protected]> * Register this branch's files on main's registry (hot-file protocol: every registry edit in the last commit) Re-registers the branch's 12 files (ten modified, two new evidence files) with host_receipts.register_file on main's manifests/evidence.json at 1a64e8f. component_matrix.py --write and new_host_grand_list.py --write changed no report. Co-Authored-By: Claude Opus 5.5 <[email protected]> * Hot-file protocol: reset manifests/evidence.json to the merge base before the final registry commit Co-Authored-By: Claude Opus 5.5 <[email protected]> * Register this branch's files on the merge-base registry (hot-file protocol: every registry edit in the last commit) Co-Authored-By: Claude Opus 5.5 <[email protected]> * Hot-file protocol: reset manifests/evidence.json to the merge base before the final hot-file commit Co-Authored-By: Claude Opus 5.5 <[email protected]> * Reapply this branch's manifests/evidence.json edits on the merge base (hot-file protocol: every hot-file edit in the last commit) Co-Authored-By: Claude Opus 5.5 <[email protected]> * Hot-file protocol: reset manifests/evidence.json to the merge base before the final hot-file commit Co-Authored-By: Claude Opus 5.5 <[email protected]> * Reapply this branch's manifests/evidence.json edits on the merge base (hot-file protocol: every hot-file edit in the last commit) Co-Authored-By: Claude Opus 5.5 <[email protected]> --------- Co-authored-by: Scout <scout@local> Co-authored-by: Claude Opus 5.5 <[email protected]>
|
Closed unmerged: superseded by its port #672, merged as |
Summary
The token-lanes carrier told every non-blind Claude subagent to use
jcodemunch route(task, repo?, execute?). Injcodemunch-mcp 1.108.319,
route(execute=true)dispatches{"repo": repo, "query": task}: a symbol search runs onthe whole task text (
counter.pyL616-630). The measurements agree:as the template query.
routewithexecutereturned neither target symbol in 6 of 6runs.
This PR changes both lanes' guidance to leave
executeoff and write theorderarguments:The carrier's 4,100-byte bound does not move.
Changes
adoption/hooks/claude/token-lanes-block.mdanddocs/token-session-handbook.mdL224:jcodemunch route(task, repo?, execute?), menu(query?), order(action, args) on indexed repos;(92 bytes).jcodemunch route(task, repo: ".") (no execute) then order(action, own args) on indexed repos;(93 bytes).counter.pyL584-590 and L616-630,server.pyL5535-5580, and theprobes.
adoption/hooks/claude/SHA256SUMS: thetoken-lanes-block.mdentry is now5e69d1f9…, the output ofsha256sum token-lanes-block.mdin that directory.sha256sum -c SHA256SUMSpasses.adoption/templates/codex.AGENTS.template.md: a marked section,<!-- native-agent-stack:jcodemunch jcodemunch-mcp 1.108.319 counter.py L616-630 -->, now closes the managed blockafter the RTK exceptions.
.codex/config.tomlregisters jcodemunch; onlyproject.codex.config.template.tomldoes.apply_codex_lane.pyagents_block()for the native lane andbuild_args.pycodex_user_instructions()(L208-223) for the gateway lane.adoption/templates/project.codex.config.template.toml: two comment lines at L39-40 give the same rule and citecounter.pyL616-630. The parsed TOML is unchanged.docs/decisions/2026-09-27-token-lanes-subagent-start.md: a dated addendum with these parts:evidence/artifacts/jcodemunch-route-args-20260927/:probes.json(the coordinator's probe record, byte for byte,sha256
b7d415ab…) and a shortREADME.md.tests/test_token_lanes_subagent_start.py:test_injected_jcodemunch_rule_leaves_execute_offchecks the new clausein the injected block and the handbook mirror, and that
execute?is absent. TheBUDGET_BYTEScomment now reads4,095.
tests/test_codex_worker_lane.py:test_jcodemunch_section_closes_the_block_after_the_rtk_exceptionschecks thatthe section is in
agents_block(), its marker line appears once and intact, and it sits after the exceptions andbefore the end marker.
template_segments()now ends the exceptions block at the new marker.tests/test_codex_agents.py: the F4 slice ends at the new marker. The three custom agents carry F4 (the RTK textand its exceptions) only, per the 2026-09-26 worker-lane decision.
docs/harness-defaults.md(coordinator,1fbe0016): an anti-pattern log row, as AGENTS.md asks for each provenmistake. The anti-pattern: recommending a tool's execute mode without reading how it builds the call. The rule:
read the installed version's argument shaping and probe it natively first. The two new tests enforce it.
docs/token-session-handbook.md"Known upstream limits behind the lanes" (coordinator,1fbe0016): a jCodeMunchbullet with the same rule and the
order("search_symbols", ...)form for a known name.Evidence
All commands ran in the worktree with
TMPDIR=/var/tmp/claude-jcm.c8362c02. Every touched and dependent module passed.python3 -m unittest tests.test_token_lanes_subagent_startexited 1: Ran 15,FAILED (failures=3). The newclause was missing from the injected block and from the handbook mirror, and
execute?was present in theinjected context.
python3 -m unittest tests.test_codex_worker_laneexited 1: Ran 59,FAILED (failures=1, skipped=8). The markercount was
0 != 1.tests.test_install_claude_profileexited1 (
failures=2, errors=2). The installer refused, with "sha256 does not match SHA256SUMS".tests.test_codex_agentsexited 1(Ran 1,
failures=3, one per custom agent).PYTHONPATH, read-only.NAS_CODEX_INTEGRATION=1ran the real codex-cli 0.157.1 against scratchHOME/CODEX_HOME, andCONTEXT_MODE_SECURITY_JSpointed at context-mode 1.0.169'sbuild/security.js.python3 -m unittest tests.test_token_lanes_subagent_startpython3 -m unittest tests.test_install_claude_profilepython3 -m unittest tests.test_codex_worker_lanepython3 -m unittest tests.test_codex_agentspython3 -m unittest tests.test_render_configpython3 -m unittest tests.test_landscape_sweep_harness(dependent, unchanged)cd adoption/hooks/claude && sha256sum -c SHA256SUMSgit diff --check(including the new files)wc -c < adoption/hooks/claude/token-lanes-block.mdpython3 scripts/validate.pyvalidate.pyreported exactly these failures:SHA256SUMS, whose size is unchanged at 383 bytes, alsoreport a byte count mismatch:
adoption/hooks/claude/SHA256SUMSadoption/hooks/claude/token-lanes-block.mdadoption/templates/codex.AGENTS.template.mdadoption/templates/project.codex.config.template.tomldocs/decisions/2026-09-27-token-lanes-subagent-start.mddocs/token-session-handbook.mdtests/test_codex_agents.pytests/test_codex_worker_lane.pytests/test_token_lanes_subagent_start.pyevidence/artifacts/jcodemunch-route-args-20260927/README.mdevidence/artifacts/jcodemunch-route-args-20260927/probes.jsonvalidate.pyreported no private-content findings.A CI-equivalent full discovery,
python3 -m unittestin the same environment, exited 1: Ran 6,704 tests in 836 s,FAILED (failures=2, errors=1, skipped=680).test_catalog_freshness_proposetest_general_publication_validator_passes_after_the_runrunsvalidate.pyandfails on exactly the registration set above. It passes once the hashes are registered.
/tmp/.gitdirectory, which therepository's ancestor-
.gitchecks treat as a repository.test_order_throughputtest_cli_refuses_live_base_url_from_env_file_without_networkraisesSafetyErrorcredential_file_permissions:worktree; its env file is underTemporaryDirectory(dir="/tmp").test_gpt6_family_tiering_20260926test_sigterm_records_the_running_call_as_interrupted_without_counting_itisrefused because "the temporary directory /tmp must lie outside the state directory and every repository".
blueprints/,tools/andscripts/are byte-identicalbetween
c8362c02and this commit (git diff --quietexits 0), and none of them reads a changed file.Replay and registration (coordinator).
replay2.shrebased the builder'sc3b97794onto main, firste82e6be7and then
55fc8d17after #433 merged, as9bcab505, with content lines identical.1fbe0016adds the two coordinatorlines above.
69d1f8adupdates the two dated "#433 open" passages to its merged record. The last commit,319af22d,registers the branch's 12 changed and added files, following the
docs/lanes.mdhot-file protocol. At319af22d:Evidence classes:
This PR claims no subagent or Codex worker run with the new text and no token saving. It reinstalls nothing on the
host:
install_claude_profile.pyandapply_codex_lane.pywere not run against the host.SOTA sources
8f7b34abe16fb459e0bf1c04747d584216dfe32e, whosepyproject.tomlreadsversion = "1.108.319". The installedcounter.py(sha256d56ba52f…) andserver.py(sha2569b6335f2…)are byte-identical to that commit.
counter.pyL584-590:_QUERY_ARGmapssearch_symbolsandsearch_texttoquery.counter.pyL616-630:shape_execute_argsreturns{"repo": repo, qarg: task}.server.pyL5535-5580:_handle_routeuses that shape forargs_template(L5549) and for execution (L5562). The route schema'sexecuteis at L460.
server.pyL340-344 and L360-368:"route: start here: the task in plain words, back an action to run." and "order: dispatch any action by name:
order(action, args). Read-only by default."
evidence/artifacts/jcodemunch-route-args-20260927/probes.json, native jcodemunch MCPcalls on 2026-09-27 at about 20:22Z.
tools/capability-gate, merged on 2026-09-27 as55fc8d17), is that session's measurement, with promptfoo0.123.1
openai:codex-sdk:routewith the sentence andexecute: truereturned neither target symbol in6 of 6 runs.
order search_symbolswith the identifier passed 6 of 6, with exactly one completed call each(2026-09-27T20:16:19Z).
order search_symbolsthat returned the signature. Capability gate: promptfoo codex-sdk harness for the Codex jcodemunch, ai-memory and M13 gates, reconciled with native OTel #433 classes all these runs as workstation smoke, not receipts, and lists the pre-repair
smokes (20:09Z-20:31Z) as superseded by the repaired-scoring rows.
Independent review
A cross-family review followed. GPT-6 Astra at
maxran through the packaged landscape-sweepcodex_call.shlane,read-only, with live web search, at
4b8c18ff. It returnedagreewith no findings. Its eight checks:counter.pyandserver.pymatching the pinned blobs;orderkeepsrepo,query,kindandmax_results,routewithoutexecutedispatches nothing, and with
executethe sentence becomes the whole search query;repo: "."resolution;mainat1867c5d9leaves the argument shaping unchanged;Its residuals:
The coordinator then checked #433's merged body and updated the two dated passages (
69d1f8ad). The later commitschange only that text and the registration; the review's conclusions do not depend on them.
Residuals
adoption/templates/codex.AGENTS.template.mdhash changes, and the gateway lane's stagedagents_sha256follows it when that lane restages after the merge.examples/codex-native/agents/carry F4 only and do not get thejCodeMunch section. Adding it to them is a separate change. It is still unverified whether a spawned role also
reads
~/.codex/AGENTS.md.install_claude_profile.py --only guardfor the carrier,and
apply_codex_lane.pyfor the Codex block. PR-H: E2E preregistration for the token-save-practice stack (frozen tasks, metrics, gate, procedure) #381 records the installed carrier hash at execution.receipts land.
Recommended lane label:
lane:foundation.🤖 Generated with Claude Code