Add /roundup cross-project status command
Fans out a read-only reader per repo over AGENTS.md/ROADMAP.md, folds in the standards inbox, and synthesizes one priority-grouped to-do list across all projects (including untriaged inbox items and proposed new projects). Reads and reports only — prioritizing across projects stays with the user.
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
# Cross-project roundup — orchestration guide
|
||||
|
||||
*Substance file per the portability protocol. Vendor wrappers (e.g.
|
||||
`adapters/claude/commands/roundup.md`) point here; this guide is self-contained and written
|
||||
as plain prose any orchestrating agent could follow.*
|
||||
|
||||
You produce one **portfolio-wide status report** across all of the user's projects: what
|
||||
each is, where it stands, and every open to-do gathered into a single priority-grouped list
|
||||
— including items still sitting un-triaged in the inbox, not yet pushed down to any repo.
|
||||
|
||||
**Your job is to read and report, not to decide.** Gather faithfully and group by the
|
||||
priority signals you find; do **not** rank the projects against each other or tell the user
|
||||
what to work on. Choosing the best use of time is a conversation the user has on top of this
|
||||
report — your output is the evidence-backed inventory that makes that conversation possible.
|
||||
You run in the main thread, so after presenting you can help the user reason about ordering
|
||||
if they ask — but only then, and only with their input.
|
||||
|
||||
## Phase 1 — Discover (no deep reading)
|
||||
|
||||
- List the candidate projects: the immediate subdirectories of `~/Projects` that are git
|
||||
repos (e.g. `ls -d ~/Projects/*/.git`). Skip non-repo folders; note any you skip.
|
||||
- Include the standards repo — its ROADMAP holds the cross-cutting tooling work — but label
|
||||
its items as the meta/tooling layer so they're easy to tell apart from product work.
|
||||
- Honor any focus the user gave (a subset of repos, or "only P0/P1").
|
||||
|
||||
## Phase 2 — Fan out (one read-only reader per repo)
|
||||
|
||||
Delegate to a read-only reader subagent per repo (e.g. the `Explore` agent), in parallel
|
||||
where your tooling allows. Give each the repo path and this exact ask:
|
||||
|
||||
> Read only this repo's `AGENTS.md` (especially its `## Current state` section) and
|
||||
> `ROADMAP.md` if present. Return, compactly: a one-line description; the current state
|
||||
> (what's done, what's in progress and where it stands); the concrete next steps listed; and
|
||||
> the ROADMAP backlog items with any priority markers. Quote priorities/labels verbatim; do
|
||||
> not invent or re-rank. If a file is missing, say so. Read nothing else; do not review code.
|
||||
|
||||
Separately, read the inbox yourself: `~/Projects/standards/INBOX.md`. Collect the unchecked
|
||||
items — these are captured-but-not-yet-triaged, the work that hasn't reached a repo's ROADMAP
|
||||
yet. Keep `(new)` / `(new:…)` items apart: they're proposed *new* projects, not tasks in an
|
||||
existing one.
|
||||
|
||||
Wait for all readers before synthesizing. If a reader fails or a repo has neither file, note
|
||||
it honestly rather than dropping the repo.
|
||||
|
||||
## Phase 3 — Synthesize (one report)
|
||||
|
||||
Present ONE report in the chat. Default to showing it inline; if the user wants a tracked
|
||||
snapshot they can diff over time (like `EVALUATION.md`), offer to write it to
|
||||
`~/Projects/standards/STATUS.md` — their call, and don't commit it yourself.
|
||||
|
||||
Structure:
|
||||
|
||||
```
|
||||
# Roundup — <date>
|
||||
Repos scanned: <list> (skipped/failed: <list with reason>)
|
||||
|
||||
## Per-project snapshot
|
||||
<repo> — <one-line state>; in progress: <…>; next: <…>
|
||||
... one block per repo, 1–3 lines each ...
|
||||
|
||||
## Priority queue (all projects + untriaged inbox)
|
||||
P0 → P3, every actionable item once, each one line:
|
||||
[Px] item — source: <repo> | inbox(untriaged) — evidence pointer
|
||||
Items with no priority signal go under "Unprioritized — needs triage", never dropped.
|
||||
|
||||
## Not yet pushed down (inbox)
|
||||
The untriaged inbox items, grouped by target project — these exist nowhere but the inbox.
|
||||
|
||||
## Proposed new projects
|
||||
The (new)/(new:name) inbox items — ideas awaiting the new-repo bootstrap.
|
||||
|
||||
## Gaps
|
||||
Repos missing AGENTS.md or a Current state; stale-looking states; anything that blocked a reader.
|
||||
```
|
||||
|
||||
## Rules
|
||||
|
||||
- Read-only. The only file you may write is `STATUS.md`, and only if the user asks for it.
|
||||
- Quote priorities and states as found; never re-rank projects or recommend what to do next
|
||||
unprompted — that's the user's call.
|
||||
- Preserve every item; if you can't place one, list it under "needs triage" rather than
|
||||
dropping it.
|
||||
- If a reader fails or a repo can't be read, report it honestly rather than papering over it.
|
||||
- If blocked, report exactly what blocked you — never guess or fabricate a project's state.
|
||||
Reference in New Issue
Block a user