Repository navigation
Release policy: AGENTS.md and CONTRIBUTING.md are release-neutral - #68
Merged
Merged
Conversation
Both are contributor/agent guidance that no build, reducer, or Worker step reads, but as non-README Markdown at the root they were release-affecting by default, so a docs-only edit (for example the AGENTS.md changes in open PRs) would block promotion of an already-built release. Neither file is in brain-nightly.sh's release-affecting source check or the reducer scope, so the two policies still agree; a new test parses that check and fails if any explicitly neutral file falls inside it.
Owner
Author
|
Verdict: ready to merge. CI is green. One doc follow-up is needed after merge.
|
This was referenced Oct 17, 2026
Deicyde
added a commit
that referenced
this pull request
Oct 17, 2026
Review fixes: - The AFFECTING_EXCEPTIONS comment called brain-nightly.sh's uncommitted-source check "broader". It is a different set: it watches code, not curated inputs, so it covers Worker tests, READMEs and the canary but never bot/state/ or catalog/data/. The comment also gave a reason for site/test_frontier_page.py that other neutral gating tests contradict; it now just names the file. - The curated-input test reads every brain/authority/reducer-inputs-v*.json, not only v1. - The canary test's comment says it checks only the files the nightly names explicitly. - docs/BRAIN-ACTIVATION-2026-10-04.md is a record checkable at 37b7036, so its neutral list is restored and one sentence notes #68's and this PR's changes. The operator runbook's neutral list gains the bot/state exception instead.
Deicyde
added a commit
that referenced
this pull request
Oct 17, 2026
Release policy: AGENTS.md and CONTRIBUTING.md are release-neutral
Deicyde
added a commit
that referenced
this pull request
Oct 17, 2026
brain/authority/reducer-inputs-v1.json declares five bot/state/*.json files as curated_git_input, read by brain/build_cells.py, but bot/ is a neutral directory, so a commit changing one let main move past a release built from the old bytes. They are now affecting exceptions, and a test checks every reducer scope file and curated input against the policy. The comment on AFFECTING_EXCEPTIONS claimed the list must agree with brain-nightly.sh's uncommitted-source check. That check is broader: it also refuses local edits to Worker tests, READMEs and site/ops/brain-canary.py, none of which reach release bytes. The comment now says so, and a test pins the canary as the only file the nightly names that the policy leaves neutral. docs/BRAIN-ACTIVATION-2026-10-04.md's copy of the neutral list picks up these exceptions and #68's AGENTS.md and CONTRIBUTING.md.
Deicyde
added a commit
that referenced
this pull request
Oct 17, 2026
Review fixes: - The AFFECTING_EXCEPTIONS comment called brain-nightly.sh's uncommitted-source check "broader". It is a different set: it watches code, not curated inputs, so it covers Worker tests, READMEs and the canary but never bot/state/ or catalog/data/. The comment also gave a reason for site/test_frontier_page.py that other neutral gating tests contradict; it now just names the file. - The curated-input test reads every brain/authority/reducer-inputs-v*.json, not only v1. - The canary test's comment says it checks only the files the nightly names explicitly. - docs/BRAIN-ACTIVATION-2026-10-04.md is a record checkable at 37b7036, so its neutral list is restored and one sentence notes #68's and this PR's changes. The operator runbook's neutral list gains the bot/state exception instead.
Owner
Author
|
Re-review on main ( Stale, small:
Pre-existing, your call: |
This was referenced Oct 19, 2026
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.
Problem
site/ops/brain_release_authority.pydecides whethermainmay move past a built release's authority commit. Under its rule that non-README Markdown is release-affecting by default,AGENTS.mdandCONTRIBUTING.mdcurrently count as release-affecting.docs/BRAIN-ACTIVATION-2026-10-04.md:132-133records this. Both files are agent and contributor guidance:brain/,site/,wiki/scripts,wiki/src,wiki/assetsandcatalog/never opens them. Nobrain/*_profiles.jsonor attestation pins them.CLAUDE.mdandHANDOFF.mdare already neutral, andAGENTS.mdmirrorsCLAUDE.md.As things stand, a docs-only edit to
AGENTS.mdblocks promotion of an already-built release. The open PRs #50 and #54 both editAGENTS.md.Change
AGENTS.mdandCONTRIBUTING.mdtoNEUTRAL_FILES.site/ops/test_brain_release_authority.py:brain/AGENTS.md,wiki/src/CONTRIBUTING.md) stay release-affecting.test_neutral_files_are_outside_the_nightly_source_check. The policy's comment says it must agree withsite/ops/brain-nightly.sh's own release-affecting source check: thegit status --porcelain -- …list at line 824, plus the reducer scope that list expands frombrain/authority/reducer-inputs-v1.json. The test parses that list and fails if any explicitly neutral file falls inside it. It handles bare and quoted paths, directories, globs, and.. It also fails if the parse finds the wrong command.Agreement with the nightly
I checked this before editing anything. Neither file is in the nightly's watched list (
wiki/,site/assets, the namedbrain/andsite/ops/files, the reducer scope). So the two policies agree on these files, andbrain-nightly.shneeds no edit. No Brain profile registry (brain/*_profiles.json) pins either file orbrain_release_authority.py.The policy id
wikilean.release-neutral-paths/v1stays the same. It is held in memory only; promotion intents record just theneutral_changeslist. Widening the set never invalidates a list recorded earlier.How tested
python3 site/ops/test_brain_release_authority.py: 8 tests pass locally (Python 3.12).CLAUDE.md,"AGENTS.md",'*.md'or.to the nightly's watched list in a temp copy makes the new test fail.wiki/AGENTS.mdtoNEUTRAL_FILESmakes it fail.scripts/ci-python.sh. Until both merge, the local run is the evidence.Risks
brain-nightly.sh. If that command is reformatted beyond recognition, the test fails loudly rather than passing.bot/is a neutral directory, butbrain/authority/reducer-inputs-v1.json:36-40declaresbot/state/{cut_log,seed_queue,recycle_queue,brain_queue,pool_candidates}.jsonascurated_git_inputthatbrain/build_cells.pyreads. Amainthat changed only those files would pass the neutral check, even though a rebuild would produce different cells. (bot/state/on main is a frozen snapshot now, which limits how often this can happen.)site/ops/brain-canary.pyand all ofwiki/, while the policy treatsbrain-canary.py,wiki/README.md,wiki/test/andwiki/e2e/as neutral. That looks deliberate: those paths affect validation, not release bytes. But it means the module's "the two policies must agree" comment holds only forAFFECTING_EXCEPTIONS.What Jack must do
docs/BRAIN-ACTIVATION-2026-10-04.md:125-133will be out of date. It lists the neutral set without these two files and says they "are currently release-affecting". That doc is handled separately.Release-neutral (per
site/ops/brain_release_authority.py): the PR changes onlysite/ops/.