[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M75JRW7DRDGXRK7CDQ9HKP3D":3,"skill-same:01M75JRW7DRDGXRK7CDQ9HKP3D":46},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":14,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":30,"updatedAt":31,"install":32,"resources":45},"01M75JRW7DRDGXRK7CDQ9HKP3D","releasing",null,"Branch model, POC-beta versioning, and the full cut-a-release procedure for The Warden's Oak. Use when committing\u002Fbranching, merging dev→main, bumping VERSION, writing release notes, or tagging a release.","WernerVdM97\u002Fdaily-pixel","WernerVdM97","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F51920192?v=4","01M75JPTS7EV5F4QH79JWF8YCE","Werner V\u002Fd Merwe","01M75JPTTSMZ29EMDP2KRMHVHC",0,"MIT","https:\u002F\u002Fgithub.com\u002FWernerVdM97\u002Fdaily-pixel\u002Fblob\u002Fdev\u002F.pi\u002Fskills\u002Freleasing\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: releasing\ndescription: Branch model, POC-beta versioning, and the full cut-a-release procedure for The Warden's Oak. Use when committing\u002Fbranching, merging dev→main, bumping VERSION, writing release notes, or tagging a release.\nallowed-tools: Read, Write, Edit, Bash, Glob, Grep\n---\n\n# Releasing\n\nGit workflow, versioning, and the release procedure. The always-on guardrails (never commit\u002Fpush `main`; all work lands on `dev` first) live in `AGENTS.md` — this skill is the full procedure behind them.\n\n## Branch model\n\n| Branch | Purpose |\n|--------|---------|\n| `main` | Production. Releases only. Protected — no direct commits. |\n| `dev`  | Integration. All work lands here first. Changelog must be kept up to date. |\n\n## Rules\n\n1. **Never commit directly to `main`.** All changes land on `dev` first.\n2. **`dev` must keep the changelog up to date.** Every merge into `dev` should either add to `[Unreleased]` or, when cutting a release, promote it to a versioned section. (See the `changelog` skill for entry style.)\n3. **Hotfixes on `main` must be merged back into `dev`.** If `main` ever receives a direct hotfix (bypassing the normal flow), merge `main` back into `dev` immediately so `dev` doesn't diverge.\n4. **Versioning — bump the patch only within the current POC line.** The POC beta ran `0.2.x`; `0.3.0` closed it (2026-07-07) and the POC+ round now bumps patches on `0.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). `VERSION` holds the bare number (no `v`); tags and release-notes filenames carry the `v` prefix (`v0.3.x`). `package.json`'s `\"version\"` field must be kept in sync with `VERSION` on every release.\n5. **Merge strategy:** `--no-ff` (no fast-forward) on all merges into `main` so the merge commits are explicit.\n\n## Cutting a release\n\n1. Merge `dev` into `main` (`--no-ff`).\n2. Bump the **patch** in `VERSION` (e.g. `0.2.2` → `0.2.3`), and sync `package.json`'s `\"version\"` field to match.\n3. Add a changelog entry for the new version (promote `[Unreleased]` → `[0.2.x]` with today's date).\n4. Add player-facing release notes at `assets\u002Frelease-notes\u002Fv0.2.x.yml` matching the new tag (see below).\n5. Tag the release commit (`git tag -a v0.2.x -m \"...\"`).\n6. Push the tag (`git push origin v0.2.x`).\n\n```\ndev  ─── feature work ─── changelog ─── merge ─── feature work ───\n                                      \\               \u002F\nmain ────────────────────────────────── v0.x.y ──────── tag\n```\n\n## Release-notes conventions\n\nPlayer-facing release notes live in `assets\u002Frelease-notes\u002Fv\u003Ctag>.yml` — **one file per release tag** (e.g. `v0.2.3.yml`). On boot, if the running tag (`v\u003CVERSION>`) 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 \u002F Feedback** button, then stamps the meta so it fires exactly once per tag.\n\n1. **Add a notes file matching the new tag** (`v0.2.x.yml`) with `tag`, `title`, and a non-empty `highlights` list (optional `date`, `notes`). No file → nothing is posted (and the meta is left untouched, so adding one later still fires on the next boot).\n2. **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.\n3. **The filename tag must match the git tag exactly** (`v` prefix included), or the announcement won't fire.\n","# Releasing\n\nGit workflow, versioning, and the release procedure. The always-on guardrails (never commit\u002Fpush `main`; all work lands on `dev` first) live in `AGENTS.md` — this skill is the full procedure behind them.\n\n## Branch model\n\n| Branch | Purpose |\n|--------|---------|\n| `main` | Production. Releases only. Protected — no direct commits. |\n| `dev`  | Integration. All work lands here first. Changelog must be kept up to date. |\n\n## Rules\n\n1. **Never commit directly to `main`.** All changes land on `dev` first.\n2. **`dev` must keep the changelog up to date.** Every merge into `dev` should either add to `[Unreleased]` or, when cutting a release, promote it to a versioned section. (See the `changelog` skill for entry style.)\n3. **Hotfixes on `main` must be merged back into `dev`.** If `main` ever receives a direct hotfix (bypassing the normal flow), merge `main` back into `dev` immediately so `dev` doesn't diverge.\n4. **Versioning — bump the patch only within the current POC line.** The POC beta ran `0.2.x`; `0.3.0` closed it (2026-07-07) and the POC+ round now bumps patches on `0.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). `VERSION` holds the bare number (no `v`); tags and release-notes filenames carry the `v` prefix (`v0.3.x`). `package.json`'s `\"version\"` field must be kept in sync with `VERSION` on every release.\n5. **Merge strategy:** `--no-ff` (no fast-forward) on all merges into `main` so the merge commits are explicit.\n\n## Cutting a release\n\n1. Merge `dev` into `main` (`--no-ff`).\n2. Bump the **patch** in `VERSION` (e.g. `0.2.2` → `0.2.3`), and sync `package.json`'s `\"version\"` field to match.\n3. Add a changelog entry for the new version (promote `[Unreleased]` → `[0.2.x]` with today's date).\n4. Add player-facing release notes at `assets\u002Frelease-notes\u002Fv0.2.x.yml` matching the new tag (see below).\n5. Tag the release commit (`git tag -a v0.2.x -m \"...\"`).\n6. Push the tag (`git push origin v0.2.x`).\n\n```\ndev  ─── feature work ─── changelog ─── merge ─── feature work ───\n                                      \\               \u002F\nmain ────────────────────────────────── v0.x.y ──────── tag\n```\n\n## Release-notes conventions\n\nPlayer-facing release notes live in `assets\u002Frelease-notes\u002Fv\u003Ctag>.yml` — **one file per release tag** (e.g. `v0.2.3.yml`). On boot, if the running tag (`v\u003CVERSION>`) 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 \u002F Feedback** button, then stamps the meta so it fires exactly once per tag.\n\n1. **Add a notes file matching the new tag** (`v0.2.x.yml`) with `tag`, `title`, and a non-empty `highlights` list (optional `date`, `notes`). No file → nothing is posted (and the meta is left untouched, so adding one later still fires on the next boot).\n2. **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.\n3. **The filename tag must match the git tag exactly** (`v` prefix included), or the announcement won't fire.\n",{"name":5,"description":7,"allowed-tools":24},"Read, Write, Edit, Bash, Glob, Grep","dev","96f5ffb582420679625efdf337d44e9ddfcd7c97",".pi\u002Fskills\u002Freleasing","https:\u002F\u002Fgithub.com\u002FWernerVdM97\u002Fdaily-pixel","https:\u002F\u002Fgithub.com\u002FWernerVdM97","informationalism enthusiast","2026-11-14 17:25:05",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add WernerVdM97\u002Fdaily-pixel --skill releasing",{"tool":38,"command":39},"bunx","bunx skills add WernerVdM97\u002Fdaily-pixel --skill releasing",{"tool":41,"command":42},"pnpm","pnpm dlx skills add WernerVdM97\u002Fdaily-pixel --skill releasing","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FWernerVdM97\u002Fdaily-pixel\u002Fblob\u002Fdev\u002F.pi\u002Fskills\u002Freleasing\u002FSKILL.md",true,[],[47,53,58,63,68,73],{"skillNo":48,"name":49,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":50,"categories":51,"keywords":52,"publishedAt":19},"01M75JS5K1AHJ25E4XCKRGG38P","decide","https:\u002F\u002Fgithub.com\u002FWernerVdM97\u002Fdaily-pixel\u002Fblob\u002Fdev\u002Fassets\u002Fprompts\u002Fdecision-prompts\u002Fv14\u002Fdecide\u002Fskill.md",[],[],{"skillNo":54,"name":49,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":55,"categories":56,"keywords":57,"publishedAt":19},"01M75JS47KQ0Y0J7GKJGP05CJW","https:\u002F\u002Fgithub.com\u002FWernerVdM97\u002Fdaily-pixel\u002Fblob\u002Fdev\u002Fassets\u002Fprompts\u002Fdecision-prompts\u002Fv13\u002Fdecide\u002Fskill.md",[],[],{"skillNo":59,"name":49,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":60,"categories":61,"keywords":62,"publishedAt":19},"01M75JS2SGKV3FX5F2GY769FY0","https:\u002F\u002Fgithub.com\u002FWernerVdM97\u002Fdaily-pixel\u002Fblob\u002Fdev\u002Fassets\u002Fprompts\u002Fdecision-prompts\u002Fv12\u002Fdecide\u002Fskill.md",[],[],{"skillNo":64,"name":49,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"publishedAt":19},"01M75JS08B4RD30N35BYPP2BF8","https:\u002F\u002Fgithub.com\u002FWernerVdM97\u002Fdaily-pixel\u002Fblob\u002Fdev\u002Fassets\u002Fprompts\u002Fdecision-prompts\u002Fcurrent_source\u002Fdecide\u002Fskill.md",[],[],{"skillNo":69,"name":49,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":19},"01M75JRYYS3CASN8Q84SZEKCHE","https:\u002F\u002Fgithub.com\u002FWernerVdM97\u002Fdaily-pixel\u002Fblob\u002Fdev\u002Fassets\u002Fprompts\u002Fdecision-prompts\u002F__test-partial__\u002Fdecide\u002Fskill.md",[],[],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":19},"01M75JRQMD3ZBFWT66N4N1BV0A","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\u002Fprompts\u002F or changing a *_VERSION constant in prompt-builder.ts or src\u002Fagent\u002F.","https:\u002F\u002Fgithub.com\u002FWernerVdM97\u002Fdaily-pixel\u002Fblob\u002Fdev\u002F.pi\u002Fskills\u002Fprompt-versioning\u002FSKILL.md",[],[]]