CtrlK
BlogDocsLog inGet started
Tessl Logo

ax-cpp-flow

Use when writing C++ code with `axllm` for flows, nodes, program graphs, nested programs, dynamic options, caching, and optimizer components.

50

Quality

63%

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/cpp/skills/ax-cpp-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 core pattern catalog is concrete, code-driven, and well organized, making the skill genuinely usable for writing axllm flows. However, the long tangential 'Astra Session Work' section inflates the token budget and belongs in a separate reference file, and there is no explicit ordered workflow for building and verifying a flow.

Suggestions

Move the 'Astra Session Work' section (and the multi-language child-agent/authorizer registration details) into a separate reference file such as `references/sessions.md`, keeping a two-line pointer in SKILL.md.

Add a short ordered workflow with a validation checkpoint, e.g.: 1. Copy a complete program from `examples/`, 2. Adapt nodes and reads/writes declarations, 3. Verify with a `no-key` example before using provider credentials.

Make code snippets self-contained (define `research`, `audience`, `join`, `critique`, `revise`, `client`, and `fn`, or note explicitly that they come from the referenced examples) so fragments are copy-paste ready.

DimensionReasoningScore

Conciseness

The pattern sections are lean and code-first, but the ~26-line dense "Astra Session Work" prose block (sessions, MCP tools, child agents, cancellation, WebSocket adapters, "As in TypeScript..." repetitions) is noticeably over what SKILL.md needs and could be tightened or split out. Not anchor 4 (the padding exceeds "minor") and not anchor 2 (no general-concept explanations of things Claude already knows).

3 / 5

Actionability

Concrete, real-API C++ snippets throughout (e.g., `axllm::flow(axllm::object({{"id", "docs.coreFlow"}})).execute("draft", draft, ...)`), with minor gaps: fragments reference undefined variables (`research`, `audience`, `join`, `critique`, `client`, `fn`) and complete runnable programs are deferred to `examples/` rather than inlined. Not anchor 5 (not copy-paste runnable standalone), not anchor 3 (the code is genuine API usage, not pseudocode).

4 / 5

Workflow Clarity

Each pattern is individually unambiguous, and scheduling semantics ("Declare reads and writes so the responder waits for the typed route") are well explained, but there is no explicit step sequence for composing a flow; validation exists only implicitly in Guardrails ("Use `no-key` examples for deterministic local checks"). Matches the anchor "sequence present but checkpoints missing or implicit".

3 / 5

Progressive Disclosure

No bundle files exist (only SKILL.md), yet the body references `API.md`, `axir-api.json`, `axir-capabilities.json`, and `examples/` as if available. The dense "Astra Session Work" material and multi-language registration details (`add_child_agent`, `AddChildAgent`, `addChildAgent`, `with_child_agent`) are inline content that belongs in a separate reference file, though section headers are well organized. Matches anchor 3: some structure, content that should be separate is inline.

3 / 5

Total

13

/

20

Passed

Description

52%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.

The description has good natural trigger terms and a distinctive package-specific niche, but it is a "when"-only description: it never states what the skill actually does, capping completeness low. A leading capability clause would fix the main weakness.

Suggestions

Add an explicit "what" clause before "Use when..." stating concrete capabilities, e.g., "Provides C++ flow-construction patterns, node scheduling semantics, and caching setup for the axllm package. Use when writing C++ code with axllm for flows, nodes, nested programs, and caching."

Include natural synonyms users might say — "workflow", "pipeline", "AxFlow" — alongside "flows" and "program graphs" to broaden trigger coverage.

Trim package-internal jargon ("dynamic options", "optimizer components") or pair each with a plainer equivalent so users searching everyday terms still match.

DimensionReasoningScore

Specificity

Names the domain ("writing C++ code with `axllm`") and enumerates specific scope items ("flows, nodes, program graphs, nested programs, dynamic options, caching, and optimizer components"), but states no concrete actions the skill performs. It sits between the domain-only anchor (2) and the action-listing anchor (4).

3 / 5

Completeness

Only the "when" is present ("Use when writing C++ code with `axllm` for flows..."); there is no "what" — the description never states what the skill provides (patterns, API usage, examples). This exactly matches the anchor "only 'when' is present without 'what'".

2 / 5

Trigger Term Quality

"C++ code", "axllm", "flows", "nodes", and "caching" are terms a user of this package would naturally say. Common variations like "workflow", "pipeline", or "AxFlow" are missing, and "program graphs"/"dynamic options" lean toward package jargon, so it does not reach the comprehensive-synonym anchor (5).

4 / 5

Distinctiveness Conflict Risk

The "C++ code with `axllm`" pairing is a clear niche with distinct triggers, but generic terms like "caching" and "optimizer components" create minor overlap risk with other LLM-framework skills, preventing the minimal-conflict anchor (5).

4 / 5

Total

13

/

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.