CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

create-client-tool

Scaffolds an AtlasTool for an already-approved in-app useAtlasChat UI. For EOS sidebar tools, use integrate-fusion-agent (createAgentAction) instead. Triggers: AtlasTool, useAtlasChat tool, in-app atlas client tool.

64

Quality

81%

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

SKILL.md
Quality
Evals
Security

Quality

Content

75%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 lean, well-sequenced scaffolding guide with near copy-paste-ready code for defining and wiring an AtlasTool. The main improvements are adding a verification step so the author confirms the tool actually fires in-app, and trimming placeholder/trivial content that the reader must fill in or already knows.

Suggestions

Add a final verification step (e.g., run the app, send a chat message that should invoke the tool, and confirm the execute() result appears in message.toolCalls) so the workflow ends with a checkpoint rather than at code placement.

Trim the trivial rows of the TypeBox quick reference table (String/Number/Boolean) and keep only the non-obvious ones (Union-as-enum, Optional, path-adjustment note) to cut tokens.

Complete the render example by defining or briefly labeling MyToolOutput/MyToolDetails so the Step 4 snippet is executable as written instead of relying on placeholders.

DimensionReasoningScore

Conciseness

The body is efficient — internal-library background and code comments carry real information — but the TypeBox quick reference table includes trivial rows ("Type.String() | string", "Type.Number() | number") that restate knowledge Claude already has. That is minor over-explanation that could be trimmed (anchor 4), not the several padded sections of anchor 2-3.

4 / 5

Actionability

The tool-definition example is concrete TypeScript with imports, and the wiring example shows the exact insertion point. Minor gaps remain: `MyToolOutput`/`MyToolDetails` are undefined placeholders and snippets contain ellipses, so it is mostly executable with minor gaps (anchor 4) rather than fully copy-paste ready (anchor 5).

4 / 5

Workflow Clarity

A clear 4-step sequence (understand codebase → define tool → wire into useAtlasChat → render results) with the vendoring prerequisite stated up front. No verification checkpoint (e.g., run the app and invoke the tool in a chat to confirm wiring), so it sits at anchor 4's 'most checkpoints present, minor validation gaps' rather than 5; the operation is non-destructive so the cap-at-3 rule does not apply.

4 / 5

Progressive Disclosure

Well-organized sections (Background, Steps 1-4, TypeBox reference) with self-contained content and one-level-deep cross-skill pointers to integrate-atlas-chat / integrate-fusion-agent; no bundle files exist to reference. The body runs ~100 lines, so the under-50-line auto-5 exception does not apply — good structure with minor organization gaps fits anchor 4.

4 / 5

Total

16

/

20

Passed

Description

82%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 tight, third-person description that states what the skill does, when it applies via an explicit Triggers clause, and when to use a sibling skill instead. Its only weakness is that it lists a single concrete action rather than enumerating the capabilities it covers.

DimensionReasoningScore

Specificity

"Scaffolds an AtlasTool for an already-approved in-app useAtlasChat UI" names the domain and one concrete action, matching the 'names domain and 1-2 concrete actions, but not comprehensive' anchor. It does not enumerate several specific capabilities (define, wire, render), so it falls below anchor 4, but it is well above the minimal/generic anchor 2.

3 / 5

Completeness

It explicitly answers both: what ("Scaffolds an AtlasTool for an already-approved in-app useAtlasChat UI") and when (an explicit "Triggers:" clause with concrete trigger phrases), plus a boundary condition on when to use a different skill — a clear anchor 5.

5 / 5

Trigger Term Quality

"Triggers: AtlasTool, useAtlasChat tool, in-app atlas client tool" provides good keyword coverage with one natural-language variation, but misses common synonyms a user might say (e.g., plain "client tool", "browser tool"), fitting anchor 4 rather than the comprehensive synonym coverage of anchor 5.

4 / 5

Distinctiveness Conflict Risk

It occupies a clear niche via unique API names (AtlasTool, useAtlasChat) and explicitly disambiguates against the sibling skill ("For EOS sidebar tools, use integrate-fusion-agent (createAgentAction) instead"), giving minimal conflict risk.

5 / 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

allowed_tools_field

'allowed-tools' contains unusual tool name(s)

Warning

metadata_version

'metadata.version' is missing

Warning

Total

14

/

16

Passed

Repository

cognitedata/builder-skills

Path

skills/create-client-tool/SKILL.md

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.