CtrlK
BlogDocsLog inGet started
Tessl Logo

ax-gen

This skill helps an LLM generate correct AxGen code using @ax-llm/ax. Use when the user asks about ax(), AxGen, generators, forward(), streamingForward(), validation, assertions, streaming assertions, field processors, step hooks, self-tuning, or structured outputs. For MCP clients, transports, prompts, resources, tasks, subscriptions, or authentication use ax-mcp alongside this skill.

66

Quality

83%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

71%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 dense, high-signal codegen-rules reference: lean, mostly executable code examples, good per-topic organization, and explicit error/validation semantics. The main structural weakness is progressive disclosure — the entire detailed API reference lives inline in SKILL.md with no reference files, so all detail loads into context regardless of need.

Suggestions

Split reference-heavy sections (Structured Outputs, Caching option-merging rules, Native MCP/UCP + Event Targets, Automatic sessions) into one-level-deep files such as references/structured-outputs.md and references/caching.md, leaving SKILL.md as a defaults + canonical-pattern overview with clearly signaled links.

Replace the exhaustive inline option-name enumerations (e.g., the forward-options and service-options lists in the Caching rules) with a compact precedence rule plus a single options table in a reference file.

Fix the non-executable snippets — the `{ ... }` spread placeholder in the function-calling example and the undefined `bestIndex` in the resultPicker example — so every code block is copy-paste runnable.

DimensionReasoningScore

Conciseness

Nearly every line is library-specific behavior Claude cannot know, with almost no tutorial prose ("Do not write tutorial prose unless the user explicitly asks"). However, exhaustive inline enumerations ("It also covers: the run options `control`, `stream`, `sessionId`, `abortSignal`, `timeout`, `fetch`, `webSocket`...") and dense run-on rule paragraphs in the Caching and Structured Outputs sections could be trimmed, keeping it below anchor 5's every-token-earns-its-place bar.

4 / 5

Actionability

Concrete, executable TypeScript throughout — canonical pattern, forward()/streamingForward(), addAssert/addStreamingAssert, step hooks, error handling — covering the common cases. Minor gaps: the `{ ... }` placeholder in the function-calling example (`await gen.forward(llm, { ... }, { functions: [lookupProduct] })`) and the undefined `bestIndex` in the resultPicker snippet keep it from being fully copy-paste ready.

4 / 5

Workflow Clarity

A well-organized single-purpose codegen-rules skill sequenced defaults → canonical pattern → feature sections → "Do Not Generate", with validation/retry semantics and error recovery documented (assertion correction retries, catching AxGenerateError/AxAIServiceAbortedError). It lacks an explicitly sequenced multi-step workflow with checkpoints (reference style rather than process style), so it sits between anchor 3 and anchor 5.

4 / 5

Progressive Disclosure

Roughly 600 lines of dense API reference are inlined in SKILL.md with no bundle files at all, matching anchor 3's example of an API reference that belongs in a separate file. Section headers are good and external pointers (ax-mcp, ax-typesafe, the Examples links) are clearly signaled — above anchor 2 — but bulk detail (structured outputs, caching option-merging rules, MCP/event targets, sessions) is inline rather than split into reference files, below anchor 4's "bulk in separate file".

3 / 5

Total

15

/

20

Passed

Description

90%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 strong description: third-person, concise, with an explicit what and an explicit when clause carrying comprehensive natural trigger terms. The single weakness is specificity — the capability statement is one action (generate AxGen code) with feature breadth conveyed only through the trigger list.

DimensionReasoningScore

Specificity

The only explicitly stated action is "helps an LLM generate correct AxGen code using @ax-llm/ax" — domain plus one concrete action. The enumerated feature areas ("validation, assertions, streaming assertions, field processors, step hooks, self-tuning, or structured outputs") are framed as triggers rather than actions, so the description does not list several distinct actions as anchor 4 requires.

3 / 5

Completeness

Explicitly answers both: what — "generate correct AxGen code using @ax-llm/ax" — and when — "Use when the user asks about ax(), AxGen, generators, forward()..." with concrete trigger phrases, matching the anchor 5 example pattern.

5 / 5

Trigger Term Quality

"ax(), AxGen, generators, forward(), streamingForward(), validation, assertions, streaming assertions, field processors, step hooks, self-tuning, or structured outputs" plus MCP terms ("clients, transports, prompts, resources, tasks, subscriptions, or authentication") gives comprehensive coverage of the natural API-surface terms a user of this library would actually say.

5 / 5

Distinctiveness Conflict Risk

A clear niche (AxGen codegen for @ax-llm/ax) with distinct, API-name-specific triggers, and it explicitly deconflicts by routing MCP topics to the ax-mcp skill ("For MCP clients, transports... use ax-mcp alongside this skill"), minimizing wrong-skill triggering.

5 / 5

Total

18

/

20

Passed

Validation

87%

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

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (622 lines); consider splitting into references/ and linking

Warning

frontmatter_unknown_keys

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

Warning

Total

14

/

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.