releasing
Branch model, POC-beta versioning, and the full cut-a-release procedure for The Warden's Oak. Use when committing/branching, merging dev→main, bumping VERSION, writing release notes, or tagging a release.
- License 许可
- MIT
- 最近更新
- 2026-11-14
- Stars
- ★ 0
- Forks
- 0
01 前言 Front Matter
- name
- releasing
- description
- Branch model, POC-beta versioning, and the full cut-a-release procedure for The Warden's Oak. Use when committing/branching, merging dev→main, bumping VERSION, writing release notes, or tagging a release.
- allowed-tools
- Read, Write, Edit, Bash, Glob, Grep
03 SKILL.md 正文
Releasing
Git workflow, versioning, and the release procedure. The always-on guardrails (never commit/push main; all work lands on dev first) live in AGENTS.md — this skill is the full procedure behind them.
Branch model
| Branch | Purpose |
|---|---|
main |
Production. Releases only. Protected — no direct commits. |
dev |
Integration. All work lands here first. Changelog must be kept up to date. |
Rules
- Never commit directly to
main. All changes land ondevfirst. devmust keep the changelog up to date. Every merge intodevshould either add to[Unreleased]or, when cutting a release, promote it to a versioned section. (See thechangelogskill for entry style.)- Hotfixes on
mainmust be merged back intodev. Ifmainever receives a direct hotfix (bypassing the normal flow), mergemainback intodevimmediately sodevdoesn't diverge. - Versioning — bump the patch only within the current POC line. The POC beta ran
0.2.x;0.3.0closed it (2026-07-07) and the POC+ round now bumps patches on0.3.x(0.3.1 → 0.3.2 → …). Do not bump the minor or major — the next minor flip is reserved for the end of POC+ (MVP).VERSIONholds the bare number (nov); tags and release-notes filenames carry thevprefix (v0.3.x).package.json's"version"field must be kept in sync withVERSIONon every release. - Merge strategy:
--no-ff(no fast-forward) on all merges intomainso the merge commits are explicit.
Cutting a release
- Merge
devintomain(--no-ff). - Bump the patch in
VERSION(e.g.0.2.2→0.2.3), and syncpackage.json's"version"field to match. - Add a changelog entry for the new version (promote
[Unreleased]→[0.2.x]with today's date). - Add player-facing release notes at
assets/release-notes/v0.2.x.ymlmatching the new tag (see below). - Tag the release commit (
git tag -a v0.2.x -m "..."). - Push the tag (
git push origin v0.2.x).
dev ─── feature work ─── changelog ─── merge ─── feature work ───
\ /
main ────────────────────────────────── v0.x.y ──────── tag
Release-notes conventions
Player-facing release notes live in assets/release-notes/v<tag>.yml — one file per release tag (e.g. v0.2.3.yml). On boot, if the running tag (v<VERSION>) differs from the stored last_release_announced meta and a matching file exists, the bot posts the notes to the announcement channel with a Request / Feedback button, then stamps the meta so it fires exactly once per tag.
- Add a notes file matching the new tag (
v0.2.x.yml) withtag,title, and a non-emptyhighlightslist (optionaldate,notes). No file → nothing is posted (and the meta is left untouched, so adding one later still fires on the next boot). - Keep it non-technical. Highlights are what's new and fun for players — not migrations, refactors, or internal plumbing. The changelog is the technical record; the notes file is the player's.
- The filename tag must match the git tag exactly (
vprefix included), or the announcement won't fire.
04 同仓库更多 Skills
decide
暂无简介
decide
暂无简介
decide
暂无简介
decide
暂无简介
decide
暂无简介
prompt-versioning
How to version any LLM prompt in The Warden's Oak (decision, critic, agent-player, and future families). Use when editing anything under assets/prompts/ or changing a *_VERSION constant in prompt-builder.ts or src/agent/.