Agent skill

Stable Release

by edonyzpc in edonyzpc/personal-assistant

Execute the stable release workflow for the Personal Assistant Obsidian plugin.

AGPL-3.0Auto-check passed

Install Stable Release

skills CLI
$ npx skills add edonyzpc/personal-assistant --skill stable-release -a claude-code

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

GitHub CLI
$ gh skill install edonyzpc/personal-assistant stable-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/edonyzpc/personal-assistant.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/stable-release .claude/skills/stable-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
stable-release
GitHub stars
148
Token cost
~2.2k tokens
SKILL.md length
1,098 words
Files
2
Skills in repo
19
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Execute the stable release workflow for the Personal Assistant Obsidian plugin.

  • The user asks to prepare
  • SKILL.md covers Resolve Intent, Safety Boundaries, Inspect State and Dry Run Fresh Releases, plus 5 more sections
  • Calls git, make and node
  • Publish a stable release

What it does

Stable Release is an agent skill from edonyzpc/personal-assistant. Execute the stable release workflow for the Personal Assistant Obsidian plugin. Use when the user asks to prepare, validate, cut, or publish a stable release; asks for a stable release dry run or follow-up verification; or says "release", "发版", "publish stable", "cut release", "stable release", "发布正式版", or "正式发版". For BRAT beta prerelease builds, use pa-brat-beta-release instead.

Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It works with Obsidian and GitHub. The repository describes itself as: A plugin that harnesses AI agents and streamlining techniques to help you automatically manage Obsidian. The licence is AGPL-3.0.

When your agent uses it

  • The user asks to prepare
  • Publish a stable release
  • Asks for a stable release dry run
  • Follow-up verification

Example prompts

  • “release”
  • “publish stable”
  • “cut release”
  • “/stable-release”

What it can do on your machine

Read from SKILL.md and the folder at commit 4e57a31. 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

    Shell commands in SKILL.md call:

    • git
    • make
    • node
    • gh

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

  • Network

    No URLs in SKILL.md. Its commands use git 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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

Context cost

Stable Release loads about 2.2k tokens when it runs. Until then it costs about 100 tokens; SKILL.md has 1,098 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~100
When it runs · the whole SKILL.md, loaded when a task matches
~2.2k

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from edonyzpc/personal-assistant at commit 4e57a31, republished under its AGPL-3.0 licence (© edonyzpc). 1,098 words, ~2,239 tokens.

Download SKILL.mdSave it as .claude/skills/stable-release/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
stable-release
description
Execute the stable release workflow for the Personal Assistant Obsidian plugin. Use when the user asks to prepare, validate, cut, or publish a stable release; asks for a stable release dry run or follow-up verification; or says "release", "发版", "publish stable", "cut release", "stable release", "发布正式版", or "正式发版". For BRAT beta prerelease builds, use `pa-brat-beta-release` instead.

Stable Release

Read docs/operations/release-process.md before every stable-release execution or workflow change. Treat that runbook and the current release scripts as the canonical command and asset contract. If this skill disagrees with them, stop and report the drift instead of improvising.

Run commands from the repository root. For prerelease versions, use pa-brat-beta-release instead.

Resolve Intent

Classify the current request before changing state:

  • prepare: inspect state and show the dry run. Do not create a release commit or tag, push anything, create a GitHub Release, or submit a hosted community review.
  • local-release: prepare, then let release automation validate and create the local release commit and annotated tag. Do not push.
  • publish: complete the local release when needed, push master and the tag, wait for the workflow, verify the GitHub Release, then verify official recognition through Check for new releases when needed.
  • verify: inspect an already-published target and complete only the requested follow-up verification. Do not recreate its release commit or tag or push again. For official recognition, proceed to the section below after verifying the existing GitHub Release.

Treat an explicit current-turn request that names the target version and asks to publish as authorization for the complete publish flow. Do not ask again only because the dry run finished. Ask before mutation only when:

  • the target version, branch, or requested intent is ambiguous;
  • the proposed version or scope differs from what the user authorized;
  • the dry run reveals unexpected commits, release notes, or risk;
  • a blocking gate requires a product or risk-acceptance decision; or
  • recovery would delete, rewrite, or move a release tag.

Safety Boundaries

  • Cut stable releases only from master with a clean worktree.
  • Never publish without explicit publish intent in the current turn.
  • Never delete, rewrite, or move release tags without an explicit maintainer decision.
  • Stop on failed validation, unresolved hosted community Error, or workflow failure. Report the evidence; do not bypass the gate.
  • Preserve unrelated user changes. Do not stash, clean, switch branches, or reconcile divergence without authorization.

Inspect State

Run:

bash
git status --short --branch
git branch --show-current
node -p "require('./package.json').version"
git tag --sort=-v:refname | sed -n '1,20p'
git fetch origin master
git rev-parse HEAD
git rev-parse origin/master

Stop if the worktree is dirty or the branch is not master.

