mirror of
https://github.com/obra/superpowers.git
synced 2026-04-22 01:19:04 +08:00
Compare commits
5 Commits
998c40be29
...
drew/pri-1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b8bced40a5 | ||
|
|
1e8000a4d4 | ||
|
|
c61f75030f | ||
|
|
e3dd3b4c5a | ||
|
|
e4a15b6d52 |
@@ -251,7 +251,7 @@ Report with branch state:
|
|||||||
|
|
||||||
**If `GIT_DIR == GIT_COMMON` (or in a submodule):** You are in a normal repo checkout.
|
**If `GIT_DIR == GIT_COMMON` (or in a submodule):** You are in a normal repo checkout.
|
||||||
|
|
||||||
If the user has not already made their preferences about worktree isolation clear — check global and project agent instruction files (`CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, `.cursorrules`, or equivalent) — ask for consent before creating a worktree:
|
Has the user already indicated their worktree preference in your instructions? If not, ask for consent before creating a worktree:
|
||||||
|
|
||||||
> "Would you like me to set up an isolated worktree? It protects your current branch from changes."
|
> "Would you like me to set up an isolated worktree? It protects your current branch from changes."
|
||||||
|
|
||||||
@@ -289,7 +289,7 @@ Follow this priority order:
|
|||||||
```
|
```
|
||||||
If found, use it (backward compatibility with legacy global path).
|
If found, use it (backward compatibility with legacy global path).
|
||||||
|
|
||||||
3. **Check your project's agent instruction file** (CLAUDE.md, GEMINI.md, AGENTS.md, .cursorrules, or equivalent) for a worktree directory preference. If specified, use it without asking.
|
3. **Check your instructions for a worktree directory preference.** If specified, use it without asking.
|
||||||
|
|
||||||
4. **Default to `.worktrees/`.**
|
4. **Default to `.worktrees/`.**
|
||||||
|
|
||||||
|
|||||||
@@ -149,8 +149,8 @@ python3 tests/claude-code/analyze-token-usage.py ~/.claude/projects/<project-dir
|
|||||||
Session transcripts are stored in `~/.claude/projects/` with the working directory path encoded:
|
Session transcripts are stored in `~/.claude/projects/` with the working directory path encoded:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Example for /Users/jesse/Documents/GitHub/superpowers/superpowers
|
# Example for /Users/yourname/Documents/GitHub/superpowers/superpowers
|
||||||
SESSION_DIR="$HOME/.claude/projects/-Users-jesse-Documents-GitHub-superpowers-superpowers"
|
SESSION_DIR="$HOME/.claude/projects/-Users-yourname-Documents-GitHub-superpowers-superpowers"
|
||||||
|
|
||||||
# Find recent sessions
|
# Find recent sessions
|
||||||
ls -lt "$SESSION_DIR"/*.jsonl | head -5
|
ls -lt "$SESSION_DIR"/*.jsonl | head -5
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ Reference example of extracting, structuring, and bulletproofing a critical skil
|
|||||||
|
|
||||||
## Source Material
|
## Source Material
|
||||||
|
|
||||||
Extracted debugging framework from `/Users/jesse/.claude/CLAUDE.md`:
|
Extracted debugging framework from `~/.claude/CLAUDE.md`:
|
||||||
- 4-phase systematic process (Investigation → Pattern Analysis → Hypothesis → Implementation)
|
- 4-phase systematic process (Investigation → Pattern Analysis → Hypothesis → Implementation)
|
||||||
- Core mandate: ALWAYS find root cause, NEVER fix symptoms
|
- Core mandate: ALWAYS find root cause, NEVER fix symptoms
|
||||||
- Rules designed to resist time pressure and rationalization
|
- Rules designed to resist time pressure and rationalization
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ digraph when_to_use {
|
|||||||
|
|
||||||
### 1. Observe the Symptom
|
### 1. Observe the Symptom
|
||||||
```
|
```
|
||||||
Error: git init failed in /Users/jesse/project/packages/core
|
Error: git init failed in ~/project/packages/core
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Find Immediate Cause
|
### 2. Find Immediate Cause
|
||||||
|
|||||||
@@ -36,25 +36,23 @@ Report with branch state:
|
|||||||
- On a branch: "Already in isolated workspace at `<path>` on branch `<name>`."
|
- On a branch: "Already in isolated workspace at `<path>` on branch `<name>`."
|
||||||
- Detached HEAD: "Already in isolated workspace at `<path>` (detached HEAD, externally managed). Branch creation needed at finish time."
|
- Detached HEAD: "Already in isolated workspace at `<path>` (detached HEAD, externally managed). Branch creation needed at finish time."
|
||||||
|
|
||||||
**If `GIT_DIR == GIT_COMMON` (or in a submodule):** You are in a normal repo checkout.
|
**If `GIT_DIR == GIT_COMMON` (or in a submodule):** You are in a normal repo checkout. Proceed to Step 1 to create an isolated workspace.
|
||||||
|
|
||||||
If the user has not already made their preferences about worktree isolation clear — check global and project agent instruction files (`CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, `.cursorrules`, or equivalent) — ask for consent before creating a worktree:
|
**Do not stop to ask the user whether they want a worktree.** Invoking this skill IS the request for isolation — your authorization to create one comes from that invocation, not from a separate "yes" reply. If the user has already declared in their instructions that they prefer to work in place, honor that and skip to Step 3. Otherwise, create the worktree.
|
||||||
|
|
||||||
> "Would you like me to set up an isolated worktree? It protects your current branch from changes."
|
|
||||||
|
|
||||||
Honor any existing declared preference without asking. If the user declines consent, work in place and skip to Step 3.
|
|
||||||
|
|
||||||
## Step 1: Create Isolated Workspace
|
## Step 1: Create Isolated Workspace
|
||||||
|
|
||||||
**You have two mechanisms. Try them in this order.**
|
**You have two mechanisms. Try them in this order.**
|
||||||
|
|
||||||
### 1a. Native Worktree Tools (preferred)
|
### 1a. Native Worktree Tools (preferred — STOP HERE if available)
|
||||||
|
|
||||||
The user has asked for an isolated workspace (Step 0 consent). Do you already have a way to create a worktree? It might be a tool with a name like `EnterWorktree`, `WorktreeCreate`, a `/worktree` command, or a `--worktree` flag. If you do, use it and skip to Step 3.
|
Do you have a tool with a name like `EnterWorktree`, `WorktreeCreate`, a `/worktree` command, or a `--worktree` flag? **If YES: use it now and skip to Step 3.** Skill invocation is your authorization — you do not need a separate user reply.
|
||||||
|
|
||||||
Native tools handle directory placement, branch creation, and cleanup automatically. Using `git worktree add` when you have a native tool creates phantom state your harness can't see or manage.
|
Native tools handle directory placement, branch creation, and cleanup automatically. Using `git worktree add` when you have a native tool creates phantom state your harness can't see or manage — cleanup becomes impossible.
|
||||||
|
|
||||||
Only proceed to Step 1b if you have no native worktree tool available.
|
**Even if `.worktrees/` already exists, even under time pressure, even if `git worktree add` feels faster — use your native tool.** No exceptions.
|
||||||
|
|
||||||
|
Only proceed to Step 1b if you have confirmed you have NO native worktree tool available.
|
||||||
|
|
||||||
### 1b. Git Worktree Fallback
|
### 1b. Git Worktree Fallback
|
||||||
|
|
||||||
@@ -64,7 +62,7 @@ Only proceed to Step 1b if you have no native worktree tool available.
|
|||||||
|
|
||||||
Follow this priority order. Explicit user preference always beats observed filesystem state.
|
Follow this priority order. Explicit user preference always beats observed filesystem state.
|
||||||
|
|
||||||
1. **Check global and project agent instruction files** (`~/.claude/CLAUDE.md`, `~/.config/gemini/AGENTS.md`, project-level `CLAUDE.md`, `AGENTS.md`, `GEMINI.md`, `.cursorrules`, or equivalent) for a declared worktree directory preference. If specified, use it without asking.
|
1. **Check your instructions for a declared worktree directory preference.** If the user has already specified one, use it without asking.
|
||||||
|
|
||||||
2. **Check for an existing project-local worktree directory:**
|
2. **Check for an existing project-local worktree directory:**
|
||||||
```bash
|
```bash
|
||||||
@@ -199,6 +197,8 @@ Ready to implement <feature-name>
|
|||||||
## Red Flags
|
## Red Flags
|
||||||
|
|
||||||
**Never:**
|
**Never:**
|
||||||
|
- Stop to ask the user for consent when the skill has already been invoked. Invoking the skill IS the request — treat it as your authorization to proceed.
|
||||||
|
- Fall back to a plain feature branch because a native worktree tool feels "restricted to explicit user requests." Skill invocation is the explicit request the tool requires.
|
||||||
- Create a worktree when Step 0 detects existing isolation
|
- Create a worktree when Step 0 detects existing isolation
|
||||||
- Use `git worktree add` when you have a native worktree tool (e.g., `EnterWorktree`). This is the #1 mistake — if you have it, use it.
|
- Use `git worktree add` when you have a native worktree tool (e.g., `EnterWorktree`). This is the #1 mistake — if you have it, use it.
|
||||||
- Skip Step 1a by jumping straight to Step 1b's git commands
|
- Skip Step 1a by jumping straight to Step 1b's git commands
|
||||||
@@ -207,6 +207,7 @@ Ready to implement <feature-name>
|
|||||||
- Proceed with failing tests without asking
|
- Proceed with failing tests without asking
|
||||||
|
|
||||||
**Always:**
|
**Always:**
|
||||||
|
- Treat skill invocation as implicit authorization to create a worktree
|
||||||
- Run Step 0 detection first
|
- Run Step 0 detection first
|
||||||
- Prefer native tools over git fallback
|
- Prefer native tools over git fallback
|
||||||
- Follow directory priority: existing > global legacy > instruction file > default
|
- Follow directory priority: existing > global legacy > instruction file > default
|
||||||
|
|||||||
Reference in New Issue
Block a user