All tools
HarnessCurated · reviewed

Release-Checklist Harness

Updated Jul 7, 2026

A Claude Code project config and runbook that enforces a pre-release checklist before any version ships: all tests green, changelog entry present, version bumped consistently, rollback plan documented, and post-release monitoring confirmed. Claude delivers a go/no-go verdict with a per-item status before any release action is taken.

What it does

  • /release-check

    Run the full pre-release checklist and output a per-item PASS/FAIL verdict.

  • /rollback-plan

    Draft a numbered rollback runbook covering deployment revert and verification.

  • /bump-version

    Update every version source in the repo consistently and show the diff.

Files (2)

README.mdprimary · markdown · 4.3 KB
# Release-Checklist Harness

A Claude Code project configuration for gating releases with a structured pre-flight checklist.

## What it does

When this harness is active, Claude Code acts as a release gatekeeper. Before any version
ships, it walks through every item on the checklist below, assigns a PASS or FAIL to each,
and delivers a go/no-go verdict. No release proceeds until all blocking items are green.

**Checklist items (in order):**

1. **Tests green** — the full test suite passes in CI on the release commit.
2. **Changelog updated** — a `CHANGELOG.md` or equivalent entry exists for this version,
   listing every user-visible change.
3. **Version bumped** — `package.json` (and any other version sources: `pyproject.toml`,
   `Cargo.toml`, etc.) agree on the new version and follow semver.
4. **Rollback plan documented** — a rollback procedure is written and reachable (inline
   comment, wiki page, or runbook) before deployment starts.
5. **Monitoring confirmed** — at least one alerting rule covers the release's key metrics;
   the on-call engineer is aware.

Any FAIL blocks the release. Claude reports which items need attention before asking you
to proceed.

## Files in this harness

| File | Purpose |
|------|---------|
| `README.md` | This guide — Claude reads it as its working instructions |
| `settings.json` | Claude Code project settings — copy to `.claude/settings.json` |

## Setup

1. Copy `settings.json` to `.claude/settings.json` in your project root.
2. Open your project in Claude Code.
3. Tell Claude the version you want to release and the deployment target, e.g.:
   "We are releasing v2.4.0 to production on Render."

Claude will run through the checklist and report status before taking any further action.

## Workflow reference

### Running a full release check
Tell Claude: "Run the release checklist for v2.4.0."

Claude will:
1. Run the test suite and confirm it is green on the release commit.
2. Check `CHANGELOG.md` for a v2.4.0 entry and flag it if missing.
3. Read `package.json` and any other version files and verify they all say `2.4.0`.
4. Ask you to confirm or provide a rollback procedure.
5. Ask whether monitoring is in place for this release.
6. Output the verdict table and — if all green — give an explicit go-ahead.

### Generating a rollback plan
Tell Claude: "Write a rollback plan for v2.4.0."

Claude will draft a numbered runbook: how to revert the deployment, what config changes
need to be undone, and how to verify the rollback succeeded.

### Bumping the version
Tell Claude: "Bump to v2.4.0."

Claude will update every version source consistently and prompt you to review the diff
before committing.

## Example output

```
Release checklist — v2.4.0
────────────────────────────────────────────
✓ Tests            all 312 tests pass on commit a3f9c1d
✓ Changelog        CHANGELOG.md entry found for v2.4.0
✓ Version bump     package.json, Dockerfile ARG — all say 2.4.0
✗ Rollback plan    no rollback procedure found — blocking
✓ Monitoring       Grafana alert "error-rate-high" covers /api/*

Overall verdict: NO-GO  (1 blocking item)
```

## Commands

- `/release-check <version>` — Run the full pre-release checklist for the given version
  and output a per-item PASS/FAIL table with an overall go/no-go verdict.
- `/rollback-plan <version>` — Draft a numbered rollback runbook for the release,
  covering deployment revert, config rollback, and verification steps.
- `/bump-version <version>` — Update every version source in the repo to the given
  version consistently, then show the diff for review.

## Allowed bash commands

The harness permits test runners, version inspection, and read-only git:

- `Bash(npm test*)`, `Bash(npx vitest*)`, `Bash(npx jest*)` — run the test suite
- `Bash(npx tsc*)` — typecheck before release
- `Bash(npm version*)` — bump version in package.json
- `Bash(git diff*)`, `Bash(git status*)`, `Bash(git log*)`, `Bash(git tag*)` — inspect state
- `Bash(cat*)` — read version files and changelog

Destructive commands and remote pushes are blocked.

## Known limitations

- The harness does not execute the deployment itself; it only gates the release.
- Monitoring confirmation is a human-in-the-loop step: Claude asks you to confirm rather
  than querying your alerting platform directly.
settings.jsonJSON · 506 B
{
  "permissions": {
    "allow": [
      "Read(**)",
      "Write(**)",
      "Edit(**)",
      "Bash(npm test*)",
      "Bash(npx vitest*)",
      "Bash(npx jest*)",
      "Bash(npx tsc*)",
      "Bash(npm version*)",
      "Bash(git diff*)",
      "Bash(git status*)",
      "Bash(git log*)",
      "Bash(git tag*)",
      "Bash(cat*)"
    ],
    "deny": [
      "Bash(git push*)",
      "Bash(git reset --hard*)",
      "Bash(git restore*)",
      "Bash(git clean*)",
      "Bash(rm -rf*)"
    ]
  }
}