Evaluate code quality, skill effectiveness, and implementation correctness against defined criteria with scoring and improvement suggestions
Install
npx skillscat add darellchua2/civiltekk-skills/eval-harness-skill Install via the SkillsCat registry.
What I do
Structured evaluation framework: define measurable criteria → run checks → score 0-10 per criterion → report pass/fail vs thresholds → suggest improvements for failures. Unlike verification-loop-skill (gate execution), this skill owns scoring rubrics and thresholds.
Trigger phrases: "evaluate this code", "run eval", "score this implementation", "quality check", "benchmark against criteria".
Default Criteria (0-10 each, thresholds customizable per run)
| Criterion | Threshold | Key questions |
|---|---|---|
| Correctness | 7 | Does it do what it should? Edge cases? Error paths? |
| Code Quality | 7 | Conventions, readability, abstractions without over-engineering |
| Test Coverage | 7 | Tests present? Edge cases covered? Maintainable? |
| Performance | 6 | Efficient algorithms, no wasted computation, caching where applicable |
| Security | 7 | Input validation, no injection, proper authn/authz |
Score ranges: 9-10 excellent · 7-8 good · 5-6 adequate · 3-4 below standard · 1-2 poor · 0 failed. Overall = sum + percentage; verdict from thresholds.
Scope Variants
Single file · module/directory · skill output (skill:<name>) · PR diff (pr:<num>) · acceptance criteria (issue:<num>).
Workflow
- Define criteria for the target (use defaults, add domain-specific ones). Criteria must be measurable ("functions under 20 lines", not "clean code") and consistent across comparable runs.
- Execute: static analysis (lint, types, complexity) → pattern/anti-pattern checks → test run + coverage → score each criterion → gap analysis.
- Report: per-criterion table (score / threshold / status) + overall + per-failure findings with concrete fix suggestions (priority, effort, expected impact).
- Gate semantics: evaluations can gate PRs — a failed critical criterion blocks merge. Judge trends across runs, not absolute scores; note exceptions when a criterion doesn't apply.
Criteria starters: code quality — naming per language convention, function ≤20 lines, cyclomatic <10, no silent catches, DRY. Skill effectiveness — task completion, output production-readiness, consistency, graceful failure, integration. Acceptance criteria — each criterion checked with evidence, no partial completions, no regressions.
Integration
verification-loop-skill— canonical gate contract; eval supplies scoring rubrics, not gate executioncontinuous-learning-skill— learn which patterns score wellciviltekk-context-optimization-skill— compact preserves eval resultslinting-workflow-skill/code-smells-skill/solid-principles-skill— signals feeding the quality criterion
References
verification-loop-skill— gates and verification during implementationcontinuous-learning-skill— learning from evaluation resultsciviltekk-context-optimization-skill— preserving eval context
Iteration Protocol (opt-in)
DO NOT execute any of the following unless AUTORESEARCH_PROTOCOL=1 is set in your environment. When unset, this skill behaves exactly as documented in all sections above; the Iteration Protocol block is descriptive only.
When AUTORESEARCH_PROTOCOL=1:
- Gate check: confirm env var is set; if unset, follow default behavior above.
- Auto-detection: if this skill is invoked on a task that looks iterative (multiple cycles expected), prompt ONCE per session: "This looks iterative. Enable autoresearch protocol? (y/n)". On "y", continue; on "n", default behavior. Cache the answer for the session.
- 5-stage loop: cycle Understand → Hypothesize → Experiment → Evaluate → Log & Iterate. See
autoresearch-core-skill/SKILL.md. - Evaluator contract: emit
{"pass":bool,"score":N}JSON from a mechanical evaluator. Pass determines keep/revert; score logged toeval-harness-results.tsv. Seeautoresearch-core-skill/references/evaluator-contract.md. - Stuck detection: 3 consecutive non-improving iterations → strategy pivot; 5 consecutive → paradigm shift. See
autoresearch-core-skill/references/stuck-detection.md. - Audit trail: append every iteration to
eval-harness-results.tsv(8-column: iteration, commit, metric, delta, status, description, timestamp, evaluator_output). Seeautoresearch-core-skill/references/audit-trail.md. - Crash recovery: syntax errors → fix immediately (don't count); runtime → max 3 fix attempts then skip; timeout → revert + log; OOM → smaller variant. See
autoresearch-core-skill/references/crash-recovery.md. - Git-as-memory: commit before each verify; auto-revert (
git reset --hard HEAD~1) onpass:false. - Iteration safety: bounded-by-default (
Iterations: 25); safety blocks.env,node_modules/,rm -rf,git push --force. Seeautoresearch-core-skill/references/iteration-safety.md.
Skill-specific override
TSV audit trail. Append every eval run to eval-harness-results.tsv. Overnight persistence via autoresearch-core-skill/scripts/autoresearch-loop.sh (detects available CLI tool). Score is the eval metric; pass = meets target threshold.
Max iterations
- Default: 25 iterations
- Hard cap: 100 (explicit
Iterations: unlimitedoverrides)
Removal note (2026-09-19, #409 trim per LEARNINGS #383 recipe): dropped the worked criteria/report markdown examples, the evaluation-templates section (compressed to criteria starters), the Example Usage section, and Best Practices prose (compressed into the workflow). Kept verbatim: frontmatter, criteria/threshold/score tables, workflow contract, Iteration Protocol section.