Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add instructions/justrach/codegraff2/agents-mdgit clone --depth 1 https://github.com/justrach/codegraff2What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.01755 | $0.01755 |
| Opus 5 | $0.00877 | $0.00877 |
| Sonnet 5 | $0.00351 | $0.00351 |
| Haiku 4.5 | $0.00176 | $0.00176 |
Grade A, and why
codegraff2 AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
97% identical to forgecode AGENTS.md — 2 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 247 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Agent Guidelines
This document contains guidelines and best practices for AI agents working with this codebase.
Error Management
- Use
anyhow::Resultfor error handling in services and repositories. - Create domain errors using
thiserror. - Never implement
Fromfor converting domain errors, manually convert them
Writing Tests
-
All tests should be written in three discrete steps:
use pretty_assertions::assert_eq; // Always use pretty assertions fn test_foo() { let setup = ...; // Instantiate a fixture or setup for the test let actual = ...; // Execute the fixture to create an output let expected = ...; // Define a hand written expected result assert_eq!(actual, expected); // Assert that the actual result matches the expected result } -
Use
pretty_assertionsfor better error messages. -
Use fixtures to create test data.
-
Use
assert_eq!for equality checks. -
Use
assert!(...)for boolean checks. -
Use unwraps in test functions and anyhow::Result in fixtures.
-
Keep the boilerplate to a minimum.
-
Use words like
fixture,actualandexpectedin test functions. -
Fixtures should be generic and reusable.
-
Test should always be written in the same file as the source code.
-
Use
new, Default and derive_setters::Setters to createactual,expectedand speciallyfixtures. For example:Good:
User::default().age(12).is_happy(true).name("John") User::new("Job").age(12).is_happy() User::test() // Special test constructorBad:
User {name: "John".to_string(), is_happy: true, age: 12} User::with_name("Job") // Bad name, should stick to User::new() or User::test() -
Use
unwrap()unless the error information is useful. Useexpectinstead ofpanic!when error message is useful. For example:Good:
users.first().expect("List should not be empty")Bad:
if let Some(user) = users.first() { // ... } else { panic!("List should not be empty") }
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 247 lines · 1,755 tokens per session scan A 05c74ff00c7b
codegraff2 AGENTS.md is an instructions file published in the GitHub repository justrach/codegraff2 (24 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 1,755 tokens to every session, about $0.0088 per session on Opus 5. A static security scan graded it A with 0 findings. It is 97% identical to forgecode AGENTS.md, differing in 2 lines, and is treated as a copy.
Other instructions, from other repositories
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
buildNext
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
next.js AGENTS.md
Instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).
spec-kit AGENTS.md
Instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.
langchain AGENTS.md
Instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.