CtrlK
BlogDocsLog inGet started
Tessl Logo

sanity-changelog

Create and publish Novu changelog entries in Sanity (changelogPost documents), including feature posts, "improvements & fixes" roundups built from Linear releases, and the Changes (changeBlock) component. Use when asked to write a changelog entry, announce a shipped feature on the changelog, roll up improvements/bug fixes since the last release, or work with Sanity changelog content for the Novu website.

64

Quality

78%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

High

Do not use without reviewing

Fix and improve this skill with Tessl

tessl review fix ./.cursor/skills/sanity-changelog/SKILL.md
SKILL.md
Quality
Evals
Security

Quality

Content

63%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 content is well-structured, lean, and action-oriented with a clear sequenced workflow and appropriate guardrails around destructive operations. Its main weaknesses are that the key executable JSON templates are deferred to a reference.md that is missing from the bundle, hurting both actionability and progressive disclosure.

Suggestions

Ship the missing reference.md (or place it under references/) so the Portable Text cheat sheet, changeBlock template, and GROQ snippets are actually reachable — currently every anchored reference is a broken link.

Inline at least one minimal copy-paste-ready Portable Text JSON block (a single h2 + paragraph with _key values) so create_documents can be invoked correctly even without the external reference.

Add an explicit draft-verification feedback loop (e.g. fetch the created draft back and confirm blocks/keys rendered) to lift workflow_clarity from 4 to 5.

DimensionReasoningScore

Conciseness

The body is lean and assumes Claude's competence — it never explains what Sanity, Linear, or a changelog is — with only minor instances that could be trimmed (e.g. 'brace/bracket errors are the most common failure' and the dual checklist-plus-section framing); not a 5 because a few tokens are explanatory rather than strictly necessary.

4 / 5

Actionability

Names concrete MCP tools (create_documents, patch_documents, discard_drafts, publish_documents) and gives a real patch-path example (content[_key=="fd1ce739c172"] with insert before/after/replace), but the core executable artifact — the Portable Text JSON payload with unique _key values — is deferred to reference.md ('with the Portable Text structure from reference.md'), and that file is absent, leaving key details missing.

3 / 5

Workflow Clarity

A clear 7-step sequenced checklist with explicit guardrails for destructive/batch ops ('discard_drafts ... confirm intent', 'Never publish unless explicitly asked', draft-only creation); not a 5 because there is no validate-then-retry feedback loop after draft creation.

4 / 5

Progressive Disclosure

The body is well-sectioned and clearly signals one-level-deep references to reference.md with anchor links (#fetch-reference-ids, #portable-text-cheat-sheet, #changeblock-template), but reference.md and the references/ bundle directory do not exist, so the signaled navigation leads nowhere — a real organization defect.

3 / 5

Total

14

/

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, specific description that clearly states what the skill does and when to invoke it, with concrete natural-language triggers and a distinct Novu/Sanity niche. The only gap is trigger-term breadth (synonyms/extensions), which keeps trigger_term_quality at 4 rather than 5.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'Create and publish Novu changelog entries in Sanity (changelogPost documents)', 'feature posts', 'improvements & fixes roundups built from Linear releases', and 'the Changes (changeBlock) component' — giving comprehensive coverage; not a 4 because no meaningful action gaps remain.

5 / 5

Completeness

Explicitly answers both 'what' (create/publish changelog entries, roundups, changeBlock) and 'when' via a concrete 'Use when asked to write a changelog entry, announce a shipped feature...' clause with multiple trigger phrases.

5 / 5

Trigger Term Quality

Includes natural phrases users would say — 'write a changelog entry', 'announce a shipped feature on the changelog', 'roll up improvements/bug fixes since the last release' — but lacks synonym/file-extension breadth (e.g. no .md or alternate phrasings) that the 5 anchor requires.

4 / 5

Distinctiveness Conflict Risk

Occupies a clear niche keyed to 'Novu changelog entries in Sanity (changelogPost documents)' and 'Linear releases' with distinct triggers, making conflict with other skills minimal.

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.

Validation15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

relative_links

Relative link issues: 6 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.