Agent skill

Release

by jongwony in jongwony/epistemic-protocols

Release for this repo — CalVer tag + narrative prepend. An agent skill from jongwony/epistemic-protocols.

MITAuto-check passedDevelopment

Install Release

skills CLI
$ npx skills add jongwony/epistemic-protocols --skill release -a claude-code

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

GitHub CLI
$ gh skill install jongwony/epistemic-protocols 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/jongwony/epistemic-protocols.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/release .claude/skills/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
release
GitHub stars
173
Token cost
~2.8k tokens
SKILL.md length
1,455 words
Files
1
Skills in repo
29
Repo updated
First seen
Licence
MIT

At a glance

Release for this repo — CalVer tag + narrative prepend. An agent skill from jongwony/epistemic-protocols.

  • Works in 6 steps: Tag decision → Tag push → Wait for CI draft → …
  • Development work in your project
  • SKILL.md covers Purpose, Preconditions, Flow and Rules, plus 1 more section
  • Calls git and gh

What it does

Release is an agent skill from jongwony/epistemic-protocols. Release for this repo — CalVer tag + narrative prepend.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development. It works with Git. The repository describes itself as: Epistemic protocols for Claude Code — structure human-AI interaction quality at every decision point - https://epistemic-protocols.com. The licence is MIT.

When your agent uses it

  • Development work in your project

Example prompts

  • “/release”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash(gh *), Bash(git *), AskUserQuestion

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Tag decision
  2. Tag push
  3. Wait for CI draft
  4. Narrative drafting
  5. Gate with horizon fusion
  6. Apply + surface

What it can do on your machine

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

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash(gh *)
    • Bash(git *)
    • AskUserQuestion

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • 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

Release loads about 2.8k tokens when it runs. Until then it costs about 16 tokens; SKILL.md has 1,455 words of instructions outside code blocks.

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

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 jongwony/epistemic-protocols at commit 69bb95b, republished under its MIT licence (© jongwony). 1,455 words, ~2,758 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
Release for this repo — CalVer tag + narrative prepend.
allowed-tools
Read, Write, Edit, Bash(gh *), Bash(git *), AskUserQuestion

Release (project-local)

Creates a CalVer tagged release with a hand-written narrative prepended to the body CI generates via scripts/package.js. Overrides the global /release skill for this repo.

Purpose

  • Push CalVer tag → CI (release.yml) runs scripts/package.js to build ZIPs + produce dist/release-notes.md, then gh release create --draft --notes-file attaches it
  • Prepend a hand-written narrative block to the script-generated body so the release surfaces "why this release matters" before the commit list
  • Leave publish (draft → published) to the user for manual review

Preconditions

  • Working tree clean, on main (or user-specified branch)
  • gh authenticated with push access to the target remote (fork or upstream)
  • Node 22+ on PATH (packaging requires zlib.crc32)

Flow

Phase 1: Tag decision
  • Previous tag: git describe --tags --abbrev=0 (excludes drafts, gives last tagged commit)
  • Today: derive YYYY.MM.DD from current date
  • Candidate tag: v{YYYY.MM.DD}, or v{YYYY.MM.DD}.{N+1} if same-day tag exists
  • If latest tag is already today's and is Draft (not published), ask whether to re-tag (delete + recreate) or increment .N
Phase 2: Tag push
  • git tag <tag>
  • git push origin <tag> → triggers release.yml
Phase 3: Wait for CI draft
  • Poll gh run list --workflow=release.yml --limit 1 --json status,conclusion,databaseId every 5s, max 12 attempts (60s total)
  • When status=completed and conclusion=success, fetch draft: gh release view <tag> --json body,url
  • If still in_progress after 60s: surface run URL and ask user whether to keep waiting
  • If CI fails: surface logs via gh run view <id> --log-failed, do not proceed to Phase 4. Remediation: fix the cause and retag with .N increment, or clean up the pushed tag with git push origin :refs/tags/<tag> before retrying
Phase 4: Narrative drafting

Analyze commits since previous tag:

bash
git log --oneline <prev-tag>..HEAD

