Back to skills directory
notmyself/claude-win11-speckit-update-skill

notmyself/claude-win11-speckit-update-skill

@NotMyself 31

Update GitHub SpecKit installations safely via smart merge, backups, and rollback.

speckitupdateswindowspowershellclaude-codebackupmergeautomation

Install

$ npx skills add NotMyself/claude-win11-speckit-update-skill

README

# GitHub Repository: NotMyself/claude-win11-speckit-update-skill

**URL:** https://github.com/NotMyself/claude-win11-speckit-update-skill
**Author:** NotMyself
**Description:** A Claude Code Skill that manages GitHub SpecKit updates.
**Homepage:** 
**Language:** PowerShell

## Stats
- Stars: 31
- Forks: 3
- Open Issues: 2
- Commits: 96
- Created: 2025-10-19T21:39:43Z
- Updated: 2026-06-11T18:30:16Z
- Pushed: 2025-10-26T02:12:53Z

## README
# SpecKit Safe Update - Claude Code Skill

Safe updates for GitHub SpecKit installations, preserving your customizations.

## Overview

This Claude Code skill provides a safe, automated way to update SpecKit templates, commands, and scripts while preserving user customizations, eliminating the need for destructive `specify init --force` updates.

## Features

- **Smart Merge with Frictionless Onboarding** (New in v0.6.0): Automatic version detection and intelligent 3-way merge
  - **Zero conflicts** for first-time users with unmodified SpecKit installations (was ~15)
  - **Fingerprint-based version detection**: Fast signature check (<100ms) identifies installed SpecKit version automatically
  - **Intelligent 3-way merge**: Section-level semantic understanding reduces conflicts from ~15 to 0-2
  - **No user configuration**: Fully automatic operation, works out of the box
- **Automatic SpecKit Installation** (v0.4.0): Offers to install SpecKit in non-SpecKit projects with one command
- **Customization Preservation**: Automatically detects and preserves your customized files
- **Smart Conflict Resolution**: Intelligent two-tier conflict handling
  - Small files (≤100 lines): Git conflict markers with VSCode CodeLens integration
  - Large files (>100 lines): Side-by-side Markdown diff files for easier review
- **False Positive Detection**: Auto-resolves conflicts where files are identical to upstream
- **Conversational Approval**: Two-step workflow designed for Claude Code
- **Version Tracking**: Maintains manifest with file hashes and version information
- **Automatic Backups**: Creates timestamped backups with retention management
- **Fail-Fast with Rollback**: Automatic rollback on failure, preserves diff files for debugging
- **Dry-Run Mode**: Check what would change before applying updates
- **Constitution Integration**: Seamless integration with `/speckit.constitution` command
- **Welcome Experience**: First-time installs show helpful next steps

## Prerequisites

