release

Perform Harbor release procedures — version bumping, codegen, committing, pushing, and drafting GitHub releases. Use this skill when the user wants to release a new version of Harbor, bump the version number, create a release on GitHub, run the release codegen pipeline, or anything related to shipping a new Harbor version. Triggers on phrases like "release Harbor", "bump version", "new release", "ship a new version", or "prepare a release".

2,773 stars
byav

Best use case

release is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Perform Harbor release procedures — version bumping, codegen, committing, pushing, and drafting GitHub releases. Use this skill when the user wants to release a new version of Harbor, bump the version number, create a release on GitHub, run the release codegen pipeline, or anything related to shipping a new Harbor version. Triggers on phrases like "release Harbor", "bump version", "new release", "ship a new version", or "prepare a release".

Teams using release should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/release/SKILL.md --create-dirs "https://raw.githubusercontent.com/av/harbor/main/.agents/skills/release/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/release/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How release Compares

Feature / AgentreleaseStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Perform Harbor release procedures — version bumping, codegen, committing, pushing, and drafting GitHub releases. Use this skill when the user wants to release a new version of Harbor, bump the version number, create a release on GitHub, run the release codegen pipeline, or anything related to shipping a new Harbor version. Triggers on phrases like "release Harbor", "bump version", "new release", "ship a new version", or "prepare a release".

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Harbor Release Procedure

Releasing Harbor is a sequential pipeline: bump the version constant, run codegen
(which propagates the version across the monorepo and syncs docs to the wiki),
commit, push, research what changed, update the README News section, and open a
pre-filled GitHub release form.

## Pre-flight

Before starting, verify two things:

1. **Clean working tree** — `git status` should show no uncommitted changes.
   The codegen step touches many files; starting dirty makes the release commit noisy.
2. **Wiki repo exists** — `release.sh` pushes docs to `../harbor.wiki`. If the
   directory doesn't exist, the docs push will fail. Clone it first if missing:
   ```bash
   git clone https://github.com/av/harbor.wiki.git ../harbor.wiki
   ```

## Step 1 — Bump Version

Open `.scripts/seed.ts` and change the `VERSION` constant (line ~9):

```typescript
const VERSION = "X.Y.Z";
```

Bump **patch** by default (e.g. `0.4.2` → `0.4.3`). Bump minor or major only
when the user explicitly asks.

This constant is the single source of truth — the seed script propagates it to
`pyproject.toml`, `package.json`, `harbor.sh`, `app/package.json`,
`app/src-tauri/tauri.conf.json`, and `app/src-tauri/Cargo.toml`.

## Step 2 — Run Codegen

```bash
harbor dev release
```

This runs the release script (`.scripts/release.sh`), which:
- Seeds the version into all targets (`harbor dev seed`, `seed-cdi`, `seed-traefik`)
- Syncs docs to the wiki repo and pushes them

Wait for it to complete. Check the output for errors — especially the wiki push,
which can fail if there are merge conflicts in `../harbor.wiki`.

## Step 3 — Commit and Push

```bash
git add -A
git commit -m "chore: vX.Y.Z"
git push origin main
```

The commit message is always `chore: vX.Y.Z` — no variation.

## Step 4 — Research Changes

Identify what changed since the last release to write the release notes.

```bash
# Find the previous release tag
git tag --sort=-creatordate | head -5

# List commits since that tag
git log vPREV..HEAD --oneline

# If you need more detail on specific commits
git log vPREV..HEAD --stat
```

Classify each commit:
- **New services**: look for `feat: <service-name>` commits, or new `services/compose.<name>.yml` files
- **Notable changes**: `feat:` commits that aren't new services
- **Bugfixes**: `fix:` commits
- **Improvements**: `chore:` commits worth mentioning (not all are — skip routine ones)

For merged PRs, check:
```bash
git log vPREV..HEAD --oneline --merges
```

## Step 5 — Update README News Section

Update the `## News` list in `README.md` to include the new release. The list
lives between the screenshot image and the `## Documentation` heading.

1. Add a new bullet at the **top** of the list for `vX.Y.Z` with a short
   highlights summary (one sentence, 2-3 key changes from Step 4).
2. Remove the **oldest bullet** (bottom) so the list always shows exactly 7 releases.

The bullet format is:

```
- **vX.Y.Z** - Short highlights sentence
```

## Step 6 — Open GitHub Release Form

Construct the URL and open it with `xdg-open` (not an internal browser).

Base: `https://github.com/av/harbor/releases/new`

Query parameters:

