@gallopsystems/agent-skills 1.23.0 → 1.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gallopsystems/agent-skills",
3
- "version": "1.23.0",
3
+ "version": "1.24.0",
4
4
  "description": "Gallop Systems agent skills, symlinked into .claude/skills (Claude Code) and .agents/skills (Codex) on install.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -30,7 +30,34 @@ When working in a descendant and a fix belongs in the template too: fix the symp
30
30
 
31
31
  ## Releasing a Template Version
32
32
 
33
- After merging to the template's main:
33
+ First determine **how the template releases** — it changes everything below:
34
+
35
+ ```bash
36
+ ls release-please-config.json .release-please-manifest.json 2>/dev/null # present ⇒ release-please
37
+ ```
38
+
39
+ ### If the template uses release-please (e.g. nuxt-copier-template)
40
+
41
+ **You never `git tag` by hand.** Merging to `main` runs release-please, which opens a "release PR"; merging *that* cuts the tag + GitHub Release. The **Conventional-Commits type of your merged PR governs the entire outcome** — both the version bump and whether a release happens at all:
42
+
43
+ - `feat:` → **minor** bump. `fix:` → **patch**. `feat!:` / `BREAKING CHANGE:` → **major**.
44
+ - `chore:`, `docs:`, `refactor:`, `style:`, `test:`, `ci:`, `build:` → **no version bump, no release**. The change lands on `main` but sits in the (often hidden) "Miscellaneous" changelog bucket, **invisible to descendants**, until some later `feat`/`fix` rides out and drags it along.
45
+
46
+ **The trap:** a template change that *should* propagate — a new alias/convention, a raised dependency floor, anything descendants must adopt — is a `feat` (or `fix`), **not** a `chore`. Type it `chore` and it silently never releases; descendants track git *tags*, so no tag = no `copier update` PR. When in doubt about whether descendants need it, it's a `feat`.
47
+
48
+ **If you already merged it as the wrong type** (non-releasing), don't wait — force a release with an empty commit carrying a `Release-As` footer, via a normal PR (squash-merge it):
49
+
50
+ ```bash
51
+ git commit --allow-empty -m "chore: release template <X.Y.Z>
52
+
53
+ <why this is being force-released>
54
+
55
+ Release-As: <X.Y.Z>"
56
+ ```
57
+
58
+ release-please honors `Release-As:` regardless of commit types and opens the release PR at that exact version. Note: **release PRs get no CI** (the meta-test workflow doesn't run on `release-please--branches--*`), so if branch protection requires a status check, the release PR stays `BLOCKED` under a normal merge and an admin/maintainer must merge it — that's the expected path for release PRs here, not a failure.
59
+
60
+ ### If the template has no release automation (manual tags)
34
61
 
35
62
  ```bash
36
63
  git checkout main && git pull --ff-only