Files
Keysat b7625c4e83 Make /roundup's tracked STATUS.md snapshot its default, committed output
Promote STATUS.md from an opt-in offer to standard behavior: every /roundup run now writes the report to ~/Projects/standards/STATUS.md (overwritten), shows it inline, and commits + pushes only that file so the portfolio state is diffable over time — the same durability reflex as /capture. STATUS.md remains the only file roundup writes; all project repos stay read-only. Updates guide (new Phase 4), wrapper, ROADMAP item 2, README, and Current state.
2026-06-14 14:14:07 -05:00

5.3 KiB
Raw Permalink Blame History

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 → STATUS.md + inline)

Produce ONE report. Write it to ~/Projects/standards/STATUS.md, overwriting the previous snapshot, and show the same report inline in the chat — the file is the durable, diffable record; the inline copy is for reading right now. Title it with today's date (run date +%F).

Structure (used identically for the file and the inline copy):

# 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.

Phase 4 — Persist the snapshot

STATUS.md is only a tracked snapshot if it's committed — that's the whole point of the file (a dated history you can diff over time). So after writing it, commit and push only that file to the standards repo, without asking (the same durability reflex as /capture):

  • git -C ~/Projects/standards add STATUS.md
  • git -C ~/Projects/standards commit -m "Roundup snapshot — <date>" -- STATUS.md (the -- STATUS.md pathspec commits only the snapshot — never sweep unrelated standards changes into a roundup commit)
  • git -C ~/Projects/standards push (only if a remote is configured; if the push fails, report it but don't treat the snapshot as lost — it's committed locally)

This write-and-commit of STATUS.md is the only thing /roundup changes on disk; everything else — every project repo, every other file — stays strictly read-only.

Rules

  • The only file you may write or commit is ~/Projects/standards/STATUS.md (the snapshot). Every project repo and every other file stays strictly read-only — never edit or commit them.
  • 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.