Content
71%Weight 40%Scale 1-5Reviews 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.
| Dimension | Reasoning | Score |
|---|---|---|
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 |