CtrlK
BlogDocsLog inGet started
Tessl Logo

explain

Parse and interpret Z3 output for human consumption. Handles models, unsat cores, proofs, statistics, and error messages. Translates solver internals into plain-language explanations.

61

Quality

71%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.github/skills/explain/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

67%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, actionable skill body with concrete commands, accurate flag documentation, and a clear detection-then-explain workflow including a fallback loop. Weakest points are the duplicated model/core/statistics descriptions and a documented "proof" output type the script does not actually support.

Suggestions

Remove the duplication between Step 3's Expectation block and the "For models / For unsat cores / For statistics" bullet lists — keep one of the two.

Reconcile the output-type table with the script: either document that proof terms fall back to raw output, or add "proof" support / remove the proof row, since --type only accepts model, core, stats, error, auto.

Make Step 3's validation checkpoint concrete, e.g. "spot-check one variable value against the raw model output before presenting the explanation to the user".

DimensionReasoningScore

Conciseness

The body is mostly efficient (tight tables, direct commands), but the per-type details are duplicated: Step 3's Expectation block already states "Models list each variable with its value and sort. Cores list conflicting assertions. Statistics show time and memory breakdowns" and the "For models / For unsat cores / For statistics" bullet lists then repeat nearly the same information. This matches the anchor for mostly-efficient content that includes unnecessary explanation and could be tightened, rather than the 4 anchor (only minor over-explanation).

3 / 5

Actionability

The guidance is executable and copy-paste ready ("python3 scripts/explain.py --file output.txt", "--stdin < output.txt", "--debug") and the parameter table is specific, and the referenced script exists with exactly these flags. It falls short of 5 because the Step 1 detection table promises a "proof sketch" explanation type while the script's --type choices are only model/core/stats/error/auto — a concrete gap between the documented and actual interface.

4 / 5

Workflow Clarity

The Step 1→2→3 sequence is clear with an explicit error-recovery loop ("If detection fails, re-run with an explicit --type flag" and "If the type is ambiguous, use --type auto"). Not a 5 because Step 3's checkpoint ("Review the structured explanation for accuracy and completeness") is a vague instruction with no concrete validation action or feedback loop.

4 / 5

Progressive Disclosure

Good structure: numbered step headers, a detection table, and a parameter table, with a single real bundle file (scripts/explain.py) referenced correctly and no nested references. It scores 4 rather than 5 because the body is ~79 lines (over the simple-skill threshold) and the per-type output-format bullet lists are detail that could live in a short reference file, a minor organization gap.

4 / 5

Total

15

/

20

Passed

Description

75%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A specific, well-scoped description with concrete enumeration of all handled output types and a distinct Z3 niche. Its main weakness is the complete absence of an explicit "Use when..." trigger clause, which caps completeness, and slightly thin natural-language synonyms for the domain.

Suggestions

Append an explicit trigger clause, e.g. "Use when the user asks to explain, interpret, or make sense of Z3/SMT solver output, models, unsat cores, or statistics."

Add natural synonyms users would say — "SMT", "solver output", "sat/unsat results" — to strengthen trigger term coverage.

Optionally mention the input form (raw solver text/output files) so the description distinguishes explaining output from producing it.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions with comprehensive coverage: "Parse and interpret Z3 output", "Handles models, unsat cores, proofs, statistics, and error messages", and "Translates solver internals into plain-language explanations" — it enumerates every output category the skill addresses. This matches the anchor for multiple specific concrete actions with comprehensive coverage, not the level below (which has minor gaps in coverage).

5 / 5

Completeness

The "what" is clear and comprehensive (parse/interpret/translate Z3 output types), but there is no "Use when..." clause or equivalent trigger guidance — the "when" is entirely absent. Per the judging guidelines, a missing explicit trigger clause caps completeness at 3; it is not a 4 because the "when" is not even weakly implied.

3 / 5

Trigger Term Quality

Good keyword coverage including "Z3 output", "models", "unsat cores", "statistics", "error messages", and "plain-language explanations" — phrases a user asking for solver-output help would plausibly say. It falls short of the 5 anchor because natural synonyms like "SMT", "solver output", "sat/unsat", or ".smt2" are missing.

4 / 5

Distinctiveness Conflict Risk

The description is anchored to a clear niche — Z3 solver output interpretation — with triggers (unsat cores, proofs, solver statistics) that are specific to this domain and unlikely to fire for the sibling solve/prove/optimize/benchmark skills. Minimal conflict risk, matching the top anchor.

5 / 5

Total

17

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
Z3Prover/z3
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.