Skip to content

Raise the Linux validate job timeout from 40 to 60 minutes while the suite stays serial - #653

Merged
seathatflowsinourveins merged 2 commits into
mainfrom
ci/validate-timeout-60-20261003
Oct 3, 2026
Merged

seathatflowsinourveins merged 2 commits into
mainfrom
ci/validate-timeout-60-20261003

Conversation

@seathatflowsinourveins

Copy link
Copy Markdown
Owner

Scope

  • What this PR changes, in one or two sentences: raises the Linux validate job's timeout-minutes from 40 to 60 and records why in the comment block above it; the workflow's hash is registered again in manifests/evidence.json. No other change.
  • Base commit: 4ced2923063db6a6dcafa9f25af5ee05a4153c75
  • Lane: lane:foundation
  • Owned paths touched: .github/workflows/validate.yml, manifests/evidence.json (registration only, the branch's last commit, per the hot-file protocol in docs/lanes.md)

SOTA sources

Evidence-class table

Claim Evidence class Command / receipt
The validate job took 1727 to 1745 s in three production runs, against a 2400 s limit independent observation of platform records (Actions jobs API, read-only, 2026-10-03) gh api repos/seathatflowsinourveins/native-agent-stack/actions/runs/<id>/jobs for the three run ids above
The serial unittest step took 1186 to 1688 s in three hosted runs on ubuntu-24.04 native_proven for the hosted run (actual execution on a GitHub-hosted runner); its sanitized receipt is in #652 run 37109532421, arms-linux jobs, step seconds
The suite grew about fourfold in a week (failing validate jobs: 385 s on 2026-09-25, 1787 s on 2026-10-02) independent observation of platform records, as recorded in the CI measurements receipt of the open records PR #632
Raising the limit breaks no workflow rule local_integration commands below

Local commands run

$ actionlint .github/workflows/validate.yml
exit 0, no output
$ zizmor --no-config --no-ignores --persona regular --strict-collection .
exit 0: No findings to report (offline mode; the online audits run in this PR's own validate job)
$ python3 -m unittest tests.test_workflow_hardening tests.test_workflow_security_coverage tests.test_osv_lockfile_coverage.LockfileInventoryTests.test_every_tracked_lockfile_and_manifest_is_listed tests.test_blind_checkout.RepositoryClassificationTests.test_every_blueprint_value_under_a_label_key_is_classified
Ran 86 tests, OK (skipped=2); exit 0
$ python3 scripts/validate.py ; python3 scripts/validate_convergence.py --all-recorded --root . --json ; python3 scripts/evidence_manifest.py --check ; python3 scripts/component_matrix.py --check ; python3 scripts/new_host_grand_list.py --check
all exit 0 (validate.py: 9,420 hashed files, 187 receipts)

Decision record

No new record: this is the fourth change of the same limit (5 to 10 minutes, then 20 on 2026-09-26, then 40 on 2026-09-29, now 60) and follows the comment convention above the line. The trial that would have shortened the job instead of raising its limit is recorded in #652. Overturn: lower the limit again when the job is shorter than 20 minutes, for example when the suite runs in parallel.

Host evidence

Not applicable: no files under evidence/hosts/ change.

Checklist

  • New/changed GitHub Actions are pinned to a full commit SHA with a version comment (no action changes in this PR).
  • New/changed workflows declare top-level permissions: contents: read (unchanged).
  • No secrets are printed, logged or committed; no new required secret was added.
  • No new paid hosting, subscription or billing surface was introduced: the repository is public and its standard-runner minutes are free.
  • Peer-owned untracked files and worktrees were preserved (not deleted, moved or overwritten).

Notes for the merger: three open pull requests (#515, #595, #596) also touch validate.yml; this change is one line plus a comment, so a conflict would be trivial. The limit is a hang guard, not a time budget.

🤖 Generated with Claude Code

seathatflowsinourveins and others added 2 commits October 3, 2026 07:06
…suite stays serial

The job took 1727 to 1745 s in three production runs (limit 2400 s) and the serial arm of the 2026-10-03 hosted trial took 1186 to 1688 s for the unittest step alone. The suite grew about fourfold in a week, and the parallel runner trialled to shorten it (unittest-parallel 1.8.6) could not run the suite, so the job stays serial for now. The limit remains a hang guard, not a test-time budget.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…file protocol)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@seathatflowsinourveins seathatflowsinourveins added the lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers label Oct 3, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 3, 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-03T11:09:21.013438Z 54160f9 PR opened
ℹ️ 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

Copy link
Copy Markdown
Owner Author

ACCEPT — source scope, exact #653 head 54160f929289217c5948c8c4169a8e77a4bf99cb, base 4ced2923063db6a6dcafa9f25af5ee05a4153c75.

The literal workflow delta is five rationale comment lines and timeout-minutes: 40→60. Serial unittest invocation, action pins, permissions, security steps and other job definitions preserve base bytes. GitHub's pinned timeout definition supplies the supported maximum-minutes hang guard and its runner-limit boundary.

Independent original Jobs-API observations support the cited production durations: 37088360538/job1111031802731745s/head8ad5378b160f62d253877b82c3e523d4206a9931; 37086567708/job1110980091841745s/head0e30c3fe3fcdf774f4d0301408b827633fd1ad7a; 37085570699/job1110950293851727s/headfd111e59a7480c7910907e5cdc9a32a9e42ec42e. The retained trial's three serial step11 durations are1688/1659/1186s at full head 1e4bb5ab7c79faa83e4cd8d04cf8dc6d33c7b0de, run37109532421/jobs111164592004,111164592081,111164591986. Those steps record exit status separately; job success alone is not an arm-result verdict. #652's complete failed-trial record remains under separate source review.

The rationale's pickling mechanism has a primary source: unittest-parallel bda5d77dc1a2fa2df90f5f5a7de297ea375e345c main.py:150–164 uses a spawned pool, maps test suites before result aggregation, and does not supply this candidate with a qualified parallel runner. This timeout-only change keeps the current serial job.

Root verified the actual decoded Git payloads: candidate workflow blob 8a2ed348e89d00438625fdccbf6724607fcdb230,38354B/SHA256 91c2f9a7c532d8a2a63a3754adc9053833294fcafa81e0c315dc78030bba9e83; base blob bca1f18b318259ede079011c42cd816675f881d9,37871B/SHA a6ecc9f9f8f5f56d46a3c6c16ae611968bf34db47fa235c6421a1eb576af2089; pinned GitHub docs blob 0953709ba9871623a320aa24b568a8dd51fbdcbf; pinned unittest-parallel blob 8a2d8df5eb30a2cfefba3b1595cc000dce2e668b. Registry blob 9689e383db78879bec65c00b2e6c8d0e54a87eac,2505617B/SHA f635f5a0837c1d5ca201d0f469887f97789d0e9666009244c86e2d73b1033a2f, preserves9420 row membership/order, all9419 foreign rows and187 receipt/26 convergence records; its sole changed row matches this actual workflow payload.

Nine new native GH reads exited0, full JSON originals retained; two additional pinned-source/trial captures were reused and independently verified. The first trial reader expected a JSON object, then a flat list; the actual paginated list of page objects was inspected and recovered. Both processing errors remain retained. Required native CI for this candidate remains a separate gate; no root tests, workflow restart, package adoption, installed-state or model measurement occurred. Integrate against actual current main while preserving all foreign evidence.

@seathatflowsinourveins
seathatflowsinourveins merged commit 59f8a1e into main Oct 3, 2026
25 checks passed
@seathatflowsinourveins
seathatflowsinourveins deleted the ci/validate-timeout-60-20261003 branch October 3, 2026 13:48
seathatflowsinourveins pushed a commit that referenced this pull request Oct 3, 2026
…col)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 3, 2026
…ecision and log the tripwire scope miss

This commit answers the round-9 review and the Codex review at 9faa5c4.

Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight
(FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through
ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so.

Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture
(#224). The authorization, reasoning.precedent and indirect_routes now say so.

Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research,
two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both
frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire
stand until then. The overturn and the closure note carry the new conditions.

Other fixes:
- The two counts now record their exact git grep commands.
- The statement that the guard does not read the .txt control modules names the recogniser's conditions.
- docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6,
  N7 and X13.
- The branch is rebased onto main 59f8a1e (#653).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 3, 2026
…utation runs in manifests/evidence.json

Hot-file protocol (docs/lanes.md): this is the branch's last commit, on main 59f8a1e (#653), and takes main's
manifests/evidence.json. It re-registers the closure record, the receipt and docs/harness-defaults.md, and the 71
files under evidence/artifacts/frozen-variant-guard-mutations-20261003/. component_matrix --write and
new_host_grand_list --write changed nothing else.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 3, 2026
…utation runs in manifests/evidence.json

Hot-file protocol (docs/lanes.md): this is the branch's last commit, on main 59f8a1e (#653), and takes main's
manifests/evidence.json. It re-registers the closure record, the receipt and docs/harness-defaults.md, and the 71
files under evidence/artifacts/frozen-variant-guard-mutations-20261003/. component_matrix --write and
new_host_grand_list --write changed nothing else.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 3, 2026
…ecision and log the tripwire scope miss

This commit answers the round-9 review and the Codex review at 9faa5c4.

Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight
(FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through
ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so.

Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture
(#224). The authorization, reasoning.precedent and indirect_routes now say so.

Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research,
two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both
frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire
stand until then. The overturn and the closure note carry the new conditions.

Other fixes:
- The two counts now record their exact git grep commands.
- The statement that the guard does not read the .txt control modules names the recogniser's conditions.
- docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6,
  N7 and X13.
- The branch is rebased onto main 59f8a1e (#653).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 3, 2026
…ecision and log the tripwire scope miss

This commit answers the round-9 review and the Codex review at 9faa5c4.

Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight
(FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through
ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so.

Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture
(#224). The authorization, reasoning.precedent and indirect_routes now say so.

Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research,
two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both
frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire
stand until then. The overturn and the closure note carry the new conditions.

Other fixes:
- The two counts now record their exact git grep commands.
- The statement that the guard does not read the .txt control modules names the recogniser's conditions.
- docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6,
  N7 and X13.
- The branch is rebased onto main 59f8a1e (#653).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 3, 2026
…ecision and log the tripwire scope miss

This commit answers the round-9 review and the Codex review at 9faa5c4.

Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight
(FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through
ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so.

Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture
(#224). The authorization, reasoning.precedent and indirect_routes now say so.

Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research,
two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both
frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire
stand until then. The overturn and the closure note carry the new conditions.

Other fixes:
- The two counts now record their exact git grep commands.
- The statement that the guard does not read the .txt control modules names the recogniser's conditions.
- docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6,
  N7 and X13.
- The branch is rebased onto main 59f8a1e (#653).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 3, 2026
…ecision and log the tripwire scope miss

This commit answers the round-9 review and the Codex review at 9faa5c4.

Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight
(FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through
ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so.

Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture
(#224). The authorization, reasoning.precedent and indirect_routes now say so.

Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research,
two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both
frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire
stand until then. The overturn and the closure note carry the new conditions.

Other fixes:
- The two counts now record their exact git grep commands.
- The statement that the guard does not read the .txt control modules names the recogniser's conditions.
- docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6,
  N7 and X13.
- The branch is rebased onto main 59f8a1e (#653).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 4, 2026
…ecision and log the tripwire scope miss

This commit answers the round-9 review and the Codex review at 9faa5c4.

Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight
(FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through
ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so.

Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture
(#224). The authorization, reasoning.precedent and indirect_routes now say so.

Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research,
two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both
frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire
stand until then. The overturn and the closure note carry the new conditions.

Other fixes:
- The two counts now record their exact git grep commands.
- The statement that the guard does not read the .txt control modules names the recogniser's conditions.
- docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6,
  N7 and X13.
- The branch is rebased onto main 59f8a1e (#653).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins pushed a commit that referenced this pull request Oct 4, 2026
…ecision and log the tripwire scope miss

This commit answers the round-9 review and the Codex review at 9faa5c4.

Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight
(FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through
ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so.

Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture
(#224). The authorization, reasoning.precedent and indirect_routes now say so.

Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research,
two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both
frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire
stand until then. The overturn and the closure note carry the new conditions.

Other fixes:
- The two counts now record their exact git grep commands.
- The statement that the guard does not read the .txt control modules names the recogniser's conditions.
- docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6,
  N7 and X13.
- The branch is rebased onto main 59f8a1e (#653).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
seathatflowsinourveins added a commit that referenced this pull request Oct 4, 2026
…ant) (#635)

* Record and guard the Dependabot alert 16 dismissal on the frozen macOS variant

The closure record notes the dismissal of Dependabot alert 16 (GHSA-vcvr-r3jv-pc5j) as not_used on the frozen
macOS variant's package.json, with its API readback receipt,
evidence/receipts/dependabot-alert-16-dismissal-20261003.json. tests/test_frozen_macos_variant_no_use.py, a
tripwire in the required validate job, fails when:
- a scanned file names the frozen artifact directory beyond its pinned lines;
- the directory gains a file;
- the lock or its next pin changes;
- the frozen OSV exception's date or keys change.

The guard's mutation driver is kept under evidence/artifacts/frozen-variant-guard-mutations-20261003/. The
anti-pattern log gains two 2026-10-03 rows.

This commit replaces the branch's earlier content commits (review rounds 1-7), rebuilt on main 4ced292, so that
no commit on the branch quotes a user message. Its tree equals round 7's first content commit 8f547913, apart from
main's changes since 9b0b8d6.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* Retain the guard's mutation runs and disclose the retained driver's assembled name

The mutation driver's returned results are kept under
evidence/artifacts/frozen-variant-guard-mutations-20261003/:
- round 8's final run: all 45 rows against the content commit a447a51, every row as expected;
- round 7's three runs of the new rows against the round-3, round-4 and round-5 modules. Each gap row passes
  there, so each of these runs exits 1 by design.

runs.json gives the argument vectors, times, exit codes, clone heads and hashes. Clone roots, the output directory
and the Python prefix are replaced with placeholders.

The receipt's table equals the retained output (45 rows, 0 mismatches) and binds the driver and runs.json by
sha256. Its limitations now say:
- the retained driver assembles the artifact name from fragments, a stated blind spot of the guard, and
  installs, builds or serves nothing;
- configuration names inside an excluded class that differ only in letter case are not read.

The closure note says "ASCII letter case", since the module folds ASCII letters only.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* Keep the control runs' modules, rebuild the controls on main and record the indirect-route decision

This commit answers the Codex review at 06c90df.

Control runs:
- The three earlier modules the control runs used are kept byte for byte, as .txt files, under
  evidence/artifacts/frozen-variant-guard-mutations-20261003/controls/. The guard does not read .txt files under
  evidence/**, and the receipt says so.
- The control runs were re-run on main's d2777ee with each kept module committed in a scratch clone, so anyone can
  rebuild them from the repository. Their outcomes, failing tests and messages equal round 7's runs, which they
  replace. runs.json records each control's base commit and module file.

Indirect routes: the receipt gains indirect_routes, a dated decision. The dismissal stands, and the indirect routes
stay stated limits. The record names:
- the alternatives declined: pinning the 43 lines that read the inventory, pinning the 297 package-manager lines,
  resolving each command's target, reopening the alert, and keeping the frozen manifest under names that tools
  don't parse;
- the precedent;
- the dated backstop of the OSV exception: it lapses on 2026-12-24, can be renewed at most 90 days ahead, and each
  renewal fails the review-date test.
The closure note points to the decision.

Round 8 review fixes:
- runs.json defines <repo> without tying it to the final run's clone head.
- runs.json describes the commits after the content commit accurately.
- The receipt states X15's correction as a deduction from the module.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* Correct the alert-16 backstop and precedent, record the convergence decision and log the tripwire scope miss

This commit answers the round-9 review and the Codex review at 9faa5c4.

Backstop: once the frozen exception lapses, the required osv-scanner job fails in its unittest preflight
(FrozenScanTests) before OSV-Scanner runs, and validate's full suite fails IgnorePolicyTests, both through
ignore_entry_problems. A renewal that also edits REVIEW_DATE passes, and the receipt now says so.

Precedent: the dismissal of alerts 7-15 that this record cites was superseded on 2026-09-25 by renaming the fixture
(#224). The authorization, reasoning.precedent and indirect_routes now say so.

Convergence decision: indirect_routes records the same day's convergence round. It ran Claude and GPT-6 research,
two GPT-6 Astra and two Claude Opus votes, and took the GitHub/CI lane session's input. It chose to rename both
frozen variant files to .frozen and stop scanning them in a follow-up pull request. The dismissal and the tripwire
stand until then. The overturn and the closure note carry the new conditions.

Other fixes:
- The two counts now record their exact git grep commands.
- The statement that the guard does not read the .txt control modules names the recogniser's conditions.
- docs/harness-defaults.md gains a row for scoping a tripwire by expected file kinds, proven by controls N1, N4-N6,
  N7 and X13.
- The branch is rebased onto main 59f8a1e (#653).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* Qualify the tripwire-scope anti-pattern row to the guard's actual reach

The Codex review at 47da9f8 found that the new row's rule said the guard reads JSON launch configurations inside
the record classes. The guard deliberately leaves `evidence/**/launch.json` unread: it is stated limit L5, and its
control passes. The rule now scans every file outside the record classes, reads each recognised runnable or
configuring kind inside them, and names every kind left unread as a stated limit with a passing control.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* Register the alert-16 receipt, the changed records and the retained mutation runs in manifests/evidence.json

Hot-file protocol (docs/lanes.md): this is the branch's last commit, on main e0c329a (#677), and takes main's
manifests/evidence.json. It re-registers the closure record, the receipt and docs/harness-defaults.md, and the 71
files under evidence/artifacts/frozen-variant-guard-mutations-20261003/. component_matrix --write and
new_host_grand_list --write changed nothing else.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Scout <scout@local>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lane:foundation Foundation lane: Claude/Codex setup, hosts, memory, RAG, research, workers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant