Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions batches/examples/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Shift brief examples

Validator fixtures for `bin/pyauto-brain batch brief --check`
(autonomous-orchestrators phase 2). **Nothing here is a batch record**: none of
it was dispatched, and `scripts/lifecycle.py` reads only `batches/*.md`, never
this folder. The schema they follow is `../AGENTS.md`, "Shift brief
(2026-11-03)". The named task paths are placeholders, so `--check` warns that
they resolve to no prompt; that warning is expected.
32 changes: 32 additions & 0 deletions batches/examples/shift_brief_example.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Batch 2026-11-04 am
- dispatched: 2026-11-04T08:30Z
- review-at: 2026-11-04T11:30Z # stated by the human; the grant expires here
- shift: morning
- issue: https://github.com/PyAutoLabs/PyAutoMind/issues/1 # the digest is posted here once
- packet: yes
- heart-ack:
- Release YELLOW; monitoring RED
- expected-effects:
- example-member: merges into PyAutoArray and may stale release validation
- brief:
- goals:
- 1. land the next cluster-strong-lensing slice
- 2. clear review-ready glance PRs on PyAutoArray
- tasks:
- draft/feature/autolens/example_named_task.md
- backlog: scoped
- scoped:
- epics: cluster-strong-lensing, autonomous-orchestrators
- tags: jax-gradient
- tiers: notify, glance
- exclude:
- draft/feature/autofit/example_excluded_task.md
- epics: euclid-dr1
- review-minutes: 45
- lanes: any local-dev ral
- merge-cap: 3
- token-budget: 2000000
- ral-allowance:
- packets: 2
- partition: ral
- cpu-hours: 64
14 changes: 14 additions & 0 deletions tests/test_lifecycle_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -991,6 +991,20 @@ def test_the_agents_page_is_not_a_batch_record(tmp_path):
assert lifecycle.batch_records(tmp_path) == []


def test_shift_brief_examples_are_not_batch_records(tmp_path):
"""`batches/examples/` holds validator fixtures (`batch brief --check`):
nothing in it was dispatched, so a member path there that resolves nowhere
is not drift, and a missing `review-minutes-actual:` is not a warning."""
examples = tmp_path / "batches" / "examples"
examples.mkdir(parents=True)
(examples / "shift_brief_example.md").write_text(
"# Batch 2026-11-04 am\n- review: batches/reviews/x.md\n- members:\n"
+ MEMBER + "\n")
assert lifecycle.batch_records(tmp_path) == []
assert lifecycle.batch_member_problems(tmp_path) == []
assert lifecycle.batch_record_warnings(tmp_path) == []


def test_a_closed_record_with_no_measured_review_cost_warns(tmp_path):
"""`review-minutes-actual:` is "the only calibration there is" — without it
the budget every batch is planned against never improves."""
Expand Down
Loading