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:
Keysat
2026-06-14 10:38:18 -05:00
parent 9e5c42c25f
commit 9ddd335396
3 changed files with 112 additions and 4 deletions
+8 -4
View File
@@ -17,7 +17,7 @@ The global layer lives here and is wired into `~/.claude` by **directory symlink
file added under `adapters/` is live immediately — no per-file linking: file added under `adapters/` is live immediately — no per-file linking:
- `~/.claude/commands``adapters/claude/commands/` — global slash commands (`/retrofit`, - `~/.claude/commands``adapters/claude/commands/` — global slash commands (`/retrofit`,
`/handoff`, `/full-eval`, `/capture`, `/triage`). `/handoff`, `/full-eval`, `/capture`, `/triage`, `/roundup`).
- `~/.claude/agents``adapters/claude/agents/` — global subagents (reviewer, evaluator, - `~/.claude/agents``adapters/claude/agents/` — global subagents (reviewer, evaluator,
security-auditor, doc-auditor, exerciser, researcher, janitor, portability-checker, security-auditor, doc-auditor, exerciser, researcher, janitor, portability-checker,
start9-spec-checker). start9-spec-checker).
@@ -88,9 +88,13 @@ should carry this so any vendor's agent surfaces pending items at session start:
these wait for the new-repo bootstrap and are never triaged into an existing repo. these wait for the new-repo bootstrap and are never triaged into an existing repo.
- The git-tracking standard ("What git tracks") is now in `portability.md`, and this repo's - The git-tracking standard ("What git tracks") is now in `portability.md`, and this repo's
`.gitignore` follows it. `.gitignore` follows it.
- Specced in `ROADMAP.md`, not built: `roundup` (next up), the `new-project` bootstrap, the - `/roundup` is built: a cross-project status report that reads every repo's
cross-repo quality-gate standard (linters/hooks/CI), and the optional SessionStart hook. AGENTS.md/ROADMAP.md plus the inbox and groups all to-dos by priority — reads and reports
only; deciding focus stays with the user.
- Specced in `ROADMAP.md`, not built: the `new-project` bootstrap, the cross-repo
quality-gate standard (linters/hooks/CI), and the optional SessionStart hook.
- The portable inbox-check line is still not in *other* repos' AGENTS.md nor the retrofit - The portable inbox-check line is still not in *other* repos' AGENTS.md nor the retrofit
playbook template — threading it (and the canonical `.gitignore`) into bootstrapping is a playbook template — threading it (and the canonical `.gitignore`) into bootstrapping is a
ROADMAP item. ROADMAP item.
- Next: build `roundup`, then thread the standards into `retrofit-playbook.md`. - Next: thread the standards into `retrofit-playbook.md`; then build the quality-gate hook
or the `new-project` bootstrap.
+20
View File
@@ -0,0 +1,20 @@
---
description: Cross-project status roundup — read every repo's AGENTS.md/ROADMAP.md plus the inbox and compile one priority-grouped to-do list across all projects
argument-hint: [optional focus, e.g. "only P0/P1" or a subset of repos]
allowed-tools: Bash, Read, Grep, Glob, Agent, Write
---
Produce a portfolio-wide status roundup across all my projects under `~/Projects`.
Optional focus from me (may be empty): $ARGUMENTS
Your complete orchestration guide — how to discover repos, the read-only reader you fan out
per repo, the inbox pass, and the report format — is at:
~/Projects/standards/guides/roundup.md
Read it in full first, then follow it exactly. If you cannot read that file, stop and report
precisely that — do not improvise the roundup.
Read and report only: gather and group by the priorities you find, but do not rank the
projects against each other or tell me what to work on — deciding the best use of time is
mine. After you present the report, help me reason about ordering only if I ask.
+84
View File
@@ -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, 13 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.