Skip to content

Commit 85f6d78

Browse files
GiggleLiuclaude
andcommitted
refactor(skill): find-solver Step 3 — auto-explore all hops instead of hop-by-hop
Consistent with find-problem: use `pred to --hops 3` to discover all reachable targets at once, present ranked table, user picks path. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 2e72c5d commit 85f6d78

1 file changed

Lines changed: 16 additions & 33 deletions

File tree

.claude/skills/find-solver/SKILL.md

Lines changed: 16 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Adapt the flow: if the user provides a formal problem name, validate it with `pr
3434
```
3535
Step 1: Clarify Problem (skip if user knows the formal name)
3636
Step 2: Match to Library Models (web search + pred list)
37-
Step 3: Explore Reduction Paths (multi-hop guided via pred to)
37+
Step 3: Explore Reduction Paths (auto-explore via pred to --hops 3)
3838
Step 4: Recommend Solvers (web search + pred solve options)
3939
Step 5: Generate Solution Doc (docs/solutions/<name>.md)
4040
```
@@ -106,47 +106,30 @@ Use `AskUserQuestion` for each question. Format options as **(a)**/**(b)**/**(c)
106106

107107
## Step 3: Explore Reduction Paths
108108

109-
**Goal:** Guide the user through the reduction graph one hop at a time until they reach a solver-ready target.
109+
**Goal:** Discover all solver-ready targets reachable from the chosen model and present them ranked.
110110

111-
**This is an interactive loop. Each iteration:**
112-
113-
1. **Run `pred to <current_model>`** to get 1-hop reduction targets. Copy-paste the full output.
111+
**Actions:**
114112

115-
2. **For each target**, gather additional info and present an annotated table:
113+
1. **Run `pred to <model> --hops 3`** to find all problems reachable within 3 hops. Copy-paste the full output.
116114

115+
2. **For each reachable problem**, gather info:
116+
- Run `pred path <model> <target>` to get the cheapest witness-capable reduction path and composed overhead
117117
- Run `pred show <target>` to get its best-known complexity
118-
- Run `pred path <target> ILP` to check if an ILP path exists (report step count or "No path")
119-
- Extract overhead from the `pred to` / `pred show` output
120-
121-
Present the table:
122-
123-
| # | Reduces To | Overhead | Complexity | Has ILP Path? |
124-
|---|------------|----------|------------|---------------|
125-
| 1 | ... | ... | ... | ... |
126-
| 2 | ... | ... | ... | ... |
127-
128-
3. **Show the running path summary:**
129-
130-
```
131-
Path so far: MIS -> MaximumSetPacking -> ???
132-
Accumulated overhead: num_sets = num_vertices, universe_size = num_edges
133-
```
118+
- Check if it's a solver-ready target (ILP, QUBO, SAT) or has a path to one via `pred path <target> ILP`
134119

135-
4. **Ask the user** using `AskUserQuestion`:
136-
- Pick a target number to continue exploring
137-
- Or say "solve here" to stop at the current problem
138-
- Or say "go back" to revisit the previous step
120+
3. **Present a ranked table** (most practical paths first — fewest hops, lowest overhead):
139121

140-
5. **Repeat** with the chosen target as the new current model.
122+
| # | Target | Hops | Composed Overhead | Target Complexity | Solver-Ready? |
123+
|---|--------|------|-------------------|-------------------|---------------|
124+
| 1 | ILP | 2 | num_vars = 2*n + m | O(2^num_vars) | Yes (is ILP) |
125+
| 2 | QUBO | 1 | num_vars = n | O(2^num_vars) | Yes (is QUBO) |
126+
| 3 | MaxSetPacking | 1 | num_sets = n | O(2^num_sets) | Yes (ILP in 2 steps) |
141127

142-
**Termination conditions:**
143-
- User reaches ILP or another solver-ready problem and says "solve here"
144-
- User explicitly chooses brute-force on the current problem
145-
- No outgoing reductions exist — inform the user this is a dead end and suggest backtracking
128+
4. **Ask the user** using `AskUserQuestion`: "Which reduction path would you like to use? Pick a number."
146129

147-
**Backtracking:** If the user says "go back" or "try a different target", re-run `pred to` on the previous model and present options again.
130+
**If `--hops 3` returns more than 15 results:** present only the top 10 by overhead and mention the rest are available.
148131

149-
**Proceed to Step 4 with the final reduction path.**
132+
**Proceed to Step 4 with the chosen path.**
150133

151134
---
152135

0 commit comments

Comments
 (0)