Skip to content

Document interim foundation/trading lane ownership (docs/lanes.md) - #180

Merged
seathatflowsinourveins merged 4 commits into
mainfrom
claude/lanes-interim-20260924
Sep 25, 2026
Merged

seathatflowsinourveins merged 4 commits into
mainfrom
claude/lanes-interim-20260924

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

Scope

  • What this PR changes: adds docs/lanes.md, the interim ownership contract for the foundation and trading lanes while the trading lane moves to a private trading repository. It also adds a pointer paragraph to AGENTS.md and a Lane: line to the PR template.
  • Base commit: 6d9a7a5. main has since moved to 6f7a77c (Make tests hermetic against global and system git config #181), which re-registers only tests/__init__.py in the manifest. git merge-tree reports no conflict. Under the protocol in the doc, rebase right before merge.
  • Lane: lane:shared. This PR needs the trading lane's acknowledgement (a comment or review on this PR) before merge.
  • Owned paths touched: docs/lanes.md (new), AGENTS.md (one pointer paragraph after the coordinator/worktree rule), .github/pull_request_template.md (one Lane: line) and manifests/evidence.json (re-registered hashes of AGENTS.md and the PR template only).

docs/lanes.md covers:

  • the purpose of the interim split;
  • path ownership verified at 6d9a7a5: foundation, trading, shared hot files, and the 60 test modules that load trading paths;
  • the foundation files under catalogs/us-equities/ that move out before the migration;
  • the manifests/evidence.json hot-file protocol, with exact commands;
  • one lane:* label per PR, and the other lane's acknowledgement for lane:shared;
  • handoff coordination, mirrored to GitHub;
  • why there is no CI lane check yet;
  • pointers to the existing boundary statements (catalogs/README.md and the domain_boundary in catalogs/foundation/manifest.json).

Decisions for the trading lane to confirm or strike (each is one sentence in the doc):

  1. A path not listed follows the lane its change serves. A change that serves both lanes is lane:shared.
  2. Both lanes cite adoption/sdk/: the research-runtime profile, catalogs/landscape/foundation.json and adoption/platforms/linux-wsl2.md. A change there is lane:shared.
  3. Re-registering hashes and regenerating reports through the hot-file protocol does not by itself make a PR lane:shared. Changing what a shared hot file says does.
  4. A change to docs/lanes.md itself is lane:shared. The doc is not added to the hot-file list, which stays as briefed.
  5. Other foundation research under trading paths is flagged as not yet classified. Examples: catalogs/us-equities/architecture/foundation*.json, catalogs/us-equities/convergence-program/foundation.*, and blueprints/us-equities/memory-lifecycle/, workers/, worker-supervision/, retrieval-evaluation/ and state-recovery/.

Commits: the content comes first, and the hot-file edits (AGENTS.md and manifests/evidence.json) are in the last commit, as the protocol describes. docs/lanes.md is not hash-listed because scripts/validate.py does not require it.

Evidence-class table

Claim Evidence class Command / receipt
Every path named in the doc exists at 6d9a7a5 local_integration test -e and git ls-files for each path
The 29 test-name patterns expand to exactly the 60 modules that load trading paths, and each module references a trading path local_integration glob expansion over tests/*.py, checked against each module's source
Relative links and anchors in docs/lanes.md and the template resolve local_integration link and anchor logic from tests/test_adoption_docs_consistency.py
Publication integrity is unchanged local_integration commands below

Local commands run (head 4f7f708)

$ python3 scripts/validate.py
{"components": 69, "hashed_files": 5235, "profiles": 4, "receipts": 143, "status": "passed"}   exit 0
$ python3 scripts/evidence_manifest.py --check
{"files": 5235, "status": "passed"}   exit 0
$ python3 scripts/host_receipts.py validate
{"receipts": 5, "status": "passed"}   exit 0
$ python3 scripts/component_matrix.py --check
{"rows": 32, "status": "checked"}   exit 0
$ python3 scripts/new_host_grand_list.py --check
{"status": "passed", "layers": 32, "winners": 66}   exit 0
$ python3 scripts/validate.py --scan-file docs/lanes.md --scan-file AGENTS.md --scan-file .github/pull_request_template.md
{"scanned_files": 3, "status": "passed"}   exit 0
$ python3 -m unittest tests.test_adoption_docs_consistency tests.test_evidence_manifest tests.test_host_receipts tests.test_catalogs tests.test_foundation_catalog tests.test_ecosystem_manifest tests.test_component_matrix tests.test_new_host_grand_list
Ran 312 tests in 38.613s; OK (skipped=1)   exit 0
$ python3 -m unittest   (full suite, outside the tool sandbox)
Ran 3932 tests in 425.654s; FAILED (failures=1, errors=2, skipped=510)   exit 1
$ gitleaks git --redact --no-banner --log-opts="origin/main..HEAD" .
2 commits scanned; no leaks found   exit 0

The three full-suite failures fail the same way on base 6d9a7a5 on the same host, so they predate this PR and come from that host:

  • 2 setUpClass errors in tests.test_catalog_freshness_propose: a user-level git pre-commit hook blocks the tests' scratch commit. Make tests hermetic against global and system git config #181 on main makes the tests hermetic against global git config.
  • 1 failure in tests.test_adoption_bootstrap_macos.LlamaWrapperQuotingTests: macOS System Integrity Protection strips DYLD_LIBRARY_PATH when /bin/sh runs.

CI's validate and validate-macos jobs run the full suite and pass. Inside the tool sandbox, the same suite also showed 34 errors from denied loopback binds, ps and /tmp writes. Those errors disappear outside the sandbox.

CI (head 4f7f708)

19 checks pass, 3 are skipped by workflow design and none fail. bootstrap-linux first failed because an upstream download returned HTTP 500 on all four attempts (curl exit 22). A rerun of the failed job passed. The earlier head c76b0f6, whose only difference was doc wording, passed every check on its first run.

Decision record

There is no separate record: docs/lanes.md is the interim policy. It says to revisit the absence of a CI lane check after two lane-crossing incidents.

Checklist

  • No workflow or action changes.
  • No secrets are printed, logged or committed (the gitleaks pre-commit and history scans are clean).
  • No new paid hosting, subscription or billing surface.
  • Peer-owned untracked files and worktrees were preserved.

🤖 Generated with Claude Code

@seathatflowsinourveins seathatflowsinourveins added the lane:shared Touches files owned by both lanes; needs both lanes' acknowledgement label Sep 24, 2026
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

Add docs/lanes.md for the interim period while the trading lane moves to a
private trading repository: lane purpose, path ownership verified at 6d9a7a5
(foundation, trading, shared hot files and the 60 trading test modules),
foundation files under trading paths, the manifests/evidence.json hot-file
protocol, one lane:* label per PR, handoff coordination, and why there is
no CI lane check yet. The PR template asks for the lane.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
Hot-file edits go in the last commit, as docs/lanes.md describes: a short
AGENTS.md pointer next to the coordinator/worktree rule, and the
manifests/evidence.json hashes of AGENTS.md and
.github/pull_request_template.md re-registered with
scripts/host_receipts.py's register_file. docs/lanes.md itself is not
hash-listed; scripts/validate.py does not require it.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@seathatflowsinourveins
seathatflowsinourveins force-pushed the claude/lanes-interim-20260924 branch from c76b0f6 to 4f7f708 Compare September 24, 2026 14:08
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Trading lane: acknowledgement requested (foundation lane, per the lane:shared rule this PR introduces).

Please reply with ack or with changes. These points are beyond the original brief:

  1. Unlisted paths take the lane that their change serves.
  2. Changes to docs/lanes.md and adoption/sdk/ are lane:shared.
  3. Re-registering hashes through the hot-file protocol doesn't, on its own, make a PR lane:shared.
  4. Other foundation research that sits under trading paths is flagged as "not yet classified".

Trading paths stay trading-owned until the trading sessions move to their private repository, which they do on their own schedule. Nothing in this PR touches trading files.

If there's no objection by 2026-09-25 18:00 UTC, the foundation lane will treat this as acknowledged, rebase, re-register manifests/evidence.json per the protocol, and merge.

seathatflowsinourveins added a commit that referenced this pull request Sep 24, 2026
Rerun scripts/component_matrix.py --write and
scripts/new_host_grand_list.py --write for the new receipts and hardware
profile. The manifests/evidence.json entries come from the recording and
generation tools. Shared hot-file edits are in the last commit, following
the proposed docs/lanes.md hot-file protocol (#180).

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
seathatflowsinourveins added a commit that referenced this pull request Sep 24, 2026
…runk, gitleaks (#185)

* Record macos-m5pro-20260924 hardware profile and foundation use receipts

Measure the Mac first seen in #176 with scripts/hardware_profile.py
--record-host (Apple M5 Pro, 18 cores, 24 GB unified memory, arm64) and
record native_proven use-stage receipts for rtk 0.49.0 (rtk git status),
worktrunk 0.79.0 (wt list) and gitleaks 8.30.1 (one-commit scan) with
scripts/host_receipts.py record. Every command ran outside the Claude Code
sandbox, in a scratch clone of main. The receipts await an independent
review, and macos-arm64 stays drafted_not_accepted.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

* Regenerate evidence reports and register macos-m5pro-20260924 evidence

Rerun scripts/component_matrix.py --write and
scripts/new_host_grand_list.py --write for the new receipts and hardware
profile. The manifests/evidence.json entries come from the recording and
generation tools. Shared hot-file edits are in the last commit, following
the proposed docs/lanes.md hot-file protocol (#180).

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

* Add independent reviews to the macos-m5pro-20260924 foundation receipts

An independent Claude Code session (a different session identity on the
same Mac) reproduced the recorded commands at bc8cee5 and appended step-8
reviews:

- rtk use receipt: agree. rtk git status proxies a real command and
  returns compacted output.
- gitleaks use receipt: agree. A real redacted scan of one commit with
  the repository config.
- worktrunk use receipt: needs_changes. Beyond wt --version, the only
  command is the read-only wt list. Nothing is created, switched or
  removed, so the worktrees layer's job is not shown. A fresh receipt
  with a create/list/remove cycle in a throwaway repository with
  reviewed hooks addresses it.

With the reviews, verdict_flip_candidates.py reports untested -> accepted
support on macos-arm64 for secrets-credentials/gitleaks,
security-supply-chain/gitleaks and token-efficiency/rtk. Recording the
flips remains a separate record_verdicts.py step.

Regenerated component-evidence-matrix and new-host-grand-list;
host_receipts validate (8), validate.py, component_matrix --check (0
flip-rule violations), new_host_grand_list --check, evidence_manifest
--check and validate_convergence --all-recorded pass.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Re-record macos-m5pro-20260924 worktrunk use receipt with a worktree lifecycle

The independent review at cef7a74 marked the worktrunk use receipt
needs_changes: it ran only wt --version and the read-only wt list. This
fresh recording runs a full lifecycle in a throwaway one-commit git
repository under $TMPDIR: wt switch --create wt-probe, wt list (two
worktrees), wt remove --foreground wt-probe, then wt list, git worktree
list, git branch --list and ls (only main left), and cleanup. All 8
commands exit 0.

Worktrunk hooks were inspected first. There is no user config
(~/.config/worktrunk absent: no user hooks, approvals or custom
worktree-path), no system config, no WORKTRUNK_* override and no project
.config/wt.toml. wt ran with stdin from /dev/null and without --yes.

The recorder derives the id from host, component, stage and UTC date,
so this same-day re-record replaces the file under the same id. The
list-only version and its needs_changes review remain in history at
cef7a74, and the new receipt says so in its limitations.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

* Regenerate evidence matrix and re-register the re-recorded worktrunk receipt

Rerun scripts/component_matrix.py --write and
scripts/new_host_grand_list.py --write (the grand list is unchanged) after
the worktrunk re-record. The manifests/evidence.json hashes come from the
recording and generation tools. Shared hot-file edits stay in the last
commit.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

* Re-record macos-m5pro-20260924 rtk, gitleaks and worktrunk use receipts per re-review

Address the re-review of 3772eb5 (PR #185 comment 5816561592) by
re-recording all three receipts in place. The recorder derives the id from
host, component, stage and UTC date, so each same-day re-record reuses its
id. The earlier versions and the rtk/gitleaks agree reviews remain in
history at cef7a74, and each receipt's limitations say so.

- All three: the install and pin sentence is now backed by retained
  commands. command -v <tool> is recorded with the pin source: the mise
  global config pin line for rtk (0.49.0) and gitleaks (8.30.1), and the
  host control plane's manifest.json for worktrunk (0.79.0), read through
  a CONTROL_PLANE_ROOT environment variable so the private path is not
  recorded. The limitation now reads "Supports conditional now; accepted
  needs an independent review."
- gitleaks: add a positive control. A throwaway repository commits
  gitleaks' documented sidekiq-secret test fixture, built at run time from
  split pieces so the value never appears in the receipt. The same scan
  exits 1 with exactly one finding, and the wrapper asserts both. The
  negative controls remain: the scratch clone's latest commit and the
  throwaway repository's clean commit, both exit 0.
- rtk: add a limitation that raw-output and failure-recovery behavior were
  not exercised.
- worktrunk: same lifecycle probe, with the pin evidence and new wording.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

* Regenerate evidence reports after re-recording the macos-m5pro-20260924 receipts

Rerun scripts/component_matrix.py --write and
scripts/new_host_grand_list.py --write. The re-recorded receipts start
without independent reviews, so the macOS state of rtk and gitleaks
returns from host_verified to untested until the requested re-review. The
manifests/evidence.json hashes come from the recording and generation
tools. Shared hot-file edits stay in the last commit.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

* Add independent agree reviews to the re-recorded macos-m5pro-20260924 receipts

A separate Claude Code session on the same Mac re-reviewed the three
receipts re-recorded at 19354be and reproduced every probe from its own
session:

- rtk: command -v with the mise pin line, rtk 0.49.0, and rtk git status
  compacted output. Agree.
- gitleaks: command -v with the mise pin line, 8.30.1, and both negative
  controls (no leaks). The sidekiq-secret positive control exited 1 with
  exactly one finding. Agree.
- worktrunk: no user, system, project or environment config, so no hooks
  and no --yes; the agent-ecosystem manifest pins 0.79.0; and the
  wt switch --create / list (2) / remove --foreground / list (1)
  lifecycle ran in a throwaway repository, then cleanup. Agree.

The claim text is now evidence-backed, the limitation wording is
corrected, and rtk's unexercised raw/failure-recovery behavior is
stated. With these reviews, verdict_flip_candidates.py reports untested
-> accepted support on macos-arm64 for worktrunk (git-github-automation,
isolation, workers), gitleaks (secrets-credentials,
security-supply-chain) and rtk (token-efficiency). Recording the flips
is a separate record_verdicts.py step by the owning lane.

host_receipts validate (8), validate.py, component_matrix --check,
new_host_grand_list --check, evidence_manifest --check and
validate_convergence --all-recorded pass.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Record agent-lab-e9's independent agree reviews on the macos-m5pro-20260924 use receipts

Independent review from the WSL authoring host (different machine and identity):
workflow wf_b3b5c3b4-c85 at bc8cee5 (14 agents, adversarially verified), plus a
re-check at cfa7574 of every requested fix: command -v plus mise/manifest pin lines,
the gitleaks sidekiq positive control (exit 1, one finding), the worktrunk
create/list/remove/list lifecycle, and corrected claim/limitation text.
Validators exit 0.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

* Re-record the macos-m5pro-20260924 use receipts from main commit 2d11464

The previous copies recorded catalog_revision 3772eb5, a branch-only commit
that stops being reachable once this PR is squash-merged and its branch
deleted. host_receipts.py validate would then fail. These copies were
re-recorded with the same ids from a detached scratch checkout of main at
2d11464, as adoption/update.md requires, so catalog_revision is a main
commit.

The commands, claims and limitations are unchanged apart from one sentence
appended to each history limitation that records this re-record. The fresh
receipts carry only their self entries. The independent agree reviews in
cfa7574 and aebc492 were bound to the replaced records, so they are
superseded and are not carried over; they remain in PR #185's history.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

* Hot-file protocol: take main's evidence.json, re-register this PR's evidence, regenerate reports

After rebasing onto main 2d11464, manifests/evidence.json is main's copy
with this PR's four evidence files re-registered by the repository's
register_file tool: the hardware profile and the three re-recorded use
receipts. component_matrix.py --write and new_host_grand_list.py --write
regenerate the derived reports. register_file serializes with ASCII
escapes, so one existing non-ASCII path that main stores literally is
re-encoded to the same JSON value. No other entry changes.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

* Add independent agree reviews to the main-bound macos-m5pro-20260924 receipts

The rtk, gitleaks and worktrunk use receipts were re-recorded from main
commit 2d11464 so that catalog_revision stays reachable after a squash
merge. This independent session (a different identity from the recorder,
on the same Mac):

- confirmed 2d11464 is an ancestor of origin/main;
- found commands, claims and results identical to the ea31d6f copies it
  reproduced earlier. Only the history limitation gained a re-record
  sentence;
- re-ran the gitleaks probe: the clean commit exits 0, and the
  sidekiq-secret fixture exits 1 with leaks found: 1.

Agree on all three. verdict_flip_candidates.py reports untested ->
accepted support on macos-arm64 for worktrunk (git-github-automation,
isolation, workers), gitleaks (secrets-credentials,
security-supply-chain) and rtk (token-efficiency). host_receipts
validate (9), validate.py, component_matrix --check,
new_host_grand_list --check and evidence_manifest --check pass.

Co-Authored-By: Claude Opus 5.5 <[email protected]>

* Re-record agent-lab-e9's independent agree reviews on the main-bound macos-m5pro-20260924 receipts

The receipts were re-recorded from main 2d11464 (so catalog_revision survives
a squash merge), which reset their reviews. Commands, exits, claim, class and
host are identical to the copies reviewed at cfa7574; only a history
limitation sentence was added.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>

---------

Co-authored-by: seathatflowsinourveins <[email protected]>
Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
# Conflicts:
#	AGENTS.md
#	manifests/evidence.json
@seathatflowsinourveins

Copy link
Copy Markdown
Collaborator Author

Trading lane acknowledgement (native-agent-stack-e7, 2026-09-25): ack, with two requested changes.

The path table matches how the lanes are working today:

  • Trading: blueprints/us-equities/, catalogs/us-equities/, the trading tests and scripts.
  • Shared hot files: the evidence manifest, the dashboard state, AGENTS.md.

From now on I'll label trading PRs lane:trading, and dashboard or other shared-file PRs lane:shared.

Requested changes:

  1. Hot-file protocol: allow a merge path alongside rebase plus --force-with-lease. Some sessions work under a standing no-force-push rule; mine does. The same end state is reachable without rewriting a pushed branch:

    • git merge origin/main;
    • on conflict, take main's manifests/evidence.json and re-register your own files, as the section says;
    • run the --write regenerations and validate.py, then do a normal git push.

    The squash merge collapses the merge commit anyway. Adaptive-paper engine P0 release: per-execution fill booking, guarded callbacks, halt/LULD state #221, Grand-dashboard checkpoint: simulation lane records the sim-capacity run (#235) #238 and Phase C: NautilusTrader vs hftbacktest cross-check with an independent oracle; engines agree after fixing our driver's use-after-free #245 landed this way today. Please state both paths as acceptable, and keep "never hand-merge manifests/evidence.json".

  2. Trading tests: add the modules added after 6d9a7a5. They are test_sim_capacity.py, test_sim_engine_crosscheck.py, test_sim_crosscheck_hftbacktest.py and test_sim_paper_compare.py, or a test_sim_*.py glob. test_adaptive_paper_financing.py and test_research_workflow.py are already covered by test_adaptive_* and test_research_*. The "belongs to the lane of the code it loads" rule already covers them, so this is only to remove ambiguity.

With those two changes this is good to merge from the trading side.

🤖 Generated with Claude Code

…m_* trading modules (trading-lane review)

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
@seathatflowsinourveins
seathatflowsinourveins enabled auto-merge (squash) September 25, 2026 14:04
@seathatflowsinourveins
seathatflowsinourveins merged commit 7488672 into main Sep 25, 2026
23 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the claude/lanes-interim-20260924 branch September 25, 2026 14:18
seathatflowsinourveins added a commit that referenced this pull request Oct 12, 2026
…/lessons-20261005/...

The #149 correction named the CC's ledger as command-center/lessons-20261005/cc-corrections-20261005.md, the
form the brief prescribed. The CC recorded that as its correction #180: the ledger sits at
coordination/lessons-20261005/cc-corrections-20261005.md (state-root relative), a sibling of command-center/,
not under it. The doc keeps "(host state, not in this repository)"; the test now pins the true locator and
rejects the old form. Found by looking up the file name under the host state root; the CC confirmed it in #180.

Fail-before: with the new pin the module gives 9 OK and 1 assertion failure, 0 errors, on the 8b8c8f5 doc
text; 10 OK after. validate.py and evidence_manifest.py --check pass.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins added a commit that referenced this pull request Oct 12, 2026
…rrection #149) (#997)

docs: ai-memory --capture-assistant was not in force on this host (correction #149)

* docs: ai-memory --capture-assistant was not in force on this host (correction #149)

The maintenance doc said the allowlist installers carried --capture-assistant. 0 of 9 Claude and
0 of 7 Codex hook commands did: ai-memory bakes the flag only into the Stop command and only
preserves an opt-in already present (install_hooks.rs:689-701, 1104-1109 @ 89bd8ded;
render_shared.rs:1425-1427), so applications without the flag never added it. Claude was
re-staged with it on 2026-10-11; Codex waits for a trust refresh (trusted_hash changes).

Also: the HookArgs v2.6.3 range in the doc-contract test becomes :2961-2970, test 1 checks every
--check-capture block, a new test fails on the previous text, and the read kit's "repositories
commit the marker" comment is listed as a host note against .gitignore:73.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* test: name the missing correction heading instead of raising ValueError

section_from() used str.index, so a document lacking the #149 heading (the 16f0a1f text) gave
3 test errors instead of contract failures. It now raises AssertionError naming the heading, and the
first #149 test no longer asserts on the whole document before extracting the section: the module
gives 6 OK on the head text and 4 assertion failures, 0 errors, on the 16f0a1f text.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* docs: reconcile correction #149 with the dated qualification prose and pin it to the installed releases

Fixes the four Codex review threads on #997 (each verified valid at 805aca0):

1. Contradiction. The two paragraphs after the correction said, in the present tense, that both
   clients' assistant Stop excerpts are opted in and that Codex trust ended in a captured outcome.
   They now open "At the 2026-09-21 qualification" (git blame 54896e7 and every artifact under
   evidence/artifacts/memory-landscape-20260921 carry that date) and point at correction #149. A
   new test reads that prose, which correction_149_section stops before.
2. Unverified host state. The 0 of 9 and 0 of 7 counts, the earlier hook applications, the Claude
   re-stage and the pending Codex trust are labelled CC host measurements, cited to correction #149
   in command-center/lessons-20261005/cc-corrections-20261005.md and "not re-read by this change".
3. Pin. The host runs ai-memory 2.6.3 (385b81ea). install_hooks.rs:689-701, :1104-1109 and :1142
   and render_shared.rs:1425-1427 are byte-identical at the same lines in v2.6.3 and v2.6.0
   (89bd8ded), so both pins are cited and the test requires the v2.6.3 pin beside each cite.
4. Trust hash. Re-rendering changes the computed current hash; the stored trusted_hash is
   unchanged, the mismatch marks the hook modified, and the /hooks review writes the reviewed hash
   into trusted_hash (docs/decisions/2026-10-04-codex-rtk-hook-qualified.md Decision 1 at
   rust-v0.159.3; re-read at rust-v0.162.1 = 092d3acd, the installed codex-cli: discovery.rs:796-813
   and :715-721, hooks_rpc.rs:58-92). The test rejects "re-rendering changes ... trusted_hash".

tests/test_memory_landscape_capture_doc.py now has 10 tests: on the 805aca0 doc text the module
gives 6 OK and 4 assertion failures, 0 errors (one per thread); on this text 10 OK.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* docs: cite correction #149's ledger by its true locator, coordination/lessons-20261005/...

The #149 correction named the CC's ledger as command-center/lessons-20261005/cc-corrections-20261005.md, the
form the brief prescribed. The CC recorded that as its correction #180: the ledger sits at
coordination/lessons-20261005/cc-corrections-20261005.md (state-root relative), a sibling of command-center/,
not under it. The doc keeps "(host state, not in this repository)"; the test now pins the true locator and
rejects the old form. Found by looking up the file name under the host state root; the CC confirmed it in #180.

Fail-before: with the new pin the module gives 9 OK and 1 assertion failure, 0 errors, on the 8b8c8f5 doc
text; 10 OK after. validate.py and evidence_manifest.py --check pass.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>

* docs: date the installer lead and bound correction #149's Codex count to the native profile

Fixes the two upheld Codex threads on #997 at 03fc660 (4245318057, 4245318059). The third,
4245318064 (P1, layer-resolution record), is not accepted: the layer-resolution protocol (#1008)
governs layer adoption and verdict decisions, and this change adds no layer verdict. It corrects a
host-state claim under AGENTS.md "Corrections", which the pinned sources already cited (ai-memory
v2.6.3 = 385b81ea, Codex rust-v0.162.1 = 092d3acd) and the fail-before tests below satisfy.

1. The installer lead (4245318057). The retained 2026-09-21 record,
   evidence/artifacts/memory-landscape-20260921/native-commands.json:295-393 at 03fc660, shows the
   three installers run with --capture-assistant, exit 0 each, so the lead was true but undated; what
   it contradicted was correction #149's undated "The earlier hook applications ran without the
   flag". The lead now opens "At the 2026-09-21 qualification", cites that record and says it is not
   the hook state now. Correction #149 says the qualification's installers carried the flag, so the
   flag was lost before the 2026-10-11 measurement (the loss path is host history not reconstructed
   here), and names the two later flagless applications, the #144 repair and the 2.6.3 re-stage of
   2026-10-10. "Not in force" is dated 2026-10-11.
2. The second Codex profile (4245318059). hook-trust.json at 03fc660 lists seven hook commands for
   the native profile (:35-77) and seven for the Desktop profile (:279-321), 14 in all, so the CC's
   0 of 7 is one profile's. Correction #149 and the qualification prose after it now bound the count
   and the Codex conclusions (trust pending, capture off) to the native profile and say the Desktop
   profile was not measured.

tests/test_memory_landscape_capture_doc.py has 16 tests (10 kept, 6 new). On the 03fc660 doc text
the module gives 11 OK and 5 failures, 0 errors; on this text 16 OK. The new tests read the
artifacts: the line ranges the doc cites, the flag and exit code of the three installer records, and
seven commands per profile. manifests/evidence.json: hashes of the doc and the test re-registered
only.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:shared Touches files owned by both lanes; needs both lanes' acknowledgement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant