CtrlK
BlogDocsLog inGet started
Tessl Logo

ax-python-signature

Use when writing Python code with `axllm` for string signatures, field descriptors, JSON schema output, validation, and typed tool argument shapes.

57

Quality

72%

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 ./website/static/python/.well-known/agent-skills/ax-python-signature/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

57%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 provides lean, executable pattern examples with sensible guardrails, making the core signature workflow actionable. Weaknesses center on the dense inlined Typesafe/Jev specification, the absence of an explicit step sequence, and references to files that do not exist in the skill bundle.

Suggestions

Move the dense Typesafe/Jev specification details (thresholds, probability constraints, balancer behavior, streaming notes) into a separate reference file and keep a 3-5 line summary inline, improving both conciseness and progressive disclosure.

Add a brief ordered workflow for the common task — e.g., choose a form (string / class / fluent) → build the signature → render `to_json_schema('outputs')` → verify the shape against a runnable example under `examples/` before wiring into `ax(...)` — so the sequence and its checkpoint are explicit.

Contextually signal references where they are used (e.g., link `API.md` and `axir-api.json` beside the 'Relevant API Surface' section, and the generation examples beside the Typesafe section) instead of a flat 'Package Facts' list, and ship those files in the skill bundle so the links resolve.

DimensionReasoningScore

Conciseness

The pattern sections (Core Pattern, More Patterns, Package Facts, Guardrails) are lean and efficient, but the ~30-line 'Typesafe / Jev' section is dense specification prose (e.g., "Choice and Score probabilities must be finite values in [0,1], match the criteria keys, and sum to one within an inclusive 0.01 tolerance. Totals of 0.99 and 1.01 are accepted with an allowance for floating-point summation error.") that could be tightened or offloaded. This matches the 'mostly efficient but includes some content that could be tightened' anchor rather than the consistently-efficient anchor at 4.

3 / 5

Actionability

Concrete, executable code is provided for the core cases — `sig = s("question:string -> answer:string")`, `sig.to_json_schema("outputs")`, the fluent builder chain, and `program.forward(client, inputs)` — and the common cases are covered. It stops short of 5 because some snippets are fragments without full context (`schema = signature.to_json_schema("outputs")` assumes a prior variable, `client` is undefined) and the Typesafe section offers no runnable code, deferring entirely to the examples directory.

4 / 5

Workflow Clarity

The body is organized as a pattern catalog (When To Use → Package Facts → patterns → guardrails) with an implied progression ('Start from the complete programs under `examples/`'), but there is no explicit sequence or checkpoint for tasks like choosing between string, class, and fluent forms. The Guardrails section partially functions as checkpoints ('if package docs disagree with source code, update the compiler and regenerate packages'), matching the 'sequence present but checkpoints missing or implicit' anchor.

3 / 5

Progressive Disclosure

The file has good section headers, but the dense Typesafe/Jev specification detail is inlined when it clearly belongs in a separate reference file, and the referenced artifacts (`API.md`, `axir-api.json`, `axir-capabilities.json`, `examples/`, `src/examples/python/generation/`) do not exist anywhere in the skill bundle — no references/, scripts/, or assets/ directories ship with it, so the navigation paths cannot actually be followed. References are also listed flatly under 'Package Facts' rather than contextually signaled where used, fitting the 'some structure; references present but not clearly signaled; content that should be separate is inline' anchor.

3 / 5

Total

13

/

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.

The description pairs an explicit 'Use when...' trigger with a specific, package-anchored list of capability areas, achieving consistent quality across all dimensions. Its main limitation is that the 'what' is expressed as topic objects rather than explicit actions, which keeps every dimension at 4 rather than 5.

DimensionReasoningScore

Specificity

The description lists several specific capability areas — "string signatures, field descriptors, JSON schema output, validation, and typed tool argument shapes" — anchored to the concrete domain of "writing Python code with `axllm`". It falls short of a 5 because capabilities are expressed as noun-phrase objects rather than explicit concrete actions (no verbs like 'declare', 'generate', or 'build'), and it fits the 'lists several specific actions; minor gaps' anchor better than the comprehensive-coverage anchor.

4 / 5

Completeness

The 'when' is explicit and trigger-based ("Use when writing Python code with `axllm` for string signatures..."), and the 'what' is conveyed through the enumerated capability list. It does not reach 5 because the 'what' is implicit — the description names the objects involved rather than clearly stating what the skill does with them (e.g., 'Declare input/output contracts and generate JSON schemas').

4 / 5

Trigger Term Quality

Natural trigger terms are present: "Python code", "axllm", "signatures", "JSON schema", "validation" — phrases a user of this package would actually say. It is not a 5 because jargon-heavy terms like "field descriptors" and "typed tool argument shapes" dominate, and common synonyms or variations (e.g., 'schemas', 'structured output', 'tool arguments') are missing.

4 / 5

Distinctiveness Conflict Risk

The distinctive package name `axllm` and the niche of signature-based contracts give it a clear niche with minimal conflict risk against unrelated skills. It is not a 5 because generic terms like "Python code", "validation", and "JSON schema output" could overlap with other schema-validation or structured-output skills.

4 / 5

Total

16

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

frontmatter_unknown_keys

Unknown frontmatter key(s) found; consider removing or moving to metadata

Warning

Total

15

/

16

Passed

Repository
ax-llm/ax
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.