CtrlK
BlogDocsLog inGet started
Tessl Logo

prove

Prove validity of logical statements by negation and satisfiability checking. If the negation is unsatisfiable, the original statement is valid. Otherwise a counterexample is returned.

59

Quality

68%

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/prove/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

75%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 strong, executable body: every command is copy-paste ready and the parameter table matches the real script, and the workflow has explicit per-outcome handling including a recovery path for unknown/timeout. The main weaknesses are duplicated method/interpretation text across the intro, Step 2, and Step 3, and undocumented references to sibling skills.

Suggestions

Collapse the redundant validity interpretation: state the negation/unsat logic once (Step 3) and cut its repetition from the intro paragraph and Step 2's Result block.

Give the referenced sibling skills (**encode**, **explain**, **simplify**) a one-line purpose or path so navigation to them is unambiguous.

Add explicit recovery guidance for a malformed or ill-sorted negated formula in Step 1 (e.g. re-run encode or check declarations) to close the workflow's one implicit checkpoint.

DimensionReasoningScore

Conciseness

The opening paragraph ('The method is standard: negate the conjecture and check satisfiability. If the negation is unsatisfiable, the original is valid. If satisfiable, the model is a counterexample.') restates the frontmatter description, and Step 3's outcome interpretation duplicates Step 2's Result block, so the body could be noticeably tightened. Not score 2 because there is no padding with concepts Claude already knows and the parameter table earns its place.

3 / 5

Actionability

Fully executable guidance: copy-paste-ready commands ('python3 scripts/prove.py --conjecture "(=> (> x 3) (> x 1))" --vars "x:Int"', plus --file and --debug variants), a complete runnable SMT-LIB2 example, and a parameter table that exactly matches the actual script's argparse interface. The common case (proving an implication) is covered end to end.

5 / 5

Workflow Clarity

A clear 3-step sequence with Action/Expectation/Result blocks and explicit per-outcome handling ('On invalid: report the counterexample directly. On unknown/timeout: try simplify first, or increase the timeout'), which is a real feedback loop. Not 5 because the well-formedness checkpoint in Step 1 is implicit ('If the negation is well-formed, proceed') with no recovery guidance for a malformed formula, and Step 3 largely repeats Step 2 rather than adding a validation step.

4 / 5

Progressive Disclosure

Well-organized sections for a simple single-purpose skill; the one bundle file referenced (scripts/prove.py) exists and matches the documented interface, and no external reference files are needed at this size. Not 5 because the sibling skills invoked via '**encode**', '**explain**', and '**simplify**' carry no paths or one-line descriptions, leaving navigation to those slightly ambiguous.

4 / 5

Total

16

/

20

Passed

Description

61%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 concise, third-person description with a clear and specific 'what', but it entirely lacks a 'Use when...' trigger clause and natural synonyms (SMT, theorem, .smt2) that would help users and Claude surface the skill at the right moments. Overall solid but incomplete.

Suggestions

Add an explicit trigger clause, e.g. 'Use when the user asks to prove, disprove, or check the validity of a logical claim, an SMT-LIB2 assertion, or asks for a counterexample.'

Broaden natural keywords with synonyms such as 'SMT', 'theorem', 'verify', 'first-order logic', and '.smt2' to improve trigger matching.

Optionally mention input forms (SMT-LIB2 assertions or natural-language claims) in the description to round out capability coverage.

DimensionReasoningScore

Specificity

Names the domain ('logical statements') and 1-2 concrete actions ('negation and satisfiability checking', 'a counterexample is returned'), but coverage is not comprehensive — no mention of SMT-LIB2 input, natural-language claims, or timeout handling. Fits the 'domain + 1-2 concrete actions' anchor rather than the 'several specific actions' anchor above.

3 / 5

Completeness

The 'what' is clear and concrete (prove validity via negation + satisfiability checking, with counterexamples), but there is no 'Use when...' or equivalent trigger clause — the guideline caps this at 3. Not score 2 because the 'what' half is explicit and specific.

3 / 5

Trigger Term Quality

'Prove validity', 'logical statements', 'negation', 'satisfiability', 'counterexample' are natural terms a user would say when needing this skill. Falls short of anchor 5 because synonyms and extensions like 'SMT', 'theorem', 'verify', '.smt2', or 'first-order logic' are absent.

4 / 5

Distinctiveness Conflict Risk

The logic/SMT proving niche is largely distinct from general skills, so conflict risk is low. Not 5 because the absence of an explicit 'when' clause and references to sibling skills (encode, simplify) leave minor overlap with adjacent symbolic-reasoning skills.

4 / 5

Total

14

/

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.