diff --git a/skills/branch-and-commit/SKILL.md b/skills/branch-and-commit/SKILL.md index 34520a4..486a08e 100644 --- a/skills/branch-and-commit/SKILL.md +++ b/skills/branch-and-commit/SKILL.md @@ -25,12 +25,18 @@ code that closes it. Getting the format right keeps `git log`, the changelog, an | `feat` | New capability | Minor bump, "Features" section | | `fix` | Bug fix | Patch bump, "Bug Fixes" section | | `perf` | Performance improvement | Patch bump | - | `refactor` | Restructure, no behavior change | Patch bump | + | `refactor` | Restructure, no behavior change | No version bump | | `docs` | Documentation only | No version bump | | `chore` | Maintenance, tooling | No version bump | | `ci` | CI/CD workflow changes | No version bump | | `test` | Test-only changes | No version bump | + "No version bump" means release-please does not open a release PR for it at + all — it is a hidden type. A change users will notice that only fits a hidden + type (a new CI gate under `ci`, a behaviour-changing `refactor`) still has to + ship: put a `Release-As: X.Y.Z` footer in the PR body (the body becomes the + squash commit's message) and release-please cuts that version. + 4. Breaking changes append `!` after the type (`feat!:`) or add a `BREAKING CHANGE:` footer — either triggers a major bump. Use whichever is more visible for the change; don't rely on prose in the body alone. diff --git a/skills/release-management/SKILL.md b/skills/release-management/SKILL.md index 913d6a3..eb1fafe 100644 --- a/skills/release-management/SKILL.md +++ b/skills/release-management/SKILL.md @@ -64,6 +64,8 @@ gh release edit v0.2.0 --notes "TLDR: ...\n\n$(gh release view v0.2.0 --json bod ## Pitfalls +- Shipping a release-worthy change under a hidden type (`ci`, `chore`, `docs`, `refactor`, `test`) and waiting for a release PR that never comes — release-please logs `No user facing commits found … skipping`. Either the type was wrong (`feat`/`fix`), or add `Release-As: X.Y.Z` to the PR body so the squash commit carries it (see `skills/branch-and-commit` rule 3). + - Publishing or delivering a repository whose `LICENSE` still names the upstream template author — `head -3 LICENSE` before anything leaves the building. For client work an inherited MIT grants the client, and everyone else, far more than the commission contract does, and it cannot be withdrawn (`docs/setup/licensing.md`). - Enabling auto-merge on the release-please PR "to save a click" — this defeats the entire point of the human gate described in ADR-0002; the `push:main` race is only closed because a human reviews before merge. - Shipping release notes with only the generated Conventional Commit list and no TLDR — accurate for engineers, meaningless for the actual audience of a release announcement.