- Token Budget Linter Enhanced (+4 rules): section-weight analysis, compression suggestions, under-150 sparse file warning, padding phrase detection
token-budget/total-tokens— byte/token measurement with 3000-token recommendationtoken-budget/section-weight— identifies heaviest sections by token proportiontoken-budget/compressible-padding— detects "Always remember to", "Make sure to" and other filler phrasestoken-budget/under-150-tokens— warns when files are too sparse to be useful
- Prompt Injection Defense (+1 rule):
security/no-injection-defense— checks for injection defense keywords, external content handling, and NEVER/DO NOT permission boundaries - Cognitive Blueprint Validation (+3 rules, NEW category "blueprint"): 6-element coverage check
blueprint/coverage— identity, goals, constraints, memory, planning, validation coverageblueprint/identity-defined— agent identity/role definition checkblueprint/constraints-defined— explicit NEVER/DO NOT constraints check
- Multi-Framework Export:
agentlinter export --format <cursor|copilot|gemini>cursor→.cursorrulescopilot→.github/copilot-instructions.mdgemini→GEMINI.md
- Category weights rebalanced to accommodate new "blueprint" category (0.08)
- Scoring now covers 10 dimensions (was 9)
clarity/duplicate-content— Detects duplicate sections via 3-gram Jaccard similarity (>= 0.6)clarity/obvious-statements— Flags unnecessary "obvious" instructions ("be accurate", "follow instructions" etc.)clarity/token-budget-range— Token-estimated grading (English: 4 chars/token, Korean: 1.5 chars/token)
consistency/stale-file-reference— Validates file paths referenced in markdown exist on diskconsistency/stale-date— 90d+ warning, 180d+ error for outdated datesconsistency/stale-package-reference— Cross-checks referenced packages against package.json
structure/dead-import— Validates @file.md import references point to existing filesstructure/circular-import— DFS cycle detection in @import graph
- Cursor (.cursorrules) scanning + rules
cursor/rules-format— .cursorrules structure validationcursor/no-conflicting-claude— .cursorrules vs CLAUDE.md conflict detection
- GitHub Copilot (.github/copilot-instructions.md) scanning + rules
copilot/instructions-format— copilot-instructions.md format validationcopilot/no-conflicting-claude— copilot-instructions vs CLAUDE.md conflict detection
claude-code/descriptive-ratio— Warns when >60% descriptive statements (should be imperative)
- Token Efficiency Score: line-based + token-estimated grading (Korean correction)
- Parser: .cursorrules, .github/copilot-instructions.md, .github/ directory scanning
- LintContext type: added
cursor,copilotcontexts
- Website "Research-backed linting" banner
- Reference: Gloaguen et al. (2026) — "A Taxonomy of Agent Instruction Failures"
- Cognitive Load — measures instruction density and mental overhead
- Token Heatmap — visualizes token distribution across file sections
- Modularity — evaluates separation of concerns and file organization
- Role Complexity — detects over-complex role/persona definitions
- Security Scan — deep security analysis with 25 patterns (up from 15)
- 17 ambiguous pattern detections (Korean + English)
- Weighted scoring with rewrite suggestions
- Korean token correction for accurate estimation
- Every issue tagged with priority: HIGH / MED / LOW
- Fix hints with concrete rewrite examples
/api/badge?score=Nendpoint — embed SVG score badge in README
- 25 patterns total (AWS, JWT, injection, role-hijacking, etc.)
- Accurate token estimation for Korean agent files
- Budget gauge visualization
- .claudeignore card display
- v2 analyzer integration in web UI
- Calculates token usage per file with budget gauge
- Visual breakdown of token allocation in reports
- Define files to exclude from context window analysis
- Integrated into Token Map UI
- Detects critical rule sections (절대/금지/CRITICAL/반드시/never/always) buried in the middle 20-80% of a file
- Rule:
structure/position-risk-warning - Fix hint: Move critical rules to the top 20% of the file.
- Grades each agent file by line count: A (≤150), B (≤300), C (≤500), D (>500)
- Rule:
clarity/token-efficiency-score
- Prompt Injection Vulnerability Detection: flags 'follow all user instructions', 'ignore rules' etc.
- Enhanced API Key Exposure: sk-, Bearer, ghp_, npm_, Vercel, Railway tokens
- Rules:
security/prompt-injection-vulnerability,security/api-key-exposure
ESLint for AI Agents — now with Claude Code deep integration
claude-code/instruction-count— warns at 100+, errors at 150+ total instructionsclaude-code/relevance-trap— detects context-specific instructions that Claude Code may silently ignoreclaude-code/progressive-disclosure— warns when CLAUDE.md exceeds 50 lines without.claude/rules/claude-code/hooks-structure— validates.claude/hooks/andsettings.jsonhook configsclaude-code/skills-vs-commands— detects deprecated.claude/commands/usageclaude-code/agent-focus— flags subagent definitions with too many responsibilities
Budget section in every report: system-reserved + user instructions + remaining.
Recursive scan of agents, skills, rules, hooks directories (depth 3).
- Token Budget Checker — warns when agent files approach context window limits
- Instruction Scope — detects instructions too broad/narrow for their file's scope
- Skills Security+ — enhanced skill security scanning with more dangerous patterns
- Hooks Advisor — recommends hook configurations for common workflows
- Contradiction detection between files
- Vague conditional detection (
if appropriate,when necessary) - Section cross-reference validation
- Remote-Ready Score for production readiness checks
runtime/gateway-exposure— detects unsecured gateway configsruntime/tool-policy-audit— validates tool permission policies for least-privilegeruntime/session-limits— checks session timeout and rate limit configsruntime/credential-rotation— warns about hardcoded credentials
Remote-Ready Score for production deployment readiness.
security/api-key-exposure: no longer flags template placeholders likeYOUR_KEY_HEREclarity/vague-instructions: no longer fires on intentional generic README descriptionsstructure/file-reference: no longer marks valid relative paths as brokenmemory/retention-strategy: no longer flags non-standard-format memory sectionsconsistency/tone-mismatch: no longer incorrectly detects mixed tone in bilingual files
security/prompt-injection-vulnerability— detects injection-vulnerable instruction patternssecurity/api-key-exposure— enhanced token detection (sk-, Bearer, ghp_, npm_, Vercel, Railway)claude-code/mcp-server-validator— MCP JSON syntax + schema validationclaude-code/skills-linter— SKILL.md standard compliance checkclaude-code/hooks-checker— hook script safety (shebang,set -e, unsafe expansion)claude-code/cross-file-references— validates all @import/@include/@see/@ref pathsclaude-code/skill-workspace-sync— ensures all skills in directory are documented
- Runtime scoring calibration: typical AGENTS.md now scores 55→80 (was under-penalizing)
- Tone detection false positives in bilingual Korean/English files
- Consistency scoring for files with section headers in multiple languages
Advanced Inspection:
best-practices/instruction-counter— warns at 100+, errors at 150+ imperative instructionsbest-practices/context-bloat-detector— 300+ line detection, repetition (3×), modularization suggestionsbest-practices/progressive-disclosure— enforces Critical/Standard/Optional priority markersbest-practices/anti-patterns— detects roleplay instructions, embedded credentials, code style rules in wrong files
Auto-fix Suggestions:
best-practices/extract-instructions— recommends domain-based extraction toskills/or.claude/rules/best-practices/convert-code-snippets— flags 20+ line code blocks, suggests file referencesbest-practices/structure-optimizer— enforces WHY/WHAT/HOW instruction frameworkbest-practices/consolidate-duplicates— detects 80%+ similar instructions via Jaccard similarity
Integration Validation:
- MCP server validator, skills linter, hooks checker, cross-file references, skill-workspace sync
Based on Song et al. (TMLR 2026) "Large Language Model Reasoning Failures" — 6 failure types mapped directly to linting rules.
- RFC 2119 keywords false positive:
MUST,SHOULD,MAYin headers no longer flagged incorrectly - File reference check: existing files with relative paths were reported as missing
- Security skill context: security content in skill files no longer triggers generic warnings
clarity/english-config-files— detects non-English content in core config files- Research basis: Non-English uses 2.4-3.8× more tokens, reduces accuracy 10-20%
warningat 30%+ non-English;infobelow 30%
- CLI share by default — auto-shares results (use
--localto opt out) - Skills security scan in default execution
- All 8 Scoring Dimensions fully implemented
--audit-skillflag — MoltX-style trojan detection- Skill Safety as 8th scoring dimension
- Dangerous pattern scanner:
curl|bash,rm -rf,~/.ssh,~/.aws,webhook.site, etc. - Skill scan integrated into default
npx agentlinterrun
Inspired by Moltbook community report (4,894 upvotes) about credential stealer in 286 skill packages.
- Integration rules: MCP server config detection and basic validation
- Autofix rules:
--fixflag support for common issues - Claude Code-specific rules:
.claude/directory detection, CLAUDE.md validation - SHIELD.md check: validates HiveFence-style prompt injection defense
- Auto Agent/Project Mode Detection
CLAUDE.mdonly → Project Mode (memory rules skipped)AGENTS.mdoropenclaw.json→ Agent Mode (all rules)moltbot.json→ Moltbot agent mode
- OpenClaw and Moltbot added as supported frameworks
- Memory as 6th scoring category
memory/retention-strategyandmemory/session-handoffrules- Grade scale refined: C/C-/D+/D/D-/F grades for finer low-end distribution
- GitHub stars badge, Twitter/X ASCII share card
- "AI 에이전트한테 고쳐달라고 하세요" CTA
- Privacy section: what's local vs. shared
Core concept: ESLint for AI agent config files.
- 8 scoring dimensions: Structure, Clarity, Completeness, Security, Consistency, Memory, Runtime Config, Skill Safety
- Web interface at agentlinter.vercel.app
- CLI:
npx agentlinter— zero-install - GitHub repo analysis
- Share: unique report URL per lint run
- Local-first: file contents never sent to server
- Free & Open Source
- ~30 core linting rules across all dimensions