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
Copy file name to clipboardExpand all lines: .claude/skills/final-review/SKILL.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -196,10 +196,10 @@ Verify the PR includes all required components. Check:
196
196
197
197
**Paper-example consistency check (both Model and Rule PRs):**
198
198
199
-
The paper example must use data from the generated JSON (`docs/paper/examples/generated/`), not hand-written data. To verify:
200
-
1.Run `make examples` on the PR branch to regenerate `docs/paper/examples/generated/models.json` and `rules.json`.
201
-
2. For **[Rule] PRs**: the paper's `reduction-rule` entry must call `load-example(source, target)` (defined in `reductions.typ`) to load the canonical example from `rules.json`, and derive all concrete values from the loaded data using Typst array operations — no hand-written instance data.
202
-
3. For **[Model] PRs**: read the problem's entry in `models.json` and compare its `instance` field against the paper's `problem-def` example. The paper example must use the same instance (allowing 0-indexed JSON vs 1-indexed math notation). If they differ, flag: "Paper example does not match `example_db` canonical instance in `models.json`."
199
+
The paper example must use data from the canonical fixture JSON (`src/example_db/fixtures/examples.json`), not hand-written data. To verify:
200
+
1.If the PR changes example builders/specs, run `make regenerate-fixtures` on the PR branch.
201
+
2. For **[Rule] PRs**: the paper's `reduction-rule` entry must call `load-example(source, target, ...)` (defined in `reductions.typ`) to load the canonical example from `examples.json`, and derive all concrete values from the loaded data using Typst array operations — no hand-written instance data.
202
+
3. For **[Model] PRs**: read the problem's entry in `examples.json`under `models`and compare its `instance` field against the paper's `problem-def` example. The paper example must use the same instance (allowing 0-indexed JSON vs 1-indexed math notation). If they differ, flag: "Paper example does not match `example_db` canonical instance in `examples.json`."
203
203
204
204
**Issue–test round-trip consistency check (both Model and Rule PRs):**
A concrete small instance that illustrates the problem. **The example must use data from the generated `models.json`**, not an independently invented instance.
129
+
A concrete small instance that illustrates the problem. **The example must use data from the checked-in canonical fixture DB**, not an independently invented instance.
130
130
131
131
#### Sourcing example data
132
132
133
-
1.Run `make examples` to ensure `docs/paper/examples/generated/models.json` is up to date.
134
-
2. Find the problem's entry in `models.json` — it contains the canonical `instance`, `samples`, and `optimal` fields.
133
+
1.If you changed example builders/specs, run `make regenerate-fixtures` to refresh `src/example_db/fixtures/examples.json`.
134
+
2. Find the problem's entry in `src/example_db/fixtures/examples.json` under `models` — it contains the canonical `instance`, `samples`, and `optimal` fields.
135
135
3. Use the values from `instance` in the paper example (translating 0-indexed code values to 1-indexed math notation where conventional, e.g., vertices {0,...,n-1} → {1,...,n}).
136
136
4. Use `optimal` configurations to show the solution.
137
137
138
-
**Do not invent a different instance.** If the canonical example is too large or not pedagogically ideal, fix it in `canonical_model_example_specs()` first, re-run `make examples`, then write the paper entry from the updated JSON.
138
+
**Do not invent a different instance.** If the canonical example is too large or not pedagogically ideal, fix it in `canonical_model_example_specs()` first, re-run `make regenerate-fixtures`, then write the paper entry from the updated JSON.
139
139
140
140
#### Requirements
141
141
@@ -147,7 +147,7 @@ A concrete small instance that illustrates the problem. **The example must use d
147
147
#### Structure
148
148
149
149
```typst
150
-
*Example.* Consider [instance description with concrete numbers from models.json].
150
+
*Example.* Consider [instance description with concrete numbers from `examples.json`].
151
151
[Describe the solution and why it's valid/optimal].
152
152
153
153
#figure({
@@ -185,7 +185,7 @@ make paper
185
185
-[ ]**Notation self-contained**: every symbol in `def` is defined before first use
186
186
-[ ]**Background present**: historical context, applications, or structural properties
187
187
-[ ]**Algorithms cited**: every complexity claim has `@citation` or footnote warning
188
-
-[ ]**Example from JSON**: instance data matches `models.json` canonical example (not independently invented)
188
+
-[ ]**Example from JSON**: instance data matches `src/example_db/fixtures/examples.json` canonical example (not independently invented)
189
189
-[ ]**Evaluation shown**: objective/verifier computed on the example solution
190
190
-[ ]**Diagram included**: figure with caption and label for graph/matrix/set visualization
191
191
-[ ]**Paper compiles**: `make paper` succeeds without errors
0 commit comments