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
26 changes: 23 additions & 3 deletions agents/conductors/intake/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,16 +91,16 @@ schema — light structure over free-form prose.
| **classify** | `intake "<text>"` / `intake classify --file P` | classify one raw input; `--apply` writes the prompt |
| **ideas** | `intake ideas` | scan `ideas.md`, propose one prompt per bullet; `--apply` writes them |
| **census** | `intake census` | inventory every filed prompt (work-type/target/difficulty/status + hygiene flags); always read-only |
| **dashboard** | `intake dashboard` | render the census as the Mind **task** page — picks, in flight, parked, planned, backlog, recent, epics; `--apply` writes `PyAutoMind/dashboard.md`, `--check` exits 1 on drift |
| **dashboard** | `intake dashboard` | render the census as the Mind **task** page — picks, in flight, parked, planned, backlog, bundles, recent, epics; `--apply` writes `PyAutoMind/dashboard.md`, `--check` exits 1 on drift |
| **formalise** | `intake formalise [prefix]` | retroactively header the prompts census flags — derive the missing fields, insert in place, prose untouched; `--apply` writes |
| **reconcile** | `intake reconcile [prefix]` | rank backlog prompts that look already-shipped (vs the `complete/` records / `active/`), and pair live prompts that look like the same work filed twice; always read-only — retiring stays human |
| **reconcile --repo** | `intake reconcile --repo <target> [prefix]` | **also** read the target repo's source: identifiers the prompts name that exist upstream, and lines they quote that are **gone** — the two signals that see a prompt with no Mind-side trace. Opt-in; the default path is offline |

**Recent** is the one section laid out by *date* rather than by state: the 50
newest events on the **work in hand** — issued, parked, filed — merged across
every live bucket (the `draft/` backlog included, which is most of them:
150 prompts against a handful of registry rows) and sitting between the Backlog
and the Epics. Epic members stay out, as they do in every pick list on the
150 prompts against a handful of registry rows) and sitting between the
Bundles and the Epics. Epic members stay out, as they do in every pick list on the
page — they are worked in order through their epic, and a Recent row hands out
a standalone `/start_dev`. It *holds* 50
and *shows* 10 (`RECENT_MAX` / `RECENT_PAGE`): the table is a glance, not a
Expand All @@ -112,6 +112,26 @@ none of them can answer "what has been happening?". Dates come from the
registry key that names the event (`issued:` / `parked:` / `filed:`, PyAutoMind
REFERENCE.md "Task dates") or a prompt's own `Issued:` header.

**Bundles** read the backlog a second way — as *sessions* rather than as
tasks — and sit directly under it. A bundle is a set of **independent** prompts
worth running in one orchestrated session (`start_bundle`: one issue and one PR
per member, one shared worktree per repo), which makes it the exact opposite of
an epic: no order, no phase gate, and members stay in every pick list above,
because a bundle is an additional VIEW and never a replacement. Two sources:
**pinned** entries in `PyAutoMind/bundles.md` (plus any prompt whose header says
`Bundle: <slug>`), and **auto** bundles this renderer computes — same target
repo, no epic member, no declared `Blocked-by:`, no `human-required`, no
`too-large`, packed under a size cap (`BUNDLE_*`: small 1 / medium 2 / large 4
points, cap 8, at most one large, 2-4 members) in priority-then-path order.
The proposals are then ranked (most urgent member, then biggest session, then
slug) and only the first `BUNDLE_LIST_MAX` reach the page, with a footer saying
what was left off and that pinning keeps it — the same pick-list-not-inventory
rule as `PICK_LIST_MAX`. Pinned bundles are never capped.
Auto bundles are **render-only**: recomputed on every render and never written
back, so the nightly refresh commits no churn and a proposal that stops making
sense stops being proposed. `Blocked-by:` reads as unresolved whatever GitHub
says — this renderer makes no network call.

Shipped work is deliberately **not** in the feed and `complete/` is never
opened to render it: the ledger is a thousand records deep and takes ~200 a
month, so including it made the table a list of receipts — twenty things nobody
Expand Down
Loading
Loading