
Solve
- Updated June 5, 2026
- Phaen/claude-plugins
A structured problem-solving skill for Claude Code. It builds an explicit solution tree and visualizes it in real time as the problem is worked through. It helps decompose complex problems and keep the decision space organized and visible.
Key points
- Explicit solution tree
- Structured problem-solving
- Real-time visualisation
Solve by the numbers
- Data as of Jul 7, 2026 (Skillselion catalog sync)
/plugin marketplace add Phaen/claude-plugins/plugin install solve@PhaenAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Last updated | June 5, 2026 |
|---|---|
| Repository | Phaen/claude-plugins ↗ |
What it does
Structured problem-solving with an explicit solution tree and real-time visualization of branches.
README.md
solve
A Claude Code plugin that enforces structured problem-solving before any code is written. The agent must build a complete solution tree — investigate the problem, declare all solutions, research each one, resolve or block — before the edit gate unlocks.
What it does
When you invoke /solve:solve, Claude must:
- State the problem precisely — current vs expected behaviour
- Investigate the problem with real tool calls before forming opinions
- Declare all candidate solutions upfront — no undeclared options
- Research each one with real tool calls before drawing conclusions
- Resolve or block every solution with explicit reasoning
- Select the winner (or report blocked if nothing works)
Only after a complete, valid tree does the edit gate unlock and Claude may touch files. If a test or build fails during implementation, the gate re-locks and a new solve is required.
A live tree visualisation runs at http://localhost:7337 and launches automatically when a session starts.
Install
/plugin marketplace add Phaen/claude-plugins
/plugin install solve@Phaen
Usage
/solve:solve <problem description>
Or just /solve:solve with no arguments — Claude will derive the problem from context.
Tool flow
solve_problem(text="what is failing and why")
solve_investigate(findings="what you confirmed by reading files")
solve_declare(id="1", text="approach A")
solve_declare(id="2", text="approach B")
solve_research(id="1", findings="what you verified about approach A")
solve_resolve(id="1", text="why approach A works and how to implement it")
solve_research(id="2", findings="what you verified about approach B")
solve_problem(id="2.1", text="blocker discovered in approach B")
solve_investigate(id="2.1", findings="whether the blocker can be worked around")
solve_block(id="2.1", reason="cannot be resolved")
Sub-problems use dotted IDs (1.1, 1.1.1) for nested investigation.
Structure
solve/
├── .claude-plugin/
│ └── plugin.json # manifest, MCP server, hooks
├── commands/
│ └── solve.md # /solve:solve command definition
├── scripts/
│ ├── hook-edit.sh # PreToolUse: block edits until tree resolved
│ └── hook-stop.sh # Stop: validate tree completeness
├── src/
│ ├── solve-mcp.ts # MCP server source
│ └── types.ts # shared types
└── dist/
└── solve-mcp.cjs # built MCP server
Author
Pablo Kebees — github.com/Phaen
License
MIT