Select 3-4 highest-impact changes. Prioritize:

  • New skills or protocols (feat: with new SKILL.md)
  • Architectural principles (rules/, CLAUDE.md, axiom tier changes)
  • User-facing behavior changes
  • Cross-cutting refactors that affect multiple protocols

Deprioritize:

  • Single-PR review-round commits, CI test count bumps, version bumps without content
  • Commits whose only effect is subsumed by a broader commit in the same range

Theme axis enumeration (conditional on commit set complexity):

When the commit set admits multiple plausible theme axes — distinct ways to group the same commits under different unifying frames — enumerate ALL axes before drafting. Trigger: no single dominant change carries the release on its own; 5+ semantically distinct change clusters in the commit range is a heuristic signal of this condition, not the trigger by itself.

For each candidate axis, present as a numbered list (text output, not a gate option set — the user's response is free-form selection, supplement, or a new axis):

  • Theme line: the unifying frame the axis would emphasize
  • Foregrounds: which commits become the narrative centerpiece
  • Backgrounds: which commits become accompanying detail
  • Trade-off signal: structural strength (faithful to commit shape) vs. interpretive weight (post-hoc grouping)

Include a brief epistemic observation on which axes preserve the commit set's actual shape vs. which apply heavier grouping. When the commit set admits a single dominant theme — one frame is uniquely the best fit and other framings would feel like post-hoc reframing — skip axis enumeration and proceed directly to drafting.

After enumeration, draft narrative using the axis the agent judges best-fit; the gate at Phase 5 lets the user pick a different axis if preferred.

Draft narrative using this template (Korean, matching repo's PR body convention):

> **Background**
>
> {experiential / contextual narrative — the lived origin and why this release matters; 1-3 paragraphs. Background IS pure context — the theme sentence belongs in the 무엇이 새로운가요? section below.}
>
> ---
>
> **무엇이 새로운가요?**
>
> 이번 릴리스의 핵심은 **{theme}** — {one sentence summarizing the release}.
>
> - {emoji} **`/command`** 또는 **{feature name}** — {user-facing narrative, 1-2 sentences}
> - {emoji} **...** — ...
> - {emoji} **...** — ...
> - {emoji} **...** — ...
>
> ---

{script-generated body, with its leading `# Epistemic Protocols vX` H1 line removed so it starts at `## Highlights`}

The narrative splits into two blockquoted sections, matching the repo's prior-release convention:

  • Background — pure experiential/contextual narrative (the lived origin). The label is English **Background**, an exception to the Korean-narrative convention kept for visual continuity across releases. The change-section label **무엇이 새로운가요?** stays Korean.
  • 무엇이 새로운가요? — leads with the theme sentence (이번 릴리스의 핵심은 **{theme}** — ...), then the change bullets.

Both sections, and the close before the script body, are bounded by in-blockquote dividers (> ---). Each > --- must be preceded by a blank > line: in CommonMark a --- placed flush against paragraph text parses as a setext H2 underline, which would render the preceding line as a heading instead of a divider — the blank > line keeps it a thematic break.

The script body's leading # Epistemic Protocols vX H1 is stripped: the GitHub release title already renders the version, so a body H1 would surface a duplicate title. After stripping, the body begins at ## Highlights.

Emoji selection is descriptive: choose an emoji whose visual semantic matches the change class. The same change class may take different emoji across releases — match the release's framing, not a fixed table.

Show full SKILL.md (736 more words)Show less
Phase 5: Gate with horizon fusion

Context (emit before the gate, as text output):

  • Theme axis enumeration when generated in Phase 4 — condense to a labels-only form (axis names without per-axis 4-tuple) and reference the Phase 4 detail above when full re-surfacing would bloat the gate context; otherwise re-surface in full. Either form preserves Recognition that the user may select a different axis than the one the agent drafted from.
  • Full composed body preview: narrative draft (closed with > --- inside the blockquote) + script-generated body with its leading # Epistemic Protocols vX H1 stripped (begins at ## Highlights)
  • Theme sentence and bullet selection rationale

Experiential elicitation (emit as part of context):

Background narratives benefit from the user's experiential grounding — the lived origin that motivated the release. The AI draft maps commit shape; the user supplies the grounding that makes the shape readable. Explicitly invite the user to supplement Background; supplementation is optional. When the AI draft already captures the origin from commit content alone, the invitation can be lightweight — but it must still be surfaced so the option is recognized rather than recalled.

Question: Apply the drafted narrative, supplement with experiential context, modify other elements, or skip?

Options:

  1. Apply — prepend narrative as drafted; proceed to Phase 6
  2. Add experiential context — user supplies lived origin / environmental observation; AI fuses it with the draft Background as a new horizon (preserving the AI's commit-mapping spine, adding the user's experiential grounding); revised draft re-presents at Phase 5 (loop)
  3. Modify — user supplies edits to axis selection, bullet text, emoji, or tone; revised draft re-presents at Phase 5 (loop)
  4. Skip — leave script-generated body as-is (patch-only releases per Rule 5); proceed to Phase 6 with no prepend

This gate is mandatory even if the narrative seems obvious — theme choice and origin framing are constitutive judgments the user owns.

Horizon fusion sub-protocol (engaged when user selects Add experiential context):

  1. Treat the AI draft Background as Horizon A — the commit-shape narrative
  2. Treat the user's experiential input as Horizon B — the lived origin
  3. Fuse: preserve Horizon B's voice and the arc the user actually supplied; let Horizon A inform which protocol/utility is named in the closing sentence
  4. Bullets remain anchored to Horizon A (commit-mapping); only Background absorbs Horizon B
  5. Per-horizon trace (preserved / transformed / dropped) renders as a single line before the fused candidate at Phase 5 — naming what each horizon contributed, what was transformed in fusion, and what was dropped. The trace surfaces fusion accountability, matching the trace-visibility pattern in /realign.
  6. Iteration is expected: each loop pass refines whatever dimension the prior pass left under-specified. Continue looping until Apply or Skip — do not pre-empt convergence by treating the first fusion as final.
Phase 6: Apply + surface
  • Compose final body: narrative (closed with > --- inside the blockquote) + CI body with its leading # Epistemic Protocols vX H1 stripped (begins at ## Highlights) — prevents a duplicate title alongside the GitHub release title
  • gh release edit <tag> --notes-file <tmp-path>
  • Output draft URL with a note that the user publishes manually via GitHub web UI

Rules

  1. Tag before narrative: CI must create the draft first. Narrative prepends to the script-generated body (Highlights/Protocols/Assets sections from scripts/package.js); the skill does not replace or regenerate those sections.
  2. Korean narrative: matches the repo's PR body language convention.
  3. Terminal operation bounded to body edit: the skill's terminal operation is gh release edit <tag> --notes-file <path> against the existing draft. Release creation is owned by CI (via tag push trigger); publish-to-public is owned by the user via the GitHub web UI.
  4. Theme over item list: the narrative answers "why this release matters"; the auto-generated section already enumerates what changed.
  5. 3-4 bullets max: more dilutes impact. If fewer than 3 user-facing changes exist, propose skipping the narrative entirely (patch-only releases do not need it).
  6. No draft republish on existing body: if the draft already has a narrative (check for leading > blockquote in fetched body), ask before overwriting.
  7. Failure surfacing: if CI fails, do not attempt narrative drafting — surface the failure to the user and stop.

Failure Modes

  • CI timeout: release.yml typically completes in <15s. If status=in_progress after 60s, surface the run URL and let user decide whether to wait or abort.
  • Working tree dirty: refuse to tag. Surface git status output.
  • Tag already exists (published): must increment .N suffix — cannot overwrite a published release.
  • Tag already exists (draft): ask whether to delete draft + re-tag, or increment .N.

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

Files

Just SKILL.md in .claude/skills/release of jongwony/epistemic-protocols.

Open the folder on GitHubat commit 69bb95b

Compare with similar skills

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.

Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release this skilljongwony/epistemic-protocols173—~2.8kAutomated safety check: PassMIT
Finishing a Development Branchobra/superpowers296k5 repos~1.9kAutomated safety check: PassMIT
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT
Codebase Knowledge Graph Q&AEgonex-AI/Understand-Anything85k1 repos~1.2kAutomated safety check: PassMIT
Code Design Rationale Investigatorcursor/plugins10k9 repos~2.6kAutomated safety check: PassNone
Understand Diff AnalysisEgonex-AI/Understand-Anything85k1 repos~1.4kAutomated safety check: PassMIT

Similar skills

  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Code Review Checklist

    shareAI-lab/learn-claude-code

    Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Codebase Knowledge Graph Q&A

    Egonex-AI/Understand-Anything

    Answers questions about a codebase by searching a prebuilt knowledge graph of its files, functions, classes and dependencies, not by rereading every source file.

    85k GitHub starsUsed in 1 repo~1.2k tokens
    DevelopmentAuto-check passed
  • Official

    Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.

    10k GitHub starsUsed in 9 repos~2.6k tokens
    DevelopmentAuto-check passed
  • Understand Diff Analysis

    Egonex-AI/Understand-Anything

    Reads your git changes or a pull request against a prebuilt knowledge graph of the project to explain what changed, which components are affected and what is risky.

    85k GitHub starsUsed in 1 repo~1.4k tokens
    DevelopmentAuto-check passed
  • Understand Explain

    Egonex-AI/Understand-Anything

    Gives an in-depth explanation of one file, function or module by reading the project's knowledge graph and checking that the graph is still fresh.

    85k GitHub starsUsed in 1 repo~1.3k tokens
    DevelopmentAuto-check passed

More from jongwony/epistemic-protocols

All 29 skills in this repo
  • Outcome

    jongwony/epistemic-protocols

    This skill should be used when the user asks to "run the outcome eval", "paired bare vs protocol", "which decisions did the protocol surface", "count what the AI asked or presented", "does /inquire…

    173 GitHub stars~1.3k tokensUpdated yesterday
    Auto-check: notes
  • Realize

    jongwony/epistemic-protocols

    This skill should be used when the user asks to "run the eval", "test whether the protocol actually works at runtime", "check type realization", "measure protocol fulfillment", "run the…

    173 GitHub stars~3.3k tokensUpdated yesterday
    Auto-check: notes
  • Verify

    jongwony/epistemic-protocols

    This skill should be used when the user asks to "verify protocols", "check consistency before commit", "validate definitions", "run pre-commit checks", "verify soundness", or wants to ensure…

    173 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Encapsulation

    jongwony/epistemic-protocols

    This skill should be used when the user asks to "audit plugin encapsulation", "check self-containment semantics", "find contributor-knowledge assumptions", or invokes /encapsulation.

    173 GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Formal Review

    jongwony/epistemic-protocols

    This skill should be used when the user asks to "formal review", "formal lens review", or invokes /formal-review.

    173 GitHub stars~3.5k tokensUpdated yesterday
    Auto-check: notes
  • Recollect

    jongwony/epistemic-protocols

    The user vaguely recalls something discussed before but cannot name it — one session, or a line of work, topic, or settled concept across several: find it in past records to recognize.

    173 GitHub stars~8.7k tokensUpdated yesterday
    Auto-check passed

Works with

Categories

Questions about Release

What does Release do?

Release for this repo — CalVer tag + narrative prepend. An agent skill from jongwony/epistemic-protocols. Release is an agent skill from jongwony/epistemic-protocols. Release for this repo — CalVer tag + narrative prepend.

When should I use Release?

Release fits situations like: development work in your project.

How do I install Release in Claude Code?

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

How do I install Release in Codex?

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

Can I use 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 jongwony/epistemic-protocols --skill 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/release, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.

What does Release need to run?

Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (git and gh). Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(gh *), Bash(git *), AskUserQuestion.

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

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

How many tokens does Release use?

About 2.8k tokens (SKILL.md is roughly 11k 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 Release?

Skills that share tags, products or a category with Release: Finishing a Development Branch (obra/superpowers, 296k stars), Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Codebase Knowledge Graph Q&A (Egonex-AI/Understand-Anything, 85k stars) and Code Design Rationale Investigator (cursor/plugins, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

jongwony (a GitHub user) maintains it in jongwony/epistemic-protocols, which has 173 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 6, 2026.

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