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.
|
|
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": "^
|
|
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:
|
|
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`
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
`
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
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\`
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
\`
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
|