b35e699384
Add the inbox loop (/capture, /triage, /roundup) to README's 'The rhythm' section. Capture the ten31-transcripts mini-retrofit to INBOX.md with step-by-step instructions for next triage. Reconcile ROADMAP item 6 + Current state: recap-relay remote added/pushed in a later session.
116 lines
7.2 KiB
Markdown
116 lines
7.2 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`).
|
|
- `~/.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 — reads and reports
|
|
only; 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.
|
|
- Specced in `ROADMAP.md`, not built: the `new-project` bootstrap (item 5), the cross-repo
|
|
quality-gate standard (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) build the `new-project` bootstrap (item 5); (2) the non-git-folder sweep
|
|
(item-6 residual). The `ten31-transcripts` retrofit is queued in the inbox for that repo.
|