Agent skill

Cutting A Release

by TriliumNext in TriliumNext/Trilium

A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.

AGPL-3.0Auto-check passedDevelopment

Install Cutting A Release

skills CLI
$ npx skills add TriliumNext/Trilium --skill cutting-a-release -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install TriliumNext/Trilium cutting-a-release --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/TriliumNext/Trilium.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/cutting-a-release .claude/skills/cutting-a-release && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cutting-a-release
GitHub stars
38k
Token cost
~3.2k tokens
SKILL.md length
1,415 words
Files
3 (incl. scripts, references)
Skills in repo
22
Repo updated
First seen
Licence
AGPL-3.0

At a glance

A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.

  • Works in 5 steps: Edit the ROOT package.json only, then… → There are TWO version scripts — use… → The CI version gate is a strict SUBSET —… → …
  • Debugging a Trilium release — bumping the monorepo version
  • SKILL.md covers Five traps that bite before…, The recipe (order is…, The two version scripts — pick… and The CI gate checks 5 of 9 —…, plus 5 more sections
  • Runs TypeScript scripts from its folder; calls git, gh and pnpm; needs GITHUB_TOKEN

What it does

Cutting A Release is an agent skill from TriliumNext/Trilium. Use when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run. Covers the ordered bump recipe (edit root package.json → chore:update-version → commit → v-prefixed tag → push), which of the TWO divergent version scripts to use (update-version for releases vs update-nightly-version for CI nightlies), why the CI version-consistency gate validates only 5 of the 9 files update-version writes, the exact docs/Release Notes/Release…

Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts and reference files (for example `references/ci-pipeline.md`).

It sits in Development, covering Changelog and release notes and Monorepo tooling. It works with GitHub and npm. The repository describes itself as: Build your personal knowledge base with Trilium Notes. The licence is AGPL-3.0.

When your agent uses it

  • Debugging a Trilium release — bumping the monorepo version
  • Diagnosing a failed Release workflow run

Example prompts

  • “Release”
  • “latest”
  • “/cutting-a-release”

Requirements

  • Node.js
  • Docker
  • A credential in GITHUB_TOKEN

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Edit the ROOT package.json only, then propagate. Root is the single source of truth. pnpm chore:update-version…
  2. There are TWO version scripts — use update-version, not update-nightly-version. The nightly one (scripts/update-nightly-version.ts) writes…
  3. The CI version gate is a strict SUBSET — don't trust it. scripts/check-version-consistency.ts validates only 5 files; update-version…
  4. The release-notes file must exist BEFORE you tag, at a DOUBLED path. docs/Release Notes/Release Notes/v.md — note Release Notes/Release…
  5. The tag must be v-prefixed. release.yml triggers only on push: tags: v* (release.yml:3-5). A bare 0.103.0 tag runs nothing, silently.

What it can do on your machine

Read from SKILL.md and the folder at commit 96bed2f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (TypeScript), which the agent can run.

    Shell commands in SKILL.md call:

    • git
    • gh
    • pnpm
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, gh, pnpm and npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • GITHUB_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Cutting A Release loads about 3.2k tokens when it runs, and up to ~4.6k if it reads all its reference files. Until then it costs about 230 tokens; SKILL.md has 1,415 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~230
When it runs · the whole SKILL.md, loaded when a task matches
~3.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~4.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from TriliumNext/Trilium at commit 96bed2f, republished under its AGPL-3.0 licence (© TriliumNext). 1,415 words, ~3,154 tokens.

Download SKILL.mdSave it as .claude/skills/cutting-a-release/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
cutting-a-release
description
Use when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run. Covers the ordered bump recipe (edit root package.json → chore:update-version → commit → v-prefixed tag → push), which of the TWO divergent version scripts to use (update-version for releases vs update-nightly-version for CI nightlies), why the CI version-consistency gate validates only 5 of the 9 files update-version writes, the exact `docs/Release Notes/Release Notes/<tag>.md` path the publish step hard-requires, the substring-based rc/beta "latest" labeling, and the RELEASE_PAT (not GITHUB_TOKEN) dependency. Also covers dispatching `nightly.yml` on a branch to test packaging on real CI runners (publish is gated on `main`; other refs upload artifacts). Bundles a pre-flight verifier that catches what the CI gate misses before you push the tag.

Cutting a Trilium release

Releases are a tag push, not a button. Pushing a v* tag to main triggers .github/workflows/release.yml, which builds every artifact and creates the GitHub release. Get the version bump and the release-notes file right before you tag, because three of the failure modes below pass CI and ship anyway.

Five traps that bite before you read anything else

  1. Edit the ROOT package.json only, then propagate. Root is the single source of truth. pnpm chore:update-version (scripts/update-version.ts:27-46) reads root, writes 8 other package.jsons and regenerates the Flathub metainfo's <releases> from git for-each-ref. Hand-editing the children desyncs the tree.
  2. There are TWO version scripts — use update-version, not update-nightly-version. The nightly one (scripts/update-nightly-version.ts) writes a different set of files and appends a -test-YYMMDD-HHMMSS suffix; it's CI-only. Running it for a release poisons the version. (§ The two scripts)
  3. The CI version gate is a strict SUBSET — don't trust it. scripts/check-version-consistency.ts validates only 5 files; update-version writes 8 package.jsons plus the metainfo. The 4 gaps (standalone, edit-docs, pdfjs-viewer, trilium-core) can be wrong and still ship. Run the bundled pre-flight, which checks all 9 plus the metainfo entry.
  4. The release-notes file must exist BEFORE you tag, at a DOUBLED path. docs/Release Notes/Release Notes/v<X.Y.Z>.md — note Release Notes/Release Notes/ twice, and the v prefix in the filename. The publish step ENOENTs without it (release.yml:155).
  5. The tag must be v-prefixed. release.yml triggers only on push: tags: v* (release.yml:3-5). A bare 0.103.0 tag runs nothing, silently.

Don't hand-roll a version checker — run the bundled pre-flight, a superset of the CI gate:

bash
npx tsx .claude/skills/cutting-a-release/scripts/preflight-release-check.mts v0.103.0

It asserts all 9 package.jsons match, that the metainfo <release> is the version being tagged, that the release-notes file exists at the doubled path, and warns on the rc/beta labeling footgun (trap below). Run it right before pushing the tag.

The recipe (order is load-bearing)

#StepCommand / fileGotcha
1Write release notescreate docs/Release Notes/Release Notes/v<X.Y.Z>.mdfilename = tag incl. v; publish hard-fails without it (release.yml:155)
2Bump ROOT onlyedit package.json versiondo NOT hand-edit the other package.jsons
3Propagatepnpm chore:update-versionrewrites 8 package.jsons from root, and regenerates the metainfo <releases> Flathub displays; never the reverse
4Pre-flightnpx tsx .claude/skills/cutting-a-release/scripts/preflight-release-check.mts v<X.Y.Z>catches the 4 files CI never checks, a stale metainfo <release> + a missing notes file
5Commitchore(release): prepare for v<X.Y.Z>stage every changed package.json, the metainfo + the new release-notes md
6Tag (v-prefixed)git tag v<X.Y.Z>release.yml only fires on v*
7Push commit + taggit push && git push --tags
8Watch CI, then download + smoke-test the GitHub release—see references/ci-pipeline.md to map a red job

The upstream doc (docs/Developer Guide/Developer Guide/Building/Releasing a new version.md, 9 steps) is the same recipe but wrong on step 4: it tells you to run pnpm i "to update the package lock" and calls it package-lock.json. A version-only bump does not change pnpm-lock.yaml (see footgun below), and the lockfile is pnpm-lock.yaml. Skip that step unless you also changed a real dependency.

The two version scripts — pick the right one

scripts/update-version.tsscripts/update-nightly-version.ts
npm scriptchore:update-version (package.json:38)chore:ci-update-nightly-version (package.json:34)
Use forreleases — manual, this skillCI nightlies only
Invoked byyounightly.yml:75, main-docker.yml:163
Reads root version?yes (update-version.ts:28)yes, then mutates it
Writes root?noyes (update-nightly-version.ts:47)
Files written9: apps server/client/standalone/desktop/edit-docs + packages commons/pdfjs-viewer/trilium-core, + the Flathub metainfo (update-version.ts:31,35,44)6: root + apps server/client/standalone/desktop + pdfjs-viewer (update-nightly-version.ts:50,55)
Version shaperoot version, verbatimstrips -beta, appends -test-YYMMDD-HHMMSS (update-nightly-version.ts:19-24)

The two sets diverge in both directions: update-version touches edit-docs/commons/trilium-core (nightly doesn't); nightly touches root (update-version doesn't). Run the wrong one and the tree desyncs — e.g. running nightly during a release stamps 0.103.0-test-260613-... into root and leaves commons/trilium-core untouched.

The CI gate checks 5 of 9 — verify all 10 yourself

scripts/check-version-consistency.ts:5-11 validates exactly:

package.json, apps/server, apps/client, apps/desktop, packages/commons

(stripping a leading v from the tag arg, lines 20-22). But update-version writes 9, so apps/standalone, apps/edit-docs, packages/pdfjs-viewer, packages/trilium-core and the Flathub metainfo are written but never validated. A stale version in any of those passes the sanity-check job (release.yml:30-31) and ships.

This isn't theoretical — real release-prep commits touched different file subsets because update-version only produces a git diff for files that were previously stale: v0.103.0 (44f5be88b7) changed 7 package.jsons including pdfjs-viewer; v0.102.1 (8ac9daa5d3) changed 6, no pdfjs-viewer. The CI gate would not have caught a wrong value in the un-checked four either time. The bundled pre-flight checks all 9, and the metainfo <release> the gate has never known about — use it instead of trusting the gate.

The publish step — exact strings that hard-fail

release.yml job publish_release (uses softprops/action-gh-release@v3.0.0, lines 151-161):

Field (release.yml)ValueHard-fail / footgun
body_path (155)docs/Release Notes/Release Notes/${{ github.ref_name }}.mddoubled folder + v prefix; ENOENT if missing
make_latest (159)${{ !contains(github.ref, 'rc') }}pure substring on the full ref refs/tags/...
prerelease (160)${{ contains(github.ref, 'rc') }}only rc is special-cased
token (161)${{ secrets.RELEASE_PAT }}not GITHUB_TOKEN — needs PAT to open the Releases discussion
discussion_category_name (158)Releaseswith discussions: write (release.yml:8)
fail_on_unmatched_files (156)truefails if no upload/*.* artifacts (an upstream build job failed)

The labeling footgun: because only the literal substring rc flips prerelease, a -beta (or -alpha/-dev) tag does NOT match — it publishes with make_latest=true and prerelease=false, i.e. marked the latest stable release. If you want a pre-release that isn't the latest, the tag must contain rc (e.g. v0.103.0-rc.1). The pre-flight warns on this.

Show full SKILL.md (547 more words)Show less

Footgun list (each with a real cite)

  • Lockfile is NOT touched by a version-only bump. Internal deps are workspace:* (resolve to link:, no version recorded — grep 0.103.0 pnpm-lock.yaml = 0 hits), and the release-prep commits above never touched pnpm-lock.yaml. CI installs --frozen-lockfile before any bump (nightly.yml:71 then bump at :75; release.yml:28). --frozen-lockfile only fails if the release also changes a real dependency. The upstream doc's "run pnpm i" step is precautionary and misnames the file.
  • Tag must be v-prefixed — release.yml:3-5 triggers only on v*. A bare 0.103.0 tag does nothing.
  • RELEASE_PAT, not GITHUB_TOKEN — release.yml:161. Confirmed the only PAT in the release flow; winget (downstream) uses a separate WINGET_PAT (release-winget.yml:19).
  • Flathub opens a pull request, it does not publish. release.yml has no Flathub job; release-flathub.yml runs on release: published (prereleases skipped) and opens a pull request against flathub/org.triliumnotes.Trilium that someone still has to merge. gh workflow run "Release to Flathub" -f ref=v<X.Y.Z> re-runs it by hand. Needs the FLATHUB_PAT secret. See the packaging-for-flathub skill.
  • Don't hand-edit child package.jsons — let update-version propagate from root, or they desync silently past the 5-file gate.
  • update-version is idempotent but partial in the diff — it rewrites all 8 unconditionally; only the previously-stale ones show up in git status. "Only 6 files changed" is normal and not a sign you missed one. The metainfo is the exception: its <releases> is derived, not accumulated — the newest 5 vX.Y.Z tags, dated by creatordate, with the version being prepared dated today until its own tag supplies the date. A re-run after tagging therefore settles on the tag date, and a checkout without tags fails the script rather than truncating the list.

Testing packaging on CI: dispatching nightly.yml on a branch

Dispatching the nightly workflow on a branch (gh workflow run "Nightly Release" --ref <branch>) is the only way to exercise real packaging on CI runners without merging. That is safe now: every publish step is gated on github.ref == 'refs/heads/main' (nightly.yml:103 desktop, nightly.yml:144 mobile), and any other ref — a workflow_dispatch on a branch, a renovate/electron-forge* push, a PR — uploads its desktop, mobile APK and server outputs as workflow artifacts instead (nightly.yml:115,154).

The main ref is written as a literal string on purpose: the schedule event payload is minimal, so deriving the default branch from it is unreliable.

Before this landed (PR #10614), a branch dispatch sprayed branch-named assets onto the public nightly release. On a checkout predating it, clean up with:

bash
gh release view nightly --repo TriliumNext/Trilium --json assets --jq '.assets[].name'
gh release delete-asset nightly "<name>" --yes

Filter on the branch slug — the real nightly assets come from main.

Hotfix variant

Same recipe, different branch. Per docs/Developer Guide/Developer Guide/Branching strategy.md:20-30: create a hotfix branch from the release tag, cherry-pick the needed fixes from main, bump + release from hotfix (the recipe above), then merge hotfix back into main via PR. The tag still triggers release.yml the same way — nothing about the bump/notes/labeling rules changes.

Reference map

FileWhen to open
references/ci-pipeline.mdDebugging a red "Release" run — job-by-job anatomy (sanity-check → make-electron matrix + build_server → publish_release), the exact failing string per job, and the downstream release-winget.yml.
scripts/preflight-release-check.mtsRun before pushing the tag — superset of the CI gate (all 9 package.jsons + notes file + rc/beta labeling warning).

Related skills: writing-unit-tests / analyzing-coverage if a build job's test step is what failed (the release builds run the suites); evolving-the-data-model if the release includes a DB migration whose version you also need to sanity-check.

© TriliumNext, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (scripts, references) in .claude/skills/cutting-a-release of TriliumNext/Trilium.

  • SKILL.md
  • references/ci-pipeline.md
  • scripts/preflight-release-check.mts

Open the folder on GitHubat commit 96bed2f

Compare with similar skills

Cutting A Release next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cutting A Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cutting A Release this skillTriliumNext/Trilium38k—~3.2kAutomated safety check: PassAGPL-3.0
Automate npm Releasejd-solanki/slidev-theme-dracula161—~626Automated safety check: PassNone
Verdaccio Pull Request Workflowverdaccio/verdaccio18k—~1.9kAutomated safety check: PassMIT
Hunk Release Workflowmodem-dev/hunk9.6k—~3.8kAutomated safety check: PassMIT
Version ReleaseNG-ZORRO/ng-zorro-antd9.2k—~3.1kAutomated safety check: PassMIT
Release Roundethereumjs/ethereumjs-monorepo2.8k—~2kAutomated safety check: PassNone

Similar skills

  • Automate npm Release

    jd-solanki/slidev-theme-dracula

    Automate npm package publishing via GitHub Actions for single-package repos and independent monorepo packages, including bumpp version tags, GitHub release notes, trusted publishing, provenance, and…

    161 GitHub stars~626 tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Takes a change through a verdaccio pull request: branch, local checks, changeset, title and body, labels, CI and review rounds, and ports to other release lines.

    18k GitHub stars~1.9k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Hunk Release Workflow

    modem-dev/hunk

    Maintainer workflow for preparing, publishing, verifying and curating Hunk releases, with confirmation gates before tags, publishes and public edits.

    9.6k GitHub stars~3.8k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Version Release

    NG-ZORRO/ng-zorro-antd

    NG-ZORRO/ng-zorro-antd repository release workflow. An agent skill from NG-ZORRO/ng-zorro-antd.

    9.2k GitHub stars~3.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Release Round

    ethereumjs/ethereumjs-monorepo

    Runs a coordinated EthereumJS npm release round in six human-gated phases — intent and readiness, CHANGELOG, version bump, publish (human executes), post-publish verification, and announcements.

    2.8k GitHub stars~2k tokensUpdated 21 days ago
    DevelopmentAuto-check passed
  • Ccb GitHub

    SeemSeam/claude_codex_bridge

    Maintain this CCB project's GitHub-facing release and npm publication surface.

    3.6k GitHub stars~4.9k tokensUpdated 2 days ago
    DevelopmentAuto-check passed

More from TriliumNext/Trilium

All 22 skills in this repo
  • Developing Electron Desktop

    TriliumNext/Trilium

    A skill your agent uses when working on the Trilium Electron desktop app (apps/desktop) — adding or changing an electronApi method / IPC channel, touching preload.ts, main.ts, services/window.ts or…

    38k GitHub stars~5.7k tokensUpdated today
    Auto-check passed
  • Evolving The Data Model

    TriliumNext/Trilium

    A skill your agent uses when adding a DB migration or a new column/field to a Becca entity in Trilium ("add a migration", "new column on notes/attributes", "ALTER TABLE", "add a field to…

    38k GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Adding Internal API Route

    TriliumNext/Trilium

    A skill your agent uses when adding, moving, or wiring an internal REST endpoint in Trilium (a new /api/ route) — choosing between a core-shared handler (packages/trilium-core/src/routes/index.ts…

    38k GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Adding LLM MCP Tools

    TriliumNext/Trilium

    A skill your agent uses when adding, changing, or reviewing an LLM/MCP tool in Trilium (the defineTools definitions under packages/trilium-core/src/services/llm/tools/ —…

    38k GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Ckeditor5 Plugin Development

    TriliumNext/Trilium

    Write, extend, and review CKEditor 5 plugins in the Trilium (TriliumNext Notes) monorepo — the rich-text-note editor under packages/ckeditor5, whose plugins live in src/plugins/.

    38k GitHub stars~4.9k tokensUpdated today
    Auto-check passed
  • Ckeditor5 Testing

    TriliumNext/Trilium

    Testing CKEditor 5 plugins in the Trilium monorepo. An agent skill from TriliumNext/Trilium.

    38k GitHub stars~3.3k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Cutting A Release

What does Cutting A Release do?

A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run. Cutting A Release is an agent skill from TriliumNext/Trilium. Use when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.

When should I use Cutting A Release?

Cutting A Release fits situations like: debugging a Trilium release — bumping the monorepo version; diagnosing a failed Release workflow run.

How do I install Cutting A Release in Claude Code?

Run `npx skills add TriliumNext/Trilium --skill cutting-a-release -a claude-code`. Or copy the skill folder (.claude/skills/cutting-a-release in TriliumNext/Trilium) into .claude/skills/cutting-a-release in your project. Claude Code loads it when a task matches its description.

How do I install Cutting A Release in Codex?

Run `npx skills add TriliumNext/Trilium --skill cutting-a-release -a codex`. Or copy the skill folder (.claude/skills/cutting-a-release in TriliumNext/Trilium) into .agents/skills/cutting-a-release in your project. Codex loads it when a task matches its description.

Can I use Cutting A Release in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add TriliumNext/Trilium --skill cutting-a-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cutting-a-release, .gemini/skills/cutting-a-release, .github/skills/cutting-a-release and .opencode/skills/cutting-a-release in your project.

What does Cutting A Release need to run?

Going by SKILL.md and its folder, Cutting A Release needs TypeScript for the scripts in its folder, the command-line tools its instructions call (git, gh, pnpm and npx) and credentials named GITHUB_TOKEN. Our summary lists: Node.js; Docker; A credential in GITHUB_TOKEN.

Does Cutting A Release access the network?

SKILL.md contains no URLs. Its commands use git, gh and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Cutting A Release safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Cutting A Release use?

Cutting A Release is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cutting A Release use?

About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.5k tokens, read only when the agent opens those files.

What are the alternatives to Cutting A Release?

Skills that share tags, products or a category with Cutting A Release: Automate npm Release (jd-solanki/slidev-theme-dracula, 161 stars), Verdaccio Pull Request Workflow (verdaccio/verdaccio, 18k stars), Hunk Release Workflow (modem-dev/hunk, 9.6k stars) and Version Release (NG-ZORRO/ng-zorro-antd, 9.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cutting A Release?

TriliumNext (a GitHub organization) maintains it in TriliumNext/Trilium, which has 38,256 GitHub stars. The repository holds 22 skills in this directory. The repository was last updated on October 9, 2026.

Source: TriliumNext/Trilium on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.