AGENTS.md · git:20260926.7683b4d · 2026-09-26 · sha256 44c5bdc5213af566
AGENTS.md git:20260926.7683b4dA
Immutable. This exact content never changes and is served at /api/v1/blob/44c5bdc5213af566.
# Working in oat-agents This file is the rules for every agent working in this repository, whichever backend runs it. ## Read before you change anything 1. `.dev_docs/CONTEXT.md` — the vocabulary. Use its terms in code, tests, issues and pull requests. The *Avoid* lines matter more than the definitions: each one names a word that has already caused a concrete mistake. 2. `.dev_docs/adr/` — every decision record touching the area you are about to change. If your change contradicts one, stop and say so; do not override it silently. ## This repository is public Everything pushed here — every branch, commit, issue and pull request — is public and stays public, even after it is deleted. - Never commit credentials, machine names, cluster contexts or private repository paths. ## Core and plugins - The core owns the mechanism: launching, worktrees, sessions, the Run inbox, the workflow log, execution environments, the live view, and the two core roles `oat-meta` and `oat-console` (ADR-0001). - Everything that expresses *how a team works* — role instructions, working conventions, skills, model choices — belongs in a plugin. If a change to the core would encode one team's practice, it belongs in a plugin instead, and the core may need a hook for it. - Names the core owns carry its prefix: `oat-agents` (command, crate, state directory), `oat-` (core roles, core skills, tmux, branches), `OAT_` (environment variables), `.oat/` (configuration). Plugin roles and plugin skills do **not** take the `oat-` prefix. ## Branches - `main` is the base. Work for a spec lands on `epic/S<n>-<slug>` through one pull request per ticket; the epic reaches `main` in one pull request that a person merges. - Decision records written during a spec's discussion live on its epic branch until it merges. Until then they are proposals and may be rewritten in place. ## Decision records - Never delete or rewrite a record that has reached `main`; follow `.dev_docs/adr/README.md`. - Cite a record by number (`ADR-0001`), never by filename. CI checks every citation resolves and every record is listed in the index. ## Verification Until the first ticket brings code in, CI checks only the skeleton's own invariants: ```sh .github/scripts/check-dev-docs.sh ``` Once there is code, the ticket that brings it in adds its build, test and lint commands here.