Cutting A Release
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.
Cut a new pi-agent-dashboard release: promote [Unreleased] in CHANGELOG.md, bump every workspace package.json per SemVer, commit, tag v<version, and push — triggering the Release workflow that…
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill release-cut -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard release-cut --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.pi/skills/release-cut .claude/skills/release-cut && rm -rf skills-srcUse ~/.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/
Install the "release-cut" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/release-cut into .claude/skills/release-cut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/release-cutType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill release-cut -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard release-cut --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.pi/skills/release-cut .agents/skills/release-cut && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release-cut" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/release-cut into .agents/skills/release-cut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill release-cut -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard release-cut --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.pi/skills/release-cut .cursor/skills/release-cut && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "release-cut" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/release-cut into .cursor/skills/release-cut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/BlackBeltTechnology/pi-agent-dashboard.git --path .pi/skills/release-cut--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill release-cut -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard release-cut --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.pi/skills/release-cut .gemini/skills/release-cut && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "release-cut" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/release-cut into .gemini/skills/release-cut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard release-cutInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill release-cut -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .github/skills && cp -r skills-src/.pi/skills/release-cut .github/skills/release-cut && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "release-cut" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/release-cut into .github/skills/release-cut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add BlackBeltTechnology/pi-agent-dashboard --skill release-cut -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install BlackBeltTechnology/pi-agent-dashboard release-cut --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/BlackBeltTechnology/pi-agent-dashboard.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.pi/skills/release-cut .opencode/skills/release-cut && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "release-cut" agent skill from https://github.com/BlackBeltTechnology/pi-agent-dashboard/tree/develop/.pi/skills/release-cut into .opencode/skills/release-cut/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-cut", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
release-cutCut a new pi-agent-dashboard release: promote [Unreleased] in CHANGELOG.md, bump every workspace package.json per SemVer, commit, tag v<version, and push — triggering the Release workflow that…
Release Cut is an agent skill from BlackBeltTechnology/pi-agent-dashboard. Cut a new pi-agent-dashboard release: promote [Unreleased] in CHANGELOG.md, bump every workspace package.json per SemVer, commit, tag v<version, and push — triggering the Release workflow that publishes every non-private workspace, builds the Electron artifacts, and creates a GitHub Release. Use on "cut a release", "release vX.Y.Z", "publish a new version", "tag a release".
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `SKILL.agent.md` and `SKILL.md.AGENTS.md`).
It sits in Development, covering Changelog and release notes. It works with npm and GitHub. The repository describes itself as: Real-time web dashboard for pi coding-agent sessions. Multi-session view, live chat mirroring, integrated terminal, diff viewer, pi-flows execution, and mobile-first remote… The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 86e8e4d. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
gitnpmpnpmnodeghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, npm, pnpm and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release Cut loads about 4.4k tokens when it runs. Until then it costs about 99 tokens; SKILL.md has 1,888 words of instructions outside code blocks.
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.
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); files beside SKILL.md are not scanned.
The full file from BlackBeltTechnology/pi-agent-dashboard at commit 86e8e4d, republished under its MIT licence (© BlackBeltTechnology). 1,888 words, ~4,398 tokens.
.claude/skills/release-cut/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Canonical reference: docs/release-process.md.
This skill automates steps 1–5 of that doc. Production tags (vX.Y.Z)
publish the GitHub Release automatically — electron-updater's default
GitHub provider only resolves published, non-draft releases, so a draft
would silently block auto-update. Pre-release tags (vX.Y.Z-rc.N) stay
drafts so a maintainer can eyeball artifacts before flipping to published.
See change: fix-electron-auto-update-pipeline.
Run these in order. If any fails, stop and report — do not continue.
Clean working tree
git status --porcelainMust be empty. If not, ask the user to commit or stash.
On the release branch
git rev-parse --abbrev-ref HEADMust be develop (this repo has no main). If elsewhere, ask user to
confirm before continuing.
Up to date with origin
git fetch origin && git status -sbBranch must NOT be "behind". If behind, ask user to pull first.
Tests pass
pnpm testBuild succeeds
pnpm run buildDependency-shape gate (introduced by enable-standalone-npm-install to prevent regressions of v0.5.3 publish-time bugs)
node scripts/verify-release-deps.mjsAsserts critical runtime deps (jiti, pinned node-pty, etc.) are still declared in the publishable workspace package.json files. Failure means the next published tarball would be broken — STOP and fix the workspace before cutting.
Known false-positive (substring gate).
verify-release-deps.mjschecks the declared range with a naiveString.includes(minVersion)— NOT semver math. So a legitimate pi bump ABOVE the floor (e.g. floor0.74.0, pin^0.80.10) fails the gate because"^0.80.10"does not contain the substring"0.74.0". When this fires and the pin is genuinely newer than the rule'sminVersion, the FIX is to bump that rule'sminVersion(+ its evidence note in the RULES array, and thescripts/AGENTS.mdrow) to the new floor — do NOT downgrade the pin. This recurs on every pi version bump. See change: fix-release-lockfile-drift (gate lives inscripts/verify-release-deps.mjs).
Dispatch ci-smoke.yml against develop (recommended; catches installer regressions BEFORE the tag exists)
The release pipeline (publish.yml) gates publish on a release-gate that runs the full 7-leg standalone-install-smoke matrix. If that gate fails on workflow_dispatch, tag-and-push is skipped — clean abort, no commit, no tag. But on a git push --tags cut, the tag already exists when the gate fires; failure leaves a dangling tag requiring release-revoke.
Operators SHOULD run the smoke matrix first against develop:
gh workflow run ci-smoke.yml --ref develop
gh run watch # or open the Actions UIAll 7 legs must be green before cutting. If any leg fails, fix the regression on develop first — do NOT cut a tag that you know will fail the gate. Skip this step only when the change since the last release is provably installer-irrelevant (no lockfile, bundle-server, native dep, or preload-fastify touch). See change: gate-publish-on-smoke-and-tests.
If any pre-flight step fails, stop and surface the exact error to the user.
git describe --tags --abbrev=0 # last tag, e.g. v0.2.9
node -p "require('./package.json').version" # current pkg versionConfirm they match (e.g. tag v0.2.9 ↔ pkg 0.2.9). If they diverge,
surface the mismatch and ask the user how to proceed.
## [Unreleased]git log <last-tag>..HEAD --onelineCHANGELOG.md and extract the current ## [Unreleased] section.feat: / fix: commit should have a corresponding
user-visible bullet under Added / Changed / Fixed.Far-behind escape hatch (long release cycle). If
[Unreleased]was not maintained per-change and the tag→HEAD span is huge (v0.6.0 was a 2-month, 906-commit release with only 24 of ~234 feat/fix changes documented), do NOT re-audit hundreds of commits by hand and do NOT dump raw commit subjects. Generate the deduped input set —git log <last-tag>..HEAD --onelinefiltered tofeat|fix|perf, minus the change-tags already in[Unreleased]— then delegate grouped drafting to a subagent (keeps quality high + your context focused). Merge the returned bullets under the existing headings programmatically (existing bullets first, new appended), scoped to the[Unreleased]section only, and cap the long tail with one rolled-up "Additional fixes" line. This is the exact path that worked for v0.6.0.
Propose per this decision tree, then use AskUserQuestion to confirm:
## [Unreleased] contains | Bump |
|---|---|
| Any breaking change / removal (call it out) | major |
Any ### Added bullet (new user-visible feature) | minor |
Only ### Fixed / ### Changed internals | patch |
Current version X.Y.Z → propose X.(Y+1).0 for minor, etc.
Do NOT auto-select — always ask the user to confirm the target version
(offer the proposal as default).
## [Unreleased] → versioned sectionIn CHANGELOG.md:
Rename ## [Unreleased] to ## [<version>] - <YYYY-MM-DD> (use
today's date from date +%Y-%m-%d, no leading v).
Insert a fresh empty ## [Unreleased] section above it:
## [Unreleased]
### Added
### Changed
### Fixed
## [<version>] - <YYYY-MM-DD>
...existing bullets...Verify afterwards with:
grep -n "^## " CHANGELOG.md | headnpm version <version> --workspaces --include-workspace-root --no-git-tag-version
node scripts/sync-versions.js
pnpm install --lockfile-onlyThe first command bumps the version field on the root + every workspace
(npm version only edits package.json — no lockfile, no install — so it
stays npm even under the pnpm migration). The second rewrites every
inter-package dependencies specifier (e.g.
"@blackbelt-technology/pi-dashboard-shared": "^<old>") to the new version.
The third regenerates pnpm-lock.yaml so its recorded cross-ref specifiers
match the bumped versions — without it, strict prerelease semver causes
consumer installs to fall back to stale registry tarballs. The CI
tag-and-push job runs the same three commands; doing it locally keeps the
commit honest. See changes: fix-release-lockfile-drift, adopt-pnpm-for-dev-ci.
Why the second step? The npm CLI does not implement the
workspace:protocol (it's a pnpm/yarn feature). We use plain semver ranges and synchronise them at bump time so the published tarballs have consistent metadata. CI'spublish.ymlrunssync-versions.jsdefensively too, but running it locally keeps the commit honest.
Skew guard for
distill-session-knowledge→session-distiller. The thin skill package@blackbelt-technology/pi-dashboard-distill-session-knowledgedeps on the engine@blackbelt-technology/pi-dashboard-session-distiller. Both are non-private, sonpm publish -wspublishes them in the SAME run (engine first —-wswalks in topological/dependency order) andsync-versions.jspins the dep specifier to the just-cut version. Never publish one without the other; that is what prevents cross-package skew.
Verify with:
git diff --stat package.json packages/*/package.json pnpm-lock.yamlShould show version bumps in package.json and every
packages/*/package.json plus synchronised @blackbelt-technology/pi-dashboard-*
dependency specifiers, plus a regenerated pnpm-lock.yaml. No other files.
git add CHANGELOG.md package.json pnpm-lock.yaml packages/*/package.json
git commit -m "chore(release): v<version>"Use AskUserQuestion (confirm) before committing — show the user the exact message + file list.
git tag v<version>
git push origin develop
git push origin v<version>Use AskUserQuestion (confirm) before pushing. Surface this warning:
pushing the tag triggers the Release workflow immediately. Reverting
requires git push --delete origin v<version> + re-tag.
Give the user this summary:
✅ Tag v<version> pushed.
Next steps (human):
1. Watch CI: https://github.com/BlackBeltTechnology/pi-agent-dashboard/actions
The Release workflow will:
• publish every non-private workspace (~32 @blackbelt-technology/*
packages via `npm publish -ws --include-workspace-root`) to npm
• build Electron installers (macOS DMG × 2 — Apple Silicon +
Intel, Linux DEB+AppImage, Windows NSIS+ZIP+portable per arch)
• create a GitHub Release with artifacts + latest*.yml metadata.
PRODUCTION tags (vX.Y.Z) publish immediately; PRE-RELEASE tags
(vX.Y.Z-rc.N) land as a draft.
2. Open the release:
https://github.com/BlackBeltTechnology/pi-agent-dashboard/releases
3. Verify the body (auto-extracted from CHANGELOG.md [<version>] section)
and all 7 platform artifacts are attached:
• PI-Dashboard-<ver>-arm64.dmg (Apple Silicon)
• PI-Dashboard-<ver>-x64.dmg (Intel)
• pi-dashboard_<ver>_amd64.deb (Linux x64)
• pi-dashboard_<ver>_arm64.deb (Linux arm64)
• PI-Dashboard-<ver>.AppImage (Linux x64)
• PI-Dashboard-<ver> Setup.exe + .zip + portable.exe (Windows x64)
• .zip + portable.exe (Windows arm64)
4. PRODUCTION tag: the release is already published — nothing to click;
`release: published` fires automatically and redeploys GitHub Pages.
PRE-RELEASE tag: review the draft, then click "Publish release".
If something is wrong, see `.pi/skills/release-revoke/SKILL.md`.Pushing the tag begins a gated pipeline in publish.yml that fails in ways you
cannot see until release time. Both v0.6.0 and v0.6.1 needed MANY tag moves
before a Release was published. Stay on it until github-release is green.
Pipeline shape (each is a gate; a failure before github-release means NO
GitHub Release exists yet):
release-gate ( ci-checks + 7-leg smoke ) → publish (npm, OIDC) → electron (6-leg matrix) → github-releaseLatent-bug warning: the FIRST release where publish finally goes green
exposes CI bugs that never ran before (v0.6.1's electron job had been silently
skipped every prior cut because publish had never succeeded). Expect the
electron/publish legs to surface never-before-exercised failures.
Fix on develop → force-move the tag to the fix commit → re-run. npm publish
is idempotent (skips already-published packages), so a partial publish + tag move
is safe. This is the expected loop until a GitHub Release is published — see
the reconciled guardrail below.
git commit ... && git push origin develop
git tag -f v<version> && git push -f origin v<version> # re-triggers a clean single-pass rungh run rerun --failed for gate failuresGitHub does not re-dispatch skipped downstream reusable-workflow jobs
(electron, github-release) on a --failed rerun — even after publish turns
green. You get npm published but no installers / no Release, repeatedly. A fresh
(or force-moved) tag push runs the pipeline top-to-bottom in one pass.
rerun is fine ONLY for an isolated flaky leg whose downstream hasn't been
reached yet (e.g. a single red smoke leg).
| Symptom | Class | Action |
|---|---|---|
ci-checks red but all tests passed — vitest "Uncaught Exception" (window is not defined, react-virtual setTimeout after jsdom teardown, ChatView.test.tsx) | flake | re-run the ci-checks job |
One smoke leg: ECONNRESET / network aborted during pnpm install, or Windows "web UI not reachable" 5s timeout on a cold runner | flake | re-run just that leg |
publish install fails resolving the @electron/node-gyp git dep (ERR_PNPM_EXOTIC_SUBDEP) | config | pnpm-workspace.yaml must keep blockExoticSubdeps: false. (The old npm@11.12.1 EALLOWGIT pin is GONE — post-migration the publish job installs with pnpm and upgrades to npm@latest only for the OIDC npm publish --provenance step. See change: adopt-pnpm-for-dev-ci §8.3.) |
publish 422 Error verifying sigstore provenance bundle: repository.url is "" | metadata | the offending non-private package.json is missing a repository block (url + directory). Add it, matching a sibling like shared. Pre-check: for f in package.json packages/*/package.json; do node -e "const p=require('./$f'); if(!p.private && !p.repository) console.log(p.name)"; done |
publish E404 (not 403) on one package's npm publish | human / npmjs.com | Trusted Publisher not configured OR mismatched for THAT package. Since the other packages published with the same OIDC token, the config differs in one field. It must match EXACTLY: repo BlackBeltTechnology/pi-agent-dashboard, workflow filename publish.yml (NOT the display name "Release"), environment npm-publish. Web-UI action only — hand off to the user. |
electron/github-release skipped instantly (<1s) even though publish is green | workflow-if (fixed in-repo; watch for regressions) | a skipped tag-and-push in needs-ancestry poisons the default if: success(). Those jobs now carry explicit if: !cancelled() && needs.publish.result == 'success'. |
Windows electron leg: koffi prebuild GO/NO-GO failed | guard-path (fixed) | koffi 3.x ships per-platform packages (@koromix/koffi-win32-x64/win32_x64/koffi.node), not the koffi-2.x koffi/build/... path. Guard lives in scripts/windows-liveness-smoke.ts. |
| Windows arm64 electron leg: NSIS install smoke "pi-dashboard.exe not found after 150s" | arch (fixed) | an arm64 binary can't execute on the x64 GitHub runner; install/uninstall smoke must be skipped on arm64 (needs a windows-11-arm runner). |
| The smoke matrix false-positives a stale import (e.g. a symbol deleted by an earlier PR still imported by a probe) | latent develop bug | fix on develop, force-move the tag. The 7-leg smoke only runs at release time, so these surface here. |
chore(release), tag HEAD, not the
release commit. When the pre-tag smoke matrix (step 7) surfaces a latent
develop bug, you fix it in a follow-up commit on top of chore(release).
The Release workflow re-runs the release-gate against the TAGGED tree, so
the tag MUST include that fix — tag current HEAD. The version files
(0.6.0) live in the ancestor chore(release) commit, so the tagged tree
still carries the right version. Tagging the release commit instead would
re-run the gate WITHOUT the fix and fail the publish (dangling tag).-rc.N, -beta.N) stay
drafts for manual review — never hand-edit a production release to draft.github-release completes, no Release exists
and npm publish is idempotent, so fixing a publish/electron-phase bug on
develop and git push -f origin v<version> to the fix commit is the expected
loop (Step 9), not a violation. Once a GitHub Release IS published, STOP
force-moving — surface the conflict and hand off to release-revoke..git/index.lock; a blocked commit can
silently drop your fix and leave the tag on a sibling session's commit.
Confirm: git rev-parse v<version> == the intended fix commit, and
git log -1 --oneline v<version> shows YOUR change — before watching the run.docs/release-process.md — human clicks
Publish, not the skill.© BlackBeltTechnology, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files in .pi/skills/release-cut of BlackBeltTechnology/pi-agent-dashboard.
Open the folder on GitHubat commit 86e8e4d
Release Cut 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Release Cut this skillBlackBeltTechnology/pi-agent-dashboard | 315 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Cutting A ReleaseTriliumNext/Trilium | 38k | — | ~3.2k | Automated safety check: Pass | AGPL-3.0 | |
| Verdaccio Pull Request Workflowverdaccio/verdaccio | 18k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Hunk Release Workflowmodem-dev/hunk | 9.6k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Version ReleaseNG-ZORRO/ng-zorro-antd | 9.2k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Release Roundethereumjs/ethereumjs-monorepo | 2.8k | — | ~2k | Automated safety check: Pass | None |
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.
verdaccio/verdaccio
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.
modem-dev/hunk
Maintainer workflow for preparing, publishing, verifying and curating Hunk releases, with confirmation gates before tags, publishes and public edits.
NG-ZORRO/ng-zorro-antd
NG-ZORRO/ng-zorro-antd repository release workflow. An agent skill from NG-ZORRO/ng-zorro-antd.
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.
SeemSeam/claude_codex_bridge
Maintain this CCB project's GitHub-facing release and npm publication surface.
BlackBeltTechnology/pi-agent-dashboard
Browser automation via the agent-browser CLI. An agent skill from BlackBeltTechnology/pi-agent-dashboard.
BlackBeltTechnology/pi-agent-dashboard
Diagnose failed GitHub Actions runs for pi-agent-dashboard: the 11-file workflow taxonomy, affected-test selection, the release pipeline, known failure modes, and how to read gh run logs and…
BlackBeltTechnology/pi-agent-dashboard
Diagnose problems in the running pi-agent-dashboard system: server.log, /api/health, bridge WebSocket connectivity, vitest triage, known-issue FAQ entries.
BlackBeltTechnology/pi-agent-dashboard
Disciplined implementation in pi-agent-dashboard: the rebuild matrix (extension→reload, server→restart, client→build+restart, openspec-apply→full rebuild) plus the project's code discipline rules.
BlackBeltTechnology/pi-agent-dashboard
Monitor and control the pi-dashboard server. An agent skill from BlackBeltTechnology/pi-agent-dashboard.
BlackBeltTechnology/pi-agent-dashboard
Turn a pi session into a Markdown "how-we-did-it" collaboration guideline: reads the session's JSONL transcript and synthesizes a reusable playbook of which prompts worked, what had to be steered…
Categories
Cut a new pi-agent-dashboard release: promote [Unreleased] in CHANGELOG.md, bump every workspace package.json per SemVer, commit, tag v<version, and push — triggering the Release workflow that…. Release Cut is an agent skill from BlackBeltTechnology/pi-agent-dashboard.json per SemVer, commit, tag v<version, and push — triggering the Release workflow that publishes every non-private workspace, builds the Electron artifacts, and creates a GitHub Release.
Release Cut fits situations like: tasks that involve Changelog and release notes.
Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill release-cut -a claude-code`. Or copy the skill folder (.pi/skills/release-cut in BlackBeltTechnology/pi-agent-dashboard) into .claude/skills/release-cut in your project. Claude Code loads it when a task matches its description.
Run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill release-cut -a codex`. Or copy the skill folder (.pi/skills/release-cut in BlackBeltTechnology/pi-agent-dashboard) into .agents/skills/release-cut in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add BlackBeltTechnology/pi-agent-dashboard --skill release-cut -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-cut, .gemini/skills/release-cut, .github/skills/release-cut and .opencode/skills/release-cut in your project.
Going by SKILL.md and its folder, Release Cut needs the command-line tools its instructions call (git, npm, pnpm, node and gh).
SKILL.md contains no URLs. Its commands use git, npm and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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. Review the folder before installing.
Release Cut is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Release Cut: Cutting A Release (TriliumNext/Trilium, 38k 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.
BlackBeltTechnology (a GitHub organization) maintains it in BlackBeltTechnology/pi-agent-dashboard, which has 315 GitHub stars. The repository holds 66 skills in this directory. The repository was last updated on October 8, 2026.
Source: BlackBeltTechnology/pi-agent-dashboard on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.