paperlint 13.0.1 → 13.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paperlint",
3
- "version": "13.0.1",
3
+ "version": "13.0.2",
4
4
  "description": "A linter for scientific papers written in LaTeX: catches mistakes before you submit to a conference or journal.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -40,7 +40,7 @@
40
40
  "ts-essentials": "^10.2.1",
41
41
  "typescript": "^6.0.3",
42
42
  "unpdf": "^1.8.1",
43
- "vigiles": "^38.2.0",
43
+ "vigiles": "^39.2.0",
44
44
  "zod": "^4.6.5"
45
45
  },
46
46
  "devDependencies": {
@@ -2,10 +2,11 @@
2
2
  name: analyze-sibling-paper
3
3
  description: "Deep-analyze a specific related / competing / concurrent paper — reading the ACTUAL paper, not its abstract — to decide the \"isn't this just X?\" question before a reviewer asks it: what it really does, whether it's prior or concurrent work, the strongest scoop a reviewer could claim, whether your delta is REAL or merely cosmetic, and the exact cite + positioning clause (or a scoop escalation) to apply. Saves the analysis to the paper's research folder and surfaces action points. Use whenever a paper close enough to yours surfaces — via verify-citations' nearest-neighbor, a reviewer's \"this was already done\", your own lit search, or an arXiv alert. Distinct from verify-citations (confirms a cite is real + one-line delta) and study-accepted-papers (mines a venue's accepted corpus for levers); this one does the deep per-competitor overlap/scoop analysis. Compose with verify-citations (feeds it neighbors), harden-paper (its nearest-neighbor-scoop axis calls this), and extend-paper (a scooped angle can become the extension's pivot)."
4
4
  context: fork
5
+ model: sonnet
5
6
  allowed-tools: [WebSearch, WebFetch, Read, Write, Grep, Glob, Bash, Agent]
6
7
  ---
7
8
 
8
- <!-- vigiles:sha256:834f128ace92288a compiled from skills/analyze-sibling-paper/SKILL.md.spec.ts -->
9
+ <!-- vigiles:sha256:17c3e0a4c03c6a33 compiled from skills/analyze-sibling-paper/SKILL.md.spec.ts -->
9
10
 
10
11
  # analyze-sibling-paper — settle "isn't this just X?" before a reviewer does
11
12
 
@@ -26,13 +27,17 @@ far below the cost of a "novelty concern" reject.
26
27
 
27
28
  ## How to run it
28
29
 
29
- 1. **Deep-read the ACTUAL paper, not the abstract.** `WebFetch` the arXiv/ar5iv/DOI page and read
30
- abstract → intro → method → claims (as much as is accessible). An abstract hides exactly the overlap
31
- that matters. Try the fetch routes in order — `arxiv.org/abs/<id>` for metadata, `arxiv.org/html/<id>v1`,
32
- `ar5iv.labs.arxiv.org/html/<id>`, then the PDF — and **a 403/404 on one route is not "inaccessible"**;
33
- switch channel before concluding. **Record what you actually read** in the card's frontmatter as
34
- `read: full | abstract | none`, and name in a `**Read:**` line the sections you covered and the
35
- ones you could not — an abstract-only verdict is PROVISIONAL and must say so.
30
+ 1. **Deep-read the ACTUAL paper, not the abstract.** `WebFetch` returns a model's summary of a page, not
31
+ its text: use it only to find the link (`arxiv.org/abs/<id>` for metadata and version), never as the
32
+ read, and never take absence from its output as proof. Save the full text to a file and read the file with
33
+ `Read`, abstract → intro → method → claims: the PDF (`arxiv.org/pdf/<id>`) fetched with `curl` into an
34
+ empty directory and extracted with plain `pdftotext <pdf> <txt>` (never `-layout`: it glues the two
35
+ page columns into one line and a quote is no longer contiguous), or the HTML (`arxiv.org/html/<id>v1`,
36
+ `ar5iv.labs.arxiv.org/html/<id>`) saved with `curl`. **A 403/404 on one route is not "inaccessible"**;
37
+ switch channel before concluding. An abstract hides exactly the overlap that matters. **Record what you
38
+ actually read** in the card's frontmatter as `read: full | abstract | none`: `full` only after the
39
+ saved file was read, and name in a `**Read:**` line the sections you covered and the ones you could not
40
+ — an abstract-only verdict is PROVISIONAL and must say so.
36
41
  🔴 **Verify the abstract's numbers against the body.** They disagree more often than you would expect,
37
42
  and a disagreement is itself a finding worth recording.
38
43
 
@@ -11,6 +11,10 @@ export default experimental_skill({
11
11
  description:
12
12
  "Deep-analyze a specific related / competing / concurrent paper — reading the ACTUAL paper, not its abstract — to decide the \"isn't this just X?\" question before a reviewer asks it: what it really does, whether it's prior or concurrent work, the strongest scoop a reviewer could claim, whether your delta is REAL or merely cosmetic, and the exact cite + positioning clause (or a scoop escalation) to apply. Saves the analysis to the paper's research folder and surfaces action points. Use whenever a paper close enough to yours surfaces — via verify-citations' nearest-neighbor, a reviewer's \"this was already done\", your own lit search, or an arXiv alert. Distinct from verify-citations (confirms a cite is real + one-line delta) and study-accepted-papers (mines a venue's accepted corpus for levers); this one does the deep per-competitor overlap/scoop analysis. Compose with verify-citations (feeds it neighbors), harden-paper (its nearest-neighbor-scoop axis calls this), and extend-paper (a scooped angle can become the extension's pivot).",
13
13
  context: "fork",
14
+ // Reading one paper and copying verbatim quotes is a fixed spec, so the fork runs on Sonnet; without this
15
+ // line it runs as general-purpose on the caller's model (vigiles#401). Step 3's delta judgement still goes
16
+ // to an independent Fable subagent.
17
+ model: "sonnet",
14
18
  tools: [
15
19
  "WebSearch",
16
20
  "WebFetch",
@@ -41,13 +45,17 @@ far below the cost of a "novelty concern" reject.
41
45
 
42
46
  ## How to run it
43
47
 
44
- 1. **Deep-read the ACTUAL paper, not the abstract.** \`WebFetch\` the arXiv/ar5iv/DOI page and read
45
- abstract → intro → method → claims (as much as is accessible). An abstract hides exactly the overlap
46
- that matters. Try the fetch routes in order — \`arxiv.org/abs/<id>\` for metadata, \`arxiv.org/html/<id>v1\`,
47
- \`ar5iv.labs.arxiv.org/html/<id>\`, then the PDF — and **a 403/404 on one route is not "inaccessible"**;
48
- switch channel before concluding. **Record what you actually read** in the card's frontmatter as
49
- \`read: full | abstract | none\`, and name in a \`**Read:**\` line the sections you covered and the
50
- ones you could not — an abstract-only verdict is PROVISIONAL and must say so.
48
+ 1. **Deep-read the ACTUAL paper, not the abstract.** \`WebFetch\` returns a model's summary of a page, not
49
+ its text: use it only to find the link (\`arxiv.org/abs/<id>\` for metadata and version), never as the
50
+ read, and never take absence from its output as proof. Save the full text to a file and read the file with
51
+ \`Read\`, abstract → intro → method → claims: the PDF (\`arxiv.org/pdf/<id>\`) fetched with \`curl\` into an
52
+ empty directory and extracted with plain \`pdftotext <pdf> <txt>\` (never \`-layout\`: it glues the two
53
+ page columns into one line and a quote is no longer contiguous), or the HTML (\`arxiv.org/html/<id>v1\`,
54
+ \`ar5iv.labs.arxiv.org/html/<id>\`) saved with \`curl\`. **A 403/404 on one route is not "inaccessible"**;
55
+ switch channel before concluding. An abstract hides exactly the overlap that matters. **Record what you
56
+ actually read** in the card's frontmatter as \`read: full | abstract | none\`: \`full\` only after the
57
+ saved file was read, and name in a \`**Read:**\` line the sections you covered and the ones you could not
58
+ — an abstract-only verdict is PROVISIONAL and must say so.
51
59
  🔴 **Verify the abstract's numbers against the body.** They disagree more often than you would expect,
52
60
  and a disagreement is itself a finding worth recording.
53
61