mirror of
https://github.com/obra/superpowers.git
synced 2026-07-10 03:59:04 +08:00
refactor(skills): convert using-git-worktrees guard sections to rationalization table
Common Mistakes and Red Flags restated Steps 0-3 wholesale; both fold into one Common Rationalizations table (house Excuse/Reality form) whose five rows carry the tempting-thought version of each rule, including the #1-mistake emphasis on bypassing native tools. Quick Reference stays as the compact decision aid.
This commit is contained in:
@@ -156,47 +156,12 @@ Ready to implement <feature-name>
|
|||||||
| Tests fail during baseline | Report failures + ask |
|
| Tests fail during baseline | Report failures + ask |
|
||||||
| No package.json/Cargo.toml | Skip dependency install |
|
| No package.json/Cargo.toml | Skip dependency install |
|
||||||
|
|
||||||
## Common Mistakes
|
## Common Rationalizations
|
||||||
|
|
||||||
### Fighting the harness
|
| Excuse | Reality |
|
||||||
|
|--------|---------|
|
||||||
- **Problem:** Using `git worktree add` when the platform already provides isolation
|
| "I'm obviously not in a worktree — no need to check" | Run Step 0. Harness-created isolation and submodules both fool eyeballing; the detection commands settle it. |
|
||||||
- **Fix:** Step 0 detects existing isolation. Step 1a defers to native tools.
|
| "`git worktree add` is quicker than hunting for a native tool" | A native tool (e.g. `EnterWorktree`) owns placement, branching, and cleanup. Bypassing it is the #1 mistake — it creates phantom state your harness can't see or manage. |
|
||||||
|
| "The worktree directory is surely ignored already" | Run `git check-ignore`. An unignored worktree directory commits the whole tree into the repo. |
|
||||||
### Skipping detection
|
| "Any directory name works" | Explicit instructions beat an existing project-local directory, which beats the `.worktrees/` default. |
|
||||||
|
| "The workspace is fresh — baseline tests can wait" | A dirty baseline makes every later failure ambiguous. Run the tests now; proceeding past failures is your human partner's call. |
|
||||||
- **Problem:** Creating a nested worktree inside an existing one
|
|
||||||
- **Fix:** Always run Step 0 before creating anything
|
|
||||||
|
|
||||||
### Skipping ignore verification
|
|
||||||
|
|
||||||
- **Problem:** Worktree contents get tracked, pollute git status
|
|
||||||
- **Fix:** Always use `git check-ignore` before creating project-local worktree
|
|
||||||
|
|
||||||
### Assuming directory location
|
|
||||||
|
|
||||||
- **Problem:** Creates inconsistency, violates project conventions
|
|
||||||
- **Fix:** Follow priority: explicit instructions > existing project-local directory > default
|
|
||||||
|
|
||||||
### Proceeding with failing tests
|
|
||||||
|
|
||||||
- **Problem:** Can't distinguish new bugs from pre-existing issues
|
|
||||||
- **Fix:** Report failures, get explicit permission to proceed
|
|
||||||
|
|
||||||
## Red Flags
|
|
||||||
|
|
||||||
**Never:**
|
|
||||||
- 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.
|
|
||||||
- Skip Step 1a by jumping straight to Step 1b's git commands
|
|
||||||
- Create worktree without verifying it's ignored (project-local)
|
|
||||||
- Skip baseline test verification
|
|
||||||
- Proceed with failing tests without asking
|
|
||||||
|
|
||||||
**Always:**
|
|
||||||
- Run Step 0 detection first
|
|
||||||
- Prefer native tools over git fallback
|
|
||||||
- Follow directory priority: explicit instructions > existing project-local directory > default
|
|
||||||
- Verify directory is ignored for project-local
|
|
||||||
- Auto-detect and run project setup
|
|
||||||
- Verify clean test baseline
|
|
||||||
|
|||||||
Reference in New Issue
Block a user