CtrlK
BlogDocsLog inGet started
Tessl Logo

channel-formatting

Convert Claude's Markdown output to each channel's native text syntax before delivery. Adds zero-dependency formatting for WhatsApp, Telegram, and Slack (marker substitution). Also ships a Signal rich-text helper (parseSignalStyles) used by the Signal skill.

57

Quality

66%

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 ./.claude/skills/channel-formatting/SKILL.md
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.

The body is a concise, actionable, well-sequenced workflow with real validation checkpoints and a feedback loop for merge conflicts. It is held back from top marks only by minor gaps — implicit test-failure retry guidance and a couple of manual reconciliation steps.

DimensionReasoningScore

Conciseness

The body is lean and command-driven — a compact transformation table plus targeted bash/git blocks — and assumes Claude's competence without explaining concepts; only minor phrases like 'no more literal `**asterisks**`' could be trimmed, so it clears the 3 but stops short of the perfectly lean 5.

4 / 5

Actionability

Every phase ships concrete, copy-paste-ready commands (test -f check, git remote add/fetch/merge, npm install/build, vitest run, launchctl/systemctl), with only a couple of guided-manual steps ('reconcile both sides manually', 'edit manually or git checkout'), matching 'mostly executable guidance; minor gaps'.

4 / 5

Workflow Clarity

A clear three-phase sequence (Pre-flight → Apply → Verify) with explicit validation gates ('All 73 tests should pass and the build should be clean before continuing') and a conflict feedback loop (checkout --theirs → add → merge --continue); not quite a 5 because test-failure retry guidance is only implicit.

4 / 5

Progressive Disclosure

Content is well-organized into clearly signaled sections (phases, Signal integration, Removal) in a single self-contained file with no nested references; the Signal integration detail is reasonably inline rather than buried, fitting 'good structure; minor organization gaps' rather than the one-level-deep-reference 5.

4 / 5

Total

16

/

20

Passed

Description

58%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 is specific and distinct, clearly conveying what the skill does across named channels, but it lacks an explicit 'Use when...' trigger clause and leans on technical jargon over natural user phrases. Adding a trigger clause with plain-language synonyms would lift the completeness and trigger-term dimensions.

Suggestions

Append an explicit trigger clause, e.g. 'Use when delivering Claude's responses to WhatsApp, Telegram, Slack, or Signal, or when the user asks to fix raw asterisks/markdown showing up in messages.'

Replace jargon like 'native text syntax' and 'marker substitution' with plain terms users actually say (e.g. 'format messages for each chat app', 'convert bold/italic markers').

Add common synonyms/file extensions or natural phrasings (e.g. 'chat formatting', 'message formatting') to broaden trigger-term coverage.

DimensionReasoningScore

Specificity

Names the domain and several concrete actions — 'Convert Claude's Markdown output to each channel's native text syntax', 'marker substitution', and a 'Signal rich-text helper (parseSignalStyles)' — with only minor coverage gaps, fitting the 'lists several specific actions' anchor rather than the comprehensive 5.

4 / 5

Completeness

The 'what' is clear (channel-aware conversion plus the Signal helper), but there is no explicit 'Use when...' trigger clause — only a weakly implied 'before delivery' — which per the judging guidelines caps completeness at 3.

3 / 5

Trigger Term Quality

Natural channel names (WhatsApp, Telegram, Slack, Signal) and 'Markdown'/'formatting' are present, but the phrasing leans on technical jargon ('native text syntax', 'marker substitution', 'rich-text helper') and omits common synonyms, so it sits at 'some relevant keywords but missing variations' rather than the fuller 4.

3 / 5

Distinctiveness Conflict Risk

It occupies a clear niche (per-channel outbound formatting for named platforms) with minimal conflict risk; the only overlap is the explicitly-scoped Signal helper 'used by the Signal skill', placing it just below the minimal-risk 5.

4 / 5

Total

14

/

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 1 missing

Warning

Total

15

/

16

Passed

Repository
jbaruch/nanoclaw-telegram
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.