chipping-orchestrator
AGENTS.md18 starsChanged 8 days agoApache-2.0View on GitHub
This file is the entry point for AI coding agents (Codex, Claude, etc.) working on this repository. CLAUDE.md is a symlink to this file, so both conventions resolve to the same content. It is loaded into every agent session — keep it short. It routes to the authoritative documents; detail belongs there, not here. Update this file only when repository-wide agent instructions, safety rules, or documentation routing change — never to track a moved handler, helper, module, or test. Read…
- Reads credentials
Where files are headingNew AGENTS.md files have more rules about keeping secrets out of the code, and fewer about code style.
Of the AGENTS.md files we read, the 31,700 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
The file
We split this AGENTS.md into the rules it gives an agent
5 rules. About 0 are common, 1 is distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
Read docs/contracts.md before investigation, planning, implementation, or review.
- Distinctive: line 14
Follow its links for the area you touch.
- Very specific: line 70
Read .agents/skills/develop/SKILL.md before changing anything under orchestrator/, tests/, or docs/.
- Very specific: line 74
When touching the state machine, agent invocation, or stage handlers, read docs/state-machine.md and docs/workflow.md first.
- Very specific: line 90
Run env -u VIRTUAL_ENV -u CONDA_PREFIX poetry sync in each fresh worktree before checks.
≈ “Common” is an estimate: at least 1 in 5 of the 40,246 AGENTS.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Repository guide for AI agents
This file is the entry point for AI coding agents (Codex, Claude, etc.) working on this repository. CLAUDE.md is a
symlink to this file, so both conventions resolve to the same content.
It is loaded into every agent session — keep it short. It routes to the authoritative documents; detail belongs there, not here. Update this file only when repository-wide agent instructions, safety rules, or documentation routing change — never to track a moved handler, helper, module, or test.
Required reading for every task
Read docs/contracts.md before investigation, planning, implementation, or review. It is the
central register of project contracts, invariants, and compatibility boundaries.
Follow its links for the area you touch; update the contract and its checks together when a task changes a guarantee.
What this project is
chipping-orchestrator is a GitHub-Issue-driven workflow that watches issues on configured repos, drives them through a
label-based state machine, and spawns local CLI agents (codex, claude) in per-issue git worktrees to implement
them and open PRs. Workflow state lives in GitHub (one workflow label + one pinned JSON comment per issue), with the
recovery exceptions described in docs/contracts.md.
Where the details live
docs/README.md is the documentation landing page: it maps every page in the set, grouped the way the
site's navigation groups them. Open it when the area below is not obviously the right one. Which documentation
addresses stay stable is in the develop skill.
- User-facing overview:
README.md - Architecture, module ownership, process / agent / push model:
docs/architecture.md, with the per-package inventory on the pages underdocs/architecture/ - Workflow state machine (labels, per-tick flow, pinned state, stage handlers):
docs/state-machine.md, with the label, delivery-stage, conversation-stage, and lifecycle pages underdocs/state-machine/ - Agent roles, conversation contracts, command specs, session lifecycles:
docs/workflow.md, with the role, conversation, and spec pages underdocs/workflow/ - Configuration / env vars:
docs/configuration.mdis the reference, with the observability settings and the operator runbooks underdocs/configuration/; basic knobs in.env.example, common advanced overrides in.env.example.advanced, both shipped as package data - Observability:
docs/observability.mdmaps every surface, with the event-stream, trajectory, database, dashboard, and usage-parser pages underdocs/observability/ - Security checklist and operator-owned controls:
docs/security.md - Development conventions and the pre-push checklist:
.agents/skills/develop/SKILL.md
Repository layout
Top level only. Which module owns what is in
docs/architecture.md and the focused pages under
docs/architecture/, which are the single place that inventory is maintained.
orchestrator/— the Python package. The root carries the version,cli.py(the composition point thechipping-orchestratorconsole script calls), and__main__.py(thepython -m orchestratorform over it); every other module lives under a subpackage named after what it owns:workflow/(tick loop, label dispatch, and the per-label stage handlers underworkflow/stages/),github/,git/,agents/,scheduler/,config/,skills/,runtime/(the polling process),service/(the packaged basic and advanced.envtemplates),apps/(thestreamlit runtargets), andobservability/(analytics sink, dashboards, usage parser).tests/— pytest suite, mirroring the package layout (tests/workflow/,tests/github/,tests/git/, …). In-memory GitHub doubles live intests/support/github/.fuzz/— Atheris fuzz targets for the pinned-state and decomposer-manifest parsers, with their seed corpora;.clusterfuzzlite/packages them. Seedocs/development.md.docs/— architecture, state-machine, workflow, configuration, observability, and security references.plans/— human working notes, not specifications (see below).analytics-db/— operator-owned local analytics database (see below).run.sh— development wrapper that auto-restarts after self-modifying merges.
Development
Read .agents/skills/develop/SKILL.md before changing anything under
orchestrator/, tests/, or docs/. It carries the commands, commit format, license headers, test placement,
comment rules, and dependency policy.
When touching the state machine, agent invocation, or stage handlers, read
docs/state-machine.md and docs/workflow.md first.
Any agent that sizes or splits an issue, including the late adjudication of an oversized committed change, must first
read .agents/skills/decompose/SKILL.md. It carries what a child's scope has to
include, the residual test every proposed child passes, and how the initial and late stages differ.
The repo targets Python 3.12+ and installs from the lockfile with Poetry 2.5.1:
env -u VIRTUAL_ENV -u CONDA_PREFIX poetry sync # runtime + dev deps from poetry.lock
env -u VIRTUAL_ENV -u CONDA_PREFIX poetry run pytest tests # run the test suite
env -u VIRTUAL_ENV -u CONDA_PREFIX poetry run python -m orchestrator run --once # one polling tick then exitRun env -u VIRTUAL_ENV -u CONDA_PREFIX poetry sync in each fresh worktree before checks; poetry run does not
install dependencies. Clear both markers for every Poetry command so an activated environment cannot override the
checkout's .venv/.
Tests are the primary correctness gate. Add or update tests for any behavioral change.
Safety and compatibility
analytics-db/data/is off limits. It is the operator-owned Docker bind mount holding the local analytics Postgres volume — runtime state, not source. Never traverse, read, modify, permission-repair, delete, or re-run any command against it with elevated privileges. If a tool reports it as unreadable, that is expected: targettestsexplicitly (the defaultpytestconfig already ignores the directory) rather than escalating access.- Change persisted and external formats only deliberately: C-03 lists the current formats, forbids treating unsupported input as current, and explains why this release's cleanup needs no migration or compatibility reader.
- One orchestrator writer per issue: C-05.
- Never load GitHub tokens from
.env: C-11. plans/is working notes, not spec. Files underplans/are non-authoritative human working notes. Implement what the issue asks for. Do not cite aplans/document in code, tests, comments, docstrings, or commit messages. Leave those files untouched unless the issue explicitly asks you to edit or remove one; that exception does not permit citations.
Out of scope without explicit ask
- New external dependencies, frameworks, or services.
- Reformatting unrelated files or churning whitespace.
- "Future-proofing" abstractions for hypothetical features. Implement what the issue asks for and stop.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

