Explain Lisa technique and available commands
Executes iterative development loops that repeatedly apply prompts to refine code until completion.
/plugin marketplace add Arakiss/lisa/plugin install lisa@lisa-marketplacePlease explain the following to the user:
Lisa is an evolution of the Ralph Wiggum technique, an iterative development methodology pioneered by Geoffrey Huntley.
Core concept:
while :; do
cat PROMPT.md | claude-code --continue
done
The same prompt is fed to Claude repeatedly. The "self-referential" aspect comes from Claude seeing its own previous work in the files and git history, not from feeding output back as input.
Each iteration:
Lisa adds observability, safety limits, and progress tracking to the original technique.
Start a Lisa loop in your current session.
Usage:
/lisa-loop "Refactor the cache layer" --max-iterations 20
/lisa-loop "Add tests" --completion-promise "TESTS COMPLETE"
Options:
--max-iterations <n> - Max iterations before auto-stop--completion-promise <text> - Promise phrase to signal completion--stop-command <cmd> - External command to check for stop condition--stop-when <value> - Expected output from stop-command to trigger stopHow it works:
.claude/lisa-loop.local.md state fileCancel an active Lisa loop (removes the loop state file).
Usage:
/cancel-lisa
How it works:
.claude/lisa-loop.local.mdCheck the current state of a running Lisa loop.
Clean up orphaned files from completed or crashed loops.
Prepare prompt files for a Lisa loop (creates PROMPT.md, specs/).
To signal completion, Claude must output a <promise> tag:
<promise>TASK COMPLETE</promise>
The stop hook looks for this specific tag. Without it (or --max-iterations), Lisa runs infinitely.
Instead of relying on Claude's promise, you can stop based on external command output:
/lisa-loop PROMPT.md --stop-command "beads list --count" --stop-when "0"
This stops the loop when beads list --count returns 0. Useful for integrating with task trackers, CI systems, or any tool that reports status.
Stop priority order:
The "loop" doesn't mean Claude talks to itself. It means:
If an IMPLEMENTATION_PLAN.md exists, Lisa will:
[x] (completed) and [ ] (pending) itemsProgress: 15/48.claude/lisa-loop.logAll iterations are logged to .claude/lisa-loop.log with:
/lisa-loop "Fix the token refresh logic in auth.ts. Output <promise>FIXED</promise> when all tests pass." --completion-promise "FIXED" --max-iterations 10
You'll see Lisa:
Good for:
Not good for: