원클릭으로
bump
Bump the semantic version across all six canonical locations and update CHANGELOG
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Bump the semantic version across all six canonical locations and update CHANGELOG
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Reconstruct Dazzle/HM judgement from stems before inventing structure
Reconstruct Dazzle/HM judgement from stems before inventing structure
Run all quality checks on modified files — the on-demand pre-ship quality gate
Commit, verify, tag, and push with the repo's pre-flight gate suite (lint, type, drift gates, docs build)
Use when authoring or revising trial.toml scenarios for dazzle qa trial — puts an LLM in the shoes of a real business user evaluating a Dazzle app. Use when the user asks to "set up qa trials", "write a trial scenario", "evaluate this app as a user", or mentions qualitative/trial/business-user testing. Also use when a trial report is sparse or unhelpful — the scenario itself is usually the root cause.
Use when writing or editing Dazzle .dsl files — syntax rules, the mistakes agents actually make, and pointers to the drift-gated references. Complements (never replaces) CLAUDE.md's DSL Quick Reference.
| name | bump |
| description | Bump the semantic version across all six canonical locations and update CHANGELOG |
Bump the project's semantic version. The user may specify a bump level as an argument: major, minor, or patch (default: patch). They may also pass an explicit version like 1.2.3.
Read current version from pyproject.toml (the version = "X.Y.Z" line near the top).
Compute new version:
major: bump X, reset Y and Z to 0.minor: bump Y, reset Z to 0.patch (or no argument): bump Z.\d+\.\d+\.\d+: use it as-is.Apply ALL version-line bumps in a single Bash invocation. Five files carry the project's canonical version string, plus a sixth file (homebrew) carries it on two lines. Editing them one-by-one with the Edit tool triggers a pre-commit reformat race that costs ~30s of agent time per bump (closed #1063 surface A; this step closes surface B).
Substitute OLD and NEW and run:
OLD="0.67.126"
NEW="0.67.127"
# pyproject.toml + core.toml — `version = "X.Y.Z"`
sed -i.bak "s/^version = \"${OLD}\"$/version = \"${NEW}\"/" pyproject.toml src/dazzle/mcp/semantics_kb/core.toml
# AGENTS.md — `**Version**: X.Y.Z`
sed -i.bak "s/\\*\\*Version\\*\\*: ${OLD}/**Version**: ${NEW}/" AGENTS.md
# ROADMAP.md — `**Current Version**: vX.Y.Z`
sed -i.bak "s/\\*\\*Current Version\\*\\*: v${OLD}/**Current Version**: v${NEW}/" ROADMAP.md
# homebrew/dazzle.rb — `version "X.Y.Z"` AND `tags/vX.Y.Z.tar.gz`
sed -i.bak \
-e "s/^ version \"${OLD}\"$/ version \"${NEW}\"/" \
-e "s|tags/v${OLD}\\.tar\\.gz|tags/v${NEW}.tar.gz|" \
homebrew/dazzle.rb
# Clean up sed's .bak files (BSD sed on macOS requires the extension).
# maxdepth 6 covers src/dazzle/mcp/semantics_kb/core.toml.bak; bump if
# any future target moves deeper.
find . -maxdepth 6 -name "*.bak" -delete
# Verify all six version lines moved exactly. Expected: 6 matching lines.
# Note: \*\*Version\*\* on AGENTS.md has trailing text on the same line
# (`| **Python**: 3.12+ | ...`) so don't anchor with `$`.
grep -E "^version = \"${NEW}\"$|^\\*\\*Version\\*\\*: ${NEW} |^\\*\\*Current Version\\*\\*: v${NEW}$|^ version \"${NEW}\"$|tags/v${NEW}\\.tar\\.gz" \
pyproject.toml src/dazzle/mcp/semantics_kb/core.toml AGENTS.md ROADMAP.md homebrew/dazzle.rb
If the final grep prints fewer than 6 lines, stop and investigate — one of the canonical locations didn't match the expected shape and needs manual attention.
Do NOT touch version references in code comments (e.g. # v0.19.0 HLESS) or dependency pins (e.g. aiosqlite>=0.19.0). Those refer to the version a feature was introduced, not the current project version. The sed patterns above are anchored (^) to avoid matching those.
Update CHANGELOG.md following Keep a Changelog conventions. This is the only step that needs structured logic, so use the Edit tool here:
CHANGELOG.md and find the ## [Unreleased] section./bump (i.e. it's not just the work you're about to bundle into this release), stop and warn rather than swallowing it into this version. The v0.72–v0.74 cycle accumulated ~200 lines of orphaned entries under Unreleased because multiple commits shipped without bumps; backfilling them later required a separate hygiene pass. A rough heuristic: if Unreleased has entries that span multiple unrelated themes / multiple ### subsections referencing distinct issue numbers, ask the user whether to (a) bundle them all into this version, (b) backfill them to past versions first, or (c) split this bump into multiple targeted versions.## [X.Y.Z] - YYYY-MM-DD (today's date) immediately after the Unreleased section heading's blank line.## [Unreleased] heading in place with empty subsections beneath it, ready for future work:
## [Unreleased]
## [X.Y.Z] - YYYY-MM-DD
### Added
- (the entries that were under Unreleased)
...
Do NOT create a git tag yet. The tag must be created AFTER the commit so it points to the correct commit. /ship handles tagging automatically.
Report the change: Bumped version: OLD → NEW and list the files modified.
Remind the user: run /ship to commit, push, and create + push the tag (which triggers PyPI + Homebrew releases).
Do NOT commit or tag. The user will run /ship separately.