Resolve one of these states:

  • Fresh source state: the target is greater than package.json, its tag does not exist, and HEAD equals origin/master.
  • Existing local-release state: package.json equals the target, the target tag points to HEAD, and HEAD^ equals origin/master. Do not recreate the release commit.

Stop on any other local/remote or version/tag relationship and ask the user how to reconcile it. If no version was supplied, use the read-only changelog preview to propose one, then obtain approval before changing release state:

bash
node scripts/changelog.mjs --target-version <candidate>

Dry Run Fresh Releases

For a fresh source state, always run:

bash
make release-dry-run VERSION=<target-version>

Report the current and target versions, changelog range, commit subjects, and generated section. Continue directly when they match an already-authorized local-release or publish request. A previously created local-release state cannot be dry-run again with the same version; validate its release commit and tag instead.

Community Review Policy

Stable preparation and publication do not run a hosted source Preview, including an optional preview. Release automation retains source validation, eligible CI reuse and final tag/asset checks. Use obsidian-community-check only in release mode after GitHub publication, as described below.

Hosted-only defects may therefore be discovered after GitHub publication. Diagnose them and follow the recovery section; do not claim official recognition while an Error remains unresolved.

Create Local Release

For a fresh local-release or publish flow, run the release automation:

bash
make release VERSION=<target-version>

Do not pass SKIP_CHECKS=1 or --skip-checks. Do not use make deploy as a substitute: make release owns its whitespace, notices and release-critical docs checks. It reuses complete successful CI for the exact synchronized master source when eligible; otherwise it runs local lint, build, coverage and bundle audit. RELEASE_LOCAL_CHECKS=1 forces the full local gate for diagnosis. The final tag always builds versioned assets and runs artifact tests with valid parent CI, or full coverage without it, plus legal/docs/version/bundle/asset checks. Do not prepend another full gate to the automated evidence lookup. Full lifecycle docs:check findings are reported separately and do not block publication.

Trust the successful release command's version, commit/tag and worktree checks. Recheck state only after a concurrent change, an ambiguous command result or a concrete failure.

Stop here for local-release.

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

Publish And Verify

For an authorized publish, run the command and rely on its current clean-tree, branch, version and tag preflight rather than duplicating those checks:

bash
make publish VERSION=<target-version>

First verify that the GitHub Actions release workflow succeeds and the Release object is non-draft, non-prerelease, and contains the canonical assets:

bash
gh release view <target-version> \
  --json url,tagName,name,isPrerelease,isDraft,assets \
  --jq '{url,tagName,name,isPrerelease,isDraft,assets:[.assets[].name]}'

Use the canonical runbook for the exact asset set and recovery procedure. If the workflow or Release verification is unavailable, report the push separately and leave publication unverified.

Verify Official Recognition

After GitHub publication is verified, use obsidian-community-check in release mode for the same target version and published tag commit. An authorized stable publish includes this step; continue without asking again. For a verification-only request, inspect first and submit only when the request includes checking/refreshing official recognition.

Reuse a matching completed or pending release review. Otherwise click Check for new releases on the authenticated Personal Assistant account page. Stop and diagnose a matching Failed review or Error before resubmission. Require a release row with Version: <target-version>, the published tag's commit, Completed, and no Error; also require Current release to show the target version and the missing-release banner to be absent.

Report GitHub publication and official recognition separately. Do not claim the stable release flow complete after the button click or while recognition is Pending/BLOCKED. Keep a blocked account page available for handoff and resume recognition for the existing release; do not recreate, repush or retag. Do not claim client installation or update delivery from hosted recognition.

Recover And Resume

Before GitHub publication, diagnose a failed gate, fix its cause and resume the affected step using the runbook's recovery procedure. Revalidate changed inputs through release automation; reuse still-valid evidence.

After publication, a confirmed Community code defect requires a fix on master and a new higher patch release through this flow. Preserve the published release, assets and tag; do not overwrite, delete or retag them. Keep the new version and publication within the user's authorized scope; a different target outside that scope requires approval.

For Pending, discovery delays or unavailable login/network access, resume recognition for the existing release. For suspected scanner/environment failures or false positives, diagnose first; rerun only with new evidence or changed inputs. Do not add a source Preview to recovery or repeatedly resubmit unchanged reviews.

  • Use pa-brat-beta-release for BRAT prereleases.
  • Use personal-assistant-review for code-level release readiness.
  • Use obsidian-community-check for post-publication official release recognition.
  • Use obsidian-test-vault-smoke for app smoke evidence.
  • Use obsidian-ios-real-device-smoke for real-device iOS evidence.

© edonyzpc, 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 1 other file in .agents/skills/stable-release of edonyzpc/personal-assistant.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 4e57a31

Compare with similar skills

Stable 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.

Stable Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Stable Release this skilledonyzpc/personal-assistant148—~2.2kAutomated safety check: PassAGPL-3.0
Release NotesRAIT-09/obsidian-agent-client2.4k—~4.2kAutomated safety check: PassApache-2.0
Store Submitzhitongblog/solomd1.2k—~1.7kAutomated safety check: NotesMIT
Lov Any2pdflovstudio/any2pdf211—~2.4kAutomated safety check: NotesMIT
Triageflowershow/flowershow1.1k—~1.9kAutomated safety check: PassAGPL-3.0
Swarmvaultswarmclawai/swarmvault708—~6.1kAutomated safety check: PassMIT

