Skip to content

Require upstream citations and failing regressions for corrections - #944

Merged
seathatflowsinourveins merged 4 commits into
mainfrom
codex/ns2604-corrections-rule-20261009
Oct 10, 2026
Merged

seathatflowsinourveins merged 4 commits into
mainfrom
codex/ns2604-corrections-rule-20261009

Conversation

@seathatflowsinourveins

@seathatflowsinourveins seathatflowsinourveins commented Oct 9, 2026 •

Copy link
Copy Markdown
Collaborator

Scope

New WSL configurations and scaffolded repositories previously rendered the old correction rule while root AGENTS carried the amendment. All six philosophy layers now require the same amended core: resolve a wrong claim or fix from the pinned upstream primary source through the vendor's supported path, record the cited correction, add a regression test that fails before the fix, and measure first-hand when sources disagree. The native Claude, Codex and scaffold producers emit the new sentence once and omit the old sentence.

Restoring that sentence also changes the Codex template's live top-segment digest. The worker-lane test still expected the preceding core's digest and failed against the corrected carrier. This follow-up calculates the digest with the existing template_segments() helper and updates its live constant and two explanatory comments. The hash assertion and all four RTK constants remain byte-identical; historical digest records remain unchanged.

  • Base commit and actual merge-base with the comparison main: 3c01bdddc66896f8e36f9f21d452710808a9557e.
  • PR: existing draft Require upstream citations and failing regressions for corrections #944, lane:shared.
  • Final head: 9d101e6cc842bea3b01842bc6087bc219d946034.
  • Parent of this one follow-up fix commit: fad389cc710eca096fef037c2600d488428a85fb; no rebase.
  • Validated source tree: b7bd72038ef0482700466a8d8fc06b93a19815ca.
  • Whole PR: thirteen paths. Root/trading AGENTS, REVIEW, the dated decision, installer/scaffold/worker-lane tests, manifest, and five repository carriers. This follow-up changes only the worker-lane test, decision record and manifest.

The three common sources are examples/claude-native/CLAUDE.md, adoption/templates/codex.AGENTS.template.md and adoption/scaffold/AGENTS.md. The existing native --write-blocks path regenerates adoption/new-wsl/claude-user-instructions.md and adoption/new-wsl/codex-user-instructions.md. Each carrier's preceding fix changed only the exact sentence, +225 bytes; inverse projections restore 7cf7a7f9 bytes exactly. This follow-up changes none of those carriers.

The root/trading policy and directly delivered Corrections review group retain their verified placement. Updating versioned repository inputs and generated carriers is distinct from applying actual user-level files, which remains the CC's separate post-landing stage. The existing scaffold whitespace-drift regression follows the amended sentence's ending; its native detector remains unchanged.

SOTA sources

  • Official OpenAI documentation: Customize what Codex reviews, fetched 2026-10-09 and rechecked by the co-op at about 23:01Z: documents ## Code Review Rules, optional ### groups, and root/nested AGENTS guidance scoped to changed files.
  • Official Claude Code Review documentation: Customize reviews, fetched and rechecked on the same date: documents direct delivery of REVIEW instructions to finding/verification agents and consultation by ranking/reporting agents. REVIEW contains the Corrections group directly, beside the scoped pointer, so delivery does not rely on implicit reference expansion. These source checks do not establish hosted reviewer execution.
  • us-equities-trading #46, immutable 6c42c8ab1e287a160da43b48b75692b42b880a81, AGENTS.md:139–143: exact Corrections group and safe path. This reference is an open PR at the observed pin, not a merged acceptance result. The root and REVIEW groups remain byte-identical to it: 275 bytes, SHA256 a1c6e526b4f478ffc1e5fce5e9b5ecf521aa7f321df7a66876a010f54e167747.
  • Native producers at accepted native-agent-stack@7cf7a7f9fa75a75e15f3b08bab3ecce3b9edaa0f: new-WSL block producer, its --write-blocks branch at lines 2752–2771, and scaffold producer. These existing producers remain unchanged.
  • Existing worker-lane harness at accepted fad389cc710eca096fef037c2600d488428a85fb, tests/test_codex_worker_lane.py:422: template_segments() measures the rendered top separately from upstream RTK awareness. The live digest now equals its native return value, 1,917 UTF-8 bytes and SHA256 ae8f16bedb8cabc753114c4b8fbce3ef8e835ac50ea36aefb870671bf1ae8023; the hash assertion is preserved.
  • Existing instruction-surface harness and evidence tooling: tests/test_install_claude_profile.py, tests/test_scaffold_repo.py, scripts/host_receipts.py and scripts/validate.py. Native registration and validation remain the supported path; no new renderer, package, client integration or digest helper is introduced.

