eval-audit
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time perβ¦
**π Enhanced with Local Validators**: This command now uses local JavaScript validators for D1, D2, and D3 dimensions to significantly reduce token consumption while maintaining evaluation quality. Complex reasoning tasks (D4, D5, D6) continue to use LLM evaluation with local
$ npx -y skills add Evol-ai/SkillCompass --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
/eval-skillContext preview
What this command does when you run it.
**π Enhanced with Local Validators**: This command now uses local JavaScript validators for D1, D2, and D3 dimensions to significantly reduce token consumption while maintaining evaluation quality. Complex reasoning tasks (D4, D5, D6) continue to use LLM evaluation with local
**π Enhanced with Local Validators**: This command now uses local JavaScript validators for D1, D2, and D3 dimensions to significantly reduce token consumption while maintaining evaluation quality. Complex reasoning tasks (D4, D5, D6) continue to use LLM evaluation with local pre-analysis.
Parse arguments. Check current model β if not an Opus-class model, output this warning (translate to the session locale at display time):
β Warning: Current model is {model_name}. For reliable 6D evaluation, Claude Opus 4.6 is recommended. Results may be less consistent with other models.Continue with evaluation regardless.
Use the **Read** tool to load the target SKILL.md file. Parse YAML frontmatter.
**Local Optimization**: Run basic analysis to inform evaluation strategy and reduce token consumption:
1. Execute `node -e "const {BasicValidator} = require('./lib/basic-validator.js'); const basic = new BasicValidator().validateBasics('{skillPath}'); console.log(JSON.stringify(basic, null, 2));"` using the **Bash** tool 2. Extract skill type (`atom`/`composite`/`meta`), trigger type, complexity, and quality indicators 3. Use results to optimize subsequent evaluation steps: simple skills with clear issues can use local validation only
Determine skill type and trigger type from Step 2 pre-processing results or fallback to frontmatter parsing for detection rules.
Use the **Read** tool to load `.skill-compass/config.json` if it exists. Extract `user_locale`. If file doesn't exist, use defaults (`user_locale: null`).
Use the **Read** tool to load `{baseDir}/shared/scoring.md`. This provides dimension names, weights, formula, verdict rules, and security gate.
Based on `--scope`:
*Scope: gate, full, or target when dimension=D1.*
**Enhanced Local Processing**: First run local validation to reduce token consumption:
1. Execute `node -e "const {StructureValidator} = require('./lib/structure-validator.js'); const result = new StructureValidator().validate('{skillPath}'); console.log(JSON.stringify(result, null, 2));"` using the **Bash** tool 2. If local validation finds errors, use those results directly 3. For borderline cases (score 5-7), supplement with LLM evaluation using `{baseDir}/prompts/d1-structure.md` 4. Record combined JSON result with `"tools_used": ["local", "llm"]` or `["local"]`
*Scope: always evaluated (all scopes).*
**Enhanced Local Processing**: Run comprehensive local security validation:
1. Execute `node -e "const {SecurityValidator} = require('./lib/security-validator.js'); const result = new SecurityValidator().validate('{skillPath}'); console.log(JSON.stringify(result, null, 2));"` using the **Bash** tool 2. Run pre-evaluation scan: `node "{baseDir}/hooks/scripts/pre-eval-scan.js" "{skillPath}"` using the **Bash** tool 3. If local validation detects Critical findings, set `gate_failed = true` and use local results 4. For L1/L2 supplementation: use the **Read** tool to load `{baseDir}/shared/tool-instructions.md` and follow detection procedures only if local validation passes 5. Merge findings with `"tools_used": ["local", "pre-eval-scan", ...]` and prioritize Critical findings from any source
**Post-LLM Score Override**: The final D3 score is computed mechanically from the merged findings list, not from the LLM's subjective assessment. After merging all findings (local + LLM):
1. Apply the **D3 Findings-to-Score Mapping** from `shared/scoring.md` β compute score from finding severities 2. If any finding is critical: `score = 0, pass = false` (gate fail) 3. If the mapped score differs from the LLM's score, **override** and log: `"score_llm_raw": {original}, "score_findings_mapped": {mapped}, "score_overridden": true`
This prevents the known failure mode where the LLM sees low-severity findings but assigns a disproportionately low score
Evaluate agent skill quality. Find the weakest link. Fix it. Prove it worked.
Repo: Evol-ai/SkillCompass
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time perβ¦
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time perβ¦
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time perβ¦
- **Recommended model: Claude Opus 4.6** (`claude-opus-4-6`). Directed improvement requires understanding complex rubric feedback and generating precise,β¦
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time perβ¦
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translate user-facing text at display time perβ¦