The desktop-pack job broke the CI-shape invariant (ci-workflow.test.ts) that pr-checks.yml contains exactly [build, gate, lint, typecheck] — the gate's job set maps 1:1 to branch-protection required checks. Extract the advisory desktop-packaging validation into desktop-packaging.yml, still PR-triggered and non-required, so the thin gate stays pure. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>