Skip to content

docs: cut the /release skill down to pipelex-starter-python's specifics - #69

Merged
lchoquel merged 1 commit into
devfrom
docs/Release-skill
Sep 7, 2026
Merged

docs: cut the /release skill down to pipelex-starter-python's specifics#69
lchoquel merged 1 commit into
devfrom
docs/Release-skill

Conversation

@lchoquel

@lchoquel lchoquel commented Sep 7, 2026

Copy link
Copy Markdown
Member

The repo's /release skill no longer restates the release procedure. It now opens by naming the workspace release play, docs/releasing.md at the workspace root, and declares only what is specific to pipelex-starter-python: the repo key, the base dev, the pull request to main, and the release worktree _pipelex-starter-python--release cut with wt add pipelex-starter-python release --branch release/vX.Y.Z. The eight interactive steps go with it — the pre-flight that read git status and offered to fold a dirty tree or unpushed commits into the release, the branch created from the current HEAD in place (which the main-checkout guard refuses outright), and the post-merge sequence the play and /ledger-land now own.

What it declares under each of the six headings:

  • What ships — a GitHub Release and nothing else: no workflow builds or publishes a distribution, and name = "piper" in pyproject.toml is the placeholder the bootstrap skill rewrites in a clone, not a registry package. github-release.yml fires on the push to main, reads the version out of pyproject.toml, slices the notes between that version's ## [vX.Y.Z] - heading and the next, and creates the Release, which is also what creates the tag. Two traps are written down: the job is unguarded, so a push carrying no bump — or a re-run of a run that already created its Release — fails at gh release create; and a missing changelog entry does not fail it, it ships a Release carrying the bare line. The landing verification is the run, gh release view, and the tag.
  • Version files and the lockpyproject.toml's [project].version, bare and without the v, and it must stay the file's first version = line because github-release.yml reads it with grep -m 1 and [tool.uv]'s required-version further down contains the same substring. uv.lock is regenerated by make li after the bump; package-check.yml fails the pull request over a stale one. Nothing else is stamped: no __version__, no badge.
  • Gatesmake agent-check, then make agent-test, then make codegen-check when a .mthds method changed since the last release, with the git log that answers whether one did and the PIPELEX= variable the target needs.
  • The release commitpyproject.toml, uv.lock, CHANGELOG.md, whatever make agent-check rewrote, and, after a make codegen, both the typed clients under piper/generated/ and the inputs.template.json beside each method, all staged by name. Leaving the templates behind loses them silently, since codegen-check hashes only piper/generated/ and the worktree is reaped at landing.
  • CI on the release pull requestguard-branches.yml (its gate-main job is the only way into main), version-check.yml, changelog-check.yml, lint-check.yml, tests-check.yml, package-check.yml, cla.yml, each with what it actually asserts and what it does not.
  • Particulars — the pull request title is Release/vX.Y.Z with the slash, which is where this repo departs from the play's default; the commit subject carries a one-line summary; there is no pre-release form, since release/vX.Y.Z-rc.1 fails changelog-check.yml rather than skipping it; the changelog headings carry the v; and the tags are lightweight, so reading them always needs --tags.

The rewrite found the item's survey disagreeing with the tree in a few places, and followed the tree. The survey said the gates "mirror the CI jobs by name", and they do not: make agent-check is wider than lint-check.yml, which runs the ruff, pyright and mypy merge checks but none of the plxt ones, so a MTHDS or TOML formatting finding surfaces locally or nowhere; and make agent-test runs a different marker set from the make gha-tests CI runs. The survey listed two gates, but the tree has a third that matters — make codegen-check, which no workflow runs at all and whose pipelex CLI is not a dependency of this starter. The survey's CI list omitted cla.yml. And its changelog line described the old skill's own behaviour rather than a repo constraint: changelog-check.yml asserts nothing about [Unreleased], so leaving none behind is the play's rule, not this repo's CI.

Closes L-260907-be2316

🤖 Generated with Claude Code

https://claude.ai/code/session_016F72qvy4QBZHe7XX24QmcT

Review in cubic

The skill now names the workspace release play and declares only what is this repo's own: the GitHub Release that github-release.yml creates on the push to main and how the landing verifies it, the pyproject.toml version with its first-version-line hazard and the uv.lock that make li regenerates, the agent-check and agent-test gates plus the conditional codegen-check, the named files the release commit carries, the workflows that gate a release pull request, and the particulars (the Release/vX.Y.Z title, the refused pre-release form, the v in the changelog headings, the lightweight tags).

The procedure it used to restate is gone: the git-status pre-flight that offered to fold uncommitted changes into the release, the branch created in place from the current HEAD, the numbered interactive steps, and the push and pull-request instructions the play now owns. The branch is cut in _pipelex-starter-python--release by wt add, and the merge is landed by /ledger-land.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016F72qvy4QBZHe7XX24QmcT
@lchoquel
lchoquel merged commit abbe7c2 into dev Sep 7, 2026
15 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Sep 7, 2026
@lchoquel
lchoquel deleted the docs/Release-skill branch September 7, 2026 22:17
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant