CtrlK
BlogDocsLog inGet started
Tessl Logo

add-channel-connect-button

Build a new channel Connect button (e.g. WhatsApp, Discord, LINE) in @novu/js and @novu/react following the existing SlackConnectButton, MsTeamsConnectButton, and TelegramConnectButton pattern. Use when adding connect/disconnect UI for a new chat channel/provider to the SDK — covering the SolidJS core component, the React wrapper, the channelConnections (OAuth) vs channelEndpoints (deep-link) data layer, the component registry, and package exports.

69

Quality

85%

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

78%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, dense, highly actionable skill body with an excellent decision table and an unusually precise behavior contract. Its main defect is that the referenced templates file (reference.md) is missing from the bundle, which undermines both the actionability of the checklist and the skill's only progressive-disclosure path, and the verify section lacks error-recovery guidance.

Suggestions

Create the missing reference file (e.g. references/reference.md) containing the full component templates the body links to, or remove/replace the dangling "Full templates: see reference.md" link — currently the promised templates are unreachable.

Add an error-recovery feedback loop to the Build & verify section (e.g. what to check and fix when `pnpm build`, type-check, or the manual connect/disconnect test fails) to close the gap between the checklist and validation.

Inline one small copy-paste-ready skeleton (the base props interface plus the Renderer.tsx registry entry) so the core steps remain executable even without the external templates file.

DimensionReasoningScore

Conciseness

Every section carries dense repo-specific information with zero padding: the connection-model decision table, exact polling constants ("2500ms, 120_000ms timeout"), and gotchas like "The core is SolidJS, not React: signals over hooks" (a repo-specific framing, not a general tutorial). Nothing explains concepts Claude already knows; every token earns its place, matching anchor 5.

5 / 5

Actionability

Guidance is highly executable — exact file paths ("packages/js/src/ui/components/Renderer.tsx"), exact SDK calls ("generateConnectOAuthUrl()", "link({ integrationIdentifier })"), named copy-sources, and concrete verify commands ("pnpm build"). However, "Full templates: see [reference.md](reference.md)" points to a file that does not exist in the bundle, so the promised copy-paste-ready templates are unreachable — a concrete gap that keeps this between anchors 4 and 5, noticeably below anchor 5's "copy-paste ready" bar.

4 / 5

Workflow Clarity

The sequence is explicit and well-ordered: "Step 0 — Pick the connection model (do this first)" drives all later choices, followed by a checkbox file checklist and a Build & verify section with real validation (pnpm build, type-check + lint, manual playground test). What's missing is any error-recovery feedback loop (e.g. what to do when the build or type-check fails), which distinguishes anchor 4 from anchor 5's "feedback loops for error recovery".

4 / 5

Progressive Disclosure

Scored against the actual bundle structure as the rubric instructs: the body is well-sectioned and appropriately keeps the decision table and behavior contract inline, but its single external reference — "Full templates: see [reference.md](reference.md)" — resolves to a nonexistent file (no references/ directory exists in the bundle). The one disclosure path the skill advertises is broken, which is a worse defect than anchor 4's "minor organization gaps", landing this between anchors 3 and 4.

3 / 5

Total

16

/

20

Passed

Description

92%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 that explicitly states both what the skill builds and when to use it, with highly specific technical scope and named exemplar channels. The only weakness is a handful of missing natural trigger phrasings (e.g. "integration", "add a channel") that users might naturally say.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete actions with comprehensive coverage: "Build a new channel Connect button", "covering the SolidJS core component, the React wrapper, the channelConnections (OAuth) vs channelEndpoints (deep-link) data layer, the component registry, and package exports". It lists specific concrete deliverables across every layer of the task with no coverage gaps, matching the anchor-5 example rather than the minor-gaps profile of anchor 4.

5 / 5

Completeness

Both questions are answered explicitly: the "what" ("Build a new channel Connect button... covering the SolidJS core component, the React wrapper... the component registry, and package exports") and the "when" ("Use when adding connect/disconnect UI for a new chat channel/provider to the SDK"). Written in third person with concrete trigger phrases, matching anchor 5 exactly.

5 / 5

Trigger Term Quality

Good natural keyword coverage: "Connect button", "connect/disconnect UI", "chat channel/provider", OAuth, deep-link, plus concrete channel names (WhatsApp, Discord, LINE, Slack, MsTeams, Telegram) and package names (@novu/js, @novu/react). A few natural user phrasings are still missing (e.g. "integration", "add a channel", "Novu"), which fits anchor 4 rather than the comprehensive synonym coverage of anchor 5.

4 / 5

Distinctiveness Conflict Risk

The description names the product (@novu/js, @novu/react), the exact component pattern (SlackConnectButton, MsTeamsConnectButton, TelegramConnectButton), and a tightly scoped task. It occupies a clear niche with distinct triggers and minimal risk of firing for unrelated skills.

5 / 5

Total

19

/

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

relative_links

Relative link issues: 1 missing

Warning

Total

15

/

16

Passed

Repository
novuhq/novu
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.