
About
SpecKit Safe Update
name: speckit-updater description: SpecKit Safe Update risk: unknown source: community
SpecKit Safe Update
This skill provides safe update capabilities for GitHub SpecKit installations, preserving customizations while applying template updates.
Installation: Available via plugin (/plugin marketplace add NotMyself/claude-plugins then /plugin install speckit-updater) or manual Git clone. See README.md for details.
When to Use
- You need to update or install SpecKit templates while preserving project customizations.
- You want a safe approval flow around update, rollback, or version-specific SpecKit operations.
- The task is to operate the SpecKit updater conversationally instead of running raw commands blindly.
What to do when this skill is invoked
When the user invokes /speckit-updater, you should:
-
Run the update orchestrator script without any flags (conversational mode):
pwsh -NoProfile -Command "& 'C:\Users\bobby\.claude\skills\speckit-updater\scripts\update-wrapper.ps1'" -
Parse the output for markers:
[PROMPT_FOR_APPROVAL]- Update scenario (existing SpecKit installation)[PROMPT_FOR_INSTALL]- Fresh installation scenario (no .specify/ directory)
-
For Updates (
[PROMPT_FOR_APPROVAL]marker found):- Present the Markdown summary showing:
- Current version vs. available version
- Files to update/add/remove
- Conflicts detected (if any)
- Files preserved (customized)
- Backup location
- Custom commands
- Ask the user for approval to proceed with the update
- If approved, re-run with
-Proceedflag - If declined, inform the user the update was cancelled
- Present the Markdown summary showing:
-
For Fresh Installations (
[PROMPT_FOR_INSTALL]marker found):- Present a natural installation offer to the user, such as:
- "SpecKit is not currently installed in this project. Would you like me to install it?"
- "I can install the latest SpecKit templates for you. This will create the .specify/ directory structure and download the templates from GitHub."
- Do NOT mention the
-Proceedflag to the user (this is an implementation detail) - If user approves (says "yes", "proceed", "install it", etc.), re-run with
-Proceedflag - If user declines, inform them the installation was cancelled
- Present a natural installation offer to the user, such as:
-
Execute approved action by re-running with
-Proceedflag:pwsh -NoProfile -Command "& 'C:\Users\bobby\.claude\skills\speckit-updater\scripts\update-wrapper.ps1' -Proceed"
Special cases:
- If user requests
-CheckOnly: run with that flag and show the report - If user requests
-Rollback: run with that flag and confirm restoration - If user requests specific
-Version: include that parameter
Commands
/speckit-updater
Updates SpecKit templates, commands, and scripts while preserving customizations.
Usage:
/speckit-updater- Interactive update/install with conversational approval workflow (recommended for Claude Code)/speckit-updater -Proceed- Proceed with update/install after approval (used by Claude after user confirms)/speckit-updater -CheckOnly- Check for updates without applying/speckit-updater -Version v0.0.72- Update to specific version/speckit-updater -Force- Force overwrite SpecKit files (preserves custom commands)/speckit-updater -Rollback- Restore from previous backup/speckit-updater -Auto- DEPRECATED: Use conversational workflow instead (shows warning, maps to -Proceed)
Fresh Installation (No .specify/ directory):
- First invocation shows installation offer with
[PROMPT_FOR_INSTALL]marker - Claude Code presents natural question to user (e.g., "Would you like me to install SpecKit?")
- User approves via conversational response (e.g., "yes", "proceed", "install it")
- Claude re-invokes with
-Proceedflag automatically (implementation detail hidden from user) - Script creates
.specify/structure, downloads templates, creates manifest - Exit code 0 throughout (awaiting approval is not an error)
- Consistent with update flow: both use conversational approval workflow
Process:
- Validates prerequisites (Git installed, clean Git state, write permissions)
- Loads or creates manifest (.specify/manifest.json)
- Fetches target version from GitHub Releases API
- Compares file hashes to identify customizations
- Creates timestamped backup
- Applies selective updates preserving customized files
- Opens VSCode merge editor for conflicts (Flow A: one at a time)
- Automatically invokes /speckit.constitution for constitution updates
- Updates manifest with new version
- Manages backup retention (keeps last 5)
When you invoke this command, I will:
- Execute the update-orchestrator.ps1 script
- Parse output for markers (
[PROMPT_FOR_APPROVAL]for updates,[PROMPT_FOR_INSTALL]for fresh installations) - For updates: Present Markdown summar