CtrlK
BlogDocsLog inGet started
Tessl Logo

write-release-notes

Generate engaging, high-energy release notes for a given version tag. Fetches the release from GitHub, retrieves every linked PR's title and description, then synthesizes all changes into a polished, user-facing release note with an enthusiastic tone. Use when the user asks to write, generate, or create release notes for a version (e.g. "write release notes for v1.32.0", "generate release notes for the latest release", "create changelog for v2.0").

76

Quality

95%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

88%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 strong, highly actionable single-purpose skill: the workflow is clearly sequenced with a genuine validation feedback loop, and both bundled scripts are real and correctly described. Its weaknesses are modest redundancy in the tone/jargon guidance and an inline output template that could live in a reference file to slim the main file.

Suggestions

Merge the duplicated guidance: combine "Skip internal jargon: Translate crate names and internal concepts into plain language" into "No implementation details" (they forbid the same thing), and consolidate the repeated enthusiastic/informative tone directives from sections 3 and 4 into one list.

Move the ~35-line fill-in output template (section 3) into a bundled reference file (e.g. references/release-notes-template.md) and reference it from the workflow step, keeping SKILL.md as a lean overview.

Mention that validate-release-notes.sh also accepts a file argument, since piping a markdown document with quotes and backticks through `echo "<release notes>"` is shell-fragile.

DimensionReasoningScore

Conciseness

The body is efficient and never explains concepts Claude already knows, but there is redundant guidance: "Skip internal jargon: Translate crate names..." substantially duplicates "No implementation details: Do not mention internal module names, struct names, function names, crate names", and the enthusiastic/informative tone point is repeated across sections 3 and 4 ("informative and enthusiastic", "Be informative, not marketty", "Enthusiasm through substance"). These are minor trimmable instances rather than padding.

4 / 5

Actionability

Guidance is fully executable: copy-paste-ready bash commands with argument semantics explained ("[owner/repo]: Optional. Defaults to the current repo detected via gh repo view"), a complete fill-in markdown template for the output, a concrete prioritized trim procedure for validation failures, and a fallback `gh api ... compare` command for releases without linked PRs. The documented script outputs (RELEASE METADATA / PR DETAILS sections, PR JSON fields) tell Claude exactly what to parse.

5 / 5

Workflow Clarity

Seven clearly sequenced steps with an explicit validation checkpoint — "run the bundled validation script to confirm the output is under 2000 characters" — and a feedback loop ("If it prints FAIL, trim the draft and re-run until it prints PASS") with a prioritized trim order. Error paths are also handled ("Skip PRs with error: 'not found'" and the no-linked-PRs fallback), matching the top anchor's validate-fix-retry pattern.

5 / 5

Progressive Disclosure

The body is well-organized with clearly signaled, real bundle scripts (both `scripts/fetch-release-data.sh` and `scripts/validate-release-notes.sh` exist and behave as described), but at ~125 lines it exceeds the simple-skill exemption and inlines content — the ~35-line output template and the tone/style guidelines — that would keep the SKILL.md overview leaner in a separate reference file. Structure is good with only minor organization gaps, so this sits between the 4 anchor and the 5 anchor rather than at either.

4 / 5

Total

18

/

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.

This is an exemplary description: it states concrete capabilities in third person and pairs them with an explicit 'Use when...' clause containing multiple natural trigger phrasings and versioned examples. The only nit is the mildly promotional adjectives ("engaging, high-energy"), which do not obscure any capability claims.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Fetches the release from GitHub, retrieves every linked PR's title and description, then synthesizes all changes into a polished, user-facing release note" — covering the full capability comprehensively for its domain. It stays in third person, so no voice penalty applies.

5 / 5

Completeness

It explicitly answers both what (fetch release, retrieve PR titles/descriptions, synthesize into a release note) and when ("Use when the user asks to write, generate, or create release notes for a version" with example phrasings), matching the top anchor.

5 / 5

Trigger Term Quality

Natural trigger phrases are comprehensively covered: "write, generate, or create release notes", "changelog", and concrete examples like "write release notes for v1.32.0" and "generate release notes for the latest release". No common variation or synonym is missing.

5 / 5

Distinctiveness Conflict Risk

A clear niche — GitHub-release PR synthesis into user-facing release notes — with distinct triggers (version tags, changelog requests). Overlap with commit-message or general writing skills is minimal.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
tailcallhq/forgecode
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.