Files
standards/AGENTS.md
T
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

122 lines
7.7 KiB
Markdown

# Standards — AGENTS.md
The home of my agent-operating standards **and** the live global fleet that serves them.
This repo is both the documentation of how any coding agent works in my repos and the
actual source of the global agents, commands, and `how-i-work.md` that every project
inherits. Edit here and every repo on this machine feels it.
For a human-facing tour of the four standards documents, read `README.md` — this file is
the agent-facing orientation and does not restate it.
> **Inbox check (this repo):** At session start, if `INBOX.md` has unchecked items tagged
> `(standards)`, surface them before proposing next steps; triage with `/triage`.
## What this repo is the source of
The global layer lives here and is wired into `~/.claude` by **directory symlinks**, so a
file added under `adapters/` is live immediately — no per-file linking:
- `~/.claude/commands``adapters/claude/commands/` — global slash commands (`/retrofit`,
`/handoff`, `/full-eval`, `/capture`, `/triage`, `/roundup`, `/new-project`).
- `~/.claude/agents``adapters/claude/agents/` — global subagents (reviewer, evaluator,
security-auditor, doc-auditor, exerciser, researcher, janitor, portability-checker,
start9-spec-checker).
- `~/.claude/CLAUDE.md``how-i-work.md` — my universal preferences, loaded every session.
(Distinct from this repo's *root* `CLAUDE.md`, which → `AGENTS.md`: same filename, different
scopes — global preferences vs. this repo's orientation.)
- `~/.claude/statusline.sh``adapters/claude/statusline.sh` — the Claude Code CLI terminal
status-line script (invoked by `~/.claude/settings.json`).
Because these are *global*, decisions here are never scoped to this repo alone. The test
for anything proposed ("should we adopt linters / hooks / CI?", "is this skill worth
building?") is **whether it's generally best-in-class across all the repos I build** — this
repo is just where that cross-repo standard is authored and stored.
## Layout
- `README.md` — human index of the four standards docs.
- `how-i-work.md` — universal preferences (served as `~/.claude/CLAUDE.md`).
- `portability.md` — the vendor-neutral / hot-swap protocol.
- `retrofit-playbook.md` — terminal runbook for moving a project's brain onto disk.
- `subagents-handbook.md` — designing and running delegated agents.
- `guides/`**neutral substance**: the self-contained operating guide for each command
and agent, written as plain prose any vendor's harness could follow.
- `adapters/claude/{commands,agents}/`**thin Claude wrappers**: frontmatter + a pointer
to the matching `guides/` file. Substance never lives in a wrapper.
- `INBOX.md` — cross-project capture buffer for untriaged ideas/bugs (see below).
- `ROADMAP.md` — longer-term backlog for this repo (future agents, commands, standards).
## Conventions when editing
- **Substance in `guides/`, machinery in `adapters/`.** To add or change what a
command/agent *does*, edit its `guides/<name>.md`. The wrapper only carries frontmatter
and the "read your guide, then follow it exactly; if you can't read it, stop — don't
improvise" pointer. Match the existing wrappers exactly.
- **Portability first.** Knowledge lives in vendor-neutral files; vendor-named paths are
relative symlinks into them. Full protocol in `portability.md`; the `portability-checker`
agent verifies it.
- **Keep this file lean.** Whole-repo, every-session facts only. Subsystem detail goes in a
guide. Near-term status goes in `## Current state` below; longer-term backlog in
`ROADMAP.md`.
- Follow `how-i-work.md` for collaboration, git, and debugging defaults.
## The capture → triage → roadmap loop
A frictionless path from "random thought about some repo" to "on the right list," so ideas
stop scattering into phone notes:
- **`/capture`** appends one structured line to `INBOX.md` from *any* repo (you need not be
in the target repo) and commits+pushes the standards repo so the note is durable. Capture
is deliberately dumb and uniform — no routing decision at capture time.
- **`/triage`**, run *inside* a project, drains that project's `INBOX.md` items and routes
each — `Current state`, the repo's `ROADMAP.md`, a guide, or discard — with your
approval, then clears them from the inbox.
- **Inbox is upstream of every repo's ROADMAP.** ROADMAP is triaged, owned backlog for one
repo; the inbox is the raw, cross-project buffer that feeds the ROADMAPs.
**Inbox-check line (the portable surfacing mechanism).** Every project repo's `AGENTS.md`
should carry this so any vendor's agent surfaces pending items at session start:
> **Inbox check:** At session start, if `~/Projects/standards/INBOX.md` exists, scan it for
> items tagged `(this-repo)` and surface them before proposing next steps; triage with
> `/triage`.
## Current state
- The capture→triage→roadmap loop is built and live: `AGENTS.md` (+ `CLAUDE.md` symlink),
`ROADMAP.md`, `INBOX.md`, and the `/capture` + `/triage` commands. The repo dogfoods its
own standard, including the active inbox-check line above.
- `/capture` also handles **new-project ideas** (`(new)` / `(new:name)`, type `project`);
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
`.gitignore` follows it.
- `/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. It now **writes a
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
`~/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
remediated (inbox-check line + canonical `.gitignore`) and **all pushed** (`recap-relay`'s
Gitea remote was added in a later session).
- The audit drove a **standards change**: `portability.md`'s canonical `.claude/` block is now
**deny-by-default** (`.claude/*` + an allow-list of the shared wiring). The old
allow-by-default block would have un-ignored `premier-gunner`'s password-bearing
`.claude/launch.json` — deny-by-default keeps stray scratch/secrets out by default. The two
retrofit summaries were updated to match.
- The inbox-check line + canonical `.gitignore` are threaded into the retrofit flow *and* now
live in the 6 remediated repos. Still missing from `ten31-transcripts` (now **captured to
`INBOX.md`** with step-by-step instructions, for a mini-retrofit on its next `/triage`) and
from the many **non-git folders** under `~/Projects` (unprotected work).
- `/capture`, `/triage`, `/roundup` are now documented in README's "The rhythm" section.
- `/new-project` (ROADMAP item 5) is **built**: `guides/new-project.md` +
`adapters/claude/commands/new-project.md`. The inverse of `/retrofit` — workshops a captured
`(new)` inbox idea into a standards-compliant repo (compliant from line one) and publishes
to Gitea via a manual-create gate. The stack quality gate is deferred to a future `/harden`.
- Specced in `ROADMAP.md`, not built: the cross-repo quality-gate standard / `/harden`
(item 1) and the SessionStart hook (item 3). Open item-6 residuals: the `ten31-transcripts`
mini-retrofit (queued in the inbox) and the non-git-folder sweep.
- Next session: (1) the cross-repo quality-gate standard + `/harden` (item 1 — also unblocks
the `/new-project` quality-gate step); (2) the non-git-folder sweep (item-6 residual). The
`ten31-transcripts` retrofit is queued in the inbox for that repo.