Install
$ agentstack add skill-pdugan20-claudelint-validate-cc-md ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Validate CLAUDE.md Files
Runs claudelint validate-claude-md to validate CLAUDE.md files including:
- File size limits (30KB warning, 50KB error)
- @import directive validation
- Frontmatter validation in .claude/rules/ files
- Section organization
Usage
claudelint validate-claude-md $ARGUMENTS
Options
--path- Validate specific CLAUDE.md file--verbose- Show detailed output--warnings-as-errors- Treat warnings as errors--explain- Show detailed explanations and fix suggestions
Examples
Example 1: Claude says context is too large
User says: "Claude keeps saying my instructions are too long and won't load them" What happens:
- Skill runs
claudelint validate-claude-md - Shows CLAUDE.md is 52KB (exceeds 50KB hard limit)
- Identifies 3 largest sections: API docs (18KB), Git workflow (12KB), Testing guide (8KB)
- Shows how to split: create .claude/rules/api.md and add
@import .claude/rules/api.md
Result: User splits sections, CLAUDE.md now 28KB, Claude loads it successfully
Example 2: Import shows "file not found" in Claude
User says: "I added @import .claude/rules/testing.md but Claude says the file doesn't exist" What happens:
- Skill validates @import path
- Finds file is at
.claude/rules/tests.mdnottesting.md(typo) - Also checks .claude/rules/tests.md exists and has valid frontmatter
- Shows corrected import line
Result: User fixes filename typo, import loads correctly
Example 3: Rules file won't apply to specific paths
User says: "My .claude/rules/backend.md isn't applying when I edit backend files" What happens:
- Skill checks frontmatter in .claude/rules/backend.md
- Finds
paths: "backend/*"(string) should bepaths: ["backend/**/*"](array with glob) - Explains paths field requires array of glob patterns
- Shows corrected frontmatter
Result: Rules now apply to backend directory correctly
Command Examples
Validate all CLAUDE.md files:
claudelint validate-claude-md
Validate specific file:
claudelint validate-claude-md --path /path/to/CLAUDE.md
Verbose output with explanations:
claudelint validate-claude-md --verbose --explain
What Gets Validated
File Size
- Warns if file exceeds 30KB (approaching context limit)
- Errors if file exceeds 50KB (exceeds safe context limit)
- Suggests splitting into .claude/rules/ for large files
Import Validation
- Checks that @import directives point to existing files
- Detects circular import dependencies
- Validates import depth limits
Frontmatter (for .claude/rules/ files)
- Validates YAML frontmatter syntax
- Checks
pathsfield is string or array - Ensures frontmatter is properly closed
Content Organization
- Warns if CLAUDE.md has >20 sections
- Suggests moving content to .claude/rules/ for better organization
Configuration
Rules can be configured in .claudelintrc.json:
{
"rules": {
"claude-md-size": "warn",
"claude-md-import-missing": "error",
"claude-md-import-circular": "error"
}
}
Inline Disable
Disable specific rules inline:
Large file content here...
Or disable for a single line:
@import non-existent-file.md
Exit Codes
0- No errors or warnings1- Warnings found (or warnings treated as errors)2- Errors found
Common Issues
Error: "File exceeds 50KB"
Cause: CLAUDE.md file is too large for Claude's context window Solution: Split content into .claude/rules/ files using @import directives Example: Move testing guidelines to .claude/rules/testing.md and add @import .claude/rules/testing.md to CLAUDE.md
Error: "Import not found: .claude/rules/testing.md"
Cause: @import directive points to a file that doesn't exist Solution: Check the path is correct relative to CLAUDE.md Common mistakes:
- Using
@import ../rules/testing.md(wrong - don't use ..) - Using
@import rules/testing.md(wrong - missing .claude/) - Correct:
@import .claude/rules/testing.md
Error: "Circular import detected"
Cause: File A imports B which imports A (infinite loop) Solution: Reorganize imports to be one-directional Example: CLAUDE.md should import .claude/rules/ files, but those files should not import CLAUDE.md back
Warning: "File exceeds 30KB"
Cause: File is approaching the safe limit for Claude's context Solution: Not urgent, but consider splitting large sections into @imports Why 30KB? Claude can handle up to ~50KB, but staying under 30KB leaves room for growth and keeps context manageable
See Also
- [validate-all](../validate-all/SKILL.md) - Run all validators
- [format-cc](../format-cc/SKILL.md) - Format markdown files with markdownlint/prettier
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: pdugan20
- Source: pdugan20/claudelint
- License: MIT
- Homepage: https://www.claudelint.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.