Agent Skillsnovuhq/novu › sanity-changelog

sanity-changelog

GitHub

用于在 Sanity 中创建和发布 Novu 版本更新日志条目,包括功能介绍和改进修复汇总。通过集成 Linear 和 Sanity MCP,自动解析引用、撰写内容并生成草稿文档。

.cursor/skills/sanity-changelog/SKILL.md novuhq/novu

Trigger Scenarios

要求撰写版本更新日志 发布已上线的功能公告 汇总自上次发布以来的改进与修复 处理 Novu 网站的 Sanity 更新日志内容

Install

npx skills add novuhq/novu --skill sanity-changelog -g -y
More Options

Use without installing

npx skills use novuhq/novu@sanity-changelog

指定 Agent (Claude Code)

npx skills add novuhq/novu --skill sanity-changelog -a claude-code -g -y

安装 repo 全部 skill

npx skills add novuhq/novu --all -g -y

预览 repo 内 skill

npx skills add novuhq/novu --list

SKILL.md

Frontmatter
{
    "name": "sanity-changelog",
    "description": "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."
}

Novu Sanity Changelog

Authoring workflow for Novu changelog entries. Content lives in Sanity (changelogPost), reviewed from Linear releases. Uses the Sanity MCP (plugin-sanity-Sanity) and Linear MCP (plugin-linear-linear).

Connection constants and all templates/IDs are in reference.md — read it before creating or patching documents.

Target

  • Sanity project w2rl2099 ("Novu Website"), dataset production, workspace default.
  • Document type: changelogPost.
  • Always create as drafts (leave publishedAt unset). Never publish unless explicitly asked.

Workflow

- [ ] 1. Load reference.md; confirm project/dataset
- [ ] 2. Resolve author + category (and tag) reference IDs via GROQ (don't hardcode)
- [ ] 3. Gather source material (feature: explore codebase / screenshot; roundup: Linear releases)
- [ ] 4. Draft content in Novu changelog voice
- [ ] 5. create_documents (draft) — text first
- [ ] 6. Handle images (manual Studio upload — MCP cannot upload local files)
- [ ] 7. Report draft IDs + Studio link; publish only if asked

1–2. Setup and references

References (authors, categories, tag) are documents — resolve their _ids at runtime, never assume. Run the GROQ in reference.md. Pick the author = the person shipping/announcing, plus 1–2 categories (e.g. Dashboard + New Feature, or Improvement + Bug Fix).

3. Source material

  • Feature entry: understand the feature accurately before writing. For dashboard/SDK features, explore the relevant apps/ or packages/ code (or delegate to the explore subagent) so copy matches real behavior — don't over-promise from a mockup.
  • Improvements & fixes roundup: review Linear releases since the last published changelog. See reference.md. Filter to customer-relevant items only; exclude dependency/CVE bumps, internal refactors, test/CI, and WIP scaffolding.

4. Voice

  • Benefit-oriented and concrete; active voice; short paragraphs.
  • Feature posts: intro paragraph → h2 sections → optional codeBlock → closing line with a docs link.
  • Roundup / change items: bold lead-in label (area or feature) + em dash + one clear sentence. No NV-xxxx IDs in public copy. Group by area.
  • Match the tone of recent posts (query the latest few — see reference).

5. Create

Use Sanity MCP create_documents (draft-only — see reference.md) with the Portable Text structure from reference.md. Every block/span needs a unique _key. Keep create_documents JSON valid — brace/bracket errors are the most common failure.

6. Images (known limitation)

The Sanity MCP cannot upload a local imagegenerate_image only creates AI images. To attach a real screenshot:

  • Have the user drop it into the Cover Image field (or an inline image block) in Studio, OR
  • If a Sanity write token is provided, upload via the assets HTTP API and set the cover / an image block by asset._ref.

Studio: open the changelogPost in the deployed Sanity Studio for the default workspace.

The Changes component (changeBlock)

For an "improvements & fixes" section — standalone or appended to a feature post — use the changeBlock object (type: "improvements" | "fixes", items[] with portable-text text and optional tag reference). Template in reference.md. Leave tag off unless a listed tag clearly fits.

Editing existing drafts

  • Patch with patch_documents using insert (before / after / replace) targeting array items by _key, e.g. content[_key=="fd1ce739c172"]. This preserves the user's other edits (uploaded images, author, caption, publishedAt).
  • Remove a redundant draft with discard_drafts (permanent for never-published drafts — confirm intent).
  • Publish with publish_documents only when explicitly requested.

Version History

  • 56a8a16 Current 2026-08-29 05:10

Same Skill Collection

.agents/skills/email-best-practices/SKILL.md
.agents/skills/frontend-design/SKILL.md
.agents/skills/linear-release-setup/SKILL.md
.agents/skills/react-email/SKILL.md
.agents/skills/testerarmy-cli/SKILL.md
.claude/skills/better-auth-best-practices/SKILL.md
.cursor/skills/add-channel-connect-button/SKILL.md
.cursor/skills/add-channel-setup-guide/SKILL.md
.cursor/skills/address-pr-review/SKILL.md
.cursor/skills/better-auth-best-practices/SKILL.md
.cursor/skills/ink-tui/SKILL.md
.cursor/skills/novu-prepare-pr/SKILL.md
.cursor/skills/nv-implement/SKILL.md
.cursor/skills/nv-park-and-review/SKILL.md
.cursor/skills/nv-worktree-cleanup/SKILL.md
.cursor/skills/nv-worktree-commands/SKILL.md
.cursor/skills/nv-worktree-create/SKILL.md
.cursor/skills/run-api-e2e-tests/SKILL.md
.cursor/skills/triage-agent-eval-failures/SKILL.md
docs/.mintlify/skills/dashboard-workflows/SKILL.md
docs/.mintlify/skills/manage-preferences/SKILL.md
docs/.mintlify/skills/manage-subscribers/SKILL.md
docs/.mintlify/skills/trigger-notification/SKILL.md
.agents/skills/figma-use/SKILL.md
.cursor/skills/add-channel-whats-next-onboarding/SKILL.md
.cursor/skills/nv-endpoint-routed-tool-provider/SKILL.md
docs/.mintlify/skills/design-workflow/SKILL.md
docs/.mintlify/skills/framework-integration/SKILL.md
docs/.mintlify/skills/inbox-integration/SKILL.md

Metadata

Files
0
Version
56a8a16
Hash
6eaf3e1d
Indexed
2026-08-29 05:10

Accueil - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-31 20:39
浙ICP备14020137号-1 $Carte des visiteurs$