CtrlK
BlogDocsLog inGet started
Tessl Logo

ax-python-llm

Use when writing Python code with `axllm` for using the generated Ax package, factory functions, package docs, examples, and API reference.

56

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

Quality

Content

68%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 lean, fact-dense reference body with executable entry-point code, useful guardrails, and clean sectioning. Its main weaknesses are the absence of a sequenced workflow with validation checkpoints and the inlining of a large API inventory with referenced files that are not present in the bundle.

Suggestions

Add a short ordered workflow, e.g. 1. find the closest match in `examples/`, 2. adapt its factory call, 3. verify with a `no-key` example before touching real providers — turning the trigger list into a sequenced path with checkpoints.

Split the "Relevant API Surface" inventory into a separate reference file (e.g. `references/api-surface.md`) and keep only the per-area entry points inline, resolving the dangling `API.md`/`examples/` pointers in the bundle.

Trim the redundant opening paragraph (it restates the frontmatter description) and reformat the AxAI bullet as a grouped list rather than a single run-on line.

DimensionReasoningScore

Conciseness

The body is dominated by terse fact lists and a minimal code block with no explanations of concepts Claude already knows. Two spots could be trimmed: the intro paragraph repeats the frontmatter description, and the AxAI bullet is a ~25-symbol run-on dump ("`ai`, `typesafe`, `AxAITypesafeClient`, `AxCancellationToken`, ..."). This is anchor 4 (efficient with minor instances that could be trimmed), not anchor 5's every-token-earns-its-place.

4 / 5

Actionability

The Core Pattern is copy-paste ready ("llm = ai(\"openai\", api_key=os.environ[\"OPENAI_API_KEY\"])") and guardrails give executable direction ("Use `no-key` examples for deterministic local checks"). However only one code sample exists and none of the listed signatures/agents/flows/optimizers get a usage example, so it lands at anchor 4 (mostly executable, minor gaps) rather than 5 (common cases covered).

4 / 5

Workflow Clarity

"When To Use" is a trigger list rather than a sequence, and there are no validation checkpoints; the path from task to working code (consult examples -> pick entrypoint -> write call -> verify with no-key transport) is implied but never sequenced. One guardrail does offer a recovery loop ("if package docs disagree with source code, update the compiler and regenerate packages"), which keeps this at anchor 3 (sequence implied, checkpoints missing) rather than 2.

3 / 5

Progressive Disclosure

Sections are well organized and pointers are one level deep and clearly labeled ("Package API docs: `API.md` and `axir-api.json`", "Runnable examples: `examples/`"). It stops short of anchor 5 because no bundle files actually exist alongside SKILL.md and the full "Relevant API Surface" inventory is inlined in the body rather than split into a reference file, leaving navigation partially unresolvable.

4 / 5

Total

15

/

20

Passed

Description

62%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 has an explicit and appropriate trigger clause and a distinctive niche, but the capability statement is a circular resource list rather than a list of concrete actions, and natural trigger-term coverage is thin. It communicates when to fire reasonably well while under-selling what the skill actually does.

Suggestions

Replace the circular "for using the generated Ax package" clause with concrete actions, e.g. "Build signatures, AI calls, agents, flows, and optimizers with the generated `axllm` Python package, using its factory functions, package docs, examples, and API reference."

Add the natural vocabulary users would actually say when they need this skill — "Ax", "axllm", "LLM calls", "agent", "flow", "optimizer" — so the trigger matches how requests are phrased.

Distinguish the Python target from the TypeScript package explicitly in the description (e.g. "the Python (not TypeScript) Ax package") to reduce overlap risk with sibling Ax skills.

DimensionReasoningScore

Specificity

"writing Python code with `axllm`" names the domain plus one concrete action, and "factory functions, package docs, examples, and API reference" lists artifacts, but the only verbs are the circular "writing ... for using", so coverage of concrete actions is not comprehensive. It is above anchor 2 (which names only a domain with generic actions) but below anchor 4 (which lists several specific actions).

3 / 5

Completeness

Both halves are explicit: "Use when writing Python code with `axllm`" answers when, and "for using the generated Ax package, factory functions, package docs, examples, and API reference" answers what. The what is a resource inventory rather than concrete capabilities, so it fits anchor 4 (both present, could be more specific) and not anchor 5.

4 / 5

Trigger Term Quality

Relevant keywords like "Python", "axllm", "Ax package", and "API reference" are present, but common variations a user would naturally say ("Ax framework", "LLM", "agent", "signature", "optimizer") are missing. This matches anchor 3 (some relevant keywords, missing common variations) rather than anchor 4's fuller coverage.

3 / 5

Distinctiveness Conflict Risk

"axllm" and "the generated Ax package" carve out a clear niche with low collision risk against generic Python skills. Minor overlap remains with the sibling TypeScript Ax tooling the body references, matching anchor 4 (mostly distinct, minor overlap) rather than anchor 5's minimal-conflict bar.

4 / 5

Total

14

/

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.