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/propose/SKILL.md
+29-4Lines changed: 29 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,7 +19,8 @@ Interactive brainstorming skill that helps domain experts (who may not know the
19
19
20
20
<HARD-GATE>
21
21
Do NOT write any code, create any files, or invoke implementation skills (add-model, add-rule, issue-to-pr).
22
-
The ONLY output of this skill is GitHub issues filed via `gh issue create`.
22
+
Exception: downloading main reference PDFs into `docs/research/raw/` is allowed and required by the literature-check step.
23
+
The ONLY project output of this skill is GitHub issues filed via `gh issue create`; reference PDFs are supporting evidence, not implementation artifacts.
23
24
</HARD-GATE>
24
25
25
26
## Process
@@ -295,6 +296,7 @@ Only fall back to the full `AskUserQuestion` if the inference is genuinely ambig
295
296
Requirements:
296
297
- Use concrete numeric exponents (e.g., `1.1996^n`, not `(2-ε)^n`)
297
298
- Every option must include a link to the paper or resource
299
+
- For the selected main algorithm/reference, download the PDF into `docs/research/raw/` and read the relevant theorem/algorithm/proof before drafting. Prefer existing paper tooling (`python3 scripts/fetch_papers.py lookup/download/scihub`) when the reference is or will be in `docs/paper/references.bib`; otherwise save the directly fetched PDF with a clear slug. If no full paper is obtainable, state that explicitly and do not present unverified abstract-level claims as checked facts.
298
300
- After the user picks one, fetch the BibTeX entry for the chosen reference (from the paper's page, DOI resolver, or Google Scholar) and record it — the BibTeX will be included in the filed issue
299
301
300
302
5.**Solving strategy** — The library's brute-force solver works on every problem by enumerating the configuration space. **Auto-fill "Brute-force" as the baseline** — do not present it as a choice.
@@ -493,6 +495,25 @@ After studying the models, check whether this is a **well-known textbook reducti
493
495
- Use WebSearch to check standard references (Garey & Johnson, Karp's 21, CLRS, Sipser, Arora & Barak)
494
496
- Check if an existing GitHub issue already describes this reduction
495
497
498
+
Then identify the **main algorithm reference** for the reduction: the paper/book chapter whose construction will be implemented. Download its PDF into `docs/research/raw/` and read it carefully before drafting:
499
+
500
+
```bash
501
+
# Preferred when the reference is already in or being added to docs/paper/references.bib
- Do not rely only on abstracts, snippets, or secondary summaries for the construction.
512
+
- Read the theorem statement, construction/gadget definitions, proof lemmas, and any assumptions/normalization steps.
513
+
- If the source has ambiguities, transcription risks, or missing details, call them out in the issue draft rather than smoothing them over.
514
+
- The issue must include an implementable algorithm, not just a citation.
515
+
- If no full reference can be obtained, tell the user and mark the proposal as unverified until the paper is available.
516
+
496
517
If the reduction is well-known, use the literature to **pre-fill** answers in Step 3.4 — but still present each step to the user for confirmation. Do NOT skip the guided brainstorming.
497
518
498
519
#### Step 3.4: Guided brainstorming
@@ -529,6 +550,7 @@ If the reduction is well-known, use the literature to **pre-fill** answers in St
529
550
After the user picks one, present the full algorithm write-up for confirmation.
530
551
- Must define all symbols before using them
531
552
- Must be detailed enough that someone could implement it
553
+
- Must reflect the downloaded main reference directly: include normalization assumptions, gadget/variable definitions, edge/constraint families, parameter settings, and solution extraction when the reference provides them
532
554
533
555
3.**Explanation** — Present a correctness argument explaining why the reduction preserves feasibility (for satisfaction problems) or optimality (for optimization problems), then ask for feedback via `AskUserQuestion`:
534
556
```
@@ -590,6 +612,7 @@ If the reduction is well-known, use the literature to **pre-fill** answers in St
590
612
description: "<paper title, year> — <URL>"
591
613
```
592
614
If no references are found, ask the user if this is a novel reduction.
615
+
After a reference is chosen, confirm the downloaded PDF path under `docs/research/raw/` and summarize what sections/theorems were read.
593
616
594
617
---
595
618
@@ -708,13 +731,14 @@ If proposing a model + rules, present all drafts together:
708
731
709
732
**Critical: Run the check-issue logic on the draft BEFORE filing.** This catches problems early and avoids filing issues that will fail review.
710
733
711
-
Apply all 4 checks from `/check-issue` against the draft content:
734
+
Apply the `/check-issue` quality checks against the draft content:
712
735
713
736
### Rule draft checks
714
737
1.**Usefulness:**`pred path <source> <target>` — verify no existing path. If path exists, run redundancy analysis.
715
738
2.**Non-trivial:** Review the algorithm for genuine structural transformation (not just variable substitution or subtype coercion).
4.**Well-written:** Verify all sections present, symbols consistent, overhead table field names match `pred show <target> --json` → `size_fields`, example is fully worked.
740
+
4.**PDF/read-through:** Verify the main algorithm reference PDF was downloaded to `docs/research/raw/`, the relevant theorem/construction/proof was read, and the issue draft names the exact theorem/section used. If the issue only cites a paper without transcribing an implementable construction, this check fails.
741
+
5.**Well-written:** Verify all sections present, symbols consistent, overhead table field names match `pred show <target> --json` → `size_fields`, example is fully worked.
718
742
719
743
### Model draft checks
720
744
1.**Usefulness:**`pred show <name>` must fail (problem doesn't exist). At least one reduction planned.
@@ -725,7 +749,7 @@ Apply all 4 checks from `/check-issue` against the draft content:
725
749
726
750
**If any check fails:** Fix the draft automatically if possible. If user input is needed, ask. Loop back to Step 4 with the corrected draft.
727
751
728
-
**If all checks pass:** Show the user a summary: "Draft passes all 4 quality checks (Usefulness ✅, Non-trivial ✅, Correctness ✅, Well-written ✅). Ready to file."
752
+
**If all checks pass:** Show the user a summary: "Draft passes all quality checks (Usefulness ✅, Non-trivial ✅, Correctness ✅, PDF/read-through ✅, Well-written ✅). Ready to file."
729
753
730
754
Then present for approval via `AskUserQuestion`:
731
755
@@ -789,6 +813,7 @@ Print all issue URLs when done.
789
813
-**Auto-infer obvious answers** — When the user's orienting description clearly determines the answer (problem type, data representation, variable structure, motivation), confirm inline rather than presenting an open-ended `AskUserQuestion`. Expert users find obvious multiple-choice questions patronizing.
790
814
-**Study models before brainstorming** — always run `pred show <source> --json` and `pred show <target> --json` before asking questions. This reveals field types, size getters, and schema details that are essential for correct overhead tables.
791
815
-**Pre-fill well-known reductions** — if the reduction appears in standard textbooks, pre-fill answers from literature but still present each step to the user for confirmation. Never skip brainstorming steps.
816
+
-**Read the main reference, not just metadata** — for any rule whose algorithm comes from a paper, download the PDF to `docs/research/raw/`, read the actual construction/proof, and include implementation-level details in the issue. A citation-only algorithm section is not acceptable.
792
817
-**One question at a time** — don't overwhelm; each `AskUserQuestion` call has one focused question
793
818
-**Mathematical language only** — never mention Rust types, traits, macros, or code patterns to the user
794
819
-**Help find references** — use WebSearch to help locate papers, verify claims
0 commit comments