You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Improve review pipeline: whitelist scoping, CI paper check, complexity reporting
- Fix whitelist false positives: use origin/main (not local main) as
merge-base in review-implementation, so after merge-with-main the diff
only shows PR files
- Add make paper to CI (install typst, run after tests) to catch paper
regressions on main
- Fix pre-existing paper error: SequencingToMinimizeWeightedCompletionTime
used removed x.optimal API
- Extract and report complexity strings in model completeness check so
reviewers can compare against issue specification
- Document canonical_model_example_specs() requirement in add-model skill
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: .claude/skills/add-model/SKILL.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -186,9 +186,11 @@ Update `problemreductions-cli/src/commands/create.rs` so `pred create <ProblemNa
186
186
187
187
Add a builder function in `src/example_db/model_builders.rs` that constructs a small, canonical instance for this model. Register it in `build_model_examples()`.
188
188
189
+
Also add `canonical_model_example_specs()`**in the model file itself** (gated by `#[cfg(feature = "example-db")]`), and register it in the category `mod.rs` example chain (e.g., `specs.extend(<module>::canonical_model_example_specs());`). See any existing model in `src/models/graph/` for the pattern.
190
+
189
191
This example is now the canonical source for:
190
192
-`pred create --example <PROBLEM_SPEC>`
191
-
- paper/example exports
193
+
- paper/example exports via `load-model-example()` in `reductions.typ`
192
194
- example-db invariants tested in `src/unit_tests/example_db.rs`
Copy file name to clipboardExpand all lines: .claude/skills/fix-issue/SKILL.md
+28-5Lines changed: 28 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,9 +10,12 @@ Fix errors and warnings from a `check-issue` report. Auto-fixes mechanical issue
10
10
## Invocation
11
11
12
12
```
13
-
/fix-issue <model|rule>
13
+
/fix-issue <model|rule|issue-number>
14
14
```
15
15
16
+
-`/fix-issue model` or `/fix-issue rule` — pick next from Backlog
17
+
-`/fix-issue 207` — fix a specific issue by number (skip Step 1a/1b, go directly to 1c)
18
+
16
19
## Constants
17
20
18
21
GitHub Project board IDs:
@@ -59,7 +62,10 @@ digraph fix_issue {
59
62
60
63
## Step 1: Pick Next Issue from Backlog
61
64
62
-
The argument is `model` or `rule` — determines which issue type (`[Model]` or `[Rule]`) to process.
65
+
The argument is `model`, `rule`, or a specific issue number.
66
+
67
+
- If a **number** is given, skip to Step 1c with that issue.
68
+
- If `model` or `rule`, pick from the Backlog as below.
63
69
64
70
### 1a: Fetch candidate list from project board
65
71
@@ -83,6 +89,8 @@ Returns all Backlog issues of the requested type, sorted by `Good` label first t
83
89
84
90
Pick the first item from the list. If the list is empty, STOP with message: "No `[Model]`/`[Rule]` issues in Backlog."
85
91
92
+
If the top issue already has the `Good` label and its check report has **0 failures and 0 warnings**, skip to Step 8 (just move it to Ready — no edits needed). If it has warnings, proceed normally.
93
+
86
94
### 1c: Fetch the chosen issue
87
95
88
96
```bash
@@ -136,8 +144,8 @@ Tag each issue as:
136
144
| Missing type dependencies | Architectural decision about codebase |
| Incomplete or trivial example |Needs meaningful design, provide 3 options for the human to choose from|
140
-
| Decision vs optimization framing | Check associated `[Rule]` issues first — if a rule targets the decision version, implement that; if it targets optimization, implement that; if both exist, split into two separate model issues. Problem modeling choice|
147
+
| Incomplete or trivial example |Present **3 concrete example options** with pros/cons (use `AskUserQuestion` with previews showing vertex/edge counts, optimal values, and suboptimal cases). Prefer examples that match the model issue's example when a companion model exists.|
148
+
| Decision vs optimization framing |**Default to optimization** unless evidence points otherwise. The project prefers `OptimizationProblem` (like MIS, SpinGlass, TSP) because optimization subsumes decision. Check associated `[Rule]` issues (`gh issue list --search "<ProblemName> in:title label:rule"`) to see how rules use the model — if rules only need the decision version (e.g., reducing to SAT with a bound), optimization still works since you can extract the bound from the optimal value. Only use `SatisfactionProblem` for inherently decision/feasibility problems (SAT, KColoring) where there is no natural optimization objective. If switching to optimization, add the appropriate `Minimum`/`Maximum` prefix per codebase conventions.|
141
149
| Ambiguous overhead expressions | Requires understanding the reduction |
142
150
143
151
---
@@ -232,14 +240,28 @@ Apply the requested changes to the draft issue body, re-check locally (Step 6),
232
240
233
241
Only reached when the human approves. Now push everything to GitHub.
234
242
235
-
### 8a: Edit the issue body
243
+
### 8a: Edit the issue body and title
236
244
237
245
Use the Write tool to save the updated body to `/tmp/fix_issue_body.md`, then:
| Forgetting to update the issue title | If the problem name changed, update the title with `gh issue edit <N> --title "..."` and find all related issues referencing the old name |
0 commit comments