CtrlK
BlogDocsLog inGet started
Tessl Logo

encode

Translate constraint problems into SMT-LIB2 or Z3 Python API code. Handles common problem classes including scheduling, graph coloring, arithmetic puzzles, and verification conditions.

54

Quality

60%

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/encode/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.

The body is well-structured with a clear validated workflow, but its central executable guidance is broken: the encode.py CLI it documents (--problem/--format) does not exist in the bundled script, which is actually a validator. Fixing the command examples to match the real script interface is the highest-impact improvement.

Suggestions

Reconcile the CLI examples with scripts/encode.py: document the real '--validate FILE' interface, or extend encode.py to actually accept '--problem' and '--format' generation as described.

Remove or fix the '--format python' path, since encode.py currently rejects it ('python format output is generated by the agent, not by this script'); clarify whether Z3-Python generation is done by the agent or the script.

Tighten the repeated Action/Expectation/Result scaffolding into direct imperatives to recover conciseness without losing the validation checkpoint.

DimensionReasoningScore

Conciseness

The body is mostly efficient and does not explain concepts Claude already knows, but the repeated 'Action:/Expectation:/Result:' scaffolding across three steps adds procedural overhead that could be trimmed, keeping it just below level 5.

4 / 5

Actionability

The documented commands (e.g. 'python3 scripts/encode.py --problem "..." --format smtlib2') look copy-paste ready but do not match the actual script, which only accepts '--validate FILE' and errors out on '--format python'; the guidance is concrete yet not executable as written, matching the 'incomplete / missing key details' anchor.

3 / 5

Workflow Clarity

There is a clear three-step sequence (identify class, generate, validate) with an explicit validation checkpoint and a fix-and-rerun feedback loop in Step 3, but Step 2's generation command is mis-specified against the real script, a minor but real gap that prevents a level-5.

4 / 5

Progressive Disclosure

The body is well-sectioned (Step 1/2/3, Parameters) with a single one-level-deep reference to scripts/encode.py that exists in the bundle, and the inline theory and parameter tables are concise enough to stay inline; it is not a level-5 only because there is no advanced/reference split and all detail lives in SKILL.md.

4 / 5

Total

15

/

20

Passed

Description

53%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.

The description is specific and clearly niche-scoped, but it omits any explicit 'when to use' trigger guidance, which limits its completeness and trigger-term quality. It reads well as a capability statement but underperforms as a routing cue.

Suggestions

Add an explicit 'Use when...' clause naming natural user triggers (e.g., 'Use when the user asks to encode a constraint problem for SMT/Z3, mentions satisfiability, scheduling, or graph coloring, or needs an SMT-LIB2 or Z3 formulation').

Broaden trigger-term coverage with common synonyms users actually say: 'SAT/satisfiability', 'solver', 'constraints', 'SMT', and '.smt2'.

Consider listing the concrete outputs as distinct actions (declare variables, assert constraints, emit check-sat/get-model) to lift specificity beyond a single 'translate' verb.

DimensionReasoningScore

Specificity

The description names one core concrete action ('Translate constraint problems into SMT-LIB2 or Z3 Python API code') plus an enumerated list of input problem classes, but it does not list several distinct actions as the level-4/5 anchors require.

3 / 5

Completeness

It gives a clear 'what' (translate constraint problems into SMT/Z3) but contains no 'Use when...' clause or equivalent explicit trigger guidance, which per the judging guidelines caps completeness at 3.

3 / 5

Trigger Term Quality

It includes relevant domain terms ('constraint problems', 'SMT-LIB2', 'Z3', 'scheduling', 'graph coloring') but is missing common synonyms and variations a user might say such as 'SAT', 'satisfiability', 'solver', or 'constraints', matching the 'some relevant keywords but missing variations' anchor.

3 / 5

Distinctiveness Conflict Risk

The SMT-LIB2/Z3 encoding niche is fairly specific and distinct from most other skills, with only minor overlap risk against a generic math/solver skill; it is not a level-5 because it lacks explicit distinct trigger phrasing.

4 / 5

Total

13

/

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.

Validation16 / 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.