CtrlK
BlogDocsLog inGet started
Tessl Logo

optimize

Solve constrained optimization problems using Z3. Supports minimization and maximization of objective functions over integer, real, and bitvector domains.

63

Quality

73%

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

Quality

Content

86%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 tight, highly actionable skill: an executable example, commands matching the real script, an outcome-branching workflow with recovery paths, and clean structure with a correctly referenced bundle script. The only nits are an un-actionable mention of soft/lexicographic constraints and an implicit step for reading the objective value.

DimensionReasoningScore

Conciseness

The body is lean: a 3-step Action/Expectation/Result structure, one complete SMT-LIB example, two bash invocations, and a compact parameters table with no padding or explanations of concepts Claude already knows. It falls just short of anchor 5 because the opening mention of 'soft constraints (weighted preferences)' and 'lexicographic multi-objective optimization' is never made actionable (no syntax or example), so those tokens do not fully earn their place.

4 / 5

Actionability

Fully executable guidance: a copy-paste-ready SMT-LIB2 snippet with declarations, assertions, and (minimize ...)/(check-sat)/(get-model); concrete bash commands whose flags match the actual scripts/optimize.py argparse interface; and a parameters table with types, defaults, and the db path. The example covers the common case (integer minimization) and the commands cover both file and inline-formula usage.

5 / 5

Workflow Clarity

Clear 3-step sequence (formulate, run, interpret) where each step pairs an Action with an Expectation and a Result that branches on outcomes (sat / unsat / unknown / timeout) with recovery guidance — genuine checkpoints and feedback loops. It stops short of 5 due to a minor gap: Step 3 says to 'parse the objective value', but neither the example output nor the script invocation shows how the objective value (vs. the model assignment) is surfaced, so that checkpoint is implicit.

4 / 5

Progressive Disclosure

Well-organized self-contained body of roughly 70 lines: sections are clearly headed, the parameters table is appropriately inline, and the only bundle file (scripts/optimize.py) exists, is referenced by exact path, and is one level deep with no buried or nested references. Nothing that belongs in a separate file is inlined, and navigation is trivial.

5 / 5

Total

18

/

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 clear, third-person 'what' statement with good domain specificity and reasonable trigger terms, but it entirely lacks a 'when to use' clause, capping completeness at 3. Adding explicit trigger guidance and SMT-flavored synonyms would lift the two heaviest dimensions.

Suggestions

Append an explicit trigger clause, e.g. 'Use when solving SMT optimization problems, minimizing or maximizing an objective subject to constraints, or when the user mentions Z3, SMT, or .smt2 files.'

Add natural synonyms users would actually say — 'SMT', 'SMT-LIB2', 'solver', '.smt2' — to improve trigger-term coverage.

Optionally enumerate one or two more concrete capabilities (e.g. 'find optimal values subject to hard and soft constraints') to round out the action list.

DimensionReasoningScore

Specificity

Names the domain ('constrained optimization problems using Z3') and 1-2 concrete actions ('minimization and maximization of objective functions over integer, real, and bitvector domains'), but does not enumerate several specific actions like solving from files, handling unsat/timeout, or soft constraints. It sits at 'names domain and 1-2 concrete actions, not comprehensive' — below anchor 4, which requires a list of several actions, and above anchor 2, which lacks concrete actions entirely.

3 / 5

Completeness

The 'what' is clear and concrete (solve constrained optimization with Z3, minimize/maximize over three domains), but there is no 'Use when...' or equivalent trigger guidance, so completeness is capped at 3 per the rubric guideline. It is not 4 because 'when' is entirely absent rather than merely implicit, and not 2 because the 'what' is specific rather than vague.

3 / 5

Trigger Term Quality

Good natural-term coverage: 'optimization', 'minimization', 'maximization', 'objective functions', 'Z3', and the domain names integer/real/bitvector. A few natural terms a user would say are missing — 'SMT', 'SMT-LIB2', 'solver', and '.smt2' — so it is not the comprehensive synonym/extension coverage of anchor 5, but clearly above anchor 3's partial keyword set.

4 / 5

Distinctiveness Conflict Risk

Z3-branded SMT optimization is a fairly distinct niche with low conflict risk against most skills. It is not 5 because 'constrained optimization' could overlap with generic math/OR solver skills (linear programming, scipy optimize), and it is well above anchor 2-3 generic breadth.

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.