Evidence-class table

Claim Evidence class Command / receipt
The portable-carrier defect was reproduced and addressed source_review / local_integration Designated P2 at 7cf7a7f9, GPT-VERDICT-7cf7a7f9f.md, SHA256 237eb87d6a9b4a85512be9a35d0bb781569f627866fc2a2543b27580e7ff49cb. Repository-carrier deferral was corrected at fad389cc; actual user-level application remains separate.
Carrier regression failed before the preceding fix and passed afterward local_integration — prior composition RED: 10 standing tests, 9 assertion failures, 0 errors, completed 2026-10-09T23:07:49Z before source update at 23:08:35Z. All three actual producers returned old=1/new=0. Focused GREEN: 20 tests, 0 skips, completed 23:10:48Z; native outputs have old=0/new=1/common-core=1. Independent pure-output audit at 23:11:42Z confirmed matching carrier hashes. These results belong to the carrier fix, not a new broad rerun at the latest head.
Five carrier deltas preserve every other byte local_integration — prior composition Independent audit at 2026-10-09T23:10:55Z: exact sentence-only +225-byte projection on each carrier; inverse restores 7cf7a7f9. Root/trading/REVIEW/CLAUDE stayed accepted-parent byte-identical. Native regeneration exited 0 with no omitted units.
Scaffold drift regression still exercises a real mutation local_integration — prior composition The first 365-test run exposed its stale mutation target. Updating the searched ending to the amended ending preserved the native detector; targeted test passed 2026-10-09T23:16:54Z, then the three-module run passed.
Full installer, scaffold and new-WSL gates local_integration — prior composition At tree 1272782fff4c4246f26ba6624d17a43f99de48cc / commit fad389cc: normal run exit 0, 365 tests, OK (skipped=1), 2026-10-09T23:19:13Z–23:21:04Z, 110.74 seconds. Output SHA256 d2f326d8726a273fbb07dd95e063c66fad2a68509b15a1299179418f35143d3b. These modules were not broadly rerun for the constant-only follow-up.
The stale live top-segment pin fails before correction local_integration Targeted worker-lane regression with NAS_CODEX_INTEGRATION unset: exit 1, one test/one failure, completed 2026-10-10T00:11:49Z against the preceding live constant.
The calculated pin fixes the assertion without weakening it or changing RTK local_integration Native template_segments() gives 1,917 bytes / SHA256 ae8f16bedb8cabc753114c4b8fbce3ef8e835ac50ea36aefb870671bf1ae8023. Targeted GREEN: exit 0, one test, completed 2026-10-10T00:13:11Z. Source comparison preserves the entire hash assertion and all four RTK constants byte-for-byte; assertion-method SHA256 7a24ba7cc8ae3f33c076c6e2561f7c18116a96b05bbb5515ae5289364529ee1d. Only the top constant and two comments change; three old-digest historical occurrences stay unchanged.
Full worker-lane module passes on the resulting source local_integration Normal run with NAS_CODEX_INTEGRATION unset: exit 0, 123 tests, OK (skipped=12), 2026-10-10T00:13:38Z–00:14:45Z. Real app-server integration remains opt-in and was not run.
Native manifest registration preserves membership and order local_integration Existing helper regenerated the worker-lane test and decision rows at 2026-10-10T00:16:37Z; 11,286 rows, no membership/order change. Manifest SHA256 1f1daa174fa6cfeb217b3fef2b2c0691c292404ca5433760a0796afe83afd99c. Earlier carrier registration updated seven existing payload rows and added the scaffold-test row.
Resulting source tree passes FULL validation local_integration Normal python3 -B scripts/validate.py: exit 0, 2026-10-10T00:16:48Z–00:17:38Z, 49.61 seconds; 11,286 hashes, 70 components, 4 profiles, 239 receipts. Output SHA256 0f75e77db94262f206a41d8a912103a191e5f9ab8369ad954c983b7d29e000be. Exact validated tree b7bd72038ef0482700466a8d8fc06b93a19815ca committed at 00:18:11Z.
Genuine current-main merge composition and full worker-lane gate local_integration Scratch checkout HEAD is fixed 9d101e6c, MERGE_HEAD is immutable main a7bb4a51eea9cc321dd06dd6243a5b2654a5f805; actual merge-base 3c01bdddc66896f8e36f9f21d452710808a9557e. Native merge completed without conflicts and auto-merged the manifest, producing staged tree b22adf5b8e2f42262fc10bafcbef136457202a23 at 2026-10-10T00:19:17Z. This is an uncommitted merge composition, not a source-branch merge or rebase. Its normal full worker-lane run exited 0: 123 tests, 0 failures/errors, 12 skips, 00:19:55Z–00:21:06Z, 70.81 seconds; output SHA256 aaedb81495c72c31242ee819c51231d0558bf93bd5ef08e2f6d044c4936e82db.
Genuine current-main composition passes FULL validation local_integration Normal python3 -B scripts/validate.py on staged tree b22adf5b8e2f42262fc10bafcbef136457202a23: exit 0, 2026-10-10T00:21:22Z–00:22:15Z, 53.3 seconds; 11,297 hashes, 70 components, 4 profiles, 239 receipts. Output SHA256 534bf2b7c733b70588b934a6ab122cb86c1c325948a3d6b4ec216721b0b332be. Postchecks at 00:22:41Z retain that staged tree and fixed HEAD/main MERGE_HEAD, with no unmerged paths, no unstaged tracked diff and no cached diff-check errors. The manifest auto-merged cleanly; no regeneration was needed. This composition remains uncommitted. Its 11,297 hashes are distinct from the source tree's 11,286.
Startup footprint and fixed ceilings reflect all carriers local_integration — prior composition, unchanged by this fix Native startup helper: Claude 4,728→5,650 bytes; Codex 4,829→5,751 bytes, +922 each over base. The carrier fix adds +225 over accepted-parent 5,425/5,526. Fixed five-percent ceilings are 5,933/6,039, rounded up and documented for CC cost review. This follow-up changes no instruction carrier. Bytes do not establish tokens or model quality.
Cross-lane acknowledgement and acceptance pending Current-head required CI, other-lane PR acknowledgement, designated GPT micro, CC micro and CC cost review remain pending. Guarded publication/readback are recorded separately in the external lane receipt; no hosted reviewer execution or runtime compliance is claimed.

