eval-audit
Command**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translateโฆ
**๐ 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-code
**๐ 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.
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translateโฆ
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translateโฆ
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translateโฆ
- **Recommended model: Claude Opus 4.6** (`claude-opus-4-6`). Directed improvement requires understanding complex rubric feedbackโฆ
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translateโฆ
**Locale**: All templates in this spec are written in English. Detect the user's language from the session and translateโฆ
Implement tasks incrementally โ build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.