**Supported Environment**:
- **OS**: Windows 11 (macOS/Linux support welcome - see [#15](https://github.com/NotMyself/claude-win11-speckit-update-skill/issues/15))
- **Shell**: PowerShell 7+
- **AI**: Claude Code (CLI or VSCode extension)
- **Git**: In PATH
- **Internet**: For GitHub API access

**Note**: This skill is designed specifically for Windows + PowerShell + Claude Code. Community contributions for other platforms/models are welcome but not maintained by the project owner.

## Configuration

**GitHub Token** (Optional):

The updater works without authentication (60 requests/hour). For higher rate limits (5,000 requests/hour), set the `GITHUB_PAT` environment variable:

```powershell
$env:GITHUB_PAT = "ghp_YOUR_TOKEN_HERE"
```

See [CLAUDE.md](CLAUDE.md#using-github-tokens) for complete token setup, team collaboration, CI/CD integration, and troubleshooting.

## Installation

### Plugin Installation (Recommended)

Install via the NotMyself plugin marketplace:

```bash
# Add the marketplace
/plugin marketplace add NotMyself/claude-plugins

# Install the skill
/plugin install speckit-updater
```

The skill will be automatically available - no restart required!

### Manual Installation (Alternative)

For advanced users or development:

```powershell
# Navigate to Claude Code skills directory
cd $env:USERPROFILE\.claude\skills

# Clone this repository
git clone https://github.com/NotMyself/claude-win11-speckit-update-skill speckit-updater

# Restart VSCode to load the skill
```

**Verify installation**: The `/speckit-update` command should be available in Claude Code.

**Migration**: Already using manual installation? See [Migration Guide](docs/migration-guide-plugin.md) for upgrading to plugin-based installation (optional).

## Usage

### First-Time Installation (New in v0.4.0!)

If you run `/speckit-updater` in a project **without SpecKit installed**, the updater will automatically offer to install it for you:

```
/speckit-updater
```

**Interactive Mode (Terminal):**
```
SpecKit is not installed in this project.

This skill can install the latest SpecKit templates and create a manifest to track future updates.

Would you like to install SpecKit now? (Y/n) Y
```

**Non-Interactive Mode (Claude Code):**
Claude will ask naturally: "SpecKit is not currently installed in this project. Would you like me to install it?"

Simply reply "yes" or "install it" and Claude will handle the rest automatically.

**What Gets Installed:**
- `.specify/` directory structure (`memory/`, `backups/`)
- Latest SpecKit templates from GitHub
- All official SpecKit slash commands in `.claude/commands/`
- Manifest file to track future updates
- Welcome message with next steps

**Graceful Decline:** If you decline installation, you'll see a helpful error message explaining what SpecKit is and how to install it manually.

### Check for Updates (Dry-Run)

```
/speckit-updater --check-only
```

Shows what would change without applying any updates.

### Update to Latest Version

```
/speckit-updater
```

Two-step conversational workflow:
1. Shows summary with `[PROMPT_FOR_APPROVAL]` marker
2. You approve via chat → Claude re-invokes with `-Proceed`

### Update to Specific Version

```
/speckit-updater --version v0.0.72
```

Update to a specific SpecKit release tag.

### Rollback to Previous Version

```
/speckit-updater --rollback
```

Restore from a previous backup.

### Force Update

```
/speckit-updater --force
```

Overwrite SpecKit files even if customized (preserves custom commands).

### Skip Backup (Not Recommended)

```
/speckit-updater --no-backup
```

Skip backup creation. Use only if you're absolutely sure.

## How It Works

### Customization Detection

The updater automatically detects which files you've customized by comparing file hashes:

- **Customized files** are preserved and never overwritten
- **Unchanged files** are safely updated to the latest version
- **Your custom commands** are always protected, even with `--force`

### Smart Update Process

When you run `/speckit-updater`:

1. **Safety First**: Creates a timestamped backup before making any changes
2. **Intelligent Analysis**: Compares your files with the latest SpecKit templates
3. **Conflict Detection**: Identifies files that need your attention
4. **Conversational Approval**: Shows you exactly what will change and waits for your approval
5. **Safe Application**: Updates only what's safe, preserving your customizations
6. **Automatic Rollback**: If anything goes wrong, automatically restores from backup

### Backup & Recovery

- **Automatic backups** created before every update in `.specify/backups/`
- **Timestamped folders** make it easy to find the right backup
- **Quick rollback** with `/speckit-updater --rollback`
- **Automatic cleanup** keeps your 5 most recent backups

## Error Handling

### Exit Codes

| Code | Meaning |
|------|---------|
| 0 | Success |
| 1 | General error |
| 2 | Prerequisites not met |
| 3 | Network/API error |
| 4 | Git error |
| 5 | User cancelled |
| 6 | Rollback required (automatic) |

### Automatic Rollback

If an error occurs during update:
1. Error message is displayed
2. Automatic rollback is attempted (if backup exists)
3. Files are restored to pre-update state
4. Exit code 6 is returned

## License

MIT License - see [LICENSE](./LICENSE)

Information

Language
PowerShell
Created
2026/6/18
Updated
2026/6/18