Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not for the Rust FFI binding layer: use rust-ffi.
The English summary is being prepared. Showing the original description.
Use when the user wants one-time repository setup for tracker, triage labels, and domain conventions. Not for ongoing triage, issue creation, or multi-repo setup.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
| Field | Bound contract |
|---|---|
| Trigger | One-time repository setup for tracker and domain conventions. |
| Authority | Human-gated: previews the complete write set and its consequences, getting separate confirmation for each configuration section; otherwise reversible local: writes only docs/agents/ config files and one steering-file edit; rollback is version control. No remote mutation. |
| Side effect | Tracker, domain, label, and single steering-file configuration. Exactly four write targets: docs/agents/issue-tracker.md, docs/agents/triage-labels.md, docs/agents/domain.md, and one steering-file edit. Nothing else is created or modified. |
| Done | Dependent workflows can read complete repository-local configuration: every confirmed docs/agents/ file exists with the chosen conventions, and the steering file carries the ## Agent skills block naming them. |
docs/agents/ (updated in place); an existing steering file (CLAUDE.md or AGENTS.md); monorepo signals (they decide whether the multi-context domain layout is offered).Preview and explore. State the four write targets named in the contract and that nothing else changes. Then read the repository without mutating it: git remote -v (GitHub, GitLab, or none); whether a root CLAUDE.md or AGENTS.md exists and whether it already carries an ## Agent skills block; root CONTEXT.md and CONTEXT-MAP.md; docs/adr/ and any src/*/docs/adr/; prior output in docs/agents/; .scratch/ (a local-markdown tracker may already be in use); monorepo signals: pnpm-workspace.yaml, a workspaces field in package.json, or a populated packages/* with its own src/. Record findings; assume nothing. Done when: findings are recorded.
Section A: issue tracker. Lead with the recommendation so the human can accept it in a word: GitHub when a remote points at GitHub, GitLab when it points at GitLab. Otherwise offer GitHub (gh CLI), GitLab (glab CLI), local markdown under .scratch/, or other. For other, ask for a one-paragraph workflow description and record it as freeform prose in docs/agents/issue-tracker.md. One section, one confirmed answer, then the next section. Done when: the tracker choice is confirmed.
Section B: triage labels. Ask exactly one question: keep the five default triage labels? The defaults, each string equal to its role name: needs-triage, needs-info, ready-for-agent, ready-for-human, wontfix. On yes, write them as-is. On no, usually because the tracker already uses other names, collect the existing string for each role so the mapping reuses existing labels instead of creating duplicates. Done when: the label set is confirmed.
Section C: domain docs. Default single-context (one CONTEXT.md plus docs/adr/ at the root); write it without a question. Offer multi-context (a root CONTEXT-MAP.md pointing at per-context CONTEXT.md files) only when step 1 found monorepo signals, and confirm that choice. Done when: the domain layout is confirmed.
Show drafts for editing. Present the ## Agent skills steering block and the three docs/agents/ drafts built from the seeds below. Nothing is written until the human approves the drafts. Done when: the human approves or declines the drafts.
Steering block (fill the three one-liners from the confirmed sections):
## Agent skills
### Issue tracker
<one-line summary of where issues are tracked>. See `docs/agents/issue-tracker.md`.
### Triage labels
<one-line summary of the label vocabulary>. See `docs/agents/triage-labels.md`.
### Domain docs
<one-line summary: single-context or multi-context>. See `docs/agents/domain.md`.
docs/agents/issue-tracker.md seed for GitHub:
# Issue tracker: GitHub
Issues and specs for this repo live as GitHub issues. Use the `gh` CLI for all operations; it infers the repo from `git remote -v` inside a clone.
- Create: `gh issue create --title "..." --body "..."` (heredoc for multi-line bodies)
- Read: `gh issue view <number> --comments`, fetching labels
- List: `gh issue list --state open --json number,title,body,labels,comments --jq '[.[] | {number, title, body, labels: [.labels[].name], comments: [.comments[].body]}]'`, with `--label` and `--state` filters
- Comment: `gh issue comment <number> --body "..."`
- Labels: `gh issue edit <number> --add-label "..."` / `--remove-label "..."`
- Close: `gh issue close <number> --comment "..."`
PRs as a request surface: **no** (flip to yes in this file only if external PRs are triaged as feature requests). When yes, PRs run through the same labels and states via the `gh pr` equivalents: `gh pr view <number> --comments`, `gh pr diff <number>`, list open PRs keeping only `authorAssociation` of `CONTRIBUTOR`, `FIRST_TIME_CONTRIBUTOR`, or `NONE`, and `gh pr comment` / `gh pr edit --add-label`/`--remove-label` / `gh pr close`. GitHub shares one number space across issues and PRs, so resolve a bare `#42` with `gh pr view 42`, falling back to `gh issue view 42`.
- "Publish to the issue tracker": create a GitHub issue.
- "Fetch the relevant ticket": `gh issue view <number> --comments`.
Map and tickets: the map is a single issue labelled `effort:map` holding the Notes / Decisions-so-far / Fog body; each ticket is a child issue linked as a GitHub sub-issue, where sub-issues are unavailable, add the child to a task list in the map body and put `Part of #<map>` at the top of the child, labelled `effort:<type>` (`research`/`prototype`/`grilling`/`task`); once claimed, a ticket is assigned to the driving dev. Blocking uses GitHub's native issue dependencies, the UI-visible gate: `gh api --method POST repos/<owner>/<repo>/issues/<child>/dependencies/blocked_by -F issue_id=<blocker-db-id>`, with the blocker's numeric database id from `gh api repos/<owner>/<repo>/issues/<n> --jq .id` (not the `#number` or `node_id`); where dependencies are unavailable, use a task list in the map body.
docs/agents/issue-tracker.md seed for GitLab:
# Issue tracker: GitLab
Issues and specs for this repo live as GitLab issues. Use the `glab` CLI for all operations; it infers the repo from `git remote -v` inside a clone.
- Create: `glab issue create --title "..." --description "..."`
- Read: `glab issue view <number> --comments`
- List: `glab issue list`, with `--label` and `--state` filters
- Comment: `glab issue note <number> --message "..."`
- Labels: `glab issue update <number> --add-label "..."` / `--remove-label "..."`
- Close: `glab issue close <number> --comment "..."`
PRs as a request surface: **no** (flip to yes in this file only if external MRs are triaged as feature requests). When yes, MRs run through the same labels and states via the `glab mr` equivalents.
- "Publish to the issue tracker": create a GitLab issue.
- "Fetch the relevant ticket": `glab issue view <number> --comments`.
Map and tickets: the map is a single issue labelled `effort:map`; each ticket is a child issue linked as a GitLab sub-issue, or a task list entry when sub-issues are unavailable, labelled `effort:<type>`.
docs/agents/issue-tracker.md seed for local markdown:
# Issue tracker: local markdown
Issues and specs for this repo live as markdown files under `.scratch/`. No CLI is required.
- Create: write `.scratch/issues/<number>-<slug>.md` with frontmatter (title, labels, status)
- Read: open the file
- List: `ls .scratch/issues/`
- Comment: append to the file under a `## Comments` heading
- Labels: edit frontmatter
- Close: set `status: closed` in frontmatter
Map and tickets: the map is `.scratch/map.md`; each ticket is a file under `.scratch/issues/` labelled `effort:<type>` in frontmatter. Blocking is recorded in frontmatter as `blocked-by: [<numbers>]`.
docs/agents/triage-labels.md seed:
# Triage labels
| Label | Role |
|---|---|
| `needs-triage` | New issue awaiting classification |
| `needs-info` | Missing reproduction or clarification |
| `ready-for-agent` | Ready for autonomous work |
| `ready-for-human` | Ready for human work |
| `wontfix` | Closed without action |
Apply exactly one label per issue at any time. Transition in order: `needs-triage` → `needs-info` or `ready-for-agent` or `ready-for-human` → resolved or `wontfix`.
docs/agents/domain.md seed:
# Domain docs
Single-context: one root `CONTEXT.md` holds the ubiquitous language; `docs/adr/` holds architecture decision records. Every term in `CONTEXT.md` must be defined before it is used in code or docs.
When multi-context: a root `CONTEXT-MAP.md` points at per-context `CONTEXT.md` files under `src/<context>/CONTEXT.md` or `packages/<context>/CONTEXT.md`.
Write after approval. Steering file: edit CLAUDE.md when it exists, else AGENTS.md; when neither exists, ask the human which to create and never pick for them; never create both; update an existing ## Agent skills block in place rather than appending a duplicate, and leave surrounding sections untouched. Then write the three docs/agents/ files from the approved seeds; for an other tracker, write docs/agents/issue-tracker.md from the human's description instead of a seed. The PRs/MRs-as-request-surface flag stays off and is not raised; a human who wants external requests triaged flips it in the file later. Done when: all approved files are written.
Report completion. Name each written file and the convention it records; state that the docs/agents/ files are edited directly later and this setup re-runs only to switch trackers or restart from scratch. Done when: the completion report is emitted.
docs/agents/ files this run wrote; all four writes are reversible local writes.Four artifacts: docs/agents/issue-tracker.md, docs/agents/triage-labels.md, docs/agents/domain.md, and the steering-file ## Agent skills block, plus a terminal report naming every written file and its chosen convention; terminal classification: complete, partial (some confirmed files written), or blocked (nothing written, with the reason).
No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not for the Rust FFI binding layer: use rust-ffi.
The English summary is being prepared. Showing the original description.
Use when configuring ADC sampling time, DMA-driven ADC, calibration, or DAC channel setup on bare-metal MCUs. Not for the DMA stream itself: use dma-baremetal.
The English summary is being prepared. Showing the original description.
Use when creating AF_XDP sockets, configuring UMEM and XSK rings, writing an XDP redirect program, or choosing copy versus zero-copy mode. Not for full kernel bypass: use dpdk.
The English summary is being prepared. Showing the original description.
Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use engineering-retrospective.
The English summary is being prepared. Showing the original description.
Use when a redacted, trimmed agent transcript must be appended to a GitHub PR or issue body, with human approval and preview. Not for automated or model-initiated insertion.
The English summary is being prepared. Showing the original description.
Use when a repo needs agent setup, AGENTS.md added or made lean, CLAUDE.md audited, or agent instructions scored or pruned. Not for remote, credential, publish, deploy, or irreversible changes.
The English summary is being prepared. Showing the original description.