Repository navigation
policy: owner-approved-foreign only for new foreign files and the gate itself (Closes #10197) - #10201
Merged
Merged
Conversation
…e itself (Closes #10197) Owner rule, 2026-10-18 (translated): the label must not be needed on every pull request, only for the most important files. specs/policy/own_language.t27: a modified (git M) hand-written foreign file now gets the ALLOW reason R_MODIFIED (8) via existing(). New files, renames, copies and type changes to a foreign path stay DENY. The gate's own files and tools/policy/foreign-exceptions.txt stay PROTECTED. counts_against_budget() classifies as 'A', so modified foreign files still count against check_budget() (40 per file, 80 per PR, shrink-only), which no label lifts. gen/c/policy/own_language.c is t27c gen-c output (L2), regenerated on the Railway lab. AGENTS.md and the own-language.yml header comment are updated to match (the yml is net zero lines). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 18, 2026 04:10
Contributor
This was referenced Oct 18, 2026
gHashTag
added a commit
that referenced
this pull request
Oct 18, 2026
…) (#10211) #10201 changed specs/policy/own_language.t27 without resealing it, so tools/check_seal_coverage.py has failed on master since: the seal is stale. The seal is renewed with t27c built from master 27efeba on the Railway lab (`t27c seal specs/policy/own_language.t27 --save`): new spec_hash and gen hashes, tests 36/36, 0 vacuous. Only the seal file changes. The spec, its generated C and the workflow are the gate's protected paths and are not touched, and seal_baseline.txt is unchanged. Lab, master 27efeba + this change: check_seal_coverage.py exits 0, "OK: 2512 seals, 2390 hold, 122 known-broken". Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
owner-approved-foreignis now needed only for the most important files, not for every pull request that touches existing foreign code.M):compiler.rs,cli/t27b/**/*.rs, a workflow.yml,scripts/triR_MODIFIED), held by the budgetA), or rename/copy/type-change to a foreign pathgen/c/policy/own_language.c,lefthook.yml,.github/workflows/own-language.yml,tools/policy/foreign-exceptions.txt(CI)check_budget(): 40 added foreign lines per file, 80 per PR, never more added than deletedspecs/policy/own_language.t27R_MODIFIED = 8.existing(kind, r)maps a foreign reason to it whenkind == 'M'.counts_against_budget()now classifies as'A', so modified foreign files still count against the budget. Without this change they would have dropped out of it.'A'.gen/c/policy/own_language.c:t27c gen-coutput (L2), regenerated on the Railway lab..github/workflows/own-language.yml: header comment only. 5 lines added and 5 deleted, so it is net zero for the budget. Theif:label conditions are unchanged.AGENTS.md: the "Only t27" and "t27b is written in t27" bullets now describe the new rule.Authorization
Owner instruction in this Claude Code session, 2026-10-18 (translated): remove this, the label
owner-approved-foreignis not needed on every PR, only for the most important files. This PR changes the gate's protected files, so it carries that label. The label waives the path check only; the budget step still runs on this PR. The local hook denies every change to the gate's own files, so the commit and the push were made withLEFTHOOK=0, as with #7399. This time the agent ran them in the owner's terminal, on the owner's explicit instruction in the session (2026-10-18, translated): "Yes, I authorize it: run the LEFTHOOK=0 commit and push in my terminal tab".Verified on the Railway lab (base 6d60995)
cargo build --release -p t27c: exit 0.t27c gen-cof master's spec reproduces master'sown_language.cbyte for byte. The committed C is the gen-c output of this spec; sha256 590d8243 matched after transfer.t27c check: 0 errors.t27c test-report specs/policy/own_language.t27: 36/36 pass, 0 vacuous, 2 invariants proved.classify('M', lower.rs) == DENY) gives 35 pass and 1 FAIL.ccexactly as lefthook does:--ciwithM compiler.rs,M cli-tri.yml,M scripts/tri: exit 0.A tools/new_tool.rs: exit 1.R100 a.t27 b.py: exit 1.M specs/policy/own_language.t27: exit 1.M tools/policy/foreign-exceptions.txtin CI: exit 1.M lefthook.ymllocally: exit 1.Closes #10197
🤖 Generated with Claude Code