Setup Pre Commit
fossasia/eventyay-interpretation
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo.
A skill your agent uses whenever implementing or debugging Biome formatter behavior, IR composition, node rules, layout selection, source-comment handling, verbatim formatting, idempotency, internal…
$ npx skills add biomejs/biome --skill formatter-development -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install biomejs/biome formatter-development --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/biomejs/biome.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/formatter-development .claude/skills/formatter-development && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "formatter-development" agent skill from https://github.com/biomejs/biome/tree/main/.agents/skills/formatter-development into .claude/skills/formatter-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "formatter-development", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/biomejs/biome/tree/main/.agents/skills/formatter-developmentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add biomejs/biome --skill formatter-development -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install biomejs/biome formatter-development --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/biomejs/biome.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/formatter-development .agents/skills/formatter-development && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "formatter-development" agent skill from https://github.com/biomejs/biome/tree/main/.agents/skills/formatter-development into .agents/skills/formatter-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "formatter-development", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add biomejs/biome --skill formatter-development -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install biomejs/biome formatter-development --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/biomejs/biome.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/formatter-development .cursor/skills/formatter-development && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "formatter-development" agent skill from https://github.com/biomejs/biome/tree/main/.agents/skills/formatter-development into .cursor/skills/formatter-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "formatter-development", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/biomejs/biome.git --path .agents/skills/formatter-development--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add biomejs/biome --skill formatter-development -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install biomejs/biome formatter-development --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/biomejs/biome.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/formatter-development .gemini/skills/formatter-development && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "formatter-development" agent skill from https://github.com/biomejs/biome/tree/main/.agents/skills/formatter-development into .gemini/skills/formatter-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "formatter-development", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install biomejs/biome formatter-developmentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add biomejs/biome --skill formatter-development -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/biomejs/biome.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/formatter-development .github/skills/formatter-development && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "formatter-development" agent skill from https://github.com/biomejs/biome/tree/main/.agents/skills/formatter-development into .github/skills/formatter-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "formatter-development", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add biomejs/biome --skill formatter-development -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install biomejs/biome formatter-development --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/biomejs/biome.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/formatter-development .opencode/skills/formatter-development && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "formatter-development" agent skill from https://github.com/biomejs/biome/tree/main/.agents/skills/formatter-development into .opencode/skills/formatter-development/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "formatter-development", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
formatter-developmentA skill your agent uses whenever implementing or debugging Biome formatter behavior, IR composition, node rules, layout selection, source-comment handling, verbatim formatting, idempotency, internal…
Formatter Development is an agent skill from biomejs/biome, published by the product's own GitHub organization. Use this skill whenever implementing or debugging Biome formatter behavior, IR composition, node rules, layout selection, source-comment handling, verbatim formatting, idempotency, internal specs, or Prettier comparison. Do not use it for generic snapshot commands or parser changes.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for coding agents working on the Biome codebase (github.com/biomejs/biome).
It sits in Development, covering Linting and formatting. It works with Prettier. The repository describes itself as: A toolchain for web projects, aimed to provide functionalities to maintain them. Biome offers formatter and linter, usable via CLI and LSP. The licence is Apache-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c870caa. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
bunjustFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for coding agents working on the Biome codebase (github.com/biomejs/biome).
From compatibility in the SKILL.md frontmatter.
Formatter Development loads about 2.1k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 1,075 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from biomejs/biome at commit c870caa, republished under its Apache-2.0 licence (© biomejs). 1,075 words, ~2,148 tokens.
.claude/skills/formatter-development/SKILL.md (or your agent's skills folder).Use crates/biome_formatter/CONTRIBUTING.md and the language formatter's guide as the canonical architecture references. Inspect neighboring node implementations before selecting IR primitives.
quick_test.Formatter output is a structured rewrite of the source tree, not a fresh pretty-printer. Treat every missed node, missed token, unchecked suppression, and untracked replacement as a formatter bug, not as style feedback.
format_removed, replacing it with format_replaced, or by a language-specific helper that does one of those operations.node.format() or node.format().with_options(...) so the node's own rule formats the node, checks suppressions, and routes comments through the formatter infrastructure.f.context().comments().is_suppressed(node.syntax()); if the node is suppressed, it MUST write the language's format_suppressed_node(...) helper instead of formatting the node body. Without this check, debug builds fail suppression coverage and user suppressions can be ignored.token("...") only for syntax inserted by the formatter when no source token exists.format_removed(&token). Do not drop the field, bind it to _, or omit it from write! without consuming it through format_removed; skipped trivia still belongs to that token.format_replaced(&token, &replacement). Do not print the replacement directly and do not use token("...") for replacement text, because the original token still has trivia and must be marked consumed.Format<Context>. Do not use free functions or stored closure values to carry formatter state or layout invariants. Use format_with only for one-off local glue that is immediately written.Generated node rules implement FormatNodeRule. In fmt_fields:
*Fields type explicitly;_ rather than .. only when the field is consumed elsewhere in the same formatting path or deliberately handled by format_removed / format_replaced; otherwise _ on a node or token field is a dropped-tree bug;format_verbatim_* methods preserve a node's source text. Replace verbatim formatting with structured formatting only when tests cover valid, malformed, and commented forms of the node.
Format, replace, or remove every token. Formatter tests panic when a token is not handled, preventing accidental source loss.
Use format_replaced when substituting a token and format_removed when removing one.
Format a node through node.format() when possible. Its regular rule checks formatter-suppression comments as part of normal formatting.
When a helper formats a node or its tokens outside FormatNodeRule, run the formatter tests. If the suppression-check assertion reports a node, call f.context().comments().mark_suppression_checked(node.syntax()) for that reported node. The assertion shows that the helper bypasses the node's normal suppression check.
Use semantic IR rather than writing whitespace as arbitrary text:
space() for required spaces;For a distinct formatting concern, use a named type implementing Format. A cluster of free functions that pass &mut Formatter obscures what has already been written and which layout invariants apply.
Represent multi-way layout with an enum selected once. Recomputing layout at several write sites can produce inconsistent output and idempotency failures.
Leading and trailing comments are generally handled by formatter infrastructure. Explicitly format dangling comments when the node owns a position to which no child can attach them.
Test comments at each structural boundary affected by the change: before the first child, between children, after the last child, and around empty nodes. Dropping or moving a source comment is data loss.
Load testing-codegen for snapshot commands and review.
Internal specs should contain the focused source shapes needed to establish canonical output. Where useful, include both already formatted and deliberately unformatted inputs that should converge to the same result.
The formatter test infrastructure reformats error-free, non-range output during the test invocation and fails when the second result differs. IR is diagnostic evidence when output differs; it is not a separate equality contract.
Add internal specs for behavior changes even when a Prettier snapshot changes or disappears. Agreement with one external corpus input does not cover the changed edge case.
Use the repository tool when compatibility is part of the requirement:
bun packages/prettier-compare/bin/prettier-compare.js --rebuild -l js 'const value={a:1}'
bun packages/prettier-compare/bin/prettier-compare.js --rebuild -f path/to/file.js--rebuild rebuilds Biome's WASM bundle and writes build outputs. It is appropriate during implementation, not during a read-only review.
Treat differences as input to design, not automatic bugs. Biome may intentionally differ when its documented behavior or architecture requires it.
After changing source in a language formatter crate:
just f and just l before committing.f.context().comments().is_suppressed(node.syntax()) before formatting the node body manually.format_removed, or replaced with format_replaced; no source token is silently skipped, bound to _, or recreated as static text.Format<Context> rather than free functions or closure values.crates/biome_formatter/CONTRIBUTING.mdcrates/biome_js_formatter/CONTRIBUTING.mdcrates/biome_formatter_test/src/spec.rspackages/prettier-compare/README.md© biomejs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/formatter-development of biomejs/biome.
Open the folder on GitHubat commit c870caa
Formatter Development next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Formatter Development this skillbiomejs/biome | 26k | — | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| Setup Pre Commitfossasia/eventyay-interpretation | 1.6k | 13 repos | ~565 | Automated safety check: Pass | Apache-2.0 | |
| Code Qualityredis/RedisInsight | 8.9k | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| Flowmark Markdown Formatterjlevy/repren | 374 | — | ~631 | Automated safety check: Pass | MIT | |
| Building Glamorous TuisDicklesworthstone/meta_skill | 205 | — | ~3.4k | Automated safety check: Pass | Custom licence | |
| Electron App Source ExtractorJimLiu/baoyu-skills | 26k | 1 repos | ~2.6k | Automated safety check: Pass | MIT |
fossasia/eventyay-interpretation
Set up Husky pre-commit hooks with lint-staged (Prettier), type checking, and tests in the current repo.
redis/RedisInsight
Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…
jlevy/repren
Formats Markdown with the Flowmark auto-formatter for typographic cleanup and semantic line breaks, and helps adopt it across a repository.
Dicklesworthstone/meta_skill
Build terminal UIs with Charmbracelet (Bubble Tea, Lip Gloss, Gum).
JimLiu/baoyu-skills
Unpacks an installed Electron app's asar bundle and restores readable source from its JavaScript source maps when one is available.
dxos/dxos
Guide for migrating a project from Prettier or Biome to Oxfmt.
biomejs/biome
A skill your agent uses when a Biome change may affect users and you must decide whether it needs a changeset, choose the release level, or create and edit .changeset/.md release-note text.
biomejs/biome
A skill your agent uses whenever writing or editing Rust //, ///, or //!
biomejs/biome
A skill your agent uses when biome migrate eslint must preserve configurable ESLint rule options through source-option models, Biome conversions, typed rule variants, and migration fixtures.
biomejs/biome
A skill your agent uses when creating or modifying Biome lint rules or assists, including analyzer queries, semantic bindings, rule state, code actions, fix safety, options, registration, and…
biomejs/biome
A skill your agent uses when implementing or modifying Biome parser behavior, including .ungram grammars, lexers, token sources, parse rules, separated lists, error recovery, and parser fixtures.
biomejs/biome
A skill your agent uses when promoting one or more Biome lint rules from nursery to stable groups, including promotion plans from GitHub issues, metadata changes, rule renames, generated…
Works with
Categories
A skill your agent uses whenever implementing or debugging Biome formatter behavior, IR composition, node rules, layout selection, source-comment handling, verbatim formatting, idempotency, internal…. Formatter Development is an agent skill from biomejs/biome, published by the product's own GitHub organization. Use this skill whenever implementing or debugging Biome formatter behavior, IR composition, node rules, layout selection, source-comment handling, verbatim formatting, idempotency, internal specs, or Prettier comparison.
Formatter Development fits situations like: debugging Biome formatter behavior; layout selection; source-comment handling; verbatim formatting.
Run `npx skills add biomejs/biome --skill formatter-development -a claude-code`. Or copy the skill folder (.agents/skills/formatter-development in biomejs/biome) into .claude/skills/formatter-development in your project. Claude Code loads it when a task matches its description.
Run `npx skills add biomejs/biome --skill formatter-development -a codex`. Or copy the skill folder (.agents/skills/formatter-development in biomejs/biome) into .agents/skills/formatter-development in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add biomejs/biome --skill formatter-development -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/formatter-development, .gemini/skills/formatter-development, .github/skills/formatter-development and .opencode/skills/formatter-development in your project.
Going by SKILL.md and its folder, Formatter Development needs the command-line tools its instructions call (bun and just). Compatibility (from SKILL.md): Designed for coding agents working on the Biome codebase (github.com/biomejs/biome)..
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Formatter Development is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Formatter Development: Setup Pre Commit (fossasia/eventyay-interpretation, 1.6k stars), Code Quality (redis/RedisInsight, 8.9k stars), Flowmark Markdown Formatter (jlevy/repren, 374 stars) and Building Glamorous Tuis (Dicklesworthstone/meta_skill, 205 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
biomejs (a GitHub organization, an official publisher) maintains it in biomejs/biome, which has 25,910 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 8, 2026.
Source: biomejs/biome on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.