Skip to content
cccskills
FreePublished on GitHub

navop-release-notes

Prepare and review bilingual Chinese and English release notes for Navop. Maintain `CHANGELOG.md` as the source of truth, then check that tagged entries provide consistent content for GitHub Releases and the R2 updater manifest when a release is published or synchronized.

OriginalShow the original description

Use when working in the Navop repository on CHANGELOG.md, version-tag preparation, GitHub Releases, or R2 updater release notes, especially when bilingual Chinese and English notes must be generated, reviewed, synchronized, published, or verified.

feigeCode/navop1,941 stars(GitHub 1,941 + cccskills 0)
Works withGitHub

Run score Not tested

See how to install

Good for

  • Drafting bilingual notes for a Navop version
  • Reviewing a CHANGELOG.md release entry
  • Checking release notes before creating a version tag
  • Synchronizing an existing GitHub Release from the changelog

Files included (2)

  • SKILL.md9.4 KB
  • agents/openai.yaml291 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Navop Release Notes

Overview

Maintain Navop's repository-root CHANGELOG.md as the single source of truth for user-facing release notes. Generate a bilingual entry before creating the version tag. The Release workflows extract that tagged entry to set both the GitHub Release body and the R2 updater manifest's release_notes.

Do not treat GitHub or R2 as the primary editing surface. For a normal release, update and review CHANGELOG.md, commit it, and only then create the tag. Only edit an existing GitHub Release directly when the user explicitly asks for a manual synchronization or repair.

Required Context

Work from the Navop repo root and confirm the remote points to feigeCode/navop:

rtk git status --short --branch
rtk git remote -v
rtk git tag --sort=-creatordate
rtk gh release list --limit 8

Confirm all four release inputs:

  • Target version tag, for example v0.10.1.
  • Previous version tag, for example v0.10.0.
  • Source ref containing the release changes: normally HEAD before tagging, or the target tag after it exists.
  • ISO release date, for example 2026-08-01.

If the user names versions, use those exact versions. Otherwise infer the previous tag from the newest stable version tag, but do not invent the target version. Never create a tag, commit, push, or publish unless the user explicitly requested that operation.

Before writing notes, inspect recent Release style. Read the target Release only if it already exists:

rtk gh release view <previous-tag> --json tagName,name,body,publishedAt,url
rtk gh release view <older-tag> --json tagName,name,body,publishedAt,url
rtk gh release view <target-tag> --json tagName,name,body,publishedAt,url # existing release/repair only

If Navop has no established Release style yet, use this bilingual shape. Entries carry no ## 中文 / ## English language headings; each entry must include the CNB mirror download line:

### 更新内容

- ...

### 修复与优化

- ...