Similar skills

  • Release Notes

    RAIT-09/obsidian-agent-client

    Generate a GitHub release note draft for this Obsidian plugin repository.

    2.4k GitHub stars~4.2k tokensUpdated 6 days ago
    DevelopmentAuto-check passed
  • Store Submit

    zhitongblog/solomd

    Publish a SoloMD release to the stores that have no usable submission API — Google Play Console and Microsoft Partner Center — by driving them through the local Unzoo Browser REST API.

    1.2k GitHub stars~1.7k tokensUpdated today
    DevelopmentAuto-check: notes
  • Lov Any2pdf

    lovstudio/any2pdf

    Convert Markdown documents to professionally typeset PDF files with reportlab.

    211 GitHub stars~2.4k tokensUpdated 1 mo ago
    Documents & OfficeAuto-check: notes
  • Triage

    flowershow/flowershow

    Automatically triage a newly opened GitHub issue — categorise it, verify the claim, and apply the right category and state so a maintainer or agent can pick it up.

    1.1k GitHub stars~1.9k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Swarmvault

    swarmclawai/swarmvault

    Use SwarmVault when the user needs a local-first knowledge vault that writes durable markdown, graph, search, dashboard, review, chat-session, context-pack, task-ledger, static AI export, retrieval…

    708 GitHub stars~6.1k tokensUpdated 3 mo ago
    Knowledge ManagementAuto-check passed
  • Competitor Feedback

    zhitongblog/solomd

    Scan competing markdown editors' user feedback (GitHub issues/discussions/releases + closed-source forums) and synthesize themes cross-referenced against SoloMD's own gaps and roadmap.

    1.2k GitHub stars~1.2k tokensUpdated today
    Knowledge ManagementAuto-check: notes

More from edonyzpc/personal-assistant

All 19 skills in this repo
  • Obsidian Dataview

    edonyzpc/personal-assistant

    Dataview plugin query syntax, inline expressions, DataviewJS API, and common vault analysis patterns.

    148 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Obsidian Test Vault Smoke

    edonyzpc/personal-assistant

    Validate Personal Assistant runtime and UI changes in the repo-local Obsidian test vault.

    148 GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • Obsidian Community Check

    edonyzpc/personal-assistant

    Trigger and inspect Obsidian Community checks for personal-assistant.

    148 GitHub stars~2.7k tokensUpdated yesterday
    Auto-check passed
  • Pa Brat Beta Release

    edonyzpc/personal-assistant

    Manage Personal Assistant BRAT beta prerelease workflow. An agent skill from edonyzpc/personal-assistant.

    148 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Pa Docs Lifecycle Manager

    edonyzpc/personal-assistant

    Maintain PA task records and documentation lifecycle. An agent skill from edonyzpc/personal-assistant.

    148 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Personal Assistant Review

    edonyzpc/personal-assistant

    Review uncommitted or PR diffs in the personal-assistant Obsidian plugin with project-specific risk lanes, second-layer future-risk checks, severity discipline, subagent review routing, and…

    148 GitHub stars~3.2k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Stable Release

What does Stable Release do?

Execute the stable release workflow for the Personal Assistant Obsidian plugin. Stable Release is an agent skill from edonyzpc/personal-assistant. Execute the stable release workflow for the Personal Assistant Obsidian plugin.

When should I use Stable Release?

Stable Release fits situations like: the user asks to prepare; publish a stable release; asks for a stable release dry run; follow-up verification.

How do I install Stable Release in Claude Code?

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

How do I install Stable Release in Codex?

Run `npx skills add edonyzpc/personal-assistant --skill stable-release -a codex`. Or copy the skill folder (.agents/skills/stable-release in edonyzpc/personal-assistant) into .agents/skills/stable-release in your project. Codex loads it when a task matches its description.

Can I use Stable 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 edonyzpc/personal-assistant --skill stable-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/stable-release, .gemini/skills/stable-release, .github/skills/stable-release and .opencode/skills/stable-release in your project.

What does Stable Release need to run?

Going by SKILL.md and its folder, Stable Release needs the command-line tools its instructions call (git, make, node and gh).

Does Stable Release access the network?

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

Is Stable 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. Review the folder before installing.

What licence does Stable Release use?

Stable 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 Stable Release use?

About 2.2k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Stable Release?

Skills that share tags, products or a category with Stable Release: Release Notes (RAIT-09/obsidian-agent-client, 2.4k stars), Store Submit (zhitongblog/solomd, 1.2k stars), Lov Any2pdf (lovstudio/any2pdf, 211 stars) and Triage (flowershow/flowershow, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Stable Release?

edonyzpc (a GitHub user) maintains it in edonyzpc/personal-assistant, which has 148 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 7, 2026.

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