CtrlK
BlogDocsLog inGet started
Tessl Logo

ax-go-signature

Use when writing Go code with `github.com/ax-llm/ax/packages/go` for string signatures, field descriptors, JSON schema output, validation, and typed tool argument shapes.

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 ./packages/go/skills/ax-go-signature/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.

The body opens well — a tight core pattern and copy-paste-ready Go snippets for string, class, native-struct, and schema-rendering forms. Quality drops in the back half: the Typesafe/Jev section is an unsequenced, multi-language spec dump that belongs in a reference file, and the "Relevant API Surface" listing (`axllm.*`) contradicts the `ax.*` names used throughout the examples.

Suggestions

Move the Typesafe/Jev specification into a separate reference file (e.g., references/typesafe.md) and keep a short overview with a pointer in SKILL.md, which would fix both the conciseness and progressive-disclosure gaps.

Fix the "Relevant API Surface" section: the `axllm.S` / `axllm.Fn` / `axllm.Tool` names contradict the `ax` import alias used in every example and never appear in code — align them with the actual generated API or drop the section in favor of `API.md`.

Add one executable Go snippet to the Typesafe section (constructing a boolean/class-output signature, setting trueThreshold, and calling Forward) so its rules are actionable rather than purely descriptive.

DimensionReasoningScore

Conciseness

The pattern sections are lean, but the "Typesafe / Jev" section is a dense spec dump that a Go-focused skill does not need, e.g. "C++ uses valueDescriptions on its existing field descriptors", "only TypeScript can infer literal question keys", and the multi-language naming enumeration "system_one / systemOne / SystemOne and list_models / listModels / ListModels". This fits 'mostly efficient but includes some unnecessary explanation or could be tightened' — not 4, because the padding is a substantial block rather than minor instances.

3 / 5

Actionability

Concrete, executable Go snippets cover the common cases: `sig := ax.NewSignature("question:string -> answer:string")`, `ax.NewAx("questionText:string -> answerText:string", nil)`, the native `ax.AxSignature{...}` struct, and `program.Signature = signature; output, err := program.Forward(ctx, client, inputs, nil)`. It is not 5 because the "Relevant API Surface" section contradicts the examples ("Signatures: `axllm.S`, `axllm.FieldType`, `axllm.AxSignature`" vs. the `ax` import alias, with `axllm.S`/`axllm.Fn` never used), and the large Typesafe section gives settings ("Set provider trueThreshold ... to a finite value in [0,1]") with no executable snippet showing how.

4 / 5

Workflow Clarity

The core flow is sequenced implicitly across sections ("Attach the native signature to AxGen before the forward call", "Start from the complete programs under `examples/`"), but there is no consolidated step sequence, and the Typesafe/Jev section (~40% of the body) presents rules with no usage workflow at all. This matches 'sequence present but checkpoints missing or implicit'; it is above anchor 2 because the main pattern order is discernible and no destructive operations require validation.

3 / 5

Progressive Disclosure

External materials are named ("Package API docs: `API.md` and `axir-api.json`", "Runnable examples: `examples/`", "src/examples/go/generation/"), but none of these files exist in the skill bundle, and the lengthy inline Typesafe/Jev specification is content that clearly belongs in a separate reference file. This matches 'references present but not clearly signaled; content that should be separate is inline'; it is not 4 because the split between inline and referenced material is poorly drawn and the referenced paths are unverifiable.

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, tightly scoped description: it names a precise package and lists five concrete capabilities with an explicit "Use when..." trigger. The only weakness is that the capability list doubles as the "what" statement and a few natural synonyms (Ax, AxGen, contracts) are absent.

DimensionReasoningScore

Specificity

The description lists multiple concrete capabilities — "string signatures, field descriptors, JSON schema output, validation, and typed tool argument shapes" — for a precisely named domain (Go code with `github.com/ax-llm/ax/packages/go`). This matches the anchor 'lists multiple specific concrete actions; comprehensive coverage'; it is not the level below because coverage of the package's feature surface is broad, not just 1-2 actions.

5 / 5

Completeness

It has both a "what" (the listed capabilities: string signatures, field descriptors, JSON schema output, validation, typed tool argument shapes) and an explicit "when" ("Use when writing Go code with `github.com/ax-llm/ax/packages/go`"). It does not reach 5 because the "what" is folded into the "when" clause rather than stated as its own concrete action sentence, as in the anchor-5 example; it is clearly above anchor 3 since the "Use when..." trigger guidance is explicit, not merely implied.

4 / 5

Trigger Term Quality

Natural terms a developer would use are present ("writing Go code", "signatures", "JSON schema", "validation", "tool argument shapes", the package path itself), giving good keyword coverage. It falls short of the anchor-5 example because synonyms and common variations (e.g., "Ax", "AxGen", "input/output contracts", "prompts") are missing; it is above anchor 3 because the included terms are the natural phrases for this niche rather than generic ones.

4 / 5

Distinctiveness Conflict Risk

The trigger is anchored to the specific package path `github.com/ax-llm/ax/packages/go` plus Go-specific feature terms, giving it a clear niche with minimal overlap risk against generic Go or schema skills. It matches the anchor 'clear niche with distinct triggers; minimal conflict risk' and is not level 4, which requires only 'minor overlap risk'.

5 / 5

Total

18

/

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.