From 7865f123eadfe945fdf41876e8d15d87ce1b1fc9 Mon Sep 17 00:00:00 2001 From: Lex Christopherson Date: Thu, 15 Jan 2026 18:21:02 -0600 Subject: [PATCH] feat(gsd): add update command with changelog display Co-Authored-By: Claude Opus 4.5 --- commands/gsd/update.md | 159 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 159 insertions(+) create mode 100644 commands/gsd/update.md diff --git a/commands/gsd/update.md b/commands/gsd/update.md new file mode 100644 index 000000000..0564d1f37 --- /dev/null +++ b/commands/gsd/update.md @@ -0,0 +1,159 @@ +--- +name: gsd:update +description: Update GSD to latest version with changelog display +--- + + +Check for GSD updates, install if available, and display what changed. + +Provides a better update experience than raw `npx get-shit-done-cc` by showing version diff and changelog entries. + + + + + +Read installed version: + +```bash +cat ~/.claude/get-shit-done/VERSION 2>/dev/null +``` + +**If VERSION file missing:** +``` +## GSD Update + +**Installed version:** Unknown + +Your installation doesn't include version tracking. + +Running fresh install... +``` + +Proceed to install step (treat as version 0.0.0 for comparison). + + + +Check npm for latest version: + +```bash +npm view get-shit-done-cc version 2>/dev/null +``` + +**If npm check fails:** +``` +Couldn't check for updates (offline or npm unavailable). + +To update manually: `npx get-shit-done-cc --global` +``` + +STOP here if npm unavailable. + + + +Compare installed vs latest: + +**If installed == latest:** +``` +## GSD Update + +**Installed:** X.Y.Z +**Latest:** X.Y.Z + +You're already on the latest version. +``` + +STOP here if already up to date. + +**If installed > latest:** +``` +## GSD Update + +**Installed:** X.Y.Z +**Latest:** A.B.C + +You're ahead of the latest release (development version?). +``` + +STOP here if ahead. + + + +Run the update: + +```bash +npx get-shit-done-cc --global +``` + +Capture output. If install fails, show error and STOP. + + + +Fetch changelog from GitHub: + +Use WebFetch tool with: +- URL: `https://raw.githubusercontent.com/glittercowboy/get-shit-done/main/CHANGELOG.md` +- Prompt: "Extract all version entries with their dates and changes. Return the raw markdown for each version section." + +**If fetch fails:** +Fall back to local: +```bash +cat ~/.claude/get-shit-done/CHANGELOG.md 2>/dev/null +``` + + + +From the changelog, extract entries between: +- **From:** installed version (exclusive) +- **To:** latest version (inclusive) + +Parse each `## [X.Y.Z]` section and collect all versions in the range. + + + +Format beautiful output: + +``` +╔═══════════════════════════════════════════════════════════╗ +║ GSD Updated: v1.5.10 → v1.5.15 ║ +╚═══════════════════════════════════════════════════════════╝ + +✨ What's New +──────────────────────────────────────────────────────────── + +## [1.5.15] - 2026-01-20 + +### Added +- Feature X +- Feature Y + +## [1.5.14] - 2026-01-18 + +### Fixed +- Bug in feature A + +──────────────────────────────────────────────────────────── + +⚠️ Restart Claude Code to pick up the new commands. + +[View full changelog](https://github.com/glittercowboy/get-shit-done/blob/main/CHANGELOG.md) +``` + +**Key elements:** +- Box header with version transition +- All changelog entries in the range +- **BREAKING:** changes surfaced prominently +- Restart reminder (critical for picking up new commands) +- Link to full changelog + + + + + +- [ ] Installed version read correctly +- [ ] Latest version checked via npm +- [ ] Update skipped if already current +- [ ] Update executed successfully +- [ ] Changelog fetched (remote or local fallback) +- [ ] Changes between versions displayed +- [ ] Restart reminder shown +