CtrlK
BlogDocsLog inGet started
Tessl Logo

nv-endpoint-routed-tool-provider

Build or refactor a Tool-channel provider (PagerDuty, Opsgenie, future incident/alerting tools) to be endpoint-routed: per-subscriber secrets encrypted on the channel endpoint resource, a stateless provider that resolves routing from channelData at send time, SKIPPED steps when no endpoint exists, and the full API/worker/dashboard/docs/playground surface. Starts with a mandatory provider-docs discovery gate. Use when refactoring Opsgenie to the PagerDuty model, adding a new tool provider, or touching pagerduty_service channel endpoints.

70

Quality

86%

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

81%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 an unusually dense, well-sequenced engineering playbook: lean prose, exact file paths, gated workflow, executable verification commands, and a gotchas section full of non-obvious operational knowledge. Its one significant defect is structural: it twice points to reference.md for the per-file code patterns, and that file is missing from the bundle, so the detailed guidance the skill promises cannot be loaded.

Suggestions

Add the missing reference.md (or a references/ file) containing the deferred per-file code patterns the body promises: index definition, provider skeleton, usecase transaction shape, DTO union, worker extraction, and playground helper contract.

Alternatively, inline minimal skeletons for the most critical patterns (provider and create-usecase) in the body and keep the rest in the reference, so the skill remains usable if the bundle is incomplete.

The 'Opsgenie refactor note' and 'Gotchas' sections are self-contained knowledge blocks; consider moving the longer gotcha details into the reference file to slim the main body.

DimensionReasoningScore

Conciseness

Every line carries project-specific information Claude could not know elsewhere: file paths ("packages/shared/src/types/channel-endpoint.ts"), invariant specifics ("32-char key regex", "1024-char summary limit", "STORE_ENCRYPTION_KEY (32 chars)"), and hard-won gotchas. There is zero padding and no explanation of concepts Claude already knows; the document assumes the reader's competence throughout.

5 / 5

Actionability

The checklist names exact files and transformations, and the build/test section gives copy-paste-ready commands (pnpm --filter builds, the mocha e2e invocation with full flags). It falls short of 5 because key executable artifacts — "provider skeleton", "DTO union", "usecase transaction shape", "worker extraction" — are delegated to reference.md rather than shown, and several items remain as `<provider>` placeholders.

4 / 5

Workflow Clarity

Sequence is explicit and gated: a mandatory discovery gate with halt/ask/proceed branches, then a slice-ordered checklist ("slice order matters", "each slice must build before the next"), then a typed build order with the reason it matters ("skipping a step yields phantom TS errors"), followed by unit tests and e2e with named scenarios. Validation checkpoints (vitest, mocha e2e, SKIPPED-verification spec) and feedback loops are all explicit.

5 / 5

Progressive Disclosure

The body correctly defers per-file code patterns to a one-level-deep, clearly signaled reference ("see [reference.md](reference.md)" appears twice), but that file does not exist in the bundle — no references/, scripts/, or assets/ directory is present. The deferred content (provider skeleton, DTO union, playground helper contract) is therefore unreachable, which is the same failure mode as the broken/buried-reference anchor.

2 / 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: it comprehensively states what the skill does in concrete, third-person terms and gives explicit, specific "Use when" triggers. The only weakness is trigger phrasing that favors internal terminology over the natural language a user might use.

DimensionReasoningScore

Specificity

The description enumerates multiple concrete capabilities: "per-subscriber secrets encrypted on the channel endpoint resource", "a stateless provider that resolves routing from channelData at send time", "SKIPPED steps when no endpoint exists", and "the full API/worker/dashboard/docs/playground surface", plus "a mandatory provider-docs discovery gate". Every claim is a specific action or behavior, matching the comprehensive-coverage anchor.

5 / 5

Completeness

It explicitly answers both questions: the what is the concrete capability list above, and the when is an explicit "Use when refactoring Opsgenie to the PagerDuty model, adding a new tool provider, or touching pagerduty_service channel endpoints" with three concrete trigger phrases. This matches the 5 anchor.

5 / 5

Trigger Term Quality

Good natural-term coverage: "PagerDuty", "Opsgenie", "incident/alerting tools", "adding a new tool provider", "refactoring Opsgenie", "touching pagerduty_service channel endpoints" — phrases a user working in this codebase would plausibly say. It falls short of the 5 anchor because coverage leans on internal jargon ("Tool-channel", "endpoint-routed", "channel endpoints") and misses common layperson synonyms like "notification integration".

4 / 5

Distinctiveness Conflict Risk

It carves out a clear niche (endpoint-routed tool providers in a specific codebase) with distinct triggers naming specific vendors and even the internal identifier `pagerduty_service`. Virtually no other skill would fire on these phrases, matching the clear-niche anchor.

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: 2 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.