Repository navigation
maintenance: shed the review-slot and gate apparatus - #10
Merged
Merged
Conversation
Gate grading, the batch record and packet schema, `rule --also`, the `Lane:` header and the hand-rolled restricted-YAML parser are deleted. Phase 1 of the `cortex-checkin` epic; deletion only, and every historical record stays readable. Measured, not preferred: gate grading saw 2 gated refs and flipped 0 in its lifetime while schema decision 54 already routes sequencing through prose `Ready when:` lines; the review-slot apparatus opened 0 conductor slots, produced 0 rulings from a packet and 0 partial reviews, and never filled `review-minutes-actual`; `rule --also` was never used; `Lane:` read `local-dev` on 32 of 32 phases; and the restricted parser's own PyYAML-parity test proved it redundant. Kept: the plain `Gates:` header, the `gated` state and the read-only `gates` listing (which now prints each ref's URL) — a gated phase is moved on by a human typing `move <phase> ready`. `batches/` and `batches/reviews/` stay as read-only history, cited by 13 rulings, and join `rulings/` in `ledger_merge.py`'s append-only set: never modified, only added. A ruling's `Batch:` becomes optional-historical. `projects.yaml` is read with `yaml.safe_load` and the field validation is unchanged; PyYAML is declared in `cortex_check.yml` (before the check step, not only before the tests) and in the README. check OK; pytest 115 passed (134 before); dashboard regenerated. Schema decision 58 records the measurements. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013HsZA1ufn3msgPiDFxEXa6
`cortex.py` reads `projects.yaml` with PyYAML now, and two more workflows run it: `dashboard_refresh.yml` (through the Brain conductor, which imports the script at runtime) and `ledger_merge.yml`'s trial-merge `check`. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013HsZA1ufn3msgPiDFxEXa6
Contributor
Author
|
Expected red until the Brain PR merges. The The Follow-up commit |
This was referenced Sep 3, 2026
Conflicts were confined to the two generated pages (dashboard.md, dashboard.html), which main's self-heal commit re-rendered on 2026-09-04. Resolved by regenerating both with the phase-1 renderer (PyAutoBrain main at fc1cb32, which now carries this branch's conductor via PyAutoBrain#348) rather than hand-resolving them. phases/euclid/dr1_prelim_10_lens_science_run.md auto-merged: main's gate flip (State: ready) is kept; the `Gates-cleared:` key main's grading cron wrote is dropped, because this branch retires that header key along with gate grading itself (schema decision 58). `cortex.py check` is OK and `dashboard --check` reports the pages current. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L5Gw7BLNRB7crfHib9FwZY
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.
Phase 1 of the
cortex-checkinepic (ledgerPyAutoMind/draft/maintenance/pyautocortex/cortex_checkin_epic.md), closing PyAutoCortex#9. Deletion only, plus the one decoupling the phase-2 door needs. Every historical record stays readable.The 2026-09-03 assessment found the core right-sized and the review-slot apparatus unused: 0 slots opened by the conductor, 0 rulings from a packet, 0 partial reviews,
review-minutes-actualnever filled — all 22 rulings were reached in a live session. Gate grading saw 2 gated refs and flipped 0.rule --alsowas never used.Lane:readlocal-devon 32 of 32 phases. The restricted-YAML parser's own PyYAML-parity test proved it redundant.What went
.github/workflows/gates_grade.yml(the daily cron),GATE_JQ/_http_gate/fetch_gate_states/grade_gateand the--grade/--writehalf ofgates_report, theGates-cleared:/Gate-override:header keys and the threecheckinvariants over them, andmove --override. Kept: the plainGates:header, thegatedstate,GATE_REF_RE/gate_url, and the read-onlygateslisting — which now also prints the URL each ref resolves to, because a human opening them is the whole mechanism.gated → readyis nowcortex.py move <phase> ready, no flag.rule --also— flag, fan-out, tests, docs.Lane:— the schema, thecheckinvariant, thenewtemplate, and one mechanical sweep over the 32 phase files and the fixtures. The fact it recorded (every phase runs on the laptop) now lives once, inAGENTS.md.parse_projectsisyaml.safe_loadplus the same field validation (required/optional field sets,status/partitionenums, path shape,sync_verbsbare words). PyYAML is declared incortex_check.yml— moved before thecheckstep, not only before the tests — and in a new README requirements line.batches/packets/(TEMPLATE, AGENTS, three HTML pages),batch_problems/_review_section_problems/_record_members/_record_valuesand their grammars, theREFERENCE.mdschema section, and the slot/shift/review-minute/partial-review vocabulary inbatches/AGENTS.mdandbatches/reviews/AGENTS.md.What stayed, deliberately
batches/2026-*.mdandbatches/reviews/*.mdare kept as read-only history — 13 rulings cite the human's verbatim words in them. BothAGENTS.mdfiles now say exactly that, andscripts/ledger_merge.pyputsbatches/inAPPEND_ONLY_DIRSbesiderulings/: history, never modified, only added. (That is the answer to the prompt's "state which".) A ruling'sBatch:is now optional-historical — where present it must still resolve to abatches/<slot>.md; nothing writes a new one.projects.yamlandrulings/are untouched — noprojects.yamlchange was needed for the PyYAML swap.API Changes
scripts/cortex.pyis a repo-local script, not a published API, but its CLI surface changed:gatesloses--gradeand--write; it is read-only and offline.ruleloses--also.moveloses--override;gated → readyneeds no flag, andready → gatedis now a hand edit rather than a refusal pointing at the retired grader.parse_projects(text)keeps its(rows, problems)signature;_strip_comment/_scalarare gone.cortex.pynow needs PyYAML — its one dependency.GATE_JQ,_http_gate,fetch_gate_states,grade_gate,batch_problems,_record_members,_record_values,MEMBER_RE,SLOT_RE,REVIEW_PART_RE,LANE,HEALTHS,GATES_SETTLED_STATES,GRADED_STATES. The PyAutoBrain side of this epic (PyAutoBrain PR, same branch) is the only consumer and is updated with it.Verification
python3 scripts/cortex.py check→ OK.pytest -q→ 115 passed (134 before; the 19 fewer are the tests of the deleted things).dashboard --checkis current. It loses the batch status box and the two blurbs that named the retired grader.docs/schema_decisions.mdwith the measurements above.Left alone
rulings/AGENTS.mdstill documentsrule --alsoin one sentence.rulings/is append-only and was declared out of bounds for this phase; it is a one-line doc fix for whoever next touches that file.Merge order: PyAutoBrain#348 first, then this one. They are one change on one branch name, and the dependency runs that way:
dashboard_refresh.ymlhere renders through PyAutoBrain main, so until #348 lands, this PR'srefreshcheck runs the old conductor against the new script and fails on theMEMBER_REthis PR deletes. The other direction is safe — the new conductor works against either script.check(cortex.py check+ pytest) is green on the branch's own tree.🤖 Generated with Claude Code
https://claude.ai/code/session_013HsZA1ufn3msgPiDFxEXa6