Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Write structured notes for each paper in the core set into `papers/paper_notes.jsonl` (summary/method/results/limitations). **Trigger**: paper notes, structured notes, reading notes, 论文笔记, paper_notes.jsonl. **Use when**: survey 的 evidence 阶段(C3),已有 `papers/core_set.csv`(以及可选 fulltext),需要为后续 claims/citations/writing 准备可引用证据。
.claude/skills/willoscar-paper-notes/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | -13% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -5% | 0% |
| case-11 | ✗→✓ | ▲ Improved | -18% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 75% | 0% |
| case-12 | ✗→✓ | ▲ Improved | -19% | 0% |
Produce consistent, searchable paper notes that later steps (claims, visuals, writing) can reliably synthesize.
This is still NO PROSE: keep notes as bullets / short fields, not narrative paragraphs.
Always read:
references/overview.mdreferences/note_schema.mdRead by task:
references/limitation_taxonomy.md when writing or reviewing limitations (avoid boilerplate)references/result_extraction_examples.md when extracting key_results (good vs bad examples)references/source_text_hygiene.md when result/limitation fields still preserve paper self-narration or author-result wrappersMachine-readable assets:
assets/note_schema.json — JSONL record schema for validationassets/evidence_tags.json — evidence bank tagging categories (extensible without code changes)assets/source_text_hygiene.json — note-field source sentence cleanup policyassets/limitation-signals.json — shared polarity rules fordistinguishing unresolved constraints from resolved failures or improvements
Use scripts/run.py only for:
Do not treat run.py as the place for:
references/limitation_taxonomy.md for guidance)X enables ..., our framework features ...) into key_results.we apply ... and show ..., we then discuss how ...) into key_results.papers/core_set.csvoutline/mapping.tsv (to prioritize)papers/fulltext_index.jsonl + papers/fulltext/*.txt (if running in fulltext mode)papers/paper_notes.jsonl (JSONL; one record per paper)papers/evidence_bank.jsonl (JSONL; addressable evidence snippets derived from notes; profile target: course paper >=4, A150++ >=7 items/paper on average)papers/fulltext/*.txt) → enrich key papers using fulltext snippets and set evidence_level: "fulltext".Uses: outline/mapping.tsv, papers/fulltext_index.jsonl.
paper_id in papers/core_set.csv must have one JSONL record.method (mechanism and architecture; what differs from baselines)key_results (benchmarks/metrics; include numbers if available)limitations (specific assumptions/failure modes; avoid generic boilerplate)bibkey for each paper for citation generation.paper_id in papers/core_set.csv appears in papers/paper_notes.jsonl.TODO method/results/limitations.evidence_level is set correctly (abstract vs fulltext).papers/evidence_bank.jsonl exists and meets the selected profile (course paper >=4; A150++ >=7 items/paper on average).uv run python .codex/skills/paper-notes/scripts/run.py --helpuv run python .codex/skills/paper-notes/scripts/run.py --workspace <workspace>--help (this helper is intentionally minimal)priority=high papers:papers/paper_notes.jsonl (e.g., add full-text details for key papers and diversify limitations).priority=high.pipeline.py --strict it will be blocked if high-priority notes are incomplete (missing method/key_results/limitations) or contain placeholders.Symptom:
method/key_results or TODO placeholders.Causes:
Solutions:
priority=high papers: method, ≥1 key_results, ≥3 summary_bullets, ≥1 concrete limitations.pdf-text-extractor in fulltext mode for key papers.Symptom:
Causes:
Solutions:
papers/paper_notes.jsonl covers all papers/core_set.csv paper_ids.priority=high notes satisfy method/results/limitations completeness.TODO remains in high-priority notes.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 18,593 | 5,556 | -70% | 1 | 1 | 0% | 3,712 | 1,933 | -48% | 0 | 0 | — |
case-02 | fail→fail | 37,805 | 4,640 | -88% | 1 | 1 | 0% | 6,217 | 1,968 | -68% | 0 | 0 | — |
case-03 | fail→fail | 27,225 | 5,843 | -79% | 1 | 1 | 0% | 4,559 | 1,960 | -57% | 0 | 0 | — |
case-04 | pass→pass | 32,847 | 11,007 | -66% | 1 | 1 | 0% | 4,548 | 3,482 | -23% | 0 | 0 | — |
case-05 | pass→fail | 1,951 | 11,500 | +489% | 1 | 1 | 0% | 250 | 2,047 | +719% | 0 | 0 | — |
case-06 | pass→fail | 14,655 | 5,025 | -66% | 1 | 1 | 0% | 2,741 | 1,852 | -32% | 0 | 0 | — |
case-07 | fail→pass | 18,250 | 7,729 | -58% | 1 | 1 | 0% | 3,359 | 2,916 | -13% | 0 | 0 | — |
case-08 | pass→pass | 20,218 | 16,373 | -19% | 1 | 1 | 0% | 2,999 | 4,176 | +39% | 0 | 0 | — |
case-09 | pass→pass | 14,419 | 6,802 | -53% | 1 | 1 | 0% | 2,033 | 2,623 | +29% | 0 | 0 | — |
case-10 | fail→pass | 15,178 | 3,640 | -76% | 1 | 1 | 0% | 2,317 | 2,208 | -5% | 0 | 0 | — |
case-11 | fail→pass | 17,174 | 4,433 | -74% | 1 | 1 | 0% | 2,841 | 2,332 | -18% | 0 | 0 | — |
case-16 | fail→pass | 8,912 | 4,854 | -46% | 1 | 1 | 0% | 1,388 | 2,429 | +75% | 0 | 0 | — |
case-12 | fail→pass | 33,429 | 2,565 | -92% | 1 | 1 | 0% | 2,652 | 2,151 | -19% | 0 | 0 | — |
case-13 | pass→fail | 8,619 | 2,202 | -74% | 1 | 1 | 0% | 1,394 | 1,961 | +41% | 0 | 0 | — |
case-14 | pass→pass | 8,105 | 5,769 | -29% | 1 | 1 | 0% | 1,284 | 2,607 | +103% | 0 | 0 | — |
case-15 | pass→pass | 8,392 | 4,140 | -51% | 1 | 1 | 0% | 1,280 | 2,252 | +76% | 0 | 0 | — |
case-17 | pass→pass | 12,748 | 2,295 | -82% | 1 | 1 | 0% | 798 | 2,004 | +151% | 0 | 0 | — |
case-18 | pass→pass | 11,179 | 5,370 | -52% | 1 | 1 | 0% | 1,664 | 2,589 | +56% | 0 | 0 | — |
case-19 | pass→pass | 11,089 | 4,321 | -61% | 1 | 1 | 0% | 1,642 | 2,330 | +42% | 0 | 0 | — |
case-20 | pass→pass | 9,330 | 7,168 | -23% | 1 | 1 | 0% | 1,314 | 2,772 | +111% | 0 | 0 | — |
case-21 | pass→pass | 14,447 | 6,267 | -57% | 1 | 1 | 0% | 2,017 | 2,592 | +29% | 0 | 0 | — |
case-22 | pass→pass | 6,639 | 3,614 | -46% | 1 | 1 | 0% | 888 | 2,312 | +160% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 16 counted toward the lift figure. The other 6 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +9 percentage points is the difference between those two pass rates over the 16 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.