chore(#2868): switch canary publish from main to dev branch (#2871)

* chore(#2868): switch canary publish from main to dev branch

Swaps the four `if:` guards in `.github/workflows/canary.yml` from
`refs/heads/main` to `refs/heads/dev` so the canary stream is owned
by the new long-lived integration branch. Adds a policy comment at
the top of the workflow documenting the branch->dist-tag mapping
(dev=@canary, main=@next/@latest, no overlap).

Closes #2868

* fix(#2868): summary block matches publish-step gate

CodeRabbit caught: the Summary step keyed off DRY_RUN only, so a
non-dry-run on main would falsely report "Published"/"Tagged" even
though all four publish steps were skipped by the new dev-only gate.

Add PUBLISH_ELIGIBLE env mirroring the publish-step `if:` expression
and a VALIDATION ONLY branch in the summary so non-dev runs report
honestly.
This commit is contained in:
Tom Boucher
2026-04-29 17:43:30 -04:00
committed by GitHub
parent f6a6e43226
commit f2ada8500c
2 changed files with 23 additions and 4 deletions

View File

@@ -36,6 +36,12 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
optional `dry_run` boolean and the same publish-verification gate as `release.yml`. (#2828)
### Changed
- **Canary release workflow now publishes from `dev` branch only** — `.github/workflows/canary.yml`
swaps its four publish-step guards from `refs/heads/main` to `refs/heads/dev`. Aligns the
workflow with the new branch→dist-tag policy (`dev` → `@canary`, `main` → `@next`/`@latest`).
Added a header comment documenting the policy. `workflow_dispatch` runs on `main` (or any
other branch) now complete build/test/dry-run validation but skip publish + tag, instead
of the previous behaviour where `main` published and `dev` silently no-op'd. (#2868)
- **Skill descriptions trimmed to ≤ 100 chars across all `commands/gsd/*.md`** — three
anti-patterns eliminated: flag documentation already present in `argument-hint:` (e.g.
`discuss-phase` was 380 chars, now 76), `Triggers:` keyword-stuffing lists, and