Local commands run

The preceding carrier correction's exact commands and receipts remain in the dated decision and prior PR-body receipt. Its full installer/scaffold/new-WSL result is scoped to fad389cc above. The latest follow-up runs are:

env -u NAS_CODEX_INTEGRATION python3 -B -m unittest tests.test_codex_worker_lane.TemplateTests.test_top_rule_is_pinned_and_rendered_rtk_is_the_unchanged_pinned_source
RED: exit 1; one test, one failure; completed 2026-10-10T00:11:49Z
GREEN: exit 0; one test; completed 2026-10-10T00:13:11Z

env -u NAS_CODEX_INTEGRATION python3 -B -m unittest tests.test_codex_worker_lane
exit 0; 123 tests, OK (skipped=12)
started 2026-10-10T00:13:38Z; completed 2026-10-10T00:14:45Z

scripts.host_receipts.register_file(root, path) x2
worker-lane test and dated decision; membership/order preserved
11286 rows; completed 2026-10-10T00:16:37Z
manifest SHA256 1f1daa174fa6cfeb217b3fef2b2c0691c292404ca5433760a0796afe83afd99c

python3 -B scripts/validate.py
FULL exit 0; 11286 hashes, 70 components, 4 profiles, 239 receipts
started 2026-10-10T00:16:48Z; completed 2026-10-10T00:17:38Z
49.61 seconds
output SHA256 0f75e77db94262f206a41d8a912103a191e5f9ab8369ad954c983b7d29e000be

One follow-up fix commit 9d101e6cc842bea3b01842bc6087bc219d946034
parent fad389cc710eca096fef037c2600d488428a85fb
exact validated tree b7bd72038ef0482700466a8d8fc06b93a19815ca
committed 2026-10-10T00:18:11Z; no rebase

