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.
This commit is contained in:
Keysat
2026-06-14 14:14:07 -05:00
parent 8548afd9fd
commit b7625c4e83
5 changed files with 39 additions and 17 deletions
+3 -2
View File
@@ -91,8 +91,9 @@ should carry this so any vendor's agent surfaces pending items at session start:
- 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.
- `/roundup` is built: a cross-project status report that reads every repo's - `/roundup` is built: a cross-project status report that reads every repo's
AGENTS.md/ROADMAP.md plus the inbox and groups all to-dos by priority — reads and reports AGENTS.md/ROADMAP.md plus the inbox and groups all to-dos by priority. It now **writes a
only; deciding focus stays with the user. tracked `STATUS.md` snapshot** to the standards repo each run (overwritten, committed +
pushed — diffable over time) alongside the inline report; deciding focus stays with the user.
- The cross-repo git-hygiene audit (ROADMAP item 6) is **DONE**: all 9 git repos under - The cross-repo git-hygiene audit (ROADMAP item 6) is **DONE**: all 9 git repos under
`~/Projects` audited (one read-only `portability-checker` each). No safety issues anywhere — `~/Projects` audited (one read-only `portability-checker` each). No safety issues anywhere —
zero tracked `.env`/`.DS_Store`/`*.local.json`, all in-repo symlinks relative. 6 repos zero tracked `.env`/`.DS_Store`/`*.local.json`, all in-repo symlinks relative. 6 repos
+1 -1
View File
@@ -43,6 +43,6 @@ The governing question: **would a different agent need this to work on the repo?
One session = one task. Close every session with `/handoff` (updates Current state in AGENTS.md, commits, pushes). `/compact` is for mid-task overflow only, never to extend a finished chat. Dropped or closed by accident? `claude -c` resumes the latest session in that folder. One session = one task. Close every session with `/handoff` (updates Current state in AGENTS.md, commits, pushes). `/compact` is for mid-task overflow only, never to extend a finished chat. Dropped or closed by accident? `claude -c` resumes the latest session in that folder.
Between tasks, ideas flow through the inbox: `/capture` logs an idea or bug for any repo to `INBOX.md` from wherever you are (no routing decision at capture time); `/triage`, run inside a project, drains that repo's items into its Current state or `ROADMAP.md`; and `/roundup` reads every repo's AGENTS.md/ROADMAP plus the inbox and compiles one priority-grouped to-do list across all projects (reports only — deciding focus stays with you). Canonical home: `AGENTS.md` → "The capture → triage → roadmap loop." Between tasks, ideas flow through the inbox: `/capture` logs an idea or bug for any repo to `INBOX.md` from wherever you are (no routing decision at capture time); `/triage`, run inside a project, drains that repo's items into its Current state or `ROADMAP.md`; and `/roundup` reads every repo's AGENTS.md/ROADMAP plus the inbox and compiles one priority-grouped to-do list across all projects, written to a tracked `STATUS.md` snapshot in the standards repo (it gathers and groups — deciding focus stays with you). Canonical home: `AGENTS.md` → "The capture → triage → roadmap loop."
Full daily rhythm: retrofit-playbook.md, Part 5. Full daily rhythm: retrofit-playbook.md, Part 5.
+5 -4
View File
@@ -46,10 +46,11 @@ checklist doc alongside the other four standards docs.
Built and live: `guides/roundup.md` + `adapters/claude/commands/roundup.md`. Fans out a Built and live: `guides/roundup.md` + `adapters/claude/commands/roundup.md`. Fans out a
read-only reader per repo over AGENTS.md/ROADMAP.md, folds in the inbox, and synthesizes one read-only reader per repo over AGENTS.md/ROADMAP.md, folds in the inbox, and synthesizes one
priority-grouped to-do list across all projects; reads and reports only (prioritizing stays priority-grouped to-do list across all projects (prioritizing stays with the user). Every run
with the user). **Remaining option:** output is shown inline by default — decide later **writes the report to a tracked `~/Projects/standards/STATUS.md` snapshot** (overwritten each
whether to also persist a `STATUS.md` in the standards repo for diffing over time like run, then committed + pushed) so the portfolio state is diffable over time — and shows the
`EVALUATION.md`. same report inline. That snapshot file is the *only* thing roundup writes; all project repos
stay read-only.
## 3. Deterministic inbox surfacing — SessionStart hook (optional upgrade over the portable line) ## 3. Deterministic inbox surfacing — SessionStart hook (optional upgrade over the portable line)
+6 -4
View File
@@ -1,5 +1,5 @@
--- ---
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 description: Cross-project status roundup — read every repo's AGENTS.md/ROADMAP.md plus the inbox, compile one priority-grouped to-do list across all projects, and write it to a tracked STATUS.md snapshot in the standards repo
argument-hint: [optional focus, e.g. "only P0/P1" or a subset of repos] argument-hint: [optional focus, e.g. "only P0/P1" or a subset of repos]
allowed-tools: Bash, Read, Grep, Glob, Agent, Write allowed-tools: Bash, Read, Grep, Glob, Agent, Write
--- ---
@@ -15,6 +15,8 @@ per repo, the inbox pass, and the report format — is at:
Read it in full first, then follow it exactly. If you cannot read that file, stop and report 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. precisely that — do not improvise the roundup.
Read and report only: gather and group by the priorities you find, but do not rank the Write exactly one file — the `STATUS.md` snapshot in the standards repo (committed + pushed
projects against each other or tell me what to work on — deciding the best use of time is so it's tracked and diffable over time); every project repo stays read-only. Don't decide for
mine. After you present the report, help me reason about ordering only if I ask. me: 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.
+24 -6
View File
@@ -42,13 +42,14 @@ existing one.
Wait for all readers before synthesizing. If a reader fails or a repo has neither file, note Wait for all readers before synthesizing. If a reader fails or a repo has neither file, note
it honestly rather than dropping the repo. it honestly rather than dropping the repo.
## Phase 3 — Synthesize (one report) ## Phase 3 — Synthesize (one report → STATUS.md + inline)
Present ONE report in the chat. Default to showing it inline; if the user wants a tracked Produce ONE report. **Write it to `~/Projects/standards/STATUS.md`**, overwriting the
snapshot they can diff over time (like `EVALUATION.md`), offer to write it to previous snapshot, **and** show the same report inline in the chat — the file is the durable,
`~/Projects/standards/STATUS.md` — their call, and don't commit it yourself. diffable record; the inline copy is for reading right now. Title it with today's date (run
`date +%F`).
Structure: Structure (used identically for the file and the inline copy):
``` ```
# Roundup — <date> # Roundup — <date>
@@ -73,9 +74,26 @@ The (new)/(new:name) inbox items — ideas awaiting the new-repo bootstrap.
Repos missing AGENTS.md or a Current state; stale-looking states; anything that blocked a reader. 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 ## Rules
- Read-only. The only file you may write is `STATUS.md`, and only if the user asks for it. - 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 - Quote priorities and states as found; never re-rank projects or recommend what to do next
unprompted — that's the user's call. unprompted — that's the user's call.
- Preserve every item; if you can't place one, list it under "needs triage" rather than - Preserve every item; if you can't place one, list it under "needs triage" rather than