@@ -304,6 +304,8 @@ Free-form markdown. Strong conventions:
304304 Filed: 2026-07-09 # optional; the day the prompt was written
305305 Issued: 2026-08-19 # optional; set when the prompt advances to active/
306306 Blocked-by: PyAutoFit #1436 # optional; see "Declaring a gate" below
307+ Epic: cluster-strong-lensing # optional; an entry in epics.md
308+ Bundle: euclid-pipeline-tidy # optional; an entry in bundles.md
307309 ```
308310
309311 When present, ` Type: ` should match the work-type folder. The goal is light
@@ -339,6 +341,18 @@ Free-form markdown. Strong conventions:
339341 had closed without anyone noticing — including one whose exit condition was met
340342 the same day it was written.
341343
344+ ** Declaring group membership — ` Epic: ` / ` Bundle: ` .** Both optional, both
345+ naming a slug in the matching registry file, and the two mean opposite things
346+ about ORDER. ` Epic: <slug> ` (` epics.md ` , plus an optional ` Phase: <n> ` ) says
347+ this prompt is one phase of an ordered programme: the dashboard pulls it out
348+ of every pick list and shows it only under its epic, worked in phase order.
349+ ` Bundle: <slug> ` (` bundles.md ` ) says the opposite — this prompt is
350+ INDEPENDENT, and a human has pinned it to a set worth running in one
351+ orchestrated session. A bundle member keeps its normal place on the
352+ dashboard and gains a Bundles card; it leaves only the * auto* -bundle pool,
353+ since it is already spoken for. A slug naming no registry entry still
354+ groups, loudly (⚠️ on the page), so a typo is visible rather than silent.
355+
342356 The optional ` Difficulty: ` / ` Autonomy: ` / ` Priority: ` keys let both people and
343357 PyAutoBrain see, at a glance, how hard a task is, whether an agent can safely
344358 take it on, and how urgent it is. What each ` Autonomy: ` level * does* at every
@@ -497,7 +511,7 @@ no prompt.
497511| Ledger — merged automatically | Code — always a human |
498512| ---| ---|
499513| ` draft/** ` , ` active/** ` , ` complete/** ` | ` scripts/ ` , ` tests/ ` , ` .github/ ` , ` skills/ ` , ` policy/ ` , ` docs/ ` |
500- | ` active.md ` , ` planned.md ` , ` parked.md ` , ` condemned.md ` , ` epics.md ` , ` ideas.md ` , ` autonomy_log.md ` | ` repos.yaml ` , ` README.md ` , ` AGENTS.md ` , ` REFERENCE.md ` , ` ROUTING.md ` , … |
514+ | ` active.md ` , ` planned.md ` , ` parked.md ` , ` condemned.md ` , ` epics.md ` , ` bundles.md ` , ` ideas.md ` , ` autonomy_log.md ` | ` repos.yaml ` , ` README.md ` , ` AGENTS.md ` , ` REFERENCE.md ` , ` ROUTING.md ` , … |
501515| ` dashboard.md ` , ` dashboard.html ` | anything unclassified — a new root file, a new top-level folder |
502516
503517Two exceptions inside the ledger dirs: a ** dot-path** anywhere, and a file
0 commit comments