/configure:formatting Check and configure code formatting tools against modern best practices. When to Use This Skill | Use this skill when... | Use another approach when... | |------------------------|------------------------------| | Setting up Biome, Prettier, Ruff format, or rustfmt for a project | Running an existing formatter ( , ) | | Migrating from Prettier to Biome or Black to Ruff | Fixing individual formatting issues in specific files | | Auditing formatter configuration for completeness and best practices | Configuring linting rules ( instead) | | Adding format-on-save and CI form…

\nextend-exclude = '''\n/(\n \\.eggs\n | \\.git\n | \\.venv\n | dist\n | build\n)/\n'''\n```\n\n## rustfmt Configuration (Rust)\n\n### `rustfmt.toml`\n\n```toml\nedition = \"2021\"\nmax_width = 100\ntab_spaces = 4\nhard_tabs = false\nnewline_style = \"Unix\"\nuse_small_heuristics = \"Default\"\nreorder_imports = true\nreorder_modules = true\nremove_nested_parens = true\nformat_code_in_doc_comments = true\nnormalize_comments = true\nwrap_comments = true\nformat_strings = true\nformat_macro_bodies = true\nformat_macro_matchers = true\nimports_granularity = \"Crate\"\ngroup_imports = \"StdExternalCrate\"\n```\n\n### Run\n\n```bash\ncargo fmt --all\n```\n\n## EditorConfig Template\n\n```ini\nroot = true\n\n[*]\ncharset = utf-8\nend_of_line = lf\ninsert_final_newline = true\ntrim_trailing_whitespace = true\n\n[*.{js,jsx,ts,tsx,json,jsonc}]\nindent_style = space\nindent_size = 2\nmax_line_length = 100\n\n[*.py]\nindent_style = space\nindent_size = 4\nmax_line_length = 100\n\n[*.rs]\nindent_style = space\nindent_size = 4\nmax_line_length = 100\n\n[*.{yml,yaml}]\nindent_style = space\nindent_size = 2\n\n[*.md]\ntrim_trailing_whitespace = false\nmax_line_length = off\n\n[Makefile]\nindent_style = tab\n```\n\n## Migration Guides\n\n### Prettier to Biome\n\n```bash\n# Step 1: Install Biome\nnpm install --save-dev @biomejs/biome\n\n# Step 2: Import Prettier config\nnpx @biomejs/biome migrate prettier --write\n\n# Step 3: Review and adjust biome.json\n\n# Step 4: Remove Prettier\nnpm uninstall prettier\nrm .prettierrc.* prettier.config.* .prettierignore\n\n# Step 5: Update scripts in package.json\n```\n\n### Black to Ruff Format\n\n```bash\n# Step 1: Install Ruff\nuv add --group dev ruff\n\n# Step 2: Configure [tool.ruff.format] in pyproject.toml\n\n# Step 3: Format codebase\nuv run ruff format .\n\n# Step 4: Remove Black\nuv remove black\n```\n\n## Pre-commit Hooks\n\n### Biome\n\n```yaml\nrepos:\n - repo: https://github.com/biomejs/pre-commit\n rev: v0.4.0\n hooks:\n - id: biome-check\n additional_dependencies: [\"@biomejs/[email protected]\"]\n```\n\n### Prettier\n\n```yaml\nrepos:\n - repo: https://github.com/pre-commit/mirrors-prettier\n rev: v4.0.0-alpha.8\n hooks:\n - id: prettier\n types_or: [javascript, jsx, ts, tsx, json, yaml, markdown]\n```\n\n### Ruff Format\n\n```yaml\nrepos:\n - repo: https://github.com/astral-sh/ruff-pre-commit\n rev: v0.8.4\n hooks:\n - id: ruff-format\n```\n\n### rustfmt\n\n```yaml\nrepos:\n - repo: https://github.com/doublify/pre-commit-rust\n rev: v1.0\n hooks:\n - id: fmt\n```\n\n## CI/CD Integration\n\n### GitHub Actions - Biome\n\n```yaml\n- name: Check formatting\n run: npx @biomejs/biome format .\n```\n\n### GitHub Actions - Prettier\n\n```yaml\n- name: Check formatting\n run: npm run format:check\n```\n\n### GitHub Actions - Ruff\n\n```yaml\n- name: Check formatting\n run: uv run ruff format --check .\n```\n\n### GitHub Actions - rustfmt\n\n```yaml\n- name: Check formatting\n run: cargo fmt --all -- --check\n```\n\n## VS Code Editor Integration\n\n### `.vscode/settings.json`\n\n```json\n{\n \"editor.formatOnSave\": true,\n \"editor.defaultFormatter\": \"biomejs.biome\",\n \"[javascript]\": { \"editor.defaultFormatter\": \"biomejs.biome\" },\n \"[typescript]\": { \"editor.defaultFormatter\": \"biomejs.biome\" },\n \"[python]\": { \"editor.defaultFormatter\": \"charliermarsh.ruff\" },\n \"[rust]\": { \"editor.defaultFormatter\": \"rust-lang.rust-analyzer\", \"editor.formatOnSave\": true }\n}\n```\n\n### `.vscode/extensions.json`\n\n```json\n{\n \"recommendations\": [\n \"biomejs.biome\",\n \"charliermarsh.ruff\",\n \"rust-lang.rust-analyzer\",\n \"editorconfig.editorconfig\"\n ]\n}\n```\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":6234,"content_sha256":"c5965a0e6851bd52e3e964c031c5049d8f3f42a8f9b6a6fdd35b5c0b93ed8d1c"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"/configure:formatting","type":"text"}]},{"type":"paragraph","content":[{"text":"Check and configure code formatting tools against modern best practices.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"When to Use This Skill","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Use this skill when...","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Use another approach when...","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Setting up Biome, Prettier, Ruff format, or rustfmt for a project","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Running an existing formatter (","type":"text"},{"text":"biome format","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"ruff format","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Migrating from Prettier to Biome or Black to Ruff","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Fixing individual formatting issues in specific files","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Auditing formatter configuration for completeness and best practices","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Configuring linting rules (","type":"text"},{"text":"/configure:linting","type":"text","marks":[{"type":"code_inline"}]},{"text":" instead)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Adding format-on-save and CI format checks","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Setting up pre-commit hooks only (","type":"text"},{"text":"/configure:pre-commit","type":"text","marks":[{"type":"code_inline"}]},{"text":" instead)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Standardizing formatting settings across a monorepo","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Editing ","type":"text"},{"text":".editorconfig","type":"text","marks":[{"type":"code_inline"}]},{"text":" or ","type":"text"},{"text":".vscode/settings.json","type":"text","marks":[{"type":"code_inline"}]},{"text":" manually","type":"text"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Context","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Biome config: !","type":"text"},{"text":"find . -maxdepth 1 -name \\'biome.json\\'","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Prettier config: !","type":"text"},{"text":"find . -maxdepth 1 \\( -name '.prettierrc*' -o -name 'prettier.config.*' \\)","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ruff config: !","type":"text"},{"text":"grep -l 'tool.ruff.format' pyproject.toml","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Black config: !","type":"text"},{"text":"grep -l 'tool.black' pyproject.toml","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Rustfmt config: !","type":"text"},{"text":"find . -maxdepth 1 \\( -name 'rustfmt.toml' -o -name '.rustfmt.toml' \\)","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"EditorConfig: !","type":"text"},{"text":"find . -maxdepth 1 -name \\'.editorconfig\\'","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Package JSON: !","type":"text"},{"text":"find . -maxdepth 1 -name \\'package.json\\'","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Python project: !","type":"text"},{"text":"find . -maxdepth 1 -name \\'pyproject.toml\\'","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Rust project: !","type":"text"},{"text":"find . -maxdepth 1 -name \\'Cargo.toml\\'","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Pre-commit: !","type":"text"},{"text":"find . -maxdepth 1 -name \\'.pre-commit-config.yaml\\'","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Project standards: !","type":"text"},{"text":"find . -maxdepth 1 -name \\'.project-standards.yaml\\'","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Parameters","type":"text"}]},{"type":"paragraph","content":[{"text":"Parse from ","type":"text"},{"text":"$ARGUMENTS","type":"text","marks":[{"type":"code_inline"}]},{"text":":","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"--check-only","type":"text","marks":[{"type":"code_inline"}]},{"text":": Report compliance status without modifications","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"--fix","type":"text","marks":[{"type":"code_inline"}]},{"text":": Apply all fixes automatically without prompting","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"--formatter \u003cformatter>","type":"text","marks":[{"type":"code_inline"}]},{"text":": Override formatter detection (biome, prettier, ruff, rustfmt)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Version Checking","type":"text"}]},{"type":"paragraph","content":[{"text":"CRITICAL","type":"text","marks":[{"type":"strong"}]},{"text":": Before flagging outdated formatters, verify latest releases using WebSearch or WebFetch:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Biome","type":"text","marks":[{"type":"strong"}]},{"text":": Check ","type":"text"},{"text":"biomejs.dev","type":"text","marks":[{"type":"link","attrs":{"href":"https://biomejs.dev/","title":null}}]},{"text":" or ","type":"text"},{"text":"GitHub releases","type":"text","marks":[{"type":"link","attrs":{"href":"https://github.com/biomejs/biome/releases","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Prettier","type":"text","marks":[{"type":"strong"}]},{"text":": Check ","type":"text"},{"text":"prettier.io","type":"text","marks":[{"type":"link","attrs":{"href":"https://prettier.io/","title":null}}]},{"text":" or ","type":"text"},{"text":"npm","type":"text","marks":[{"type":"link","attrs":{"href":"https://www.npmjs.com/package/prettier","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ruff","type":"text","marks":[{"type":"strong"}]},{"text":": Check ","type":"text"},{"text":"docs.astral.sh/ruff","type":"text","marks":[{"type":"link","attrs":{"href":"https://docs.astral.sh/ruff/","title":null}}]},{"text":" or ","type":"text"},{"text":"GitHub releases","type":"text","marks":[{"type":"link","attrs":{"href":"https://github.com/astral-sh/ruff/releases","title":null}}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"rustfmt","type":"text","marks":[{"type":"strong"}]},{"text":": Bundled with Rust toolchain - check ","type":"text"},{"text":"Rust releases","type":"text","marks":[{"type":"link","attrs":{"href":"https://releases.rs/","title":null}}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Execution","type":"text"}]},{"type":"paragraph","content":[{"text":"Execute this code formatting configuration workflow:","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 1: Detect project languages and existing formatters","type":"text"}]},{"type":"paragraph","content":[{"text":"Check for language indicators and formatter configurations:","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Indicator","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Language","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Detected Formatter","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"biome.json","type":"text","marks":[{"type":"code_inline"}]},{"text":" with formatter","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"JavaScript/TypeScript","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Biome","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":".prettierrc.*","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"JavaScript/TypeScript","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Prettier","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"pyproject.toml","type":"text","marks":[{"type":"code_inline"}]},{"text":" [tool.ruff.format]","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Python","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Ruff","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"pyproject.toml","type":"text","marks":[{"type":"code_inline"}]},{"text":" [tool.black]","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Python","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Black (legacy)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"rustfmt.toml","type":"text","marks":[{"type":"code_inline"}]},{"text":" or ","type":"text"},{"text":".rustfmt.toml","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Rust","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"rustfmt","type":"text"}]}]}]}]},{"type":"paragraph","content":[{"text":"Modern formatting preferences:","type":"text","marks":[{"type":"strong"}]}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"JavaScript/TypeScript","type":"text","marks":[{"type":"strong"}]},{"text":": Biome (preferred) or Prettier","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Python","type":"text","marks":[{"type":"strong"}]},{"text":": Ruff format (replaces Black)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Rust","type":"text","marks":[{"type":"strong"}]},{"text":": rustfmt (standard)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 2: Analyze current formatter configuration","type":"text"}]},{"type":"paragraph","content":[{"text":"For each detected formatter, check configuration completeness:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Config file exists with required settings (indent, line width, quotes, etc.)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ignore patterns configured","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Format scripts defined in package.json / pyproject.toml","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Pre-commit hook configured","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"CI/CD check configured","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 3: Generate compliance report","type":"text"}]},{"type":"paragraph","content":[{"text":"Print a formatted compliance report:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Code Formatting Compliance Report\n==================================\nProject: [name]\nLanguage: [detected]\nFormatter: [detected]\n\nConfiguration: [status per check]\nFormat Options: [status per check]\nScripts: [status per check]\nIntegration: [status per check]\n\nOverall: [X issues found]\nRecommendations: [list specific fixes]","type":"text"}]},{"type":"paragraph","content":[{"text":"If ","type":"text"},{"text":"--check-only","type":"text","marks":[{"type":"code_inline"}]},{"text":", stop here.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 4: Install and configure formatter (if --fix or user confirms)","type":"text"}]},{"type":"paragraph","content":[{"text":"Based on detected language and formatter preference, install and configure. Use configuration templates from ","type":"text"},{"text":"REFERENCE.md","type":"text","marks":[{"type":"link","attrs":{"href":"REFERENCE.md","title":null}}]},{"text":".","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Install formatter package","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Create configuration file (biome.json, .prettierrc.json, pyproject.toml section, rustfmt.toml)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Add format scripts to package.json or Makefile/justfile","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Create ignore file if needed (.prettierignore)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 5: Create EditorConfig integration","type":"text"}]},{"type":"paragraph","content":[{"text":"Create or update ","type":"text"},{"text":".editorconfig","type":"text","marks":[{"type":"code_inline"}]},{"text":" with settings matching the formatter configuration.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 6: Handle migrations (if applicable)","type":"text"}]},{"type":"paragraph","content":[{"text":"If legacy formatter detected (Prettier -> Biome, Black -> Ruff):","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Import existing configuration","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Install new formatter","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Remove old formatter","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Update scripts","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Update pre-commit hooks","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Use migration guides from ","type":"text"},{"text":"REFERENCE.md","type":"text","marks":[{"type":"link","attrs":{"href":"REFERENCE.md","title":null}}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 7: Configure pre-commit hooks","type":"text"}]},{"type":"paragraph","content":[{"text":"Add formatter to ","type":"text"},{"text":".pre-commit-config.yaml","type":"text","marks":[{"type":"code_inline"}]},{"text":" using the appropriate hook repository.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 8: Configure CI/CD integration","type":"text"}]},{"type":"paragraph","content":[{"text":"Add format check step to GitHub Actions workflow.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 9: Configure editor integration","type":"text"}]},{"type":"paragraph","content":[{"text":"Create or update ","type":"text"},{"text":".vscode/settings.json","type":"text","marks":[{"type":"code_inline"}]},{"text":" with format-on-save and ","type":"text"},{"text":".vscode/extensions.json","type":"text","marks":[{"type":"code_inline"}]},{"text":" with formatter extension.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 10: Update standards tracking","type":"text"}]},{"type":"paragraph","content":[{"text":"Update ","type":"text"},{"text":".project-standards.yaml","type":"text","marks":[{"type":"code_inline"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"yaml"},"content":[{"text":"components:\n formatting: \"2025.1\"\n formatting_tool: \"[biome|prettier|ruff|rustfmt]\"\n formatting_pre_commit: true\n formatting_ci: true","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 11: Print completion report","type":"text"}]},{"type":"paragraph","content":[{"text":"Print a summary of changes made, scripts added, and next steps (run format, verify CI, enable format-on-save).","type":"text"}]},{"type":"paragraph","content":[{"text":"For detailed configuration templates, migration guides, and pre-commit configurations, see ","type":"text"},{"text":"REFERENCE.md","type":"text","marks":[{"type":"link","attrs":{"href":"REFERENCE.md","title":null}}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Agentic Optimizations","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Context","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Command","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Quick compliance check","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"/configure:formatting --check-only","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Auto-fix all issues","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"/configure:formatting --fix","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Check Biome formatting","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"biome format --check --reporter=github","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Check Prettier formatting","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"`npx prettier --check . 2>&1","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Check Ruff formatting","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"ruff format --check --output-format=github","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Check rustfmt formatting","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"`cargo fmt --check 2>&1","type":"text"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Flags","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Flag","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Description","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"--check-only","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Report status without offering fixes","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"--fix","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Apply all fixes automatically without prompting","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"--formatter \u003cformatter>","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Override formatter detection (biome, prettier, ruff, rustfmt)","type":"text"}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Examples","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"# Check compliance and offer fixes\n/configure:formatting\n\n# Check only, no modifications\n/configure:formatting --check-only\n\n# Auto-fix and migrate to Biome\n/configure:formatting --fix --formatter biome","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Error Handling","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Multiple formatters detected","type":"text","marks":[{"type":"strong"}]},{"text":": Warn about conflict, suggest migration","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"No package manager found","type":"text","marks":[{"type":"strong"}]},{"text":": Cannot install formatter, error","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Invalid configuration","type":"text","marks":[{"type":"strong"}]},{"text":": Report parse error, offer to replace with template","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Formatting conflicts","type":"text","marks":[{"type":"strong"}]},{"text":": Report files that would be reformatted","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"See Also","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"/configure:linting","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Configure linting tools","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"/configure:editor","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Configure editor settings","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"/configure:pre-commit","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Pre-commit hook configuration","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"/configure:all","type":"text","marks":[{"type":"code_inline"}]},{"text":" - Run all compliance checks","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Biome documentation","type":"text","marks":[{"type":"strong"}]},{"text":": https://biomejs.dev","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ruff documentation","type":"text","marks":[{"type":"strong"}]},{"text":": https://docs.astral.sh/ruff","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"rustfmt documentation","type":"text","marks":[{"type":"strong"}]},{"text":": https://rust-lang.github.io/rustfmt","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}}]},"metadata":{"args":"[--check-only] [--fix] [--formatter \u003cbiome|prettier|ruff|rustfmt>]","date":"2026-06-05","name":"configure-formatting","author":"@skillopedia","source":{"stars":35,"repo_name":"claude-plugins","origin_url":"https://github.com/laurigates/claude-plugins/blob/HEAD/configure-plugin/skills/configure-formatting/SKILL.md","repo_owner":"laurigates","body_sha256":"af1d935d021da97fddb0da0eb4386f6d3a3709f6cf6c05913e59be715f8579f4","cluster_key":"5e17f4d5daae87288a147f224add8b0aea062089b10994cfb435b1a07082f9f8","clean_bundle":{"format":"clean-skill-bundle-v1","source":"laurigates/claude-plugins/configure-plugin/skills/configure-formatting/SKILL.md","attachments":[{"id":"3639ee8f-92fc-56ce-8cbc-7e114132af54","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/3639ee8f-92fc-56ce-8cbc-7e114132af54/attachment.md","path":"REFERENCE.md","size":6234,"sha256":"c5965a0e6851bd52e3e964c031c5049d8f3f42a8f9b6a6fdd35b5c0b93ed8d1c","contentType":"text/markdown; charset=utf-8"}],"bundle_sha256":"aa832f3dde8795d509b54ac7a6c16429ed934907b6595607b1195e34ddd11f1b","attachment_count":1,"text_attachments":1,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":0,"excluded_attachments":[]},"cluster_size":1,"skill_md_path":"configure-plugin/skills/configure-formatting/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"software-engineering","category_label":"Engineering"},"exact_dupes_collapsed_into_this":0},"created":"2025-12-16T00:00:00.000Z","version":"v1","category":"software-engineering","modified":"2026-04-19T00:00:00.000Z","reviewed":"2025-12-16T00:00:00.000Z","import_tag":"clean-skills-v1","description":"Code formatters: Biome, Prettier, Ruff, rustfmt. Use when setting up formatting, migrating Prettier to Biome, or wiring CI format checks.","allowed-tools":"Glob, Grep, Read, Write, Edit, Bash, AskUserQuestion, TodoWrite, WebSearch, WebFetch","argument-hint":"[--check-only] [--fix] [--formatter \u003cbiome|prettier|ruff|rustfmt>]"}},"renderedAt":1782980874960}

/configure:formatting Check and configure code formatting tools against modern best practices. When to Use This Skill | Use this skill when... | Use another approach when... | |------------------------|------------------------------| | Setting up Biome, Prettier, Ruff format, or rustfmt for a project | Running an existing formatter ( , ) | | Migrating from Prettier to Biome or Black to Ruff | Fixing individual formatting issues in specific files | | Auditing formatter configuration for completeness and best practices | Configuring linting rules ( instead) | | Adding format-on-save and CI form…