CtrlK
BlogDocsLog inGet started
Tessl Logo

ax-go-flow

Use when writing Go code with `github.com/ax-llm/ax/packages/go` for flows, nodes, program graphs, nested programs, dynamic options, caching, and optimizer components.

58

Quality

73%

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

Fix and improve this skill with Tessl

tessl review fix ./packages/go/skills/ax-go-flow/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 flow-composition core of this skill is excellent — lean, concrete, runnable Go patterns ordered by increasing complexity. Quality drops sharply in the sprawling "Astra Session Work" section, which is dense multi-language spec prose unrelated to the described scope, and there is a direct contradiction between the `ax.` prefix used in all examples and the `axllm.` names in "Relevant API Surface".

Suggestions

Move "Astra Session Work" into a separate reference file (or trim it to only the Go-relevant rules) and keep SKILL.md focused on flow composition, linking to it from a clearly labeled references section alongside API.md, axir-capabilities.json, and examples/.

Add a short ordered workflow — check examples/ for native syntax → compose nodes with Execute/reads/writes → verify with a no-key scripted transport → run provider-backed Forward — turning the Guardrails directives into explicit checkpoints.

Resolve the package-identifier contradiction (every example uses `ax.NewFlow` while "Relevant API Surface" lists `axllm.NewFlow`/`axllm.AxFlow`) and show how the `client` and `cache` values passed to Forward are constructed.

DimensionReasoningScore

Conciseness

The flow-pattern sections are lean and dense with package-specific semantics Claude would not know ("An `ax.AxCachingFunction` under `"cachingFunction"` ... a hit runs no node and records no span or metric"), but the ~35-line "Astra Session Work" section is a spec dump spanning five languages ("add_child_agent(namespace, name, child) in Python/C++, AddChildAgent in Go, addChildAgent in Java, and with_child_agent in Rust") that largely falls outside the description's stated scope and could be tightened or split out. Not 2 because nothing explains concepts Claude already knows and the flow half is efficient; not 4 because a large fraction of the body is over-stuffed prose.

3 / 5

Actionability

The flow sections provide real, complete-syntax Go covering the common cases: `ax.NewFlow(...).Execute("draft", draft, ...).Returns(...)`, `parallelFlow.Forward(ctx, client, map[string]ax.Value{...}, nil)`, and `StreamingForward` iteration. Not 5 because node programs (`research`, `join`, `critique`, `revise`) and the `client`/`cache` values are never constructed, the entire Astra section has no executable code, and "Relevant API Surface" (`axllm.NewFlow`, `axllm.AxFlow`) directly contradicts the `ax.NewFlow` used in every example. Not 3 because the majority of the content is genuinely executable guidance with realistic values rather than pseudocode.

4 / 5

Workflow Clarity

The patterns progress sensibly (core pattern → typed programs → branching → fan-out/join → refinement → run/stream/cache), but there is no explicit build-run-verify sequence; the only verification guidance lives in Guardrails ("Use `no-key` examples for deterministic local checks and provider request mapping") rather than as checkpoints inside a workflow. Not 4 because no clearly sequenced procedure with checkpoints exists; not 2 because the progression and guardrail checks are present.

3 / 5

Progressive Disclosure

References to `API.md`, `axir-api.json`, `axir-capabilities.json`, and `examples/` are scattered through "Package Facts" and prose ("Start from the complete programs under `examples/`", "the provider-backed Astra examples under `src/examples/go/generation/`") rather than gathered in a clearly signaled navigation section, and the dense multi-language "Astra Session Work" spec is inlined where a separate reference file belongs. Not 2 because the document has clear section structure and the flow patterns are appropriately inline; not 4 because substantial content that should be separate is inline and references are not presented as well-signaled links.

3 / 5

Total

13

/

20

Passed

Description

78%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: explicitly scoped to a single Go package, with an explicit "Use when" trigger and an enumerated list of the subsystems it covers. The main weakness is that capabilities are presented as topic nouns rather than concrete actions, leaving the skill's function slightly implicit.

DimensionReasoningScore

Specificity

The description enumerates several concrete capability areas anchored to an exact package path ("flows, nodes, program graphs, nested programs, dynamic options, caching, and optimizer components" for `github.com/ax-llm/ax/packages/go`), which exceeds the 1-2 items of a score-3 anchor. It falls short of 5 because it offers only one action verb ("writing") — the capabilities are listed as topics rather than concrete actions like "compose flows, run and stream them, cache outputs".

4 / 5

Completeness

It has an explicit trigger clause ("Use when writing Go code with ... for flows, nodes, ...") and the "for" list conveys scope, so both what and when are present. Not 5 because the "what the skill does" is never stated as an action — the reader must infer its function from the trigger's object list; there is no equivalent of "Compose and run typed LLM workflows".

4 / 5

Trigger Term Quality

Natural terms a user of this package would say are present: "Go code", "flows", "nodes", "caching", plus the exact import path `github.com/ax-llm/ax/packages/go`. Not 5 because common synonyms and product names ("Golang", "Ax", "AxFlow", "agent workflows") are missing; clearly above the generic-keyword anchors of 3.

4 / 5

Distinctiveness Conflict Risk

The description pins to one exact package import path (`github.com/ax-llm/ax/packages/go`) and its specific subsystem vocabulary, giving it a clear niche with distinct triggers and minimal risk of firing for unrelated skills.

5 / 5

Total

17

/

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.