AGENTS.md · 0xPlaygrounds/rig
AGENTS.md from 0xPlaygrounds/rig: 142 lines covering First Principles, Fast Loop, Efficient Investigation, Repository Shape and more.
Template by 0xPlaygrounds
Install
Works with Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/0xPlaygrounds/rig/main/AGENTS.md -o AGENTS.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: prompt-engineering
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
An AGENTS.md file: instructions coding agents (Codex, Cursor, Copilot, Gemini CLI and others) read before working in a repo.
- For
- Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code
- Length
- 142 lines
- File
AGENTS.md
Sections
- First Principles
- Fast Loop
- Efficient Investigation
- Repository Shape
- WASM Compatibility
- Error Handling
- Documentation
- Release Documents Are Generated
- Provider Changes
- Vector Store Changes
- Style
- Cassette Regression Tests
- Verification
First lines (shown under the repo's MIT license)
# AGENTS.md Operational instructions for AI coding agents working in Rig. Contributor policy and PR etiquette live in [CONTRIBUTING.md](CONTRIBUTING.md); verification, review, and publication in [DEVELOPING.md](DEVELOPING.md); test conventions and commands in [tests/README.md](tests/README.md). This file states rules, not APIs: read the code and manifests for names, signatures, module paths, and feature flags. ## First Principles - Read the existing implementation before changing code. - Keep changes scoped to the user's request. - Prefer existing Rig traits, builders, modules, and error types over new abstractions. - Do not add TODOs, stubs, placeholder implementations, speculative APIs, or backwards compatibility shims. - Do not make commits, comments, stage changes, push branches, or open PRs unless the user explicitly asks. - Do not discard user changes. ## Fast Loop - Iterate with `cargo nextest run --locked --profile local -p <crate> [filter]`; leave workspace-wide and facade `--all-features` runs to CI. - Before pushing, run `cargo xtask verify --affected --base origin/main`: every test of the changed packages and of the packages depending on them. - Keep incremental compilation on. ## Efficient Investigation - Reuse instructions and unchanged source already in context. Read the relevant sections of linked documents, not every document for every task. - Use the repository map below to narrow searches to the owning crate or test target. Read complete relevant constructs; widen only when needed. - Check actual signatures and existing test conventions before writing examples or smoke programs, rather than discovering APIs through compiler errors. - Keep commands and edits on the intended worktree. Confirm the language server indexes it before trusting references; empty results outside its workspace are not proof of no callers. Inspect native/WASM branches explicitly. - Request only decision-relevant output. Recover missing diagnostic context from truncated output rather than dumping or fetching the entire log again. ## Repository Shape - Root facade crate: `rig` (re-exports the core crate, exposes companion crates behind feature flags) - Core crate: `crates/rig-core` - Companion provider, vector-store, memory, and integration crates: `crates/rig-*` - Derive macros: `crates/rig-derive` - The rig coding agent: its core `crates/rig-harness` (on `crates/rig-ecs` and `crates/rig-tools`), its plugin crates `plugins/rig-*`, their shared test support `test-support/rig-harness-test-support`, and `test-support/rig-defaults-test-support` (the default plugins for tests, and the test that each can be left out); all but the two test-support crates are published - The plugin corpus `corpus/*`: plugins written against the harness's public API that shaped and prove the kernel, one per module (`src/<plugin>.rs` with its tests in `src/<plugin>/tests.rs`) of a few `publish = false` packages named `corpus-<directory>` (`shared`, which the others build on; `base`; one per held-out series; `library`, programs with no Bevy), so their tests link nine binaries, not one per plugin. CI builds, lints and tests every one, so a kernel change that breaks one fails CI - Verification planner and source-tree checks: `xtask/` - Workspace example packages: `examples/*`; per-crate examples: `crates/<crate>/examples/` - Root integration test targets: `tests/*.rs` - Record/replay home: `crates/rig-cassette` — the engine (`src/`), the provider cassette corpus (`fixtures/cassettes/<provider>/`), the effect-log golden corpus (`fixtures/effects/`), every cassette-backed provider target (`tests/<provider>.rs` with `tests/providers/<provider>/` and the shared drivers in `tests/common/`), the cache-prefix guard, and the effect-bus verification target `verify`. Corpora and `tests/` are excluded from the published package. - Live-only provider test modules stay in the facade: `tests/providers/<provider>/`, driven by `tests/<provider>.rs` - External-service integration tests: `tests/integrations/` - Unpublished vector-store test runner: `test-support/service-tests` Check the root manifest and facade source before documenting or changing exposed features, integrations, or module paths. When adding or exposing a companion crate, update the root dependency, feature, facade re-export, examples, README, and crate docs as applicable. ## WASM Compatibility Rig supports WebAssembly targets. Use Rig's WASM-compatible `WasmSend`/`WasmSync` alias bounds instead of raw `Send` and `Sync`, and its WASM-compatible boxed future alias for boxed futures. When an error type stores boxed errors, gate the `Send + Sync` bound on `target_family = "wasm"` the way existing error types do. ## Error Handling - Do not use `String` as an error type for new fallible APIs; - Workspace clippy lints forbid `unwrap`, `expect`, `todo`, and `unimplemented`. - Tests are linted too: `indexing_slicing` and `panic_in_result_fn` apply in test code, so index with `.get(..)`, and do not assert in a test that returns `Result`. - Prefer `?` and meaningful error conversions. ## Documentation - Keep examples current with actual APIs, model constants, module paths, and feature flags; mark examples `no_run` when they require external credentials or services. - Do not document integrations, features, model constants, or crate paths without checking the code and manifests. - Keep root README, crate READMEs, and crate-level Rust docs consistent when changing public-facing behavior. ## Release Documents Are Generated - Never edit `CHANGELOG.md`, `crates/*/CHANGELOG.md`, `MIGRATING.md`, or `docs/migrations/`. CI rejects the PR. - Put changelog bullets and migration notes in the PR description under `## Changelog` and `## Migration`, following the PR template. When the user asks to "update the changelog" or "add a migration note", that is what it means. The repository squash-merges, so those sections become the merge commit body. - These files are regenerated on the release PR by `scripts/release-notes.sh` and the editorial pass in `scripts/release-notes-prompt.md`. Only touch them when the user explicitly says the branch is a release PR. ## Provider Changes Before implementing or modifying a provider, study the closest existing provider implementation and mirror it. Providers whose wire format is a dialect of an existing one (OpenAI-chat-compatible, Anthropic-compatible) MUST reuse the shared generic completion model for that dialect and express their differences through its extension hooks — never a hand-rolled completion model, request struct, or message conversion. ## Vector Store Changes Vector stores should live in companion crates. Implement both the scored-document and the id-only search methods, use an appropriate backend-specific filter type, return the vector-store error enum's variants instead of ad hoc string errors, and use the WASM-compatible bounds. ## Style - Module docs state the module's purpose in at most three paragraphs and include one short example when there is a public entry point. No headers, tables, history, or rhetorical phrasing. - Item docs state the contract, inputs, outputs, errors, and caller invariants. Allow one sentence of non-obvious rationale. No issue numbers, bug narratives, or comparisons with other providers. - Inline comments explain a non-obvious why in one or two sentences. Delete restated code, control-flow narration, and design discussions. - Use short sentences and no em-dashes. Keep true `# Safety` and `# Panics` sections. Doc examples must compile with current APIs; use `no_run` for credentials, network access, or services. - Move needed design rationale to the crate's CONTRACT.md or README, checking for and merging existing coverage rather than duplicating it. - Follow local naming, module layout, and test patterns. - Test modules are sibling files, never inline blocks: write `#[cfg(test)] mod tests;` and put the body in `foo/tests.rs` (for `foo.rs`) or `tests.rs` beside `mod.rs`/`lib.rs`. `cargo xtask check-test-layout` enforces this in CI. - Avoid unrelated refactors. - Prefer the cleanest implementation. - Break things if the result is better. ## Cassette Regression Tests Provider regressions should usually include cassette-backed tests. Follow [tests/README.md](tests/README.md#cassette-provider-tests) for replay/record commands and fixture safety review; never record or rewrite fixtures merely to make verification pass. ## Verification Follow [DEVELOPING.md](DEVELOPING.md) for check selection, independent review, and authorized publication. Run the smallest useful local check; docs-only edits get diff and link review, not Rust builds. Keep progress reports outside the repository and never claim merge readiness with required checks pending.
Signals
- Stars
- 8,963
- Forks
- 994
- Open issues
- 33
- Last commit (this folder)
- Oct 16, 2026 (12 days ago)
- Last release
- Oct 19, 2026 (9 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/0xPlaygrounds/rig
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Cite this page
AGENTS.md · 0xPlaygrounds/rig. Agent Mart. https://agentmart.dev/templates/0xplaygrounds-rig-agents-md (last updated 2026-10-24)