An AI skill that automatically interprets coding standards, configures static analysis and linting tools, executes lint checks, and assists with code quality improvement. The skill supports both configuration-only workflows (e.g., "generate a linter config for a coding standard") and end-to-end quality enforcement workflows (e.g., "check this code against our coding standard and suggest fixes").
- Automatic Coding Standard Parsing: Converts natural language coding standards into formalized coding rules using a structured grammar.
- Intelligent Linter Configuration: Automatically maps coding rules to appropriate linter rules and generates validated configuration files.
- Multi-Linter Support: Currently supports Checkstyle (Java) with extensible architecture for additional linters.
- Coverage Analysis: Classifies configuration coverage (Exact Match, Over-Approximation, Under-Approximation) to help you understand how well the linter configuration aligns with your coding standards.
- End-to-End Workflow: From coding standard → rules → configuration → linting → violation repair suggestions.
- Rule Knowledge Base: Pre-built index and complete information for Linter Rules.
AI-assisted configuration tools, while powerful, can sometimes misinterpret coding standards and generate incorrect or incomplete configurations.
LintConfig mitigates this by:
- Compiling coding standards into structured, standardized coding rules.
- Checking linter documentation to ensure valid configurations.
Add hooks for claude code. ( Although Skills are designed to auto-activate in Claude Code, but in practice, activation is unreliable without explicit hooks. )
pnpx claude-skills-cli add-hook
Install directly in Claude Code with two commands:
/plugin marketplace add idiomaticrefactoring/LintConfig
/plugin install LintConfig@LintConfig
- Clone or download this repository
- Copy the skill to the appropriate skills directory for your platform:
Example:
# For Claude Code
cp -r LintConfig/skills/LintConfig ~/.claude/skills/
# For Cursor
cp -r LintConfig/skills/LintConfig ~/.cursor/skills/| Platform | Skills Directory | Activation |
|---|---|---|
| Claude Code | ~/.claude/skills/ |
Auto-activate |
| Cursor | ~/.cursor/skills/ |
Auto-activate |
| Windsurf | ~/.windsurf/skills/ |
Auto-activate |
| GitHub Copilot | ~/.copilot/skills/ |
Use /lintconfig command |
| OpenCode | ~/.opencode/skills/ |
Auto-activate |
| Codex | ~/.codex/skills/ |
Use /lintconfig command |
| Gemini | ~/.gemini/skills/ |
Auto-activate |
- Python 3.x (for rule data preparation scripts, if needed)
- Access to one of the supported AI coding assistants
Supported: Claude Code, Cursor, Windsurf, OpenCode, Gemini
The skill activates automatically when you request linter configuration or code quality tasks. Just chat naturally:
Generate Checkstyle configuration for "Package declaration
The package declaration is not line-wrapped. The column limit (Section 4.4, Column limit: 100) does not apply to package declarations."
Configure Checkstyle for Google Java Style Guide
Check this code at LintConfig/code/ArrayCombination.java against our coding standard at LintConfig/test/test_cs/package_declaration.txt and suggest fixes
Supported: GitHub Copilot, Codex
Use the slash command to invoke the skill:
/lintconfig Generate a linter configuration that enforces:
Package declaration
The package declaration is not line-wrapped. The column limit (Section 4.4, Column limit: 100) does not apply to package declarations.
/lintconfig Configure Checkstyle for Google Java Style Guide
Generate linter configuration files without executing lint checks:
Generate a Checkstyle configuration for the following coding standard:
[Your coding standard here]
Full workflow from standard → configuration → linting → repair:
Parse this coding standard, configure Checkstyle, lint my code, and suggest fixes:
[Your coding standard or file path or url]
[Your lintername]
[Your code or file path]
| Platform | Installation | Activation | Status |
|---|---|---|---|
| Claude Code | Marketplace / Manual | Auto-activate | ✅ Supported |
| Cursor | Manual | Auto-activate | ✅ Supported |
| Windsurf | Manual | Auto-activate | ✅ Supported |
| GitHub Copilot | Manual | Slash command /lintconfig |
✅ Supported |
| OpenCode | Manual | Auto-activate | ✅ Supported |
| Codex | Manual | Slash command /lintconfig |
✅ Supported |
| Gemini | Manual | Auto-activate | ✅ Supported |
The skill follows a structured 5-step process:
- Identifies coding standard (from text, file, or URL)
- Determines target linter (Checkstyle, ESLint, Ruff, etc.)
- Extracts programming language and code context
- Prepares linter rule knowledge base if needed
- Parses natural language coding standards into atomic coding rules
- Uses structured grammar to represent rules formally
- Handles edge cases and clarifications as separate rules
- Outputs a complete rule set for configuration mapping
- Maps each coding rule to candidate linter rules
- Retrieves complete rule documentation and options
- Binds option values within valid ranges
- Classifies coverage relationship (Exact Match, Over/Under-Approximation)
- Filters invalid configurations
- Generates validated configuration file
- Runs the generated linter configuration against your code
- Captures and saves linting results
- Reports violations with context
- Analyzes linting violations
- Provides fix suggestions aligned with coding rules
- Helps improve code quality systematically
| Linter | Language | Status | Rules Available |
|---|---|---|---|
| Checkstyle | Java | ✅ Active | 184+ rules |
| ESLint | JavaScript/TypeScript | 🚧 Planned | - |
| Ruff | Python | 🚧 Planned | - |
| Pylint | Python | 🚧 Planned | - |
| RuboCop | Ruby | 🚧 Planned | - |
LintConfig/
├── data/ # Linter rule knowledge base
│ └── Checkstyle/
│ ├── CheckstyleIndex.json # Rule index (184 rules)
│ ├── CheckstyleConfig.xml # Example configuration
│ └── rules/ # Complete rule documentation
│ └── [184 JSON files] # Individual rule details
├── prompt/ # Prompt templates
│ ├── Prompt_Parse_CodingStandard.md
│ ├── Prompt_Configure_Linter.md
│ ├── Prompt_Prepare_LinterRuleIndex.md
│ └── Prompt_Prepare_LinterRuleCompleteInformation.md
├── output/ # Generated configurations
│ ├── CheckstyleConfig.xml
│ ├── CONFIGURATION_SUMMARY.txt
│ └── RULE_MAPPING_TABLE.txt
├── test/ # Test cases
│ ├── test_cs/ # Checkstyle test files
│ └── test_task_prompt/ # Prompt examples
├── SKILL.md # Skill definition
└── README.md # This file
CHECKSTYLE CONFIGURATION SUMMARY
================================================================================
PROJECT: Google Java Style Guide - Checkstyle Configuration
Total Coding Rules Analyzed: 47
Checkstyle Rules Configured: 23
COVERAGE CLASSIFICATION
- Exact Match: 32 rules (68%)
- Over-Approximation: 5 rules (11%)
- Under-Approximation: 3 rules (6%)
- Not Covered: 7 rules (15%)
Rules Successfully Mapped: 40 out of 47 (85%)
The skill generates validated XML/JSON/YAML configuration files ready to use:
<?xml version="1.0" encoding="UTF-8"?>
<module name="Checker">
<module name="LineLength">
<property name="max" value="100"/>
<property name="ignorePattern" value="^(package|import) .*"/>
</module>
<module name="TreeWalker">
<module name="NoLineWrap">
<property name="tokens" value="PACKAGE_DEF"/>
</module>
</module>
</module>The skill classifies how well each linter configuration aligns with your coding rules:
- Exact Match: The linter configuration checks exactly the same violations as the coding rule
- Over-Approximation: The linter flags more issues than the coding rule requires
- Under-Approximation: The linter flags fewer issues than the coding rule requires
- Mismatches: Non-aligned cases (filtered out)
This helps you understand the limitations and make informed decisions about your linting setup.
We welcome contributions! Areas where help is needed:
- Additional Linter Support: Add support for ESLint, Ruff, Pylint, RuboCop, etc.
- Rule Knowledge Base: Expand rule documentation for existing and new linters
- Language Support: Add support for more programming languages
- Testing: Add test cases for various coding standards and edge cases
- Documentation: Improve prompts and examples
- Clone the repository
- Review the existing structure in
data/Checkstyle/as a template - For new linters:
- Create
data/<LinterName>/directory - Generate
<LinterName>Index.jsonwith rule index - Create
rules/directory with each rule complete documentation
- Create
- Test with various coding standards and code samples
- Multi-platform deployment (Claude Code, Cursor, Windsurf, GitHub Copilot, OpenCode, Codex, Gemini)
- Support for 5+ major programming languages
- Support for 3-5 popular linters per language
- Enhanced prompt compatibility testing
- Automated rule knowledge base generation
- Integration with CI/CD pipelines
- CLI installer for easy multi-platform setup
Inspired by the need for automated linting configuration in AI-assisted coding workflows. Built to bridge the gap between natural language coding standards and formal linter configurations.