| Param | Value |
|-------|-------|
| `tag` | `vX.Y.Z` |
| `target` | `main` |
| `title` | `vX.Y.Z` if no new services, otherwise `vX.Y.Z - Service1, Service2` |
| `prerelease` | `false` |
| `body` | Release notes (see template below) |

The `body` value must be URL-encoded. Use Python or similar to build the URL:

```bash
python3 -c "
import urllib.parse
body = '''RELEASE_NOTES_HERE'''
params = urllib.parse.urlencode({
    'tag': 'vX.Y.Z',
    'target': 'main',
    'title': 'vX.Y.Z',
    'body': body,
    'prerelease': 'false'
})
print(f'https://github.com/av/harbor/releases/new?{params}')
"
```

Then open the printed URL with `xdg-open`.

### Release Notes Template

```markdown
### [ServiceName](https://github.com/av/harbor/wiki/2.x.x-Service-ServiceName)

<SCREENSHOT_PLACEHOLDER>

One sentence description of the service.

\`\`\`bash
harbor up servicename
\`\`\`

### Misc

- One short sentence per notable change.
- One short sentence per notable bugfix.
- One short sentence per notable improvement.

**Full Changelog**: https://github.com/av/harbor/compare/vPREV...vX.Y.Z
```

If no new services were added, omit the service sections entirely — just use the
Misc section and the Full Changelog link.

The wiki link format for services follows the pattern `2.x.x-Category-ServiceName`
where the category and numbering match the docs file (e.g. `2.3.0-Satellite-SearXNG`).
Check the `docs/` directory for the exact page name.

Related Skills

run-llms

2773
from av/harbor

Comprehensive guide for setting up and running local LLMs using Harbor. Use when user wants to run LLMs locally, set up or troubleshoot Ollama, Open WebUI, llama.cpp, vLLM, SearXNG, Open Terminal, or similar local AI services. Covers full setup from Docker prerequisites through running models, per-service configuration, VRAM optimization, GPU troubleshooting, web search integration, code execution, profiles, tunnels, and advanced features. Includes decision trees for autonomous agent workflows and step-by-step troubleshooting playbooks.

```skill

2773
from av/harbor

---

skill-creator

2773
from av/harbor

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.

new-service

2773
from av/harbor

Add a new service to Harbor — scaffold the compose config, environment variables, metadata, documentation, and cross-service integrations. Use this skill whenever the user wants to add a new service to Harbor, integrate a new tool/app/model server, create a compose configuration for a new project, or onboard any software into the Harbor ecosystem. Triggers on phrases like "add X to Harbor", "new service", "integrate Y", "onboard Z", "create a service for", or when the user provides a GitHub repo link and expects it to become a Harbor service. Even if the user just says a project name and implies they want it in Harbor, this skill applies.

new-boost-module

2773
from av/harbor

Create new Harbor Boost modules — the Python plugins that run inside Harbor's LLM proxy. Use this skill whenever the user wants to build a Boost module, write a custom module for Harbor Boost, add a new feature to the Boost proxy pipeline, or create any kind of middleware that transforms, augments, or intercepts LLM chat completions in Harbor. Also triggers when the user mentions "boost module", "boost plugin", "custom module for boost", or wants to add prompt engineering, reasoning chains, or output transforms to Harbor's proxy layer.

mobile-release

37910
from RSSNext/Folo

Perform a regular mobile release from the dev branch. Gathers commits since last release, updates changelog, bumps version, updates iOS Info.plist, and creates release PR to mobile-main.

desktop-release

37910
from RSSNext/Folo

Perform a regular desktop release from the dev branch. Gathers commits since last release, updates changelog, evaluates mainHash changes, bumps version, and creates release PR.

release

22262
from Yeachan-Heo/oh-my-claudecode

Automated release workflow for oh-my-claudecode

release-notes

5182
from dlt-hub/dlt

Generate release notes between two git tags with categorized PR summaries and author attribution

release-note-localizer

3891
from openclaw/skills

将发布说明转换为中文、英文、客户版和技术版,同时保持术语一致。;use for localization, release-notes, translation workflows;do not use for 机翻敏感合同条款, 替代专业法律翻译.

releaseguard

3891
from openclaw/skills

Scan, harden, sign, and verify release artifacts with ReleaseGuard — the artifact policy engine for dist/ and release/ outputs.

document-release

3891
from openclaw/skills

Post-ship documentation update. Reads all project docs, cross-references the diff, updates README/ARCHITECTURE/CONTRIBUTING/CLAUDE.md to match what shipped, polishes CHANGELOG voice, cleans up TODOS, and optionally bumps VERSION. Use when asked to "update the docs", "sync documentation", or "post-ship docs".