waku-agent: Skill for Claude Code

.claude/skills/release/SKILL.md

release is a skill for Claude Code from ShenSeanChen/waku-agent. It costs 75 tokens per session (985 once invoked), scanned A, original, MIT.

A release procedure for the waku-agent project. A release is a named, versioned package update that can be published for users to install.

In plain words
What is it for?
Use it to review changes, propose release notes, increase the package version, create a tag, publish to PyPI, and announce the release after approval.
Why use it?
It checks whether enough work has landed to justify a release and helps avoid duplicate release work or incorrect version changes.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is ShenSeanChen/waku-agent's own configuration. It tells Claude Code how to work on waku-agent itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything waku-agent configures →

About the project

Waku Agent is a local-first personal AI assistant whose readable code implements the agent loop, memory, and evaluation system. It is for people who want an assistant they can run and understand on their own laptop, with memory stored in SQLite and built-in testing. The catalogue add-ons support its agent workflow.

ShenSeanChen/waku-agent · 2,093 stars · on GitHub

Reuse

Borrowing it

Nothing to install: this file belongs to ShenSeanChen/waku-agent. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/ShenSeanChen/waku-agent/main/.claude/skills/release/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/ShenSeanChen/waku-agent

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for release

README.md
[![agentmods](https://agentmods.dev/badge/skills/shenseanchen/waku-agent/release/github.svg)](https://agentmods.dev/skills/shenseanchen/waku-agent/release)
Your own site
<a href="https://agentmods.dev/skills/shenseanchen/waku-agent/release"><img src="https://agentmods.dev/badge/skills/shenseanchen/waku-agent/release/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for release

Your own site · 80×15
<a href="https://agentmods.dev/skills/shenseanchen/waku-agent/release"><img src="https://agentmods.dev/badge/skills/shenseanchen/waku-agent/release.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 75 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 985 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00075 $0.00985
Opus 5.5 $0.00030 $0.00394
Sonnet 5.5 $0.00015 $0.00197
Haiku 4.5 $0.00007 $0.00098

Measured 16d ago against content hash 1cf1f88ca610, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

release scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 16d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/release/SKILL.md · 72 lines

How it starts

The opening of the file, as written. The whole thing — 72 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Procedure

  1. Measure the gap. This shows the last release and how far main has moved.

    git fetch origin --tags -q
    gh release list --limit 1
    git log "$(git describe --tags --abbrev=0 origin/main)"..origin/main --oneline | wc -l
    

    Release when the last release is 14 or more days old and a user-visible change has landed since, or when 10 or more commits have landed regardless of age. Otherwise report the gap in one line and stop. release-due.yml runs this check on Tuesday and Friday and opens the bump PR itself, so look for an open release/v* PR before opening another.

  2. Propose the version and the notes, then wait. Propose the next patch version (0.1.N to 0.1.N+1) unless Sean names another. List the 3 to 5 changes a user would notice, in plain words, from git log <last tag>..origin/main. Sean says go before anything below happens.

  3. Bump the version in one file. Edit __version__ in waku/__init__.py and nowhere else: evals/deterministic/test_version.py goes red if a second home appears. Ship it as its own PR with the ship skill: branch, make lint, make gate, gh pr create --fill, gh pr checks --watch, squash-merge.

  4. Tag the merged commit. Merging a release/v* PR does this through release-tag.yml. For a PR you opened yourself, or when that workflow fails: Pull main, then push the tag. The tag is the release: .github/workflows/release.yml runs the gate, publishes to PyPI over Trusted Publishing and creates the GitHub Release. An agent pushes the tag only with Sean's yes for that exact version, and never handles a PyPI token.

    git checkout main && git pull -q
    git tag vX.Y.Z && git push origin vX.Y.Z
    
  5. Watch the workflow finish. gh run list --workflow release --limit 1 must show success. A red run means nothing was published, so fix forward and re-tag only if PyPI never received the version (PyPI never accepts a version twice).

  6. Confirm by installing, not by reading the index page. In a fresh venv, install the new version from PyPI, check that waku.__version__ matches, and check that a file new in this release is present.

    d=$(mktemp -d) && python -m venv "$d/v"
    "$d/v/bin/pip" install -U waku-agent==X.Y.Z
    "$d/v/bin/python" -c "import waku; print(waku.__version__)"
    
  7. Announce it. Starring the repo does not subscribe anyone to releases, so GitHub notifies only people who watch with Releases selected. Draft these for Sean and post nothing yourself:

    • an X post in his voice (lowercase, no dashes, no markdown bold) that leads with what changed, not the version number
    • a GitHub Discussions post in the Announcements category with the same notes
    • three lines to prepend to the GitHub Release (gh release edit vX.Y.Z --notes-file ...), because the generated notes list PR titles and not what a user gains

Read the full file on GitHub · 72 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 16d ago First seen · 72 lines · 75 tokens per session scan A 1cf1f88ca610

Subscribe to this mod's changes

release is a skill published in the GitHub repository ShenSeanChen/waku-agent (2,093 stars, last pushed yesterday), licensed MIT. It adds 75 tokens to every session and 985 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-09.