/run-iteration-eval
Run the Logic-Lens content-eval pipeline for one iteration and produce a scored summary.json — use to measure a skill change. Wraps scripts/run-content-evals.sh (runner, costs tokens) and scripts/grade-iteration.py (grader, free, re-runnable). ALWAYS sync the plugin cache first.
$ npx -y skills add hyhmrright/logic-lens --skill run-iteration-eval --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/run-iteration-eval
Context preview
The summary Claude sees to decide when to auto-load this skill.
Run the Logic-Lens content-eval pipeline for one iteration and produce a scored summary.json — use to measure a skill change. Wraps scripts/run-content-evals.sh (runner, costs tokens) and scripts/grade-iteration.py (grader, free, re-runnable). ALWAYS sync the plugin cache first.
SKILL.md
run-iteration-eval.SKILL.mdname: run-iteration-eval
description: Run the Logic-Lens content-eval pipeline for one iteration and produce a scored summary.json — use to measure a skill change. Wraps scripts/run-content-evals.sh (runner, costs tokens) and scripts/grade-iteration.py (grader, free, re-runnable). ALWAYS sync the plugin cache first. Use when the user wants to "run the evals", "score this iteration", "measure the skill change", "smoke-test before the full run", or "re-grade existing outputs".
disable-model-invocation: true
run-iteration-eval
Measures a skill change by running the content cases in `evals/content/v2/evals-v2.json` through `claude -p` and grading the outputs. Outputs land in `skills-workspace/iteration-<TAG>/`.
The runner and grader are split on purpose: **running** calls Claude and costs tokens; **grading** is pure regex Python and is free to re-run on outputs that already exist. Never re-run the runner just to re-score — re-grade instead.
Steps
1. **Sync the cache first — non-negotiable.** The runner loads the skill from the plugin cache, not `skills/`. Run the `sync-skill-cache` skill (or its script directly). If you skip this, the eval grades the previously-published skill and the entire run is wasted:
bash .claude/skills/sync-skill-cache/scripts/sync-cache.sh
2. **Pick a scope.** Full runs cost real tokens; scope down while iterating:
SMOKE=1 bash scripts/run-content-evals.sh # one case per mode (~$0.10) — fast sanity
CASES="200 201 202" bash scripts/run-content-evals.sh # only the cases a diagnosis flagged
TAG=myfix bash scripts/run-content-evals.sh # full run, named tag
bash scripts/run-content-evals.sh # full run, tag = git short SHA
The runner is idempotent — a case with an existing `output.md` is skipped. Delete the `eval-<id>/` dir to force a re-run of that case.
3. **Read `summary.json`** in the iteration dir. It carries overall pass rate plus the per-mode and **per-subscore (logic vs format)** breakdown. The `logic` subscore reflects reasoning quality; `format` reflects Output-Skeleton compliance and is the historical bottleneck with high single-run variance. Judge a change on the right subscore — a format wobble is not a reasoning regression.
4. **Re-grade without re-running** (free) after editing the grader or to recompute on existing outputs:
python3 scripts/grade-iteration.py skills-workspace/iteration-<TAG>
5. **Single-iteration grade without the full suite** — when you already have outputs and only want the score table, `grade-iteration.py <iteration-dir>` is the cheapest path (see `scripts/README.md`).
Variance caveat
logic-review single-run scores are variance-dominated (see project memory). One run is a signal, not a verdict — for a decision near the margin, run the affected cases 2–3× or widen the case set before concluding a change helped or hurt. Hand the result to `iteration-guard` for the ship/rollback call rather than eyeballing a single number.
Read more
name: run-iteration-eval description: Run the Logic-Lens content-eval pipeline for one iteration and produce a scored summary.json — use to measure a skill change. Wraps scripts/run-content-evals.sh (runner, costs tokens) and scripts/grade-iteration.py (grader, free, re-runnable). ALWAYS sync the plugin cache first. Use when the user wants to "run the evals", "score this iteration", "measure the skill change", "smoke-test before the full run", or "re-grade existing outputs". disable-model-invocation: true
run-iteration-eval
Measures a skill change by running the content cases in `evals/content/v2/evals-v2.json` through `claude -p` and grading the outputs. Outputs land in `skills-workspace/iteration-<TAG>/`.
The runner and grader are split on purpose: **running** calls Claude and costs tokens; **grading** is pure regex Python and is free to re-run on outputs that already exist. Never re-run the runner just to re-score — re-grade instead.
Steps
1. **Sync the cache first — non-negotiable.** The runner loads the skill from the plugin cache, not `skills/`. Run the `sync-skill-cache` skill (or its script directly). If you skip this, the eval grades the previously-published skill and the entire run is wasted:
bash .claude/skills/sync-skill-cache/scripts/sync-cache.sh
2. **Pick a scope.** Full runs cost real tokens; scope down while iterating:
SMOKE=1 bash scripts/run-content-evals.sh # one case per mode (~$0.10) — fast sanity CASES="200 201 202" bash scripts/run-content-evals.sh # only the cases a diagnosis flagged TAG=myfix bash scripts/run-content-evals.sh # full run, named tag bash scripts/run-content-evals.sh # full run, tag = git short SHA
The runner is idempotent — a case with an existing `output.md` is skipped. Delete the `eval-<id>/` dir to force a re-run of that case.
3. **Read `summary.json`** in the iteration dir. It carries overall pass rate plus the per-mode and **per-subscore (logic vs format)** breakdown. The `logic` subscore reflects reasoning quality; `format` reflects Output-Skeleton compliance and is the historical bottleneck with high single-run variance. Judge a change on the right subscore — a format wobble is not a reasoning regression.
4. **Re-grade without re-running** (free) after editing the grader or to recompute on existing outputs:
python3 scripts/grade-iteration.py skills-workspace/iteration-<TAG>
5. **Single-iteration grade without the full suite** — when you already have outputs and only want the score table, `grade-iteration.py <iteration-dir>` is the cheapest path (see `scripts/README.md`).
Variance caveat
logic-review single-run scores are variance-dominated (see project memory). One run is a signal, not a verdict — for a decision near the margin, run the affected cases 2–3× or widen the case set before concluding a change helped or hurt. Hand the result to `iteration-guard` for the ship/rollback call rather than eyeballing a single number.
Logic-first AI code review via semi-formal execution tracing (Premises → Trace → Divergence → Trigger → Remedy). Catches behavioral bugs, type-contract breaches & async hazards that linters miss. Six skills · Claude Code · Codex CLI · Gemini CLI.
Repo: hyhmrright/logic-lens
Other skills on logic-lens.
- /bump-version
Bump the Logic-Lens version across all six metadata locations at once (package.json, the four plugin manifests, and the README badge), then validate. Use when cutting a release or when `npm run validate` reports a version mismatch.
Open skill - /iterate-skill
Run the Logic-Lens skill-improvement loop end to end — baseline → diagnose failures → edit → sync cache → re-eval → verify net gain → iterate until clean. Use whenever the goal is to RAISE a skill's eval score or fix a failing eval mode: "improve logic-review", "the format
Open skill - /new-skill
Scaffold a new logic-* skill in the Logic-Lens repo and wire it into every place a skill must be registered, so no step is missed. Use when adding a seventh (or later) skill to Logic-Lens.
Open skill - /sync-skill-cache
Sync the Logic-Lens working-copy skills/ into the installed plugin cache so content-evals test the EDITED skill, not the last published one. ALWAYS run this after editing any skills/**/SKILL.md or guide/_shared file and BEFORE running content-evals — otherwise the eval silently
Open skill - /logic-diff
Compare two code versions for semantic equivalence via semi-formal tracing of both versions side-by-side. Trigger when the user shares a refactor, rewrite, migration, or A/B implementation and wants to confirm behavior is unchanged — "did I break anything", "is this equivalent",
Open skill - /logic-explain
Explain what a specific piece of code actually does for a given input by producing a step-by-step execution trace (interprocedural, with name resolution and type transitions). Trigger when the user is confused about behavior or asks why code produces X instead of Y — "walk me
Open skill

