mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-09 02:24:11 +08:00
- 更新所有69个命令文件的description字段,基于实际功能重新生成详细描述 - 重新生成5个索引文件(all-commands, by-category, by-use-case, essential-commands, command-relationships) - 移动analyze_commands.py到scripts/目录并完善功能 - 移除临时备份文件 命令描述改进示例: - workflow:plan: 增加了工具和代理的详细说明(Gemini, action-planning-agent) - cli:execute: 说明了YOLO权限和多种执行模式 - memory:update-related: 详细说明了批处理策略和工具回退链 索引文件改进: - usage_scenario从2种扩展到10种(更精细分类) - command-relationships覆盖所有69个命令 - 区分built-in(内置调用)和sequential(用户顺序执行)关系 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
255 lines
7.9 KiB
Markdown
255 lines
7.9 KiB
Markdown
---
|
|
name: version
|
|
description: Display Claude Code version information and check for updates
|
|
allowed-tools: Bash(*)
|
|
---
|
|
|
|
# Version Command (/version)
|
|
|
|
## Purpose
|
|
Display local and global installation versions, check for the latest updates from GitHub, and provide upgrade recommendations.
|
|
|
|
## Execution Flow
|
|
1. **Local Version Check**: Read version information from `./.claude/version.json` if it exists.
|
|
2. **Global Version Check**: Read version information from `~/.claude/version.json` if it exists.
|
|
3. **Fetch Remote Versions**: Use GitHub API to get the latest stable release tag and the latest commit hash from the main branch.
|
|
4. **Compare & Suggest**: Compare installed versions with the latest remote versions and provide upgrade suggestions if applicable.
|
|
|
|
## Step 1: Check Local Version
|
|
|
|
### Check if local version.json exists
|
|
```bash
|
|
bash(test -f ./.claude/version.json && echo "found" || echo "not_found")
|
|
```
|
|
|
|
### Read local version (if exists)
|
|
```bash
|
|
bash(cat ./.claude/version.json)
|
|
```
|
|
|
|
### Extract version with jq (preferred)
|
|
```bash
|
|
bash(cat ./.claude/version.json | grep -o '"version": *"[^"]*"' | cut -d'"' -f4)
|
|
```
|
|
|
|
### Extract installation date
|
|
```bash
|
|
bash(cat ./.claude/version.json | grep -o '"installation_date_utc": *"[^"]*"' | cut -d'"' -f4)
|
|
```
|
|
|
|
**Output Format**:
|
|
```
|
|
Local Version: 3.2.1
|
|
Installed: 2025-10-03T12:00:00Z
|
|
```
|
|
|
|
## Step 2: Check Global Version
|
|
|
|
### Check if global version.json exists
|
|
```bash
|
|
bash(test -f ~/.claude/version.json && echo "found" || echo "not_found")
|
|
```
|
|
|
|
### Read global version
|
|
```bash
|
|
bash(cat ~/.claude/version.json)
|
|
```
|
|
|
|
### Extract version
|
|
```bash
|
|
bash(cat ~/.claude/version.json | grep -o '"version": *"[^"]*"' | cut -d'"' -f4)
|
|
```
|
|
|
|
### Extract installation date
|
|
```bash
|
|
bash(cat ~/.claude/version.json | grep -o '"installation_date_utc": *"[^"]*"' | cut -d'"' -f4)
|
|
```
|
|
|
|
**Output Format**:
|
|
```
|
|
Global Version: 3.2.1
|
|
Installed: 2025-10-03T12:00:00Z
|
|
```
|
|
|
|
## Step 3: Fetch Latest Stable Release
|
|
|
|
### Call GitHub API for latest release (with timeout)
|
|
```bash
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/releases/latest" 2>/dev/null, timeout: 30000)
|
|
```
|
|
|
|
### Extract tag name (version)
|
|
```bash
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/releases/latest" 2>/dev/null | grep -o '"tag_name": *"[^"]*"' | head -1 | cut -d'"' -f4, timeout: 30000)
|
|
```
|
|
|
|
### Extract release name
|
|
```bash
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/releases/latest" 2>/dev/null | grep -o '"name": *"[^"]*"' | head -1 | cut -d'"' -f4, timeout: 30000)
|
|
```
|
|
|
|
### Extract published date
|
|
```bash
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/releases/latest" 2>/dev/null | grep -o '"published_at": *"[^"]*"' | cut -d'"' -f4, timeout: 30000)
|
|
```
|
|
|
|
**Output Format**:
|
|
```
|
|
Latest Stable: v3.2.2
|
|
Release: v3.2.2: Independent Test-Gen Workflow with Cross-Session Context
|
|
Published: 2025-10-03T04:10:08Z
|
|
```
|
|
|
|
## Step 4: Fetch Latest Main Branch
|
|
|
|
### Call GitHub API for latest commit on main (with timeout)
|
|
```bash
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/commits/main" 2>/dev/null, timeout: 30000)
|
|
```
|
|
|
|
### Extract commit SHA (short)
|
|
```bash
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/commits/main" 2>/dev/null | grep -o '"sha": *"[^"]*"' | head -1 | cut -d'"' -f4 | cut -c1-7, timeout: 30000)
|
|
```
|
|
|
|
### Extract commit message (first line only)
|
|
```bash
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/commits/main" 2>/dev/null | grep '"message":' | cut -d'"' -f4 | cut -d'\' -f1, timeout: 30000)
|
|
```
|
|
|
|
### Extract commit date
|
|
```bash
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/commits/main" 2>/dev/null | grep -o '"date": *"[^"]*"' | head -1 | cut -d'"' -f4, timeout: 30000)
|
|
```
|
|
|
|
**Output Format**:
|
|
```
|
|
Latest Dev: a03415b
|
|
Message: feat: Add version tracking and upgrade check system
|
|
Date: 2025-10-03T04:46:44Z
|
|
```
|
|
|
|
## Step 5: Compare Versions and Suggest Upgrade
|
|
|
|
### Normalize versions (remove 'v' prefix)
|
|
```bash
|
|
bash(echo "v3.2.1" | sed 's/^v//')
|
|
```
|
|
|
|
### Compare two versions
|
|
```bash
|
|
bash(printf "%s\n%s" "3.2.1" "3.2.2" | sort -V | tail -n 1)
|
|
```
|
|
|
|
### Check if versions are equal
|
|
```bash
|
|
# If equal: Up to date
|
|
# If remote newer: Upgrade available
|
|
# If local newer: Development version
|
|
```
|
|
|
|
**Output Scenarios**:
|
|
|
|
**Scenario 1: Up to date**
|
|
```
|
|
You are on the latest stable version (3.2.1)
|
|
```
|
|
|
|
**Scenario 2: Upgrade available**
|
|
```
|
|
A newer stable version is available: v3.2.2
|
|
Your version: 3.2.1
|
|
|
|
To upgrade:
|
|
PowerShell: iex (iwr -useb https://raw.githubusercontent.com/catlog22/Claude-Code-Workflow/main/install-remote.ps1)
|
|
Bash: bash <(curl -fsSL https://raw.githubusercontent.com/catlog22/Claude-Code-Workflow/main/install-remote.sh)
|
|
```
|
|
|
|
**Scenario 3: Development version**
|
|
```
|
|
You are running a development version (3.4.0-dev)
|
|
This is newer than the latest stable release (v3.3.0)
|
|
```
|
|
|
|
## Simple Bash Commands
|
|
|
|
### Basic Operations
|
|
```bash
|
|
# Check local version file
|
|
bash(test -f ./.claude/version.json && cat ./.claude/version.json)
|
|
|
|
# Check global version file
|
|
bash(test -f ~/.claude/version.json && cat ~/.claude/version.json)
|
|
|
|
# Extract version from JSON
|
|
bash(cat version.json | grep -o '"version": *"[^"]*"' | cut -d'"' -f4)
|
|
|
|
# Extract date from JSON
|
|
bash(cat version.json | grep -o '"installation_date_utc": *"[^"]*"' | cut -d'"' -f4)
|
|
|
|
# Fetch latest release (with timeout)
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/releases/latest" 2>/dev/null, timeout: 30000)
|
|
|
|
# Extract tag name
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/releases/latest" 2>/dev/null | grep -o '"tag_name": *"[^"]*"' | cut -d'"' -f4, timeout: 30000)
|
|
|
|
# Extract release name
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/releases/latest" 2>/dev/null | grep -o '"name": *"[^"]*"' | head -1 | cut -d'"' -f4, timeout: 30000)
|
|
|
|
# Fetch latest commit (with timeout)
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/commits/main" 2>/dev/null, timeout: 30000)
|
|
|
|
# Extract commit SHA
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/commits/main" 2>/dev/null | grep -o '"sha": *"[^"]*"' | head -1 | cut -d'"' -f4 | cut -c1-7, timeout: 30000)
|
|
|
|
# Extract commit message (first line)
|
|
bash(curl -fsSL "https://api.github.com/repos/catlog22/Claude-Code-Workflow/commits/main" 2>/dev/null | grep '"message":' | cut -d'"' -f4 | cut -d'\' -f1, timeout: 30000)
|
|
|
|
# Compare versions
|
|
bash(printf "%s\n%s" "3.2.1" "3.2.2" | sort -V | tail -n 1)
|
|
|
|
# Remove 'v' prefix
|
|
bash(echo "v3.2.1" | sed 's/^v//')
|
|
```
|
|
|
|
## Error Handling
|
|
|
|
### No installation found
|
|
```
|
|
WARNING: Claude Code Workflow not installed
|
|
Install using:
|
|
PowerShell: iex (iwr -useb https://raw.githubusercontent.com/catlog22/Claude-Code-Workflow/main/install-remote.ps1)
|
|
```
|
|
|
|
### Network error
|
|
```
|
|
ERROR: Could not fetch latest version from GitHub
|
|
Check your network connection
|
|
```
|
|
|
|
### Invalid version.json
|
|
```
|
|
ERROR: version.json is invalid or corrupted
|
|
```
|
|
|
|
## Design Notes
|
|
|
|
- Uses simple, direct bash commands instead of complex functions
|
|
- Each step is independent and can be executed separately
|
|
- Fallback to grep/sed for JSON parsing (no jq dependency required)
|
|
- Network calls use curl with error suppression and 30-second timeout
|
|
- Version comparison uses `sort -V` for accurate semantic versioning
|
|
- Use `/commits/main` API instead of `/branches/main` for more reliable commit info
|
|
- Extract first line of commit message using `cut -d'\' -f1` to handle JSON escape sequences
|
|
|
|
## API Endpoints
|
|
|
|
### GitHub API Used
|
|
- **Latest Release**: `https://api.github.com/repos/catlog22/Claude-Code-Workflow/releases/latest`
|
|
- Fields: `tag_name`, `name`, `published_at`
|
|
- **Latest Commit**: `https://api.github.com/repos/catlog22/Claude-Code-Workflow/commits/main`
|
|
- Fields: `sha`, `commit.message`, `commit.author.date`
|
|
|
|
### Timeout Configuration
|
|
All network calls should use `timeout: 30000` (30 seconds) to handle slow connections.
|