CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

add-dial

Add Dial channel integration — a real phone number for SMS and AI voice calls via the Dial platform (getdial.ai). Native adapter — no Chat SDK bridge.

Quality

80%

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 ./.claude/skills/add-dial/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

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

An exceptionally actionable, well-sequenced setup runbook: every step is an executable command with explicit validation, conditional branching, and failure-mode rationale, plus a thorough troubleshooting section. The two weaknesses are a monolithic single-file layout despite its ~450-line size, and a few passages (the superpowers section in particular) that repeat themselves and could be tightened.

Suggestions

Split the sign-in flow, Channel Info block, and Troubleshooting into reference files under references/ (e.g. references/sign-in.md, references/troubleshooting.md) and link them from the body, keeping SKILL.md as the shorter orchestration overview.

De-duplicate the 'Add phone superpowers' section — it states twice that the nested tool asks which agents may use Dial; state the pipe/echo constraint once and move on.

Tighten the long rationale for excluding the dial-cli container skill (mounting semantics, skills:'all' group behavior) into 2-3 sentences or a footnote-style aside.

DimensionReasoningScore

Conciseness

The body is long but dense with non-obvious, project-specific rationale (why DIAL_CLI_PATH must be absolute, why the SDK was dropped, why the default sender diverges from numbers[0]) — very little explains concepts Claude already knows. A few passages could be trimmed: the container-skill exclusion rationale and the 'Add phone superpowers' section, which explains the agents question twice ('It asks which agents may use Dial' then 'The tool's own document asks which agents may use Dial. Ask it here instead…'). Mostly above anchor 3 but not the lean anchor 5.

4 / 5

Actionability

Every step is a copy-paste-ready command: exact file lists for the branch copy, an append directive for the barrel import, a pinned dependency version (qrcode@1.5.4), `pnpm run build`, the exact vitest invocation, and full shell commands with capture/validate directives (regex validators like ^\+[1-9]\d{6,14}$ and ^\d{6}$). Conditionals (when: signed_in, reuse_choice, inbound_access, has_agents) cover the common branches, including the no-agents and not-signed-in paths.

5 / 5

Workflow Clarity

The sequence is explicit and ordered (Apply 1-6 → sign-in → access choice → restart before pairing, with the reason stated → pairing → optional tool → next steps), with validation checkpoints throughout: build guards the typed calls, the registration test proves the barrel import, capture validators enforce output shapes, and the Troubleshooting section closes the loop ('red means the barrel import drifted, so re-run the Apply steps'). Feedback loops exist for every fragile operation.

5 / 5

Progressive Disclosure

No bundle files exist (no references/, scripts/, or assets/ directories), so everything lives in this one ~450-line SKILL.md. Section headers are clear and cross-skill references (/add-dial-tool, the dial-cli skill, /add-dial-number) are named, but substantial content that could be split out — the full sign-in flow, the Channel Info block, and Troubleshooting — is inlined. That matches anchor 3 ('content that should be separate is inline' with otherwise good structure) better than anchor 4, which expects most content appropriately placed across files.

3 / 5

Total

17

/

20

Passed

Description

65%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 specific, distinctive description that clearly identifies the Dial platform and its two core capabilities, with no conflict risk. Its main weaknesses are the complete absence of a 'Use when...' trigger clause and capability coverage that stops at two actions.

Suggestions

Append an explicit trigger clause, e.g. 'Use when adding a phone/SMS/voice channel, when the user mentions Dial or getdial.ai, or when they ask for a real phone number for their agent.'

Broaden natural keyword coverage with common synonyms a user would say: 'text', 'texting', 'text messages', 'phone calls'.

Drop the implementation note 'Native adapter — no Chat SDK bridge' (meaningful only post-selection) in favor of one more user-facing capability such as owner-phone pairing or inbound access control.

DimensionReasoningScore

Specificity

The description names the domain ("Add Dial channel integration") and 1-2 concrete actions ("a real phone number for SMS and AI voice calls") plus implementation detail ("Native adapter — no Chat SDK bridge"), but coverage is not comprehensive — pairing, inbound/outbound setup, and access control are unmentioned. This matches the anchor 'Names domain and 1-2 concrete actions, but not comprehensive' rather than 4, which requires several listed actions.

3 / 5

Completeness

The 'what' is clear (a real phone number for SMS and AI voice calls via Dial), but there is no 'Use when...' clause or equivalent explicit trigger guidance anywhere — 'when' is only weakly implied by naming the platform. Per the judging guideline, a missing when-clause caps completeness at 3.

3 / 5

Trigger Term Quality

Good natural-keyword coverage: "phone number", "SMS", "AI voice calls", "Dial platform (getdial.ai)" are phrases a user would plausibly say. A few common variants are missing ("text", "texting", "text message", "calls"), so it falls just short of the comprehensive anchor 5.

4 / 5

Distinctiveness Conflict Risk

A clear niche with distinct triggers: 'Dial', 'getdial.ai', 'SMS and AI voice calls', and 'Native adapter — no Chat SDK bridge' pin it to one specific platform and explicitly differentiate it from other channel implementations. Minimal conflict risk with any other skill.

5 / 5

Total

15

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

nanocoai/nanoclaw

Path

.claude/skills/add-dial/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.