Skip to content

docs: autonomous orchestrators p1 — shift brief formats, watcher exemption, Lane: - #522

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/autonomous-orchestrators-p1
Nov 3, 2026
Merged

Jammy2211 merged 1 commit into
mainfrom
feature/autonomous-orchestrators-p1

Conversation

@Jammy2211

@Jammy2211 Jammy2211 commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Closes nothing on its own — phase 1 of the autonomous-orchestrators epic, tracked on PyAutoLabs/PyAutoBrain#551. Read together with PyAutoLabs/PyAutoBrain#552.

What changes

  • policy/shift_watcher.md (new) — the deterministic watcher is the one exemption to "sessions end at their deliverable": a non-LLM script, calls no Claude tool, arms nothing in a session, dispatches nothing without an open brief, STOP file checked first. Cites the 2026-08-31 and 2026-09-03 drains.
  • batches/AGENTS.md — "Shift brief (2026-11-03)": brief: block (ordered goals, named tasks, backlog: none | fill-idle | scoped + exclude:, review-minutes, review-at, lanes, merge-cap, token-budget, optional ral-allowance), issue:, packet: yes; the calibration rule; a "Digest" subsection with counters; the one-screen "Proof packet"; batches/examples/ is not a record.
  • REFERENCE.md — documents Lane: any | local-dev | ral | gpu | wsl-data (last three imply local-dev) and the planned RAL test packet (phase 5).

Approved deviation

policy/end_at_deliverable.md and its hook are byte-identical to main: the policy text is stamped into 50 repos by repos_sync.py, so editing it would redden --check until ~50 stanza commits land. The exemption lives in the new page instead; a one-line pointer in end_at_deliverable.md rides with the next routine stanza refresh.

Tier: judge — merge mode: human /prm. Never auto-merge. Merge this one first, then the PyAutoBrain PR.

Witness (run on both branches, laptop, 2026-11-03)

## (a) end_at_deliverable hook payloads (env -u PYAUTO_ALLOW_TIMERS)
{"tool_name":"ScheduleWakeup","tool_input":{"delaySeconds":600}} -> exit 2 | policy end_at_deliverable: sessions end at their deliverable — ScheduleWakeup would outlive the turn.
{"tool_name":"CronCreate","tool_input":{}} -> exit 2 | policy end_at_deliverable: sessions end at their deliverable — CronCreate would outlive the turn.
{"tool_name":"RemoteTrigger","tool_input":{"action":"run"}} -> exit 2 | policy end_at_deliverable: sessions end at their deliverable — RemoteTrigger would outlive the turn.
{"tool_name":"send_later","tool_input":{}} -> exit 2 | policy end_at_deliverable: sessions end at their deliverable — send_later would outlive the turn.
{"tool_name":"RemoteTrigger","tool_input":{"action":"list"}} -> exit 0 | 

## (a') policy/end_at_deliverable.md byte-identical to main
identical (no diff vs origin/main)

## (b) Revert condition count
main: 6  branch: 11
529:## Shift briefs and unattended `glance` — 2026-11-03
539:### Shift brief = launch — 2026-11-03
554:### Unattended `glance` merges — 2026-11-03
575:### One Mind writer per shift — 2026-11-03
590:### Goal decomposition files drafts only — 2026-11-03
601:### The push-notification test — 2026-11-03

## (c1) lifecycle.py check  →  DRIFT (pre-existing, not this task)
  - active/ prompt no registry entry claims: active/chapter2-explanations.md
  ! warning: batches/2026-08-31-pm.md: review-minutes-actual: empty (pre-existing)

## (c2) repos_sync.py --check (branch script, --root ~/Code/PyAutoLabs)
check generated smoke bootstraps: OK
check PyAutoHeart/config/repos.yaml: OK
check PyAutoHands/pre_build.sh: OK
check PyAutoHands/autohands/config/workspaces.yaml: OK
check ensure_workspace_labels.sh: OK
check hygiene conductor coverage: OK
check local checkout origins: OK
check workspace checkouts (manifest ↔ disk): OK
check tenant firewall (organ code): OK
check root AGENTS.md routing table (generated): OK
check WORKFLOW.md owner map (generated): OK
check organism-map blocks (generated): OK
check never-rewrite-history blocks (generated): OK
check remote-session blocks (generated): OK
check end-at-deliverable blocks (generated): OK
check shared-standards blocks (generated): OK
check where-to-file blocks (generated): OK
check public front-door organ tables (generated): OK
check hub organism blurb (organs present): OK
check CLAUDE.md → AGENTS.md pointers: OK
check generated hooks (session-start + end-at-deliverable): OK (50 of 50 checked out, 1 excluded)
check generated Codex hooks: OK
check target-repo layout lints: OK
exit 0
(from the worktree root the only ✗ is COWLS_COSMOS_Web_Lens_Survey, which worktree_create flattens from lens/ to the top level — a layout artifact; this diff touches no scripts/ or repos.yaml)

## (c3) pytest -q (PYAUTO_ROOT/MIND/BRAIN unset)
PyAutoMind:  711 passed in 37.66s
PyAutoBrain: 1409 passed, 1834 warnings in 86.91s (0:01:26)

(c3) note: with the per-task activate.sh env set, one test per repo fails
(test_repos_sync_root_default::test_a_root_that_does_not_hold_this_checkout_is_refused,
test_grouped_organ_consumers::test_hygiene_map_and_heart_board_find_grouped_checkouts).
Both fail identically on canonical main under that env and pass on this branch without it — they read the worktree's
PYAUTO_ROOT, they are not touched by this diff.

(d) PyAutoMind/batches/AGENTS.md now carries a fenced example shift brief, a fenced example digest and the proof-packet block — the phase-2 validator's target.

🤖 Generated with Claude Code

…mption; Lane: header

Autonomous orchestrators phase 1 (PyAutoBrain#551). policy/end_at_deliverable.md
stays byte-identical (repos_sync stamps it into 50 repos); the watcher
exemption lives in the new policy/shift_watcher.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Jammy2211
Jammy2211 merged commit 44e567c into main Nov 3, 2026
3 checks passed
@Jammy2211
Jammy2211 deleted the feature/autonomous-orchestrators-p1 branch November 3, 2026 13:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant