thinking-partner
A deterministic thinking partner that challenges assumptions and applies mental models to sharpen decisions, solve problems, and think more clearly. Use this…
Revert recent PBR-generated commits by phase/plan, safely using git revert.
$ npx -y skills add SienkLogic/plan-build-run --skill undo --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/undoContext preview
The summary Claude sees to decide when to auto-load this skill.
Revert recent PBR-generated commits by phase/plan, safely using git revert.
name: undo description: "Revert recent PBR-generated commits by phase/plan, safely using git revert." allowed-tools: Read, Write, Edit, Bash, Glob, Grep, AskUserQuestion argument-hint: "[--last N] [--phase NN] [--plan NN-MM] [--range HASH..HASH]"
**STOP — DO NOT READ THIS FILE. You are already reading it. This prompt was injected into your context by Claude Code's plugin system. Begin executing Step 0 immediately.**
**Before ANY tool calls**, display this banner:
╔══════════════════════════════════════════════════════════════╗ ║ PLAN-BUILD-RUN ► UNDO ║ ╚══════════════════════════════════════════════════════════════╝
Then proceed to Step 1.
You are running the **undo** skill. Your job is to help the user safely revert recent PBR-generated commits using `git revert` (history-preserving), not `git reset` (destructive).
This skill runs **inline** (no Task delegation).
---
Run:
git log --oneline --no-merges -50
Filter lines matching the PBR commit pattern: `^[0-9a-f]+ (feat|fix|refactor|test|docs|chore|wip|revert)(\([a-zA-Z0-9._-]+\))?:`
If no PBR commits found, display:
No PBR commits found in the last 50 commits.
Then exit.
**Parse $ARGUMENTS for flags**:
**Phase manifest mode (`--phase NN`):**
When `--phase NN` is specified, first check for a `.phase-manifest.json` in the phase directory:
1. Resolve the phase directory: `.planning/phases/{NN}-*/` 2. Check for `.phase-manifest.json` in that directory 3. If manifest exists: use `manifest.commits` as the commit list (skip git log scan) 4. If manifest missing (phases completed before manifest support): fall back to git log scan and filter by scope pattern
Phase manifests are written by `completePhase()`. Older phases may not have manifests.
Apply filters to the collected PBR commits before proceeding.
---
Parse the scope from each commit message (e.g., `55-02`, `quick-003`, `planning`). If no scope is present, use `(no scope)`.
Present grouped output:
Recent PBR commits (grouped by scope): [undo] abc1234 feat(undo): add undo skill def5678 chore(undo): register undo command [quick-003] ghi9012 fix(quick-003): fix hook path resolution [planning] jkl3456 docs(planning): update roadmap phase 55
For descriptive scopes, show just the scope label. For phase-plan scopes (NN-MM pattern, from older commits), add a "Phase NN, Plan MM" annotation.
---
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding: Use AskUserQuestion with the **select-action** pattern:
If user selects a scope label: collect all commits with that scope as the revert set. If user selects "Enter custom hash or range": use AskUserQuestion (freeform) to ask:
If user selects "Cancel": print "Undo cancelled." and exit.
---
When reverting an entire phase (`--phase NN`), run these 3 safety checks before proceeding to confirmation:
**Gate 1: Downstream dependency check** Parse `.planning/ROADMAP.md` to find phases that list the target phase in their "Depends on" field. If any dependent phase has been started (has PLAN files or SUMMARY files), block with:
Phase {M} ({name}) depends on phase {N} and has already begun. Undo would break downstream work.
To proceed anyway, use --force.**Gate 2: Commit preview** Display all commits that will be reverted as a numbered list:
Commits to revert ({count}):
1. abc1234 feat(auth): implement discord oauth
2. def5678 fix(auth): handle null profile
3. ghi9012 docs(planning): add phase 3 summaries**Gate 3: Explicit confirmation** **CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding: Use AskUserQuestion with the **yes-no** pattern:
If user selects "Cancel": print "Undo cancelled." and exit.
For non-phase mode (single commits, custom ranges), skip Gate 1 and proceed to Step 4.
---
Display the commits that will be reverted:
The following commits will be reverted (using git revert, NOT git reset): abc1234 feat(undo): add undo skill def5678 chore(undo): register undo command This creates new revert commits — your history is preserved.
**CRITICAL -- DO NOT SKIP**: Present the following choice to the user via AskUserQuestion before proceeding: Use AskUserQuestion with the **yes-no** pattern:
If user selects "Cancel": print "Undo cancelled." and exit.
---
For each commit hash in **reverse chronological order** (newest first):
git revert --no-commit {hash}After all reverts are staged, determine the commit message:
Plan it. Build it. Run it. A Claude Code plugin for structured development with context-engineered agents.
Repo: SienkLogic/plan-build-run
A deterministic thinking partner that challenges assumptions and applies mental models to sharpen decisions, solve problems, and think more clearly. Use this…
Run audit, prioritize findings, auto-fix via quick tasks, test, and commit.
Review past Claude Code sessions for PBR workflow compliance and UX quality.
Run multiple phases hands-free. Chains discuss, plan, build, and verify automatically.
Manage backlog items — ideas not ready for active planning. Add, review, promote, or remove.
Start a new project. Deep questioning, research, requirements, and roadmap.