amicus
Copilot instructions2 starsChanged 47 days agoMITView on GitHub
Review guidance for GitHub Copilot code review in this repository. AGENTS.md holds the rules every contributor and reviewer works under; this file adds what a reviewer needs on top of it and does not restate it. Rule numbers below refer to the numbered list under "Rules" in AGENTS.md. Copilot reads this file from a pull request's head branch, so the pull request that changes it is reviewed under the changed version. 1. When a comment enforces a numbered AGENTS.md rule,…
Where files are headingNew Copilot instructions files have more rules about branches and pull requests, and fewer about code style.
Of the Copilot instructions files we read, the 2,349 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.
In this repository7 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- agent-friendly-docsSkill
- agent-friendly-githubSkill
- agent-friendly-mcpSkill
- separating-context-from-constraintsSkill
- collaborating-with-amicusSkill
The file
We split this copilot-instructions.md into the rules it gives an agent
9 rules. About 0 are common, 7 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 10
When a comment enforces a numbered AGENTS.md rule, name the rule number.
- Distinctive: line 12
Never propose a new or widened contract as a review fix: a tool name, parameter, description claim, error code, value enum or result …
- Distinctive: line 15
Do ask that a contract the pull request changes match its implementation, its plan and its stated intent.
- Very specific: line 16
Never propose a hand edit to a generated pin: the *_snapshot.json and *_differentials.json files under tests/fixtures/, or uv.lock.
- Distinctive: line 19
Before flagging a rule-18 violation, read rule 18's exemptions from AGENTS.md itself and check the path against them.
- Distinctive: line 21
Do not report what a gate command reports on its own: a lint, format, type, import-boundary or test failure, or a Markdown claim that a …
- Distinctive: line 22
Put one issue in each comment, and say whether it blocks merging or is optional.
- Distinctive: line 23
When a test is added or changed, check that its assertion can fail: name the change to the code under test that would turn it red, and flag …
- Very specific: line 24
When prose describes code (a tool description, a docstring, a README section, CHANGELOG.md, an ADR), check the claim against the source in …
≈ “Common” is an estimate: at least 1 in 5 of the 3,779 Copilot instructions 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
Copilot code review instructions
Review guidance for GitHub Copilot code review in this repository.
AGENTS.md holds the rules every contributor and reviewer works under; this file adds what a reviewer needs on top of it and does not restate it.
Rule numbers below refer to the numbered list under "Rules" in AGENTS.md.
Copilot reads this file from a pull request's head branch, so the pull request that changes it is reviewed under the changed version.
Rules
- When a comment enforces a numbered
AGENTS.mdrule, name the rule number. A convention that only the surrounding code establishes needs no citation; describe the pattern the change breaks instead. - Never propose a new or widened contract as a review fix: a tool name, parameter, description claim, error code, value enum or result envelope the pull request did not already change, or a change to the persisted result shape.
The surface categories are listed in
FINGERPRINT_COVERS(src/amicus/schemas/fingerprint.py); a change there movesFINGERPRINT(rule 10), and a persisted-shape change movesRESULT_FORMAT(rule 11); the test that guards each pin states the commit shape it requires. A new contract is a design decision, made in a milestone plan or by the maintainer, so state the concern and say that it needs a decision. Do ask that a contract the pull request changes match its implementation, its plan and its stated intent; that is a correction, and it still moves the version it touches. - Never propose a hand edit to a generated pin: the
*_snapshot.jsonand*_differentials.jsonfiles undertests/fixtures/, oruv.lock. The test that guards each pin names the command that regenerates it; if a pin looks wrong, say which source of truth it disagrees with.tests/fixtures/fakebackend/is source for the wheel-seam test and is edited by hand. - Before flagging a rule-18 violation, read rule 18's exemptions from
AGENTS.mditself and check the path against them; never flag a use of one of those exemptions, and flag every path rule 18 does not exempt. - For every defect, give a concrete input or sequence that produces the wrong outcome; if you cannot, label the comment a question.
- Do not report what a gate command reports on its own: a lint, format, type, import-boundary or test failure, or a Markdown claim that a test pins (see Context).
- Put one issue in each comment, and say whether it blocks merging or is optional.
- When a test is added or changed, check that its assertion can fail: name the change to the code under test that would turn it red, and flag the test if there is none.
- When prose describes code (a tool description, a docstring, a README section,
CHANGELOG.md, an ADR), check the claim against the source in the same pull request and flag any claim the code does not bear out. - Under
docs/, flag a prose paragraph that wraps one sentence across several lines (rule 16). - Under
.github/workflows/, check the change against rules 14, 15 and 22 and name the one it breaks.
Context
What the gate already checks
Rule 2 in AGENTS.md defines the gate; CI runs it, preceded by the Actions pinning-and-trigger check (rule 3, enforcing rules 14 and 15).
Some tests pin Markdown surfaces against the code, for example docs/MIGRATION.md's tool and parameter names and the README install pin; a claim one of those tests pins is gate-covered.
The gate checks rule 16 only heuristically: under docs/ it rejects two sentences on one line where it recognises the boundary, which it does not after a lowercase opening, and never one sentence wrapped across several, so what it misses, stale claims no test pins and unpinned drift between documentation and code are reviewer work.
Where the risk concentrates
- Rule 18 governs every path a prompt input (
INPUT_FIELDSinsrc/amicus/request.py) can take. Any new log line, error message, argv construction, fixture or committed capture that can carry one of those values is the highest-value place to look. src/amicus/jobs/delivery.pyis the chokepoint through which every stored result is delivered; a schema gap there reaches every client.scripts/check_release_state.py,scripts/record_live_gate_evidence.py,.github/workflows/publish.ymlanddocs/RELEASING.mdimplement rules 19 to 24; check that a change to one keeps the others true.tests/conftest.pycarries the rule-6 guard andtests/support/fake_codex.pystands in for the real CLI, so a test that would only pass with a realcodex,kimiorclaudeonPATHis a defect.
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.

