CtrlK
BlogDocsLog inGet started
Tessl Logo

ax-ai

This skill helps an LLM generate correct AI provider setup and configuration code using @ax-llm/ax. Use when the user asks about ai(), providers, models, routing, adaptive balancing, presets, embeddings, batch audio with ai.transcribe() or ai.speak(), extended thinking, context caching, or mentions OpenAI/Anthropic/Google/Azure/DeepSeek/Meta/Mistral/Cohere/Reka/Grok/Typesafe/Jev with @ax-llm/ax.

60

Quality

75%

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/typescript/.well-known/agent-skills/ax-ai/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.

A dense, highly actionable codegen reference: real, executable TypeScript patterns and precise library-specific rules, with almost no tutorial padding. Its weaknesses are structural — a monolithic 1,090-line body with repeated rules, no local reference-file split, no explicit step-by-step workflow, and one truncated sentence.

Suggestions

Split provider-specific minutiae (Meta Muse, AWS Bedrock, Chrome AI/WebLLM, DeepSeek notes) into per-topic reference files under references/ and keep SKILL.md as a short overview linking them one level deep, which would raise both conciseness and progressive_disclosure.

De-duplicate rules repeated across sections (amazon-bedrock confusion, ai() vs class constructors, WebLLM/Chrome-AI portability) into the single Critical Rules section and remove them from inline sections.

Fix the truncated Common Options bullet ("a stream that has started runs on ...") and add a short ordered workflow (query axAIProfiles()/axGetSupportedAIModels() → ai({...}) → chat/embed with options → check res.results) at the top to make the codegen sequence explicit.

DimensionReasoningScore

Conciseness

The body avoids tutorial prose and assumes competence ("Prefer short, modern, copyable patterns. Do not write tutorial prose"), and most lines are library-specific rules Claude cannot know (e.g. "noul >= trueThreshold", the sampling-parameter matrix). But at ~1,090 lines it is padded with repetition ("Do not confuse the `amazon-bedrock` OpenAI-compatible profile" reappears under Critical Rules and Do Not Generate; WebLLM/Chrome-AI portability rules restated) and includes a sentence truncated mid-clause ("a stream that has started runs on"), so it could be noticeably tightened.

3 / 5

Actionability

Nearly every section opens with copy-paste-ready TypeScript using real identifiers ("const llm = AxBalancer.create([openai, anthropic] as const, { strategy: { type: 'adaptive', ... } })", "await gemini.speak({ text: 'Hello from Ax.', voice: 'Kore' })"). Minor gaps keep it below fully-executable: some examples reference undefined context variables (`gen`, `values`, `base64Wav`, `apiKey`) and the Common Options bullet is cut off mid-sentence.

4 / 5

Workflow Clarity

Some sequencing exists ("Use axGetSupportedAIModels() to build provider/model selectors before creating an ai(...) instance", "Choose the primitive by responsibility") and decision tables (budget levels) order the choices, but there is no explicit end-to-end workflow (select profile → configure → call → verify) and no validation checkpoints, so the sequence is present but implicit. No destructive/batch operations, so no cap applies.

3 / 5

Progressive Disclosure

Sections are clearly headed and external references are well-signaled and one level deep ("Fetch these for full working code" linking 18 example files, plus the ax-typesafe/signature skill links), but no references/, scripts/, or assets/ bundle exists — provider-specific minutiae (Meta Muse, Bedrock, Chrome AI, WebLLM, the DeepSeek notes) that clearly belong in separate reference files are all inlined in a single ~1,090-line SKILL.md.

3 / 5

Total

13

/

20

Passed

Description

83%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: it explicitly states what the skill does and when to use it, with concrete API and provider-name triggers that a user of this library would naturally produce. It is only dinged for trigger terms that are generic without the library name and for listing capability topics rather than crisp actions.

DimensionReasoningScore

Specificity

"generate correct AI provider setup and configuration code using @ax-llm/ax" states concrete actions, and the trigger list enumerates specific capability areas ("routing, adaptive balancing, presets, embeddings, batch audio with ai.transcribe() or ai.speak(), extended thinking, context caching") — several specific items, though mostly topic nouns rather than the multiple concrete verb-actions of a 5.

4 / 5

Completeness

Both parts are explicit: what — "generate correct AI provider setup and configuration code using @ax-llm/ax"; when — "Use when the user asks about ai(), providers, models, routing, ... or mentions OpenAI/Anthropic/Google/Azure/DeepSeek/... with @ax-llm/ax", with concrete trigger phrases throughout.

5 / 5

Trigger Term Quality

Good natural-term coverage: API names users would say ("ai()", "ai.transcribe()", "ai.speak()"), capability nouns ("providers, models, routing, embeddings, context caching, extended thinking"), ten provider names, and the package name itself. A few common phrases are missing (e.g. "chat", "streaming", "API key"), keeping it below comprehensive-with-synonyms.

4 / 5

Distinctiveness Conflict Risk

The @ax-llm/ax qualifier and library-specific triggers ("ai()", "Typesafe/Jev") carve a clear niche, but generic terms like "providers, models, embeddings, routing" overlap with other AI-SDK skills unless the library is mentioned — minor overlap risk with closely related skills.

4 / 5

Total

17

/

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 (1093 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.