Skip to content

Commit 34c2db1

Browse files
authored
Merge pull request #125 from eduralph/feat/122-planner-batch-ordering
feat(planner): instruct mindful batch ordering via the brief scheduling fields
2 parents 3c42829 + d53f6aa commit 34c2db1

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

template/.claude/agents/planner.md.jinja

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,25 @@ directory per chosen issue under it, each with its own `brief.md`. `<id>` is the
4848
tracker id. The driver then builds and signs off each. Brief only the issues the
4949
human confirms — quantity is theirs to decide, not yours.
5050

51+
**Order the batch — set the scheduling fields (don't leave the order to chance).** When
52+
you brief several issues you are also deciding how they interleave: the flow runs the
53+
batch as a scheduled wave (docs 09). Before writing the briefs, map the batch's real
54+
shape — which issues build on another's change, and which touch the same files — then
55+
set, per brief, the three machine-parsed scheduling fields:
56+
57+
- **`Depends on:`** — a genuine build-on dependency; the flow holds this bundle until
58+
each prereq is COMPLETE.
59+
- **`Depends on (merged):`** — the stricter form: hold until the prereq's PR is *merged*;
60+
use when this issue edits files a prereq also edits, so Do builds on the merged result
61+
instead of colliding at merge time.
62+
- **`Conflicts with:`** — no dependency, but two issues edit a shared file, so they must
63+
never run in the same concurrent wave.
64+
65+
Set these from the batch's *real* dependency/conflict structure — an unordered batch
66+
either serialises needlessly or lets two bundles collide on a shared file and waste a Do.
67+
Bare ids only on the value line; put the *why* in `Ordering note:`. Sequencing is the
68+
human's to confirm (like scope) — **ask when the order isn't clear.**
69+
5170
## How you work
5271

5372
- **The tracker is the source of truth — go straight to it, don't scan this repo.**

template/templates/brief.md.tpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
- **Depends on:** <id>[, <id>…] (optional — ids only on the value line, any trailing note is ignored; batch/lane scheduling waits until these bundles are COMPLETE before this one runs; docs 09)
2222
- **Depends on (merged):** <id>[, <id>…] (optional — ids only on the value line, any trailing note is ignored; stricter than Depends on: hold this bundle until each prereq's PR is MERGED, not merely COMPLETE. Use when this edits files a prereq also edits, so Do builds on the merged result instead of conflicting at merge; docs 09)
2323
- **Conflicts with:** <id>[, <id>…] (optional — ids only on the value line, any trailing note is ignored; never co-schedule these in the same concurrent wave, e.g. they edit a shared file; docs 09)
24+
- **Ordering note:** <optional free text — WHY the scheduling fields above are set as they are (e.g. "depends-on-merged 12 because both edit cache.py"). Not machine-parsed; it documents the human's sequencing decision next to the bare-id fields.>
2425
- **Surfaces:** <where the change is observable — `gui` (touches the frontend / an E2E
2526
through the app is needed), `data` (backend/logic only), or `both`. Drives which
2627
runtime gates apply (e.g. an E2E gate runs only when this is `gui`). Optional.>

0 commit comments

Comments
 (0)