# Contributor handoff — biomejs/biome

> Canonical page: https://codevetter.com/unpack/biome/agent-handoff

# Contributor handoff — biomejs/biome

Scanned commit 82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443 (2026-09-21). Generated by codevetter codevetter 1.12.0 on 2026-09-22.

Read AGENTS.md and the relevant skill under .claude/skills before editing. Keep diffs small, add a failing test for bug fixes, and do not hand-edit generated registries. Run the crate's tests, then just f and just l before commit. User-facing changes need a changeset; PR prose is written by the human, not the agent. Internal dev-dependencies must use path dependencies.
- First files for any task: AGENTS.md, CONTRIBUTING.md, and the skill that matches the surface (lint-rule-development, parser-development, formatter-development, testing-codegen, changeset, doc-comments). — [AGENTS.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/AGENTS.md) [.claude/skills/README.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/.claude/skills/README.md)
- Safe edit boundary: change the language crate that owns the behavior and its tests. Do not drive a formatter fix only through snapshots, and do not change biome_rowan unless the CST model itself is wrong. — [AGENTS.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/AGENTS.md) [.claude/skills/formatter-development/SKILL.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/.claude/skills/formatter-development/SKILL.md) [crates/biome_rowan/src/lib.rs](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/crates/biome_rowan/src/lib.rs)
- Bug fixes need a spec or unit test that fails without the fix. Lint fixtures use expectation comments. Formatter changes update insta snapshots only after the behavior is reviewed. — [AGENTS.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/AGENTS.md) [.claude/skills/testing-codegen/SKILL.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/.claude/skills/testing-codegen/SKILL.md)
- After a rule or assist rename, run just gen-rules and just gen-configuration. After an .ungram edit, run just gen-grammar <lang> and just gen-formatter. Bindings can be left to CI autofix unless local verification needs them. — [AGENTS.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/AGENTS.md)
- Verification commands: cargo test -p <crate> or just test-crate <crate>, then just f and just l. Full just ready is codegen for the whole repo and is slow. — [AGENTS.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/AGENTS.md) [CONTRIBUTING.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/CONTRIBUTING.md) [justfile](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/justfile)
- Comments and rustdoc must follow doc-comments. Lint rustdoc inside declare_lint_rule! is end-user documentation and also follows the lint-rule guide. Do not narrate the PR in comments. — [AGENTS.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/AGENTS.md) [.claude/skills/doc-comments/SKILL.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/.claude/skills/doc-comments/SKILL.md) [.claude/skills/lint-rule-development/SKILL.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/.claude/skills/lint-rule-development/SKILL.md)
- User-facing behavior needs a changeset created with just new-changeset, targeting @biomejs/biome. Patch goes to main; minor or major features and nursery promotions that affect users target next. Internal refactors do not get a changeset. — [AGENTS.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/AGENTS.md) [CONTRIBUTING.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/CONTRIBUTING.md) [.claude/skills/changeset/SKILL.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/.claude/skills/changeset/SKILL.md)
- Do not write PR descriptions. Preserve .github/PULL_REQUEST_TEMPLATE.md. If a PR is opened, disclose AI assistance. Conventional commit titles are required. — [AGENTS.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/AGENTS.md) [CONTRIBUTING.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/CONTRIBUTING.md) [.github/PULL_REQUEST_TEMPLATE.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/.github/PULL_REQUEST_TEMPLATE.md)
- Dev-dependencies on internal crates use path = "../biome_*", never workspace = true. Regular dependencies keep workspace = true. — [AGENTS.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/AGENTS.md) [CONTRIBUTING.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/CONTRIBUTING.md)
- Trap: nursery rules use version metadata "next" until release. Promoting a rule is a branch and versioning decision, not only a group move. — [CONTRIBUTING.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/CONTRIBUTING.md) [crates/biome_js_analyze/src/lint.rs](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/crates/biome_js_analyze/src/lint.rs)
- Trap: syntax text must not assume token text is contiguous UTF-8 without the syntax-text-handling rules. TokenText and range APIs exist because trivia and embedded languages break naive slices. — [.claude/skills/syntax-text-handling/SKILL.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/.claude/skills/syntax-text-handling/SKILL.md) [crates/biome_rowan/src/lib.rs](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/crates/biome_rowan/src/lib.rs)
- Review gate: after implementation, a fresh subagent runs biome-code-review with only the scope and requirements, not suspected bugs. Actionable findings are fixed and verification is repeated. — [AGENTS.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/AGENTS.md) [.claude/skills/biome-code-review/SKILL.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/.claude/skills/biome-code-review/SKILL.md)
- The binary version baked into release builds uses BIOME_VERSION. A value other than 0.0.0 disables recommended nursery rules in production builds. Local cargo build --bin biome does not set that variable. — [CONTRIBUTING.md](https://github.com/biomejs/biome/blob/82f9b0e6ff4bdc4a99aa81b1b861934aa9cb9443/CONTRIBUTING.md)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
