Skip to content

feat: autonomous orchestrators p2 — Lane resource values, brief validator, census - #554

Merged
Jammy2211 merged 2 commits into
mainfrom
feature/autonomous-orchestrators-p2
Nov 3, 2026
Merged

Jammy2211 merged 2 commits into
mainfrom
feature/autonomous-orchestrators-p2

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Closes #553. Phase 2 of the autonomous-orchestrators epic: the organism now parses what phase 1 wrote. Read with PyAutoLabs/PyAutoMind#523 (merge that one first).

What changes

  • Sizing (_sizing.py): LANE_VALUES = ("any","local-dev","ral","gpu","wsl-data"), lane_is_local(); first valid declaration wins; an invalid value (the archived any | local-dev) is recorded as lane_invalid and read as any.
  • Batch planner (_batch.py): _lane_ok routes through lane_is_local; the BatchDecision carries and prints lane_counts ("Ready by lane"); the other-lane line names resources (3 laptop-lane task(s) are ready (2 ral, 1 gpu); other_lane_ready stays an int for existing readers).
  • batch brief --check <file> (new _brief.py): every error names its key — review-at/dispatched ISO and ordered, goals, backlog: none|fill-idle|scoped (+scoped:), integer review-minutes/merge-cap/token-budget, lanes ⊆ lane values (cloud refused), ral-allowance with ral, the calibration rule (previous record's review-minutes-actual:), and merge-cap > 0 refused when every named task is judge and backlog: none (the human-approved refinement — a dip can still pick glance work). Unresolved named tasks warn, never refuse. Exit 0 / 1.
  • batch plan --brief <file>: refuses a brief that fails the check; named tasks outrank the queue, the dip admits only what the policy covers (excluded by the brief / outside the brief's scoped backlog / lane … not in the brief's lanes), the brief's review-minutes is the budget.
  • Intake (_intake.py): declared Filed:/Epic:/Phase:/Blocked-by:/Closes-when: pass through after Status:, Lane: after Unattended:; lane inference RAL/SLURM/sbatch/squeue/euclid_jump → ral, CUDA/laptop GPU → gpu, /mnt/c/Workspace/Science → wsl-data (declared wins; any not written). This is the header half of draft/bug/pyautobrain/intake_classify_file_drops_declared_epic_phase.md; its Memory:-gating half stays open and is re-scoped at close-out.
  • Census: by_lane (invalid lanes counted as any + a hygiene flag), By lane: in intake census, a "Lanes:" line on the dashboard Backlog (md + html). The Mind dashboard re-renders with it on the next refresh.
  • Docs: batch skill "Brief verbs" (dispatch/digest still marked planned), conductor lane-detection note.
  • Tests: tests/test_orchestrators_lane_brief.py, 28 tests across witness clauses (a)–(e).

Tier: glance — merge mode: auto-merge on green if the Witness passes (human-approved plan 2026-11-03; Heart YELLOW reason set acknowledged by the human at ship).

Witness

$ pytest tests/test_orchestrators_lane_brief.py -v  (witness clauses a–e)
test_every_lane_value_parses[any]  PASSED
test_every_lane_value_parses[local-dev]  PASSED
test_every_lane_value_parses[ral]  PASSED
test_every_lane_value_parses[gpu]  PASSED
test_every_lane_value_parses[wsl-data]  PASSED
test_archived_two_value_spelling_is_rejected_and_recorded  PASSED
test_first_valid_declaration_wins  PASSED
test_resource_lanes_are_laptop_only[ral]  PASSED
test_resource_lanes_are_laptop_only[gpu]  PASSED
test_resource_lanes_are_laptop_only[wsl-data]  PASSED
test_resource_lanes_are_laptop_only[local-dev]  PASSED
test_any_runs_anywhere  PASSED
test_plan_names_the_other_lane_resources  PASSED
test_example_brief_is_accepted  PASSED
test_mind_example_validates  PASSED
test_brief_without_review_at_is_refused  PASSED
test_cloud_is_not_a_lane  PASSED
test_merge_cap_refused_when_every_named_task_is_judge  PASSED
test_ral_lane_needs_an_allowance  PASSED
test_calibration_refuses_a_brief_after_an_unmeasured_record  PASSED
test_cli_exit_codes  PASSED
test_plan_under_a_brief_puts_named_tasks_first_and_never_dips_outside  PASSED
test_intake_proposes_ral_from_the_text  PASSED
test_intake_proposes_gpu_and_wsl_data[Benchmark the CUDA path on the laptop GPU for @PyAutoArray.-gpu]  PASSED
test_intake_proposes_gpu_and_wsl_data[Read the dataset under /mnt/c/Users/x for @PyAutoArray.-wsl-data]  PASSED
test_intake_writes_no_lane_for_cloud_runnable_text  PASSED
test_declared_optional_headers_survive_apply_unchanged  PASSED
test_census_lane_histogram_totals_the_prompt_count  PASSED

$ pyauto-brain batch brief --check PyAutoMind/batches/examples/shift_brief_example.md
== Shift brief: /home/jammy/Code/PyAutoLabs-wt/autonomous-orchestrators-p2/PyAutoMind/batches/examples/shift_brief_example.md — OK ==
  ! brief.tasks: draft/feature/autolens/example_named_task.md resolves to no prompt in draft/ or active/
exit 0

$ pyauto-brain intake census | grep "By lane"   (live Mind: 289 prompts)
By lane:         any 281 · local-dev 8

full suites (PYAUTO_* unset): PyAutoBrain 1437 passed in 547.15s (0:09:07)  ·  PyAutoMind 712 passed in 252.80s (0:04:12)
repos_sync.py --check --root ~/Code/PyAutoLabs: exit 0 · lifecycle.py check: DRIFT only the pre-existing active/chapter2-explanations.md

🤖 Generated with Claude Code

…e header pass-through, census lane histogram

Autonomous orchestrators phase 2 (#553).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t firewall)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Jammy2211

Copy link
Copy Markdown
Contributor Author

First CI run (41654587113) was red on both legs at the Tenant firewall step only (tests, discovery and line-count steps green): the new _brief.py comment named PyAutoFit#1554 and the new test file used @PyAutoArray, PyAutoFit#1/#2 and a PyAutoLabs URL. Fixed in f3fc8fc by removing those instance facts (no allowlist growth); repos_sync.py --check --only "tenant firewall (organ code)" --root <worktree> → OK, the 28 witness tests still pass. My earlier local repos_sync run used --root ~/Code/PyAutoLabs, which checked the canonical Brain rather than this branch — that is why it missed it.

@Jammy2211
Jammy2211 merged commit af2af89 into main Nov 3, 2026
2 checks passed
@Jammy2211
Jammy2211 deleted the feature/autonomous-orchestrators-p2 branch November 3, 2026 14:40
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.

feat: autonomous orchestrators p2 — Lane resource values, brief validator, census

1 participant