
command-verify
by d-oit
๐ Intelligent command verification system for documentation with git diff-based cache invalidation. Zero-token operation, cross-platform CLI tool that discovers and validates commands in markdown files with 90%+ cache hit rates. Built for modern JavaScript/Node.js projects with comprehensive testing and self-learning capabilities.
SKILL.md
name: command-verify version: "0.2.0" description: Intelligent command verification for documentation. Discovers all commands in markdown files, validates them using git diff-based cache invalidation, and ensures documentation accuracy with zero token cost after initial setup. Use when asked to verify commands, check documentation, or validate command references. author: "Claude Code" categories: ["documentation", "validation", "automation", "git"] keywords: ["command", "verification", "documentation", "cache", "git-diff", "validation", "automation"] allowed-tools: Read,Glob,Grep,Bash
Command Verify
Overview
This skill provides intelligent command verification for documentation with git-aware caching. It discovers commands in markdown files, validates them, and uses git diff to only revalidate affected commands.
When to Use
Invoke this skill when the user asks to:
- "Verify all commands" or "verify commands"
- "Check documentation commands" or "validate docs"
- "Find all commands in markdown/docs"
- "What commands were affected by recent changes?"
How It Works
1. Command Discovery
Discovers ALL commands across ALL markdown files in the codebase.
Supported formats:
- Code blocks:
bash,shell,console,sh - Inline code:
npm run build - Multiple command types: npm, python, cargo, docker, git, etc.
Tracks:
- Exact command text
- All file locations where command appears
- Line numbers for precise error reporting
- Command type (code-block vs inline)
File patterns:
- Include:
**/*.md - Exclude:
node_modules/**,.git/**,dist/**,build/**
2. Cache Strategy
Git diff-based intelligent cache invalidation. Zero LLM tokens after initial run.
Core principle: Only revalidate commands when relevant files change.
Process:
- On first run: Validate all commands, save current git commit
- On subsequent runs:
- Get git diff since last validation
- Analyze which commands are affected
- Revalidate only affected commands
- Keep cached results for unchanged commands
Invalidation rules:
*.mdchanged โ Revalidate commands in that filepackage.jsonchanged โ Revalidate ALL npm commandstsconfig.jsonchanged โ Revalidate build/typecheck commandssrc/**changed โ Revalidate test commandsCargo.tomlchanged โ Revalidate cargo commandsrequirements.txtchanged โ Revalidate pip commands
Expected cache hit rate: 90%+ after first run
3. Command Validation
Smart command categorization and validation:
Categories:
-
SAFE - Auto-validate, no risk
npm run build,test,lint,typecheckgit status,git log- Read-only operations (
ls,cat,find)
-
CONDITIONAL - Ask before running
npm install(modifies node_modules)npm run format(modifies source)- Commands with side effects
-
DANGEROUS - Never auto-run
rm -rfgit push --forcenpm run clean/clear- Database drops
- Any
--forceor--deleteflags
For each command, track:
- Validation status (success/fail/skipped)
- Execution time
- Error messages
- All locations in documentation
4. Cache Structure
Location: .cache/command-validations
Files:
last-validation-commit.txt- Git commit hash of last validationcommands/*.json- One file per unique command (hashed filename)
Cache entry format:
{
"command": "npm run build",
"locations": [
{"file": "README.md", "line": 45, "type": "code-block"},
{"file": "docs/guide.md", "line": 23, "type": "inline"}
],
"validation": {
"validated": true,
"category": "safe",
"success": true,
"duration": 2341,
"message": "Build completed successfully"
},
"cachedAt": "2025-10-29T10:00:00Z",
"commit": "a1b2c3d4e5f6"
}
Self-Learning Memory System
This skill uses an auto-updating knowledge base at .claude/knowledge.json that learns from corrections and user feedback.
When to Update Knowledge Base
Implicit memory requests - Auto-detect when user is correcting or teaching:
- "X is wrong, it should be Y"
- "The CLI is called X not Y"
- "That command doesn't exist, use Z instead"
- "Always check X before running Y"
Update triggers:
- User provides a correction about command names
- Validation discovers a new command pattern
- User teaches a project-specific rule
- Repeated validation errors suggest a pattern
How to Update
When user provides a correction:
- Read
.claude/knowledge.json - Update the relevant section:
corrections.cliNames- For CLI name fixespatterns.commandPrefixes- For new command typesvalidationRules- For safety categorizationfilePatterns.rules- For invalidation rules
- Append to
learningLog.entrieswith timestamp and context - Write updated knowledge back to file
- Apply the correction to affected files (README, docs, etc.)
Knowledge Base Structure
{
"corrections": {
"cliNames": {"wrong-name": {"correct": "right-name", "reason": "..."}}
},
"patterns": {
"commandPrefixes": ["npm", "git", "claude"]
},
"validationRules": {
"safe": [...], "conditional": [...], "dangerous": [...]
},
"learningLog": {
"entries": [{"date": "...", "type": "correction", "from": "...", "to": "..."}]
}
}
Instructions for Claude
When this skill is invoked:
-
Memory Check Phase (ALWAYS RUN FIRST)
- Read
.claude/knowledge.jsonto load learned corrections - Apply any CLI name corrections from
corrections.cliNames - Use custom patterns from
patterns.commandPrefixes - If user provides correction (e.g., "X is wrong, use Y"):
- Update knowledge.json immediately
- Apply correction to all affected files
- Log the learning in learningLog
- Read
-
Discovery Phase
- Use the Glob tool to find all
**/*.mdfiles (excluding node_modules, .git, dist, build) - Use the Read tool to read each markdown file
- Extract all commands from code blocks and inline code
- Track command text, file locations, and line numbers
- Check commands against learned corrections in knowledge.json
- Use the Glob tool to find all
-
Cache Analysis Phase
- Check if
.cache/command-validations/last-validation-commit.txtexists - If it exists:
- Read the cached commit hash
- Run
git diff <cached-commit>..HEAD --name-onlyto get changed files - Apply invalidation rules to determine which commands need revalidation
- If it doesn't exist: treat as first run (validate all)
- Check if
-
Validation Phase
- For each command not in cache or invalidated:
- Categorize as SAFE, CONDITIONAL, or DANGEROUS
- If SAFE: Execute and capture result
- If CONDITIONAL: Ask user for permission, then execute
- If DANGEROUS: Skip execution, mark as skipped
- For cached commands: Use cached results
- For each command not in cache or invalidated:
-
Reporting Phase
- Show summary:
- Total commands discovered
- Cache hit rate (% reused from cache)
- Commands validated this run
- Commands skipped (dangerous)
- Commands failed (need fixing)
- Token usage (always 0)
- Time saved vs full validation
- Provide detailed breakdown if any commands failed
- Show summary:
-
Cache Update Phase
- Save current git commit hash to
last-validation-commit.txt - Save each command's validation result to
commands/<hash>.json
- Save current git commit hash to
Performance Expectations
First run:
- Discovery: ~100ms for 10 .md files
- Validation: ~5-10s for 20 commands
- Total: ~10-15 seconds
- Tokens: 0 (deterministic)
Subsequent runs (no changes):
- Discovery: ~100ms
- Cache check: ~50ms (git diff)
- Validation: 0ms (all cached)
- Total: ~150ms
- Tokens: 0
- Cache hit rate: 100%
Subsequent runs (with changes):
- Discovery: ~100ms
- Cache check: ~50ms
- Validation: ~2s for 3 affected commands
- Total: ~2.5 seconds
- Tokens: 0
- Cache hit rate: 85%
Error Handling
- Not a git repo: Warn and treat as first run (validate all)
- Command execution fails: Log failure, continue with other commands
- Malformed cache: Ignore corrupted entry, revalidate
- Missing dependencies: Provide clear error with installation instructions
Safety First
- NEVER execute dangerous commands automatically
- ALWAYS ask before executing conditional commands
- ALWAYS provide clear feedback about what will be executed
- Use the AskUserQuestion tool when permission is needed
Example Usage
User: "Verify all commands in the documentation"
Claude's actions:
- Discover all markdown files using Glob
- Extract commands from each file using Read
- Check cache using Bash (git diff)
- Validate affected commands using Bash
- Report results to user
Output format:
Command Verification Report
===========================
โ Total commands discovered: 25
โ Commands from cache: 22 (88%)
โ Commands validated: 3
โ Commands skipped (dangerous): 2
โ Commands failed: 1
Failed commands:
- `npm run nonexistent` in README.md:45
Error: Script "nonexistent" not found in package.json
Cache hit rate: 88%
Token usage: 0
Time: 2.3 seconds (saved ~8s vs full validation)
Score
Total Score
Based on repository quality metrics
SKILL.mdใใกใคใซใๅซใพใใฆใใ
ใฉใคใปใณในใ่จญๅฎใใใฆใใ
100ๆๅญไปฅไธใฎ่ชฌๆใใใ
GitHub Stars 100ไปฅไธ
3ใถๆไปฅๅ ใซๆดๆฐ
10ๅไปฅไธใใฉใผใฏใใใฆใใ
ใชใผใใณIssueใ50ๆชๆบ
ใใญใฐใฉใใณใฐ่จ่ชใ่จญๅฎใใใฆใใ
1ใคไปฅไธใฎใฟใฐใ่จญๅฎใใใฆใใ
Reviews
Reviews coming soon


