CtrlK
BlogDocsLog inGet started
Tessl Logo

ax-go-ai

Use when writing Go code with `github.com/ax-llm/ax/packages/go` for named deployment profiles, generic provider clients, model selection, OpenAI-compatible calls, Responses, Gemini, Anthropic, routers, and balancers.

52

Quality

66%

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 ./packages/go/skills/ax-go-ai/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

42%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 is an accurate, information-dense fact catalog of the generated Ax Go package, strong on exact API identifiers and behavioral edge cases. Its weaknesses are verbosity (cross-language variants and TypeScript comparisons irrelevant to Go), near-total reliance on referenced example files that are missing from the bundle, and no step-by-step workflows or reference-file split for the multi-step tasks it enumerates.

Suggestions

Remove or collapse non-Go language variants and 'as in TypeScript' comparisons into a single parity note; the description scopes the skill to Go, so those tokens do not earn their place.

Split reference-grade detail (Typesafe probability rules, retry/sampling tables, Astra session internals) into files under references/ that actually ship in the bundle, keeping SKILL.md to an overview with one-level-deep pointers.

Add 2–3 complete runnable Go examples inline (factory setup, retry config, adaptive balancer) since the referenced examples/ directory is absent, and give multi-step setups an explicit numbered sequence with a verification step.

DimensionReasoningScore

Conciseness

The skill is scoped to Go yet repeatedly inlines other languages' naming variants ('add_child_agent in Python/C++, AddChildAgent in Go, addChildAgent in Java, with_child_agent in Rust'), 'as in TypeScript' comparisons, and reference-grade minutiae (the 0.01 probability tolerance, '1–255 labels', per-model sampling rules) — noticeably verbose even though individually accurate. It is above the lowest anchor because nothing explains concepts Claude already knows; it is dense package fact, not padded prose, but much of it does not earn its place for the stated Go use case.

2 / 5

Actionability

Concrete identifiers, defaults, and error semantics appear throughout ('JoinStreamText(text, delta)', 'initialDelayMs * backoffFactor ** attempt', retryable status codes 500/408/429/502/503/504/529, 'NewAI("vertex-ai", options)' with 'AxCredentialProviderFunc'), which exceeds high-level hints. However only one complete code snippet exists (the three-line Core Pattern) and the primary executable path — 'Start from package examples' / 'examples/adaptive_balancer_no_key' — references files absent from the bundle, leaving key details missing.

3 / 5

Workflow Clarity

Topic-organized sections, a 'When To Use' task list, and the Core Pattern give a recognizable entry point, and ordering constraints are stated where they matter ('Register child agents before running the parent'). But multi-step tasks such as adaptive balancer setup or credential-provider configuration are described declaratively with no explicit step sequences or validation checkpoints, matching the anchor for steps present but checkpoints missing or implicit. No destructive or batch operations require validation caps.

3 / 5

Progressive Disclosure

There is real structure (clear ## sections, a 'Package Facts' manifest, and a 'Relevant API Surface' index) and references are clearly signaled by name ('API.md', 'axir-api.json', 'examples/'). But ~164 lines of reference-grade detail (Astra session internals, Typesafe probability rules, per-provider sampling tables) are inlined monolithically, and none of the referenced files exist in the bundle — the disclosure path points at files that are not there. This fits the anchor for structure present but content that should be separate is inline; it avoids the lower anchor because headers and navigation aids are genuine.

3 / 5

Total

11

/

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.

A strong, trigger-led description: it names the exact Go package and lists most capability areas a user would mention. Its main weaknesses are the fused what/when structure and missing common synonyms (Ax, AxLLM, LLM) that would improve recall and distinctiveness.

Suggestions

Lead with a short third-person capability statement (e.g., 'Creates provider clients, selects deployment profiles and models, and routes requests...') before the 'Use when' clause so 'what' is stated independently of 'when'.

Add natural synonyms users would actually type — 'Ax', 'AxLLM', 'LLM provider', 'chat completions', 'failover/load balancing' — to improve trigger recall and distinctiveness against generic provider skills.

DimensionReasoningScore

Specificity

The description enumerates concrete capability areas ('named deployment profiles, generic provider clients, model selection, OpenAI-compatible calls, Responses, Gemini, Anthropic, routers, and balancers') anchored to the exact package path. This matches the anchor for listing several specific items with minor gaps; it falls short of the top anchor because the items are topic nouns rather than comprehensive verb-led actions.

4 / 5

Completeness

An explicit 'Use when writing Go code with `github.com/ax-llm/ax/packages/go`' trigger with concrete phrases answers 'when' clearly, and the for-clause enumerates capabilities that convey 'what'. It is not the top anchor because 'what' is fused into the when-clause rather than stated as an independent capability description.

4 / 5

Trigger Term Quality

Natural terms a user would say are well covered ('Go code', 'OpenAI', 'Gemini', 'Anthropic', 'Responses', 'routers', 'balancers'), matching good keyword coverage with a few natural terms missing. Not comprehensive: obvious synonyms like 'Ax', 'AxLLM', 'LLM', 'chat completions', or 'streaming' are absent.

4 / 5

Distinctiveness Conflict Risk

The named package path carves out a clear niche with distinct triggers, but bare tokens like 'Gemini', 'Anthropic', and 'OpenAI-compatible calls' could pull in general provider-API questions unrelated to this package — minor overlap risk with closely related 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.