feat(release): state the GitHub-only limitation as a decision - #218
Conversation
`release` is GitHub-bound end to end, but said so only in passing — "v1 is GitHub via the `gh` CLI" read as *not yet*, implying a GitLab driver was on the way. It is not: release-please is GitHub-only by construction, and no release tool with GitLab traction reproduces the release-PR model this skill drives. State it where a GitLab repo would look — the description, the skill's opening, the detect step's stop path and the guardrail — and record the weighed alternatives (`releaser-pleaser`, semantic-release, GitLab's `release-cli`) in REFERENCE's new GitHub-only section and Decisions, so the question is not reopened from scratch. The existing seams stay untouched: the release tool is detected rather than configured, and the skill's name stays tool-neutral. Refs #186
|
AI review — accepted (round 1 of 3, head Scope match. Every item the issue asked for is present and nothing beyond it: Seams intact. "Release tool is detected, not configured" and the tool-neutral skill name are untouched and both are called out as deliberately open, as the issue required. Correctness. All four cross-links resolve — Gate re-established, not inherited. Risk. Prose-only, no code, no secrets in the diff. No CODEOWNERS file and no branch protection on |
# Conflicts: # README.md
The gate landed with #215 and binds every workflow added later: a PR workflow needs both the draft gate and ready_for_review in its trigger types, or the un-draft fires nothing and the check silently never runs. Until now that reasoning lived only in CLAUDE.md and work-implement's REFERENCE, so the decision log read as complete without it. Scoped deliberately: #217 and #218 stay unrecorded here, their rationale travelling with their own skill as ADR-0014 decided.
Summary
releaseis GitHub-bound end to end, but the skill said so only in passing — "v1 is GitHub via theghCLI" reads as not yet, implying a GitLab driver is on the way. Since #185 landed andforgeaccepts a second value, a GitLab repo adopting these skills had no way to learn the limitation from the skill itself; it found out when the skill stopped.The feasibility question is settled: release-please is GitHub-only by construction, and the release-PR model this skill drives has no tool with real GitLab traction behind it (semantic-release tags straight from the pipeline — no release MR, so nothing to validate and nothing to merge).
releaser-pleaserdoes reproduce the model on both forges, so a GitLab driver is technically reachable — and not worth reaching, for a forge no repo here is on.So the change is the statement, not a driver:
SKILL.md— the frontmatter description, the skill's opening paragraph, the detect step's forge bullet and the guardrail now say GitHub-only and say why: the release tool binds it, not the forge. The stop path explicitly must not say "not supported yet".REFERENCE.md— a newGitHub-only, and why the release tool binds itsection (the first##, where a GitLab reader looks), with a table of the four candidates and why each fails to unbind the skill; plus a Decisions entry recording the rejected options so the question is not reopened from scratch. The existing forge-key decision is updated — its "a second forge docks as a value" prediction held with ADR-0028.pnpm skills:sync(root README table,skills/repo/README.md).The existing seams stay untouched on purpose. The release tool is detected rather than configured, and the skill's name is deliberately tool-neutral — so a tool that does reproduce the model docks here as detection, without a rename or a config break. Nothing here closes that door.
Type of change
Checklist
pnpm verifypasses locallytest/deliberately does not cover skill prose)SKILL.mdupdated (description, examples)Test discipline
Prose-only change —
SKILL.mdandREFERENCE.md, plus the artifactsskills:syncregenerates. No code touched, sotddwas not driven; per the implement loop's rule that is a defined outcome, not a gap. The gate that did run is the repo's own:pnpm verify(lint, format,skills:check, typecheck, 199 tests) green in a fresh worktree afterpnpm install --frozen-lockfile.Related issues
Refs #186