# Changelog

> Changelog and conventional commit hygiene. Triggers on: "changelog retcon", "changelog preview", "retcon commits", "preview changelog", "what version will this be". Requires gh or glab CLI.

- Skill: `cloudvoyant/changelog` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add cloudvoyant/changelog`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cloudvoyant/changelog/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: cloudvoyant (https://skillmd.com/u/cloudvoyant)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/cloudvoyant/changelog

---


> **Compatibility**: AskUserQuestion falls back to numbered list on non-Claude-Code platforms.

## Dependency Check

Before proceeding, verify that at least one of `gh` or `glab` is available:

```bash
command -v gh >/dev/null 2>&1 || command -v glab >/dev/null 2>&1 || echo "MISSING: gh or glab — install one to use changelog retcon"
```

If neither is available: warn the user but allow `changelog preview` to proceed (it only needs git).

## Critical Rules

- **Markdown output: soft-wrap prose, never hard-wrap** — when this skill writes a `.md` artifact (changelog entries, previews, or any generated document), write each paragraph as one continuous line; do not insert manual newlines to wrap prose at a fixed column width. Newlines still separate paragraphs, list items, headings, and code fences. (If a markdown formatter is available, `prettier --prose-wrap never` enforces this deterministically.)

- **Never rebase on protected branches** — refuse if branch is main, master, develop, or matches `*-stable`
- **Never force-push without --force-with-lease** — always protect against concurrent pushes
- **retcon --apply requires a clean working tree** — refuse if `git status --porcelain` is non-empty
- **preview never writes files** — output to conversation only
- **Unknown verb → help** — never error silently

## Step 0: Parse Arguments

The raw invocation args (filled by Claude Code / OpenCode slash commands): `$ARGUMENTS`. If this line is not filled in, read the verb and remaining args from the user's current message.

```bash
VERB="[first non-flag arg, default: help]"
APPLY_MODE=false
PLATFORM=""
[[ "$*" =~ --apply ]] && APPLY_MODE=true
[[ "$*" =~ --platform[[:space:]]github ]] && PLATFORM="github"
[[ "$*" =~ --platform[[:space:]]gitlab ]] && PLATFORM="gitlab"

case "$VERB" in
  "")         VERB="help"    ;;
  "rc")       VERB="retcon"  ;;
esac
```

## Step 1: Dispatch

Read and execute `references/workflows/{VERB}.md`.

If `references/workflows/{VERB}.md` does not exist, fall back to `references/workflows/help.md`.

## Workflow Index

- **retcon** (`references/workflows/retcon.md`) — propose and apply commit message edits on open PR/MR
- **preview** (`references/workflows/preview.md`) — show predicted changelog and next version inline
- **help** (`references/workflows/help.md`) — print command reference