Genuine scratch composition: fixed HEAD 9d101e6c + MERGE_HEAD a7bb4a51
actual merge-base 3c01bdddc66896f8e36f9f21d452710808a9557e
native staged tree b22adf5b8e2f42262fc10bafcbef136457202a23; no conflicts
env -u NAS_CODEX_INTEGRATION -u NAS_CODEX_STARTUP_TRIAL -u NAS_CODEX_STARTUP_OBSERVATIONS python3 -B -m unittest tests.test_codex_worker_lane
exit 0; 123 tests, 0 failures/errors, OK (skipped=12)
started 2026-10-10T00:19:55Z; completed 2026-10-10T00:21:06Z; 70.81 seconds
output SHA256 aaedb81495c72c31242ee819c51231d0558bf93bd5ef08e2f6d044c4936e82db
python3 -B scripts/validate.py
genuine uncommitted merged tree b22adf5b8e2f42262fc10bafcbef136457202a23
FULL exit 0; 11297 hashes, 70 components, 4 profiles, 239 receipts
started 2026-10-10T00:21:22Z; completed 2026-10-10T00:22:15Z; 53.3 seconds
output SHA256 534bf2b7c733b70588b934a6ab122cb86c1c325948a3d6b4ec216721b0b332be
postchecks 2026-10-10T00:22:41Z: staged tree and HEAD/MERGE_HEAD unchanged
no unmerged paths, no unstaged tracked diff, cached diff-check exit 0

This description is prepared before publication. Publication uses the tracked native pre-push hook and a normal follow-up push; its exit code, exact remote head and readback remain in the external lane receipt so preparation does not disturb the new-head CI run.

Decision record

docs/decisions/2026-10-09-corrections-rule.md at final head 9d101e6c records the correction requirement, immutable reference group, vendor review mechanisms, six-layer invariant, native producers, fail-before reproduction, measured byte cost and live-pin correction. Historical consolidation measurements and sealed proposal digests retain their dated meaning.

The record retains fixed startup ceilings and requires designated reviews to assess the +922-byte growth. Revisit placement if official guidance changes, a hosted review exposes a delivery gap, or measured context cost is unjustified. Local green tests and source reads do not establish hosted bot enforcement.

Host evidence

This PR changes repository instruction sources, committed generated carriers and their guards. It introduces no host receipt or platform-status change and applies no actual user-level file. Client configuration, credential contents and private-name patterns are not read or changed. Existing custom Claude Actions prompts remain a separate integration. Worker-lane integration cases remain disabled for these local gates.

Checklist

  • Correction requirement is uniform across all six philosophy layers.
  • Three common sources updated; two new-WSL carriers regenerated through the existing supported path.
  • Native producer outputs failed before the carrier fix and passed afterward; five carrier deltas preserve other bytes.
  • Root/trading review surfaces retain their placement and immutable reference-group parity.
  • Startup footprint and fixed ceiling comparison remain documented for cost review.
  • Live worker-lane top digest is calculated from the native helper; hash assertion, RTK constants and historical records remain intact.
  • Targeted RED/GREEN, full worker-lane module and source-tree FULL validation have explicit outcomes.
  • Native registration refreshes only the follow-up test and decision rows, preserving membership/order.
  • One follow-up fix commit has the exact validated tree and preceding accepted parent; no rebase.
  • Fresh genuine current-main composition passes the full worker-lane module.
  • Fresh genuine current-main composition passes FULL validation; postchecks retain its uncommitted tree.
  • PENDING — guarded push and exact remote readback recorded in the external lane receipt.
  • PENDING — current-head required CI completes.
  • PENDING — another lane acknowledges this lane:shared PR by comment or review under docs/lanes.md:145–150.
  • PENDING — designated GPT micro and CC micro approve the corrected invariant and measured context cost.

@seathatflowsinourveins seathatflowsinourveins added the lane:shared Touches files owned by both lanes; needs both lanes' acknowledgement label Oct 9, 2026
@seathatflowsinourveins
seathatflowsinourveins marked this pull request as ready for review October 10, 2026 02:36
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 10, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-10T02:42:37.433776Z d6d8958 Draft marked ready
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@seathatflowsinourveins
seathatflowsinourveins merged commit 1e564ef into main Oct 10, 2026
36 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the codex/ns2604-corrections-rule-20261009 branch October 10, 2026 02:43
seathatflowsinourveins added a commit that referenced this pull request Oct 12, 2026
…ith tests

