Skip to content

Commit 669f090

Browse files
committed
update skills
1 parent 2e8dd5e commit 669f090

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

.claude/skills/propose/SKILL.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -337,9 +337,9 @@ Only fall back to the full `AskUserQuestion` if the inference is genuinely ambig
337337

338338
After the user picks a concrete example, provide a complete instance with its expected outcome.
339339
- For optimization problems: give at least one optimal solution and the optimal objective value
340-
- For satisfaction problems: give at least one valid / satisfying solution and explain briefly why it is valid
341-
- Must exercise the problem's core structure
342-
- Must be small enough to verify by hand
340+
- For satisfaction problems: give at least one valid / satisfying solution and explain briefly why it is valid; also provide a NO instance with a clear infeasibility argument
341+
- Must exercise the problem's core structure — pick instances where constraints interact nontrivially (e.g., multiple constraints are tight), not degenerate cases
342+
- Must be small enough to verify by hand but large enough that a naive/incorrect implementation would produce a wrong answer
343343

344344
7. **Data representation** — Infer from the problem definition (e.g., "vertices and edges" → graph, "rows and columns" → matrix, "universe and subsets" → set system). If the inference is clear from the user's description, confirm inline: "The input is a graph — correct?" Only use `AskUserQuestion` if ambiguous:
345345
```
@@ -443,7 +443,8 @@ AskUserQuestion:
443443
**Selection criteria** (in priority order) — only suggest rules where **both source and target already exist** in the codebase:
444444
- **Priority 1:** Rules that connect orphan problems to the main component (check `detect_isolated_problems` output)
445445
- **Priority 2:** Rules that fill NP-hardness proof gaps (check `detect_unreachable_from_3sat` output)
446-
- **Priority 3:** Rules to large clusters (QUBO, ILP, SAT families)
446+
- **Priority 3: ILP solver path for leaf problems** — If a problem has **no outgoing reductions** (check `pred from <problem>` returns empty), prioritize proposing `<Problem> → ILP` when the problem has a natural ILP formulation (linear constraints over integer variables). This is the most common way to make a new problem solvable. Run `pred from <problem> --json` for each orphan/leaf to detect missing outgoing edges.
447+
- **Priority 4:** Other rules to large clusters (QUBO, ILP, SAT families)
447448
- **Filter:** Exclude pairs that already have a reduction registered **AND** pairs that already have an open GitHub issue filed (even if not yet implemented). Do not recommend duplicates — if an issue exists, it should be implemented via `/issue-to-pr`, not re-proposed.
448449

449450
After selection, verify both problems exist (or one is being proposed alongside).
@@ -551,9 +552,13 @@ If the reduction is well-known, use the literature to **pre-fill** answers in St
551552
If the user picks "Generate new batch", create 3 new examples with different sizes/structures and re-present.
552553

553554
After the user picks a concrete example, fully work out the example: show source instance, each construction step, and the resulting target instance.
555+
556+
**Validation-oriented examples are mandatory.** The example's primary purpose is to catch bugs in the reduction implementation during closed-loop testing, not just to illustrate the construction. Design examples that:
557+
- **Exercise constraint interactions** — pick instances where multiple constraints are simultaneously tight or near-tight, so an incorrect reduction would produce a wrong answer (e.g., a flow instance where both lower bounds and capacity limits are active on different edges)
558+
- **Distinguish correct from incorrect reductions** — a trivial instance (all zeros, single-element, identity-like) often passes even with a buggy reduction. Choose instances where a naive or partially wrong construction would yield the wrong feasibility/optimality answer
559+
- **Include both YES and NO witnesses** (for satisfaction problems) or **optimal vs suboptimal configurations** (for optimization problems) — show that the reduction correctly maps solutions in both directions
560+
- Must be hand-verifiable but **not** so small that it degenerates into a trivial case
554561
- Do not ask the user to provide solved witnesses manually
555-
- Must be non-trivial but hand-verifiable
556-
- Must exercise the core structure of the reduction
557562

558563
6. **Reference** — Use WebSearch to find references. Present candidate references via `AskUserQuestion`:
559564
```
@@ -610,6 +615,7 @@ AskUserQuestion:
610615

611616
**Ranking criteria** (in order of priority):
612617
- Connections that establish NP-hardness (from a problem reachable from 3-SAT)
618+
- **ILP solver path** — if the new model has no outgoing edges and admits a natural ILP formulation, `<NewModel> → ILP` should be the top companion rule recommendation. This is the fastest way to make the problem solvable via the existing ILP solver infrastructure.
613619
- Connections to large clusters (QUBO, ILP, SAT families)
614620
- Connections that reduce orphan count or bridge disconnected components
615621
- Connections the user specifically mentioned during brainstorming

0 commit comments

Comments
 (0)