Skip to content
Back to skills

Gz Migrate Semver

ASecurity

Use to record ADR or OBPI semver renaming migration events.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 19, 2026
businesspythongobash

Security analysis

A100/100

Scanned October 19, 2026

npx -y skills add tvproductions/gzkit --skill gz-migrate-semver --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Gz Migrate Semver?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Gz Migrate Semver
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tvproductions-gz-migrate-semver/badge)](https://www.skillsdirectory.com/skills/tvproductions-gz-migrate-semver)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
name: gz-migrate-semver
description: Use to record ADR or OBPI semver renaming migration events.
category: agent-operations
lifecycle_state: active
owner: gzkit-governance
last_reviewed: 2026-10-17
metadata:
  skill-version: "0.2.1"
model: haiku
---

# gz migrate-semver

## Overview

Append `artifact_renamed` events so the ledger resolves an old ADR or OBPI id to
its canonical id. The ledger is never rewritten. `gz migrate-semver` proposes a
rename from two sources:

- `SEMVER_ID_RENAMES` in `src/gzkit/commands/register.py`, a fixed table of
  legacy renames (pool and SemVer re-sequencing, early slug corrections);
- on-disk drift (GHI #345): for each ADR or OBPI file whose stem is a slug id,
  the bare id (`ADR-0.35.0`, `OBPI-0.1.0-01`) when ledger events still carry it.

A pair is skipped when its rename event already exists, when the old id never
appears in the ledger, or when the ledger already canonicalizes the old id.
Re-running is safe. Each event has reason `semver_minor_sequence_migration`.

It covers bare→slug renames and the table only. A slug→slug correction to an
OBPI id goes through `uv run python -m gzkit.governance.obpi_slug_rename`, and a
pool ADR promotion records its own rename through `gz adr promote`.

## Workflow

1. Preview: `uv run gz migrate-semver --dry-run` lists each
   `Would append artifact_renamed: <old> -> <new>` and writes nothing.
2. Show the operator the list. The run writes one ledger event per pair in bulk
   and has no confirmation step, and a bulk rename written in error cannot be
   removed from an append-only ledger, only countered (GHI #584).
3. On the operator's approval, run `uv run gz migrate-semver` and report the
   count it prints. `No applicable SemVer ID migrations found.` means nothing
   was pending.

## Example

```bash
uv run gz migrate-semver --dry-run
uv run gz migrate-semver
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.