Unset workflow agents do not inherit the session model. The workflows page
(Cost section) and the sub-agents page (Choose a model), read 2026-10-11
against Claude Code 2.1.296, resolve a workflow agent's model as a model the
script names, then the definition, then CLAUDE_CODE_SUBAGENT_MODEL, then the
session model, and adoption/templates/claude.settings.template.json:27 sets
CLAUDE_CODE_SUBAGENT_MODEL to opus. The reason of the
CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL row and the record's workflow-agent bullet
now say so, and the dispositions catalog is re-registered in
manifests/evidence.json. Only that row's reason text changed in the catalog;
keys, dispositions, sources and versions are identical, and the watch's counts
do not read the reason.

The record said this repository's CLAUDE.md (8 lines) imports AGENTS.md (14
lines). AGENTS.md has 25 lines at 8c95a50 (#944 grew it before the rebase), and
a count of a file other PRs edit goes stale in a record that is kept, so the
record now states only the import. It also dated the first watch run "at the PR
base", which every rebase moves; the row now names the original base, a7bb4a5
(main after #941, committed 53 s before the run), as the PR's body recorded it.

Two tests in DispositionCitationTests guard these claims:
- test_unset_workflow_agents_are_not_said_to_inherit_the_session_model
- test_the_record_pins_no_instruction_file_line_count_and_no_relative_base
  (no line count after CLAUDE.md or AGENTS.md, no "the PR base", the run row
  names a commit, and CLAUDE.md still imports AGENTS.md through its @AGENTS.md
  line, which keeps the one relationship the record states true).
On the tree of 37b9008 plus the test file, the two fail five sub-assertions
(the row and the record say the agents inherit the session model, the row does
not name CLAUDE_CODE_SUBAGENT_MODEL, the record pins "(8 lines)", and the record
says "the PR base"); on this commit they pass. tests/test_upstream_surface_watch.py
is re-registered in manifests/evidence.json.

The record called #923 a draft; #923 landed in a30c218, its skill pins
client_version 2.1.295 (reference/slots.json:3), and "Cloud routines" is a
ranked alternative of the scheduled-tasks slot (reference/slots.json:1625). The
record now says so, re-dates its exact-case search of the skill's pages, and adds
the sub-agents and workflows pages read on 2026-10-11, with their body digests,
to its SOTA sources. Its scope sentences and its evidence counts (233 tests with
the two new ones) now name the regression tests.

Not run: a probe of workflow-agent model precedence; the corrected sentences
rest on the documentation, and the tests guard the committed text, not the client.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins added a commit that referenced this pull request Oct 12, 2026
…ith tests

Unset workflow agents do not inherit the session model. The workflows page
(Cost section) and the sub-agents page (Choose a model), read 2026-10-11
against Claude Code 2.1.296, resolve a workflow agent's model as a model the
script names, then the definition, then CLAUDE_CODE_SUBAGENT_MODEL, then the
session model, and adoption/templates/claude.settings.template.json:27 sets
CLAUDE_CODE_SUBAGENT_MODEL to opus. The reason of the
CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL row and the record's workflow-agent bullet
now say so, and the dispositions catalog is re-registered in
manifests/evidence.json. Only that row's reason text changed in the catalog;
keys, dispositions, sources and versions are identical, and the watch's counts
do not read the reason.

The record said this repository's CLAUDE.md (8 lines) imports AGENTS.md (14
lines). AGENTS.md has 25 lines at 8c95a50 (#944 grew it before the rebase), and
a count of a file other PRs edit goes stale in a record that is kept, so the
record now states only the import. It also dated the first watch run "at the PR
base", which every rebase moves; the row now names the original base, a7bb4a5
(main after #941, committed 53 s before the run), as the PR's body recorded it.

Two tests in DispositionCitationTests guard these claims:
- test_unset_workflow_agents_are_not_said_to_inherit_the_session_model
- test_the_record_pins_no_instruction_file_line_count_and_no_relative_base
  (no line count after CLAUDE.md or AGENTS.md, no "the PR base", the run row
  names a commit, and CLAUDE.md still imports AGENTS.md through its @AGENTS.md
  line, which keeps the one relationship the record states true).
On the tree of 37b9008 plus the test file, the two fail five sub-assertions
(the row and the record say the agents inherit the session model, the row does
not name CLAUDE_CODE_SUBAGENT_MODEL, the record pins "(8 lines)", and the record
says "the PR base"); on this commit they pass. tests/test_upstream_surface_watch.py
is re-registered in manifests/evidence.json.

The record called #923 a draft; #923 landed in a30c218, its skill pins
client_version 2.1.295 (reference/slots.json:3), and "Cloud routines" is a
ranked alternative of the scheduled-tasks slot (reference/slots.json:1625). The
record now says so, re-dates its exact-case search of the skill's pages, and adds
the sub-agents and workflows pages read on 2026-10-11, with their body digests,
to its SOTA sources. Its scope sentences and its evidence counts (233 tests with
the two new ones) now name the regression tests.

Not run: a probe of workflow-agent model precedence; the corrected sentences
rest on the documentation, and the tests guard the committed text, not the client.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
seathatflowsinourveins added a commit that referenced this pull request Oct 12, 2026
… rust-v0.162.1 (#950)

* Resolve the upstream-surface backlog to Claude Code 2.1.296 and Codex rust-v0.162.1

Disposition the 49 open names plus two the docs do not list yet, re-review the
Claude memory and skills document rows, advance the baseline from 2.1.289 and
rust-v0.160.0, and record the gaps, the page-digest rows not added and the
hand-offs in one decision record. Data only: no code, instruction text,
setting, hook or unit changes.

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

* Record the command center's rulings on the four open upstream-surface rows

Leave CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL unset (declined); decline
ultrafast_mode (plan-gated, dropped client-side by the OmniRoute profile);
keep the Codex cyber access programs as owner information only; decline the
model_providers capabilities rows until the currency lane's trial after #943.
Rows, decision record and the re-registered catalog hash change together.

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

* Name an owner for each follow-up and hand-off in the gap-resolution record

The page-URL diffs go to the command center (through the daily watch service it
installs after #943), the changelog-name report to the currency lane, and the
settings-drift inventory to cc-native-practice. The weekly practice pass, the
TeammateIdle gate, the cost-data check and the WebSearch interaction now say who
acts or that nothing is scheduled.

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

* Correct four claims in the gap-resolution record; guard two of them with tests

Unset workflow agents do not inherit the session model. The workflows page
(Cost section) and the sub-agents page (Choose a model), read 2026-10-11
against Claude Code 2.1.296, resolve a workflow agent's model as a model the
script names, then the definition, then CLAUDE_CODE_SUBAGENT_MODEL, then the
session model, and adoption/templates/claude.settings.template.json:27 sets
CLAUDE_CODE_SUBAGENT_MODEL to opus. The reason of the
CLAUDE_CODE_WORKFLOW_SUBAGENT_MODEL row and the record's workflow-agent bullet
now say so, and the dispositions catalog is re-registered in
manifests/evidence.json. Only that row's reason text changed in the catalog;
keys, dispositions, sources and versions are identical, and the watch's counts
do not read the reason.

The record said this repository's CLAUDE.md (8 lines) imports AGENTS.md (14
lines). AGENTS.md has 25 lines at 8c95a50 (#944 grew it before the rebase), and
a count of a file other PRs edit goes stale in a record that is kept, so the
record now states only the import. It also dated the first watch run "at the PR
base", which every rebase moves; the row now names the original base, a7bb4a5
(main after #941, committed 53 s before the run), as the PR's body recorded it.

Two tests in DispositionCitationTests guard these claims:
- test_unset_workflow_agents_are_not_said_to_inherit_the_session_model
- test_the_record_pins_no_instruction_file_line_count_and_no_relative_base
  (no line count after CLAUDE.md or AGENTS.md, no "the PR base", the run row
  names a commit, and CLAUDE.md still imports AGENTS.md through its @AGENTS.md
  line, which keeps the one relationship the record states true).
On the tree of 37b9008 plus the test file, the two fail five sub-assertions
(the row and the record say the agents inherit the session model, the row does
not name CLAUDE_CODE_SUBAGENT_MODEL, the record pins "(8 lines)", and the record
says "the PR base"); on this commit they pass. tests/test_upstream_surface_watch.py
is re-registered in manifests/evidence.json.

The record called #923 a draft; #923 landed in a30c218, its skill pins
client_version 2.1.295 (reference/slots.json:3), and "Cloud routines" is a
ranked alternative of the scheduled-tasks slot (reference/slots.json:1625). The
record now says so, re-dates its exact-case search of the skill's pages, and adds
the sub-agents and workflows pages read on 2026-10-11, with their body digests,
to its SOTA sources. Its scope sentences and its evidence counts (233 tests with
the two new ones) now name the regression tests.

Not run: a probe of workflow-agent model precedence; the corrected sentences
rest on the documentation, and the tests guard the committed text, not the client.

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

---------

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