2.6 KiB
2.6 KiB
| name | description | argument-hint | allowed-tools | model |
|---|---|---|---|---|
| config-audit:rollback | Restore configuration from backup — list available backups or rollback a specific one | [backup-id] | Read, Write, Glob, Grep, Bash, AskUserQuestion | sonnet |
Config-Audit: Rollback
Restore configuration files from a previous backup. Without arguments, lists available backups. With a backup ID, restores files from that backup.
Arguments
$ARGUMENTSmay contain a backup ID (format:YYYYMMDD_HHMMSS)
Behavior
List mode (no argument)
List available backups from ~/.claude/config-audit/backups/:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Available Backups
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 20260403_163045 — 3 files (settings.json, hooks.json, typescript.md)
2. 20260403_141230 — 1 file (CLAUDE.md)
3. 20260402_092015 — 5 files (full audit)
Usage: /config-audit rollback 20260403_163045
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Read each backup's manifest.yaml to extract file list and timestamps.
Restore mode (with backup ID)
- Read manifest from
~/.claude/config-audit/backups/{backup-id}/manifest.yaml - Show files that will be restored — ask for confirmation:
AskUserQuestion: question: "Restore 3 files from backup 20260403_163045?" options: - "Yes, restore" - "Cancel" - For each file in manifest:
a. Read backup file from
~/.claude/config-audit/backups/{backup-id}/files/{safeName}b. Write to original path c. Verify checksum matches manifest - Show result:
Restored 3 files from backup 20260403_163045 - .claude/settings.json (checksum verified) - hooks/hooks.json (checksum verified) - .claude/rules/typescript.md (checksum verified)
Delete mode
If user says "delete" after listing, confirm and remove the backup directory.
Implementation
Use the backup and rollback libraries directly:
import { listBackups, restoreBackup, deleteBackup } from '../scanners/rollback-engine.mjs';
import { parseManifest } from '../scanners/lib/backup.mjs';
Or via Bash:
# List backups
ls -1 ~/.claude/config-audit/backups/
# Read manifest
cat ~/.claude/config-audit/backups/{id}/manifest.yaml
# Restore (copy back)
cp ~/.claude/config-audit/backups/{id}/files/{safeName} {originalPath}