国内下载:如果 GitHub 下载较慢,可从 [CNB 镜像](https://cnb.cool/navop-dev/navop/-/releases/tag/<target-tag>) 下载桌面端安装包

---

### What's New

- ...

### Fixes and Improvements

- ...

**Full Changelog**: https://github.com/feigeCode/navop/compare/<previous-tag>...<target-tag>

For larger releases, add short overview paragraphs and extra sections only when prior style or commit volume justifies it.

Generate Notes

Read commits and changed files:

TARGET_REF=HEAD # or the existing target tag
rtk git log --reverse --format='%H%n%s%n%b%n---END---' <previous-tag>.."$TARGET_REF"
rtk git diff --stat <previous-tag>.."$TARGET_REF"
rtk git diff --name-status <previous-tag>.."$TARGET_REF"

For unclear commits, inspect targeted diffs:

rtk git show --stat --oneline --find-renames <commit>
rtk git show --format=medium --find-renames <commit> -- <path>

Summarize user-facing behavior, not implementation trivia. Use categories:

  • Chinese 更新内容: features, UX improvements, performance, workflow improvements.
  • Chinese 修复与优化: bug fixes, compatibility, stability, maintenance with user impact.
  • English What's New: faithful English version of 更新内容.
  • English Fixes and Improvements: faithful English version of 修复与优化.

Include maintenance bullets only when visible in commits and useful to release readers. Keep internal refactors out unless they explain a visible behavior change.

Prepare The Changelog Entry

Save the generated body to a temporary Markdown file first. Prefer /private/tmp on this machine:

NOTES=/private/tmp/navop-<target-tag>-release-notes.md

Create the file with normal editing tools, then review it:

rtk sed -n '1,240p' /private/tmp/navop-<target-tag>-release-notes.md

The notes file is incomplete unless every one of these items is present. Check each one before continuing:

  • At least one Chinese content section (### 更新内容 or ### 修复与优化)
  • At least one English content section (### What's New or ### Fixes and Improvements)
  • The CNB mirror download line, using the exact target tag (hard requirement, easy to forget):
    国内下载:如果 GitHub 下载较慢,可从 [CNB 镜像](https://cnb.cool/navop-dev/navop/-/releases/tag/<target-tag>) 下载桌面端安装包
    
  • The final compare link must use three dots:
**Full Changelog**: https://github.com/feigeCode/navop/compare/<previous-tag>...<target-tag>

Run grep -F "cnb.cool/navop-dev/navop/-/releases/tag/<target-tag>" "$NOTES" and fail the entry if it returns nothing.

**Full Changelog**: https://github.com/feigeCode/navop/compare/<previous-tag>...<target-tag>

Upsert the reviewed body into CHANGELOG.md:

python3 script/changelog.py upsert \
  --tag <target-tag> \
  --date <YYYY-MM-DD> \
  --notes-file "$NOTES" \
  --changelog CHANGELOG.md

The tool inserts the newest version after <!-- NAVOP_RELEASES -->, preserves older entries, and replaces an existing target entry idempotently.

Extract it back before approving the entry:

EXTRACTED=/private/tmp/navop-<target-tag>-release-notes-from-changelog.md
python3 script/changelog.py extract \
  --tag <target-tag> \
  --changelog CHANGELOG.md \
  --output "$EXTRACTED"

diff -u "$NOTES" "$EXTRACTED"
rtk git diff -- CHANGELOG.md

The extracted file must match the generated body. Small newline-only differences can be normalized, but content, headings, ordering, and compare URL must be identical.

Commit the reviewed changelog before tagging. script/release-tag.sh and script/bump-version.sh validate the target entry and fail before tagging if it is missing or malformed.

Workflow Publishing

For normal releases, do not run gh release edit yourself:

  1. The Release workflow checks out the requested tag.
  2. script/changelog.py extract produces the GitHub Release body.
  3. The same extracted Markdown is added to R2 updates/latest.json as release_notes.
  4. The application renders either GitHub's Release body or R2's release_notes, depending on the selected update source.

Tags older than the changelog infrastructure are legacy-only. Repair workflows may preserve an already-existing GitHub Release body, but they must not create a new changelog-less Release.

Manual Synchronization

Only when explicitly asked to synchronize an existing GitHub Release, extract from CHANGELOG.md first and use that file:

EXTRACTED=/private/tmp/navop-<target-tag>-release-notes-from-changelog.md
python3 script/changelog.py extract \
  --tag <target-tag> \
  --changelog CHANGELOG.md \
  --output "$EXTRACTED"

rtk gh release edit <target-tag> \
  --title "Navop <target-tag>" \
  --notes-file "$EXTRACTED"

Do not compose a different body directly in GitHub. If the desired text changes, update CHANGELOG.md first.

Verify

Always validate the local entry:

python3 script/changelog.py validate \
  --tag <target-tag> \
  --changelog CHANGELOG.md

If a GitHub Release was published or synchronized, run a fresh read:

rtk gh release view <target-tag> --json tagName,name,body,publishedAt,url

Verify:

  • tagName is the intended target tag.
  • body contains the Chinese 更新内容 and English What's New sections, the CNB mirror download line, and the expected compare URL.
  • The visible content matches the file extracted from CHANGELOG.md.

If R2 was published, read its public updater manifest and verify:

  • version matches the target tag without the leading v.
  • release_notes contains the same Chinese and English Markdown.
  • Download URLs and checksums remain present.

Also check the working tree so unrelated local edits are not mistaken for release-note work:

rtk git status --short --branch

Report the changed changelog entry, whether it was committed/tagged/published, and the verification result. Never claim GitHub or R2 was updated unless a fresh remote read confirms it.

Common Mistakes

MistakeCorrect Action
Using only Chinese notesPublish matching Chinese and English sections.
Omitting the CNB mirror download lineEvery entry must include the 国内下载 / CNB mirror line pointing at the exact target tag; grep the notes file for it before continuing.
Creating the tag before the changelogGenerate, review, and commit the target CHANGELOG.md entry first.
Editing GitHub and changelog separatelyTreat CHANGELOG.md as authoritative and extract the GitHub body from it.
Omitting R2 notesConfirm latest.json.release_notes is populated from the same extracted entry.
Assuming legacy repository detailsConfirm the remote is feigeCode/navop and use Navop URLs, titles, and temp-file names.
Comparing the wrong tagsConfirm newest two tags or use user-specified tags before writing.
Listing raw commitsGroup commits into release-reader categories.
Replacing a legacy Release accidentallyOnly use the legacy fallback for an already-existing pre-changelog Release.
Claiming saved without verificationValidate locally and re-read each remote destination that was actually published.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Implement and debug onetcli connection importers packaged as WebAssembly components. The skill covers parsing application settings, manifests and packaging, host integration, local visibility, password handling, and import preview issues.

  • Adding an importer for a database application
  • Debugging a WASM importer that is not listed
  • Packaging and installing a composite extension
feigeCode/navop1.9KUpdated Oct 26, 2026

gpui

FreeSummary

Use this skill while building or maintaining GPUI applications. It provides focused references for framework APIs and patterns, including keybindings, async tasks, state, events, layout, focus, custom elements, and tests.

  • Finding the right GPUI API for a feature
  • Implementing keyboard actions and focus navigation
  • Managing entities, events, or global state
feigeCode/navop1.9KUpdated Oct 26, 2026

gpui-component

FreeSummary

Build GPUI interfaces with gpui-component by choosing suitable controls, handling component state and themes, and following its design and coding guides. The references also cover layout, interaction states, interface copy, and application structure.

  • Choosing a component for a UI need
  • Setting up gpui-component in a GPUI app
  • Handling component state and theming
feigeCode/navop1.9KUpdated Oct 26, 2026

Design, implement, review, or debug onetcli IPC database drivers. Work from the `driver.json` manifest and JSON-RPC protocol contract through schema metadata, SQL-building methods, import and export, tests, and packaging, with guidance that applies across implementation languages.

  • Creating or reviewing an onetcli IPC database driver
  • Defining driver.json methods and capabilities
  • Implementing schema metadata and DDL builders
feigeCode/navop1.9KUpdated Oct 26, 2026

navop

FreeSummary

Use the Navop CLI to discover and operate resources exposed by a running Navop desktop app. The skill checks live tools, permissions, and schemas before commands, then follows Navop’s approval decisions for operations.

  • Checking which Navop tools are currently available
  • Inspecting a tool’s live schema before using it
  • Running a supported read or write operation
feigeCode/navop1.9KUpdated Oct 26, 2026

new-component

FreeSummary

Create GPUI UI components that follow the project’s existing implementation and Shadcn UI styling patterns. Choose a stateless or stateful design, keep the component API consistent with other elements, and add documentation and stories for the new component.

  • Building a new GPUI UI element
  • Choosing whether a component needs internal state
  • Matching an existing component API and style
feigeCode/navop1.9KUpdated Oct 26, 2026

See all skills by feigeCode

Report a problem with this skill