code-formatter

nikhillinit's avatarfrom nikhillinit

Multi-language code formatting and style enforcement with automatic linting fixes

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 4, 2026

When & Why to Use This Skill

The Code Formatter skill is a powerful developer utility designed for multi-language code formatting and automated linting. It streamlines the development workflow by enforcing consistent style guides and fixing common syntax issues across JavaScript, Python, Go, Rust, and more. By executing formatting locally, it significantly enhances AI efficiency, reducing token consumption by over 95% while ensuring code remains clean, readable, and production-ready.

Use Cases

  • Pre-commit Optimization: Automatically format source code and resolve linting errors before committing to a repository to maintain high code quality.
  • Pull Request Standardization: Use the skill during PR preparation to ensure all contributions adhere to team-specific style guides like Airbnb, Google, or StandardJS.
  • Legacy Codebase Modernization: Perform batch formatting on large, older projects to unify coding styles and fix accumulated linting debt without manual intervention.
  • AI-Generated Code Refinement: Instantly clean and standardize code snippets produced by LLMs to match the specific configuration and indentation of an existing project.
namecode-formatter
descriptionMulti-language code formatting and style enforcement with automatic linting fixes
version1.0.0
authorClaude Memory System
tags[formatting, linting, code-quality, style, automation]

Code Formatter Skill

Purpose

Automatically format and lint code across multiple languages, enforcing consistent style and fixing common issues without manual intervention.

When to Use

  • Before committing code
  • During PR preparation
  • After code generation
  • When enforcing team standards
  • Batch formatting of legacy code

Supported Languages

JavaScript/TypeScript

  • Formatter: Prettier
  • Linter: ESLint
  • Auto-fix: Import sorting, semicolons, quotes

Python

  • Formatter: Black
  • Linter: isort, autopep8
  • Auto-fix: Import sorting, line length, indentation

Go

  • Formatter: gofmt, goimports
  • Auto-fix: Import organization, formatting

Rust

  • Formatter: rustfmt
  • Auto-fix: Clippy suggestions

Other Languages

  • JSON: Prettier
  • YAML: Prettier
  • Markdown: Prettier
  • CSS/SCSS: Prettier
  • HTML: Prettier

Operations

1. Detect Language and Style

  • Auto-detect language from file extension
  • Load project-specific configuration
  • Identify style guide (Standard, Airbnb, Google, etc.)

2. Format Code

  • Apply formatter rules
  • Preserve semantics (no behavior changes)
  • Handle edge cases (strings, comments, etc.)

3. Fix Linting Issues

  • Run linter with auto-fix enabled
  • Apply safe automated fixes
  • Report remaining manual fixes needed

4. Generate Report

  • List files modified
  • Show statistics (lines changed, issues fixed)
  • Output diff for review

Scripts

main.py

# Execute formatting
python scripts/main.py format <file_or_dir> [--language=auto] [--check-only]

# Check formatting without modifying
python scripts/main.py check <file_or_dir>

# Show supported languages
python scripts/main.py languages

# Generate configuration
python scripts/main.py init --language=javascript

Language-Specific Formatters

  • format_javascript.js - ESLint + Prettier
  • format_python.py - Black + isort
  • format_go.sh - gofmt + goimports
  • format_rust.sh - rustfmt + clippy

Configuration

Project-Specific Settings

The Skill checks for configuration in this order:

  1. .prettierrc, .eslintrc (JavaScript)
  2. pyproject.toml, setup.cfg (Python)
  3. .rustfmt.toml (Rust)
  4. Memory-stored preferences
  5. Sensible defaults

Memory Integration

Stores formatting preferences:

{
  "topic": "code-formatter-preferences",
  "scope": "repository",
  "value": {
    "javascript": {
      "formatter": "prettier",
      "semi": false,
      "singleQuote": true,
      "tabWidth": 2
    },
    "python": {
      "formatter": "black",
      "lineLength": 88,
      "importSorter": "isort"
    }
  }
}

Integration Points

With PR Author/Reviewer Skill

  • Auto-format before creating PR
  • Include formatting changes in PR description
  • Validate formatting in PR checks

With Memory Hygiene Skill

  • Track formatting statistics
  • Record team preferences
  • Monitor adoption rates

With Test-First Change Skill

  • Format test files
  • Maintain consistent test style
  • Preserve test semantics

Examples

Format Single File

# Auto-detect language and format
python scripts/main.py format src/index.js

# Output:
# ✅ Formatted src/index.js (JavaScript)
# - Fixed 3 ESLint issues
# - Reformatted 127 lines

Format Directory

# Format all files in directory
python scripts/main.py format src/ --language=auto

# Output:
# ✅ Formatted 47 files
# - JavaScript: 23 files
# - TypeScript: 18 files
# - JSON: 6 files

Check Only Mode

# Check without modifying (CI/CD)
python scripts/main.py check src/

# Output:
# ❌ 3 files need formatting:
# - src/app.js
# - src/utils.js
# - src/config.json

Initialize Configuration

# Create project configuration
python scripts/main.py init --language=javascript

# Output:
# ✅ Created .prettierrc
# ✅ Created .eslintrc.json
# Configuration stored in memory

Token Economics

Without Skill (Agent formatting):

  • Parse file: 2,000 tokens
  • Analyze style: 3,000 tokens
  • Generate formatted code: 5,000 tokens
  • Explain changes: 2,000 tokens
  • Total: 12,000 tokens

With Skill (Code execution):

  • Metadata: 50 tokens
  • SKILL.md: 350 tokens
  • Script execution: 0 tokens (returns result)
  • Result parsing: 100 tokens
  • Total: 500 tokens

Savings: 95.8% (11,500 tokens saved per operation)

Success Metrics

Performance

  • Formatting time: <1 second per file
  • Batch processing: >100 files/minute
  • Memory usage: <100MB

Quality

  • Code consistency: 100%
  • Semantic preservation: 100%
  • False positives: <1%

Adoption

  • Developer usage: >90%
  • CI/CD integration: 100% of projects
  • Satisfaction rating: >4.5/5

Safety Checks

Before formatting:

  1. ✅ Backup original file (in-memory)
  2. ✅ Validate syntax (no broken code)
  3. ✅ Preserve file permissions
  4. ✅ Maintain git history

After formatting:

  1. ✅ Verify file integrity
  2. ✅ Check for unintended changes
  3. ✅ Run syntax validation
  4. ✅ Generate diff for review

Error Handling

Syntax Errors

❌ Cannot format src/broken.js: Syntax error at line 42
Recommendation: Fix syntax errors before formatting

Missing Dependencies

⚠️  Prettier not found. Install with: npm install -g prettier
Falling back to basic formatting

Configuration Conflicts

⚠️  Multiple configurations found (.prettierrc and package.json)
Using .prettierrc (higher priority)

Limitations

  • Does not fix logic errors
  • Cannot resolve complex linting issues requiring human judgment
  • May conflict with custom editor settings
  • Large files (>10,000 lines) may be slow

References

See references/ for:

  • style-guides.md - Popular style guides by language
  • configuration-examples/ - Sample configs for common setups
  • troubleshooting.md - Common issues and solutions

Code Formatter Skill v1.0.0 - Write code once, format it everywhere