ワンクリックで
smaqit-release-analysis
Collect changes, assess severity, and suggest next version for a release
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Collect changes, assess severity, and suggest next version for a release
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Creates a test playbook for a task — `task.test-create [id]`, `test.create [id]`, or any request to generate an E2E test runbook from a task file. Produces a complete, executable playbook under `.smaqit/user-testing/tests/` with build-gate, deploy-gate, and live-service E2E validation where the task touches live services.
End session by documenting the entire conversation. Use at session completion to create history entries.
Bootstrap or refresh a smaqit project by inferentially synchronizing Codex, Claude Code, and GitHub Copilot project instructions around a canonical root AGENTS.md, then creating the base project directories (docs/, assets/, assets/raw/). Use when the user asks to start, initialize, reinitialize, or refresh a smaqit project.
Execute git operations (commit, tag, push) for local releases
Produces a structured parity assessment comparing any two software systems — frameworks, libraries, platforms, or products. Identifies the current project from session context, studies the target system, checks domain compatibility, then outputs validated Mermaid diagrams and a written ASSESSMENT.md. Trigger phrase: `parity.assess <name>`.
Manages a live Q&A knowledge manifest at `.smaqit/compendium.md`. Invoked when the user says `list compendium`, `fetch from compendium [query]`, `update compendium [question]`, or `remove from compendium [question]`. Lists all Q&A entries grouped by category, semantically searches for relevant entries, upserts a Q&A pair (add or update), or removes an entry after confirmation.
| name | smaqit.release-analysis |
| description | Collect changes, assess severity, and suggest next version for a release |
| metadata | {"version":"0.6.0"} |
Analyze repository changes since the last release, assess their severity, and suggest the next semantic version.
Use this skill at the start of a release workflow to:
The release workflow always creates a commit named exactly "Prepare release vX.Y.Z" at every release point (hardcoded in smaqit.release-git-pr and smaqit.release-git-local). Use this commit as the authoritative lower boundary for the current release delta. It is more reliable than git tags (absent in shallow clones) and more precise than PR merge timestamps (which can be incorrectly ordered).
Step 1a — Deepen the clone so all history is visible:
git fetch --unshallow 2>/dev/null || git fetch --depth=2147483647 2>/dev/null || true
Step 1b — Check whether HEAD itself is a "Prepare release" commit (i.e., the agent is already on the release PR branch):
git log -1 --format="%s"
Step 1c — Find the boundary SHA:
# List every "Prepare release" commit in reverse-chronological order
git log --format="%H %s" | grep -iE "^[0-9a-f]+ Prepare release v[0-9]"
Store the result as <boundary-sha>.
Confirm it with:
git log -1 --oneline "<boundary-sha>"
Step 1d — Extract the last-released version from the boundary commit message:
git log -1 --format="%s" "<boundary-sha>" | grep -oE "v[0-9]+\.[0-9]+\.[0-9]+"
Store as <last-version> (e.g., v1.1.2).
Fallback (no "Prepare release" commits exist — new repository):
git fetch --tags --quiet 2>/dev/null || true
git tag --sort=-v:refname | head -1
If tags are also empty, use v0.0.0 as baseline and suggest v0.1.0.
Collect commits between <boundary-sha> and HEAD. This range is the authoritative delta for the current release.
A. Merge commits (PR titles — high-level summaries):
git log "<boundary-sha>..HEAD" --merges --pretty=format:"%h %s"
B. Individual commits (feature details within PRs):
git log "<boundary-sha>..HEAD" --no-merges --pretty=format:"%h %s"
Filter out noise commits from both lists before analysing:
Initial plan — release workflow setup commits, not changelog materialPrepare release v — release boundary markers themselvesMerge pull request .*/copilot/release- — the PR merge for the current release, not a featureThe remaining commits are the real changelog delta. Group related commits (individual commits + their merge commit) into a single changelog entry per PR.
C. File changes analysis: Supplement the commit list with a diff to catch file-level context:
git diff "<boundary-sha>..HEAD" --stat --name-status
Extract key insights:
D. Session history (if exists):
Read markdown files in .smaqit/history/ directory for additional context on completed work.
E. [Unreleased] section in CHANGELOG.md:
Read the existing ## [Unreleased] section if present — use as a starting point but always cross-check against the commit list above, as this section is frequently incomplete.
After collecting commits, count non-noise merge commits in the range — each represents a PR that should have at least one changelog entry. If your changes list has fewer entries, review the commit messages and add what is missing.
Analyze the collected changes from commit messages, file changes, and session history to determine severity level:
MAJOR (X.0.0) - Breaking changes:
MINOR (0.X.0) - New features, non-breaking changes:
PATCH (0.0.X) - Bug fixes only:
Based on the assessed severity and latest tag, calculate the next semantic version:
Special case: If current version is 0.Y.Z:
Provide a structured summary in YAML format:
changes:
- type: Added
description: "Release agent for automated workflow"
reference: "#123"
- type: Fixed
description: "Bug in version detection"
reference: "#124"
severity: MINOR
latest_version: v0.2.0
suggested_version: v0.3.0
rationale: "New features added (release agent), no breaking changes detected"
Output fields:
changes: Complete list of changes since the last release boundary, one entry per PR or meaningful commit. Use conventional changelog types: Added, Changed, Fixed, Removed, Deprecated, Security. Each entry must be a self-contained description suitable for pasting directly into CHANGELOG.md. Include a reference (PR number or commit SHA) for traceability.severity: MAJOR, MINOR, or PATCHlatest_version: Version extracted from the boundary "Prepare release" commit (e.g., v1.1.2)suggested_version: Next version following semver rulesrationale: Brief explanation of the severity assessmentImportant: The changes list must be exhaustive — it represents the complete delta since the last release boundary. It is used in the next step to reconcile the [Unreleased] section of CHANGELOG.md before promoting it to the new version.
.smaqit/history/) are optional - if they don't exist, rely on git logInitial plan commits, Prepare release commits, and release-PR merge commits from the delta — these are workflow noise, not changelog material