release
Tag the pending release from the Release-Tag trailer and push it, with pre-flight checks and rollback
Skill by markwharton
Chalk Labs
Need help deploying release?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/markwharton-release
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/release
What's inside
- Skill name
release- Description
- Tag the pending release from the Release-Tag trailer and push it, with pre-flight checks and rollback
- License
- MIT
- Instructions
- 71 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# pk release
Completes what `pk changelog` staged: reads the `Release-Tag` trailer
on HEAD, runs pre-flight checks, creates the tag, and pushes
atomically to origin.
## Two flows
Merge flow keeps two branches: work lands on the working branch, and a
release fast-forwards the release branch to it, tags, pushes branch and
tag together, switches back, and pushes the working branch. Trunk flow
keeps one: a release tags and pushes the default branch, and refuses
to run anywhere else. `release.branch` set selects merge flow; empty
selects trunk flow.
Merge flow needs a second place where unreleased work can live and
run. For code, that place is the developer's own machine: check out the
working branch, build it, run it. A repository that is itself a live
system has no such place unless a second system is set up for
development. A Microsoft Fabric workspace connected to `main` is a live
system; development would mean a second workspace, with every connector
and credential set up again: a second bill, and a second copy of the
data to secure. Until that is worth doing, use trunk flow. The choice
is a cost, not a commitment: either flow becomes the other later, and
tags made under one stay valid under the other.
To move to merge flow, create the working branch from the release
branch, set `release.branch` and `guard.branches` on it, and ship; the
first release fast-forwards. To move to trunk flow, ship once more,
delete the working branch, and on the release branch remove those two
keys from your own terminal, since guard blocks a session committing
on a guarded branch.
## Pre-flight
Clean tree; branch on origin and not behind it; release branch
resolvable and not diverged from the working branch; the last version
tag in the working branch's history. A failure after
tagging rolls back: the local tag is deleted, the merge is reset, and
the working branch is checked out.
## Hooks
`preRelease` runs before the tag exists and is rehearsed by
`--dry-run`. A `preRelease` hook that commits produces a commit the
tag then covers. `prePush` runs with the tag ref in existence, for
signing or artifact builds keyed on the tag. Both receive `$VERSION`
(no v) and `$TAG` (with it).
## Usage
```bash
pk release --dry-run
pk release
```
## Flags
<!-- generated: flags -->
```
--dry-run
Validate without merging, tagging, or pushing
```
Every command also accepts `--plain`, `--project-dir <value>`, and `--quiet`; see `pk help help`.
<!-- /generated: flags -->
## Settings
<!-- generated: settings -->
The `release` section of `.pk.json`:
```
"release": {
"branch": "<branch>",
"hooks": {
"prePush": "<command>",
"preRelease": "<command>"
}
}
```
- `release.branch`: a branch name; default the branch `pk init` ran on. The branch releases merge into; empty selects the trunk flow, which tags the default branch.
- `release.hooks.prePush`: a shell command; default none. Runs after the tag exists and before the push, with `$VERSION` and `$TAG`.
- `release.hooks.preRelease`: a shell command; default none. Runs before the tag is created, with `$VERSION` and `$TAG`; `--dry-run` rehearses it.
An unknown key or a value outside these fails the whole file when it loads, with a message naming the key: `pk` commands exit 2, and each hook reports the message and takes no action until it is fixed. An absent key means its default. `pk status` reads the file back and reports the first problem.
<!-- /generated: settings -->From markwharton/plankit, MIT.
More from markwharton/plankit
- 0.631score
craft
markwharton
Engineering standards and reusable prompts for working in a plankit repository - load the standards, or run a named prompt
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
changelog
markwharton
Generate CHANGELOG.md from conventional commits and stage a release with the Release-Tag trailer
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
brief
markwharton
What each session is told about this repository's plankit policy at start, generated from .pk.json
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
guard
markwharton
How pk guard decides what an agent may do to git, and how to tune it
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
ship
markwharton
Cut the pending work as one release - changelog then release in a single command
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
overview
markwharton
Plan-driven development for Claude Code - the model, the modes, and the per-repo footprint
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
preserve
markwharton
Keep each approved plan as a record in the plans directory, on approval or on request
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
protect
markwharton
Why preserved plans are immutable and how pk protect enforces it
SkillAFreshness: A★ 12Claude Code +9 - 0.625score
init
markwharton
Configure a repository for plankit
SkillAFreshness: A★ 12Claude Code +9 - 0.625score
help
markwharton
Show documentation for pk and its commands
SkillAFreshness: A★ 12Claude Code +9 - 0.625score
pin
markwharton
Update a version pin in a file, for release hooks
SkillAFreshness: A★ 12Claude Code +9 - 0.625score
status
markwharton
Report plankit configuration and repository state
SkillAFreshness: A★ 12Claude Code +9
Signals
- Stars
- 12
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 5, 2026 (26 days ago)
- Last release
- Oct 19, 2026 (13 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/markwharton/plankit
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from markwharton
- 0.631score
craft
markwharton
Engineering standards and reusable prompts for working in a plankit repository - load the standards, or run a named prompt
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
overview
markwharton
Plan-driven development for Claude Code - the model, the modes, and the per-repo footprint
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
ship
markwharton
Cut the pending work as one release - changelog then release in a single command
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
guard
markwharton
How pk guard decides what an agent may do to git, and how to tune it
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
changelog
markwharton
Generate CHANGELOG.md from conventional commits and stage a release with the Release-Tag trailer
SkillAFreshness: A★ 12Claude Code +9 - 0.628score
preserve
markwharton
Keep each approved plan as a record in the plans directory, on approval or on request
SkillAFreshness: A★ 12Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get release running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
release skill. Agent Mart. https://agentmart.dev/skills/markwharton-release (last updated 2026-10-24)