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.

68

Quality

84%

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

SKILL.md
Quality
Evals
Security

Quality

Content

68%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 exceptionally concise and well-structured with concrete, tool-specific guidance for the Sanity/Linear workflow. Its two real weaknesses are the missing reference.md bundle file — which the content leans on for all templates and IDs — and the absence of validation/verification checkpoints for document creation and other batch/destructive operations.

Suggestions

Ship the referenced reference.md in the bundle (or inline the essential Portable Text template, the GROQ query for reference IDs, and the changeBlock template into SKILL.md) — currently every link in the body points to a nonexistent file.

Add a verification step after create_documents/patch_documents (e.g., re-fetch the draft by _id and confirm the content array is intact) so the workflow has a validate→fix→retry loop for its batch document operations.

Include an explicit post-create error-recovery note for the most common failure the skill itself identifies (invalid JSON in create_documents), such as re-checking brace/bracket balance and retrying before reporting failure.

DimensionReasoningScore

Conciseness

The body is lean and assumes competence: it never explains what Sanity, Linear, Portable Text, or MCP are, and every line carries operational knowledge ("Every block/span needs a unique `_key`", "brace/bracket errors are the most common failure", "MCP cannot upload local files"). It matches anchor 5 — every token earns its place — and is well above anchor 4's 'minor instances of over-explanation'.

5 / 5

Actionability

Concrete guidance throughout: named tools (`create_documents`, `patch_documents` with `insert` `before`/`after`/`replace`), an executable patch-target example (`content[_key=="fd1ce739c172"]`), runtime ID resolution via GROQ, and specific rules (draft-only, unset `publishedAt`). It falls short of anchor 5 because the actual Portable Text templates and GROQ queries are deferred to reference.md — and reference.md is absent from the bundle, so the copy-paste-ready material is not actually reachable.

4 / 5

Workflow Clarity

The numbered checklist (steps 1–7) gives a clear sequence with useful guards ("confirm intent" before the permanent `discard_drafts`, publish only when asked), but there is no validation or verification step after `create_documents` and no validate→fix→retry loop for a workflow built on document/database operations. Per the guideline capping workflow clarity at 3 for destructive/batch operations without validation, this lands on the anchor-3 boundary rather than 4.

3 / 5

Progressive Disclosure

The body is itself well-sectioned and consistently points one level deep to [reference.md](reference.md) with anchors (#fetch-reference-ids, #portable-text-cheat-sheet, #changeblock-template), but reference.md does not exist — there is no references/, scripts/, or assets/ directory in the bundle. Every template, GROQ query, and connection constant the body depends on is therefore unreachable, which is worse than inlining and matches anchor 2's 'minimal structure / broken organization' territory rather than anchor 4's 'references mostly clear'.

2 / 5

Total

14

/

20

Passed

Description

100%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 following the ideal pattern: concrete capabilities plus an explicit 'Use when' trigger clause with natural phrasings. It is specific to the Novu/Sanity/Linear domain, in third person, and free of fluff or over-claims.

DimensionReasoningScore

Specificity

"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" names multiple concrete actions with specific artifacts (changelogPost, changeBlock, Linear releases). Coverage is comprehensive for the skill's scope; anchor 4 ('minor gaps') fits less well since all three authoring modes plus publishing are enumerated.

5 / 5

Completeness

Both questions are explicitly answered: the 'what' (create/publish changelogPost entries, feature posts, Linear-based roundups, changeBlock) and a concrete 'Use when...' clause with multiple trigger phrases. This matches the anchor-5 example pattern almost exactly and clearly exceeds anchor 4 ('when' could be more explicit).

5 / 5

Trigger Term Quality

The 'Use when' clause covers natural user phrasings: "write a changelog entry", "announce a shipped feature on the changelog", "roll up improvements/bug fixes since the last release", "work with Sanity changelog content". Synonym variations (improvements/bug fixes, feature, roundup) are present; file extensions are N/A for this domain, so anchor 5's comprehensive-coverage condition is met.

5 / 5

Distinctiveness Conflict Risk

The niche is tightly scoped to Novu + Sanity + Linear with project-specific terms (Novu website, changelogPost, Linear releases), giving a clear trigger surface with minimal overlap risk against generic writing or CMS skills. Voice is third person ('Create and publish'), so no voice penalty applies.

5 / 5

Total

20

/

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