feat(release): version badges + release hardening (patch-floor + CHANGELOG)#38
Merged
Merged
Conversation
…ning A — Version badges: - Prepend a [X.Y.Z] badge to every command's `description:` so the /devflow: slash-picker shows e.g. "[0.2.1] Use when reviewing a PR/MR…". Seeded at the current version across all 26 commands. - bump_all_versions (lib/release.sh) now rewrites the bare [X.Y.Z] badge on release; check_version_consistency (lib/watch.sh) validates badge == Makefile. B — Versioning hardening: - _parse_conventional_commits: floor the bump to `patch` when there ARE commits since the last tag and HEAD isn't [skip release]/chore(release). docs/chore/ refactor merges now still cut a release (keeps "merge = release"; fixes the gap where a docs-only merge produced no release and needed a manual dispatch). - release.yml: maintain CHANGELOG.md — prepend each release's notes, committed in the release commit. Seeded CHANGELOG.md with v0.2.0/v0.2.1 history. No merge queue (overkill for a single-dev repo). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AndreJorgeLopes
added a commit
that referenced
this pull request
Jun 10, 2026
…prose (#39) _parse_conventional_commits grepped the ENTIRE HEAD commit body for the skip-release marker, so a commit whose prose merely mentioned that marker (e.g. one explaining the release logic) skipped its own release. PR #38's feat commit did exactly that and was silently skipped — no v0.3.0 was cut. Now the marker is honored only when it appears in the subject line or as a standalone trailer line. Subject and trailer skips still work; mid-sentence mentions no longer trigger a skip. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This was referenced Jun 10, 2026
AndreJorgeLopes
added a commit
that referenced
this pull request
Jun 15, 2026
…or) (#42) _parse_conventional_commits classified a chore-only commit range as a patch bump instead of none, so chore/docs/refactor-only merges cut a release. The "patch floor" added in #38 (2b693ab) flipped any none bump to patch to keep "merge = release", but that contradicts conventional- commit rules, the documented release process, and the test at release.bats:66 (present since the parser's first commit 81558d2) which was never updated and started failing. Remove the patch floor: only feat/fix/breaking cut a release. A chore/docs-only range returns none. To force a release for an otherwise non-releasable range, dispatch release.yml with bump_override (the escape hatch #38 was working around). Also fix the stale test 14 (bump_all_versions): #38 changed the command badge format from [devflow vX.Y.Z] to bare [X.Y.Z], but the fixture (description: "[devflow v0.1.0]...") and its grep ([devflow v0.2.0]) were not updated, so the sed never matched and the badge assertion failed under bats. Aligned the fixture + grep to the bare [X.Y.Z] format used by the real devflow-plugin/commands/*.md files. bats tests/unit/release.bats: 16/16 green. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Quick wins from the marketplace-initiative brainstorm: version badges in the slash-picker + release-pipeline hardening.
A — Version badges
description:now starts with[X.Y.Z](seeded[0.2.1]), so typing/devflow:shows e.g.[0.2.1] Use when reviewing a PR/MR…in the picker.bump_all_versions(lib/release.sh) rewrites the bare badge each release;check_version_consistency(lib/watch.sh) validates badge == Makefile version.B — Versioning hardening
_parse_conventional_commitsnow floors the bump topatchwhen there are commits since the last tag and HEAD isn't[skip release]/chore(release):. → docs/chore/refactor merges still release (keeps merge = release; fixes the gap where docs: record render-diagram export + release-pipeline gotchas #37's docs-only merge produced no release and needed a manual dispatch).release.ymlprepends each release's notes, committed in the release commit. Seeded with v0.2.0 / v0.2.1.Test plan
bash -nrelease.sh + watch.shdevflow check-version→ "All versions consistent: 0.2.1" (validates the new bare-badge check against the real badged files)[0.2.1]→[X.Y.Z]; CHANGELOG awk strips install boilerplate + "What's New" header🤖 Generated with Claude Code