Repository navigation
Description
Overview
Phase 4a of the autonomous-orchestrators epic. The pilot opens with two shadow shifts (the orchestrator proposes and digests, the human works as today) to set the baseline; this slice builds that mode and the ledger the pilot is measured in.
Plan
- Brief key
shadow: yes|no(brief --checkrefuses anything else). Underyeseach tick plans inside the brief and records proposals (prompt, tier, pick reason,proposed: true) in counters.json — no lease, no worker — capped bymax-sessions:. - Digest: proposals marked
proposed (shadow)under brief work / backlog picks (backlog keeps itswhy:); proof packets "none — shadow shift"; every counter.brief --checkdoes not want a packet for a proposal. - Pilot ledger at
batches/pilot/pilot.md(subfolder: lifecycle.py, _batch.py and _brief read everybatches/*.mdas a record — human-approved deviation from the epic'sbatches/pilot.md). Created by the Mind PR;finish_shiftappends one row per shift through the one Mind writer;review-minutes-actualand overrules land as?for the human at check-in. - Docs:
batches/AGENTS.md, conductorAGENTS.md, batch skill. - Witness: fake shadow shift → 0 workers, proposals with reasons, digest lists them; real-git → pilot.md gains exactly one row matching the header; second finish adds none;
shadow: mayberefused; pytest green.
Tier: judge — merge mode: human /prm
Detailed implementation plan
- PyAutoBrain:
agents/conductors/batch/_brief.py(is_shadow, check),_orchestrator.py(_tick_lockedshadow branch,finish_shiftpilot row),_digest.py(proposal lines, packet exemption,pilot_row), teststests/test_orchestrator_shadow.py. - PyAutoMind:
batches/pilot/pilot.md,batches/AGENTS.md.
Suggested branch: feature/autonomous-orchestrators-p4a
Original Prompt
Click to expand starting prompt
Autonomous orchestrators phase 4a: shadow shifts + the pilot ledger (batches/pilot.md)
Type: feature
Target: PyAutoBrain
Repos:
- PyAutoBrain
- PyAutoMind
Difficulty: medium
Autonomy: human-required
Priority: high
Status: formalised
Filed: 2026-11-04
Epic: autonomous-orchestrators
Phase: 4
Consequence: judge
Witness: a fake shadow shift (shadow: yes) spawns zero workers while its counters record what it would have dispatched with each pick reason; its digest lists those proposals;finish_shiftappends exactly one well-formed row to a newPyAutoMind/batches/pilot.mdtable through the one Mind writer;batch brief --checkacceptsshadow: yes|noand refuses any other value;pytest PyAutoBrain/tests -qgreen
Review-minutes: 20
Unattended: never
Lane: local-dev
Parent: draft/feature/pyautobrain/autonomous_orchestrators_epic.md, phase 4 ("Dev orchestrator pilot", "What the pilot measures", "Success measures (pilot)"); slice 4a of 4a–4c. Builds on phase 3 (complete/2026/11/autonomous-orchestrators-p3a.md … -p3d.md).
The pilot opens with two shadow shifts: the orchestrator proposes and digests, the human works as today, and the minutes are logged as the baseline. This slice builds that mode and the ledger the whole pilot is measured in.
shadow: yes(brief key,batches/AGENTS.md): the watcher runs the same plan inside the brief and records each proposal (prompt, tier, pick reason) incounters.json, but spawns nothing and takes no lease.- Digest: a shadow shift's digest lists the proposals under brief work and backlog picks (marked as proposals, not work), with every counter.
batches/pilot.md: one row per shift, appended byfinish_shiftthrough the one Mind writer. Columns are the epic's pilot measures: slot, shadow or live,review-minutes-planned,review-minutes-actual, verified merges,glanceauto-merges, reverts, overrules, pushes, drafts filed, tokens, workers crashed. The human fillsreview-minutes-actualand overrules at check-in, so the row lands with those cells blank and a check-in step names them.- Docs:
batches/AGENTS.md, the batch conductorAGENTS.md.
Tier: judge — merge mode: human /prm.
Activity
Jammy2211 commentedon Nov 4, 2026
Library PRs created — PyAutoLabs/PyAutoMind#532 (merge first) + #571. Judge tier, human
/prm.Jammy2211 commentedon Nov 4, 2026
Shipped — merged 2026-11-04 by human
/prm: PyAutoMind#532 then PyAutoBrain#571. CI at head: Brain pytest 3.12/3.13 green; Mind dashboard refresh + privacy green, spawn-drift skipped (path-filtered).Jammy2211 commentedon Nov 4, 2026
Correction: the comment above was posted early — PyAutoBrain#571 had not merged (GitHub returned errors on the merge). Re-opened until the merge is confirmed.
Jammy2211 commentedon Nov 4, 2026
Shipped — PyAutoMind#532 merged by
/prm; PyAutoBrain#571 merged 2026-11-04T10:04Z via the GitHub UI after repeated GitHub server errors on the API merge path. CI at head green (Brain pytest 3.12/3.13; Mind dashboard refresh + privacy, spawn-drift skipped).