paperlint 6.0.0 → 6.1.0
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/dist/adapters/latex/index.d.ts +1 -1
- package/dist/adapters/latex/index.d.ts.map +1 -1
- package/dist/adapters/latex/index.js +3 -2
- package/dist/adapters/latex/index.js.map +1 -1
- package/dist/adapters/latex/prose.d.ts +6 -1
- package/dist/adapters/latex/prose.d.ts.map +1 -1
- package/dist/adapters/latex/prose.js +142 -31
- package/dist/adapters/latex/prose.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +15 -18
- package/dist/cli.js.map +1 -1
- package/dist/domain/register.d.ts +96 -0
- package/dist/domain/register.d.ts.map +1 -0
- package/dist/domain/register.js +136 -0
- package/dist/domain/register.js.map +1 -0
- package/dist/domain/tex-document.d.ts +19 -0
- package/dist/domain/tex-document.d.ts.map +1 -1
- package/dist/domain/tex-document.js +8 -3
- package/dist/domain/tex-document.js.map +1 -1
- package/dist/ports/latex.d.ts +6 -1
- package/dist/ports/latex.d.ts.map +1 -1
- package/dist/presets.d.ts +3 -0
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +4 -1
- package/dist/presets.js.map +1 -1
- package/dist/register-bands.d.ts +37 -0
- package/dist/register-bands.d.ts.map +1 -0
- package/dist/register-bands.js +196 -0
- package/dist/register-bands.js.map +1 -0
- package/dist/register.d.ts +4 -2
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +6 -45
- package/dist/register.js.map +1 -1
- package/dist/tex-requirements.d.ts +6 -0
- package/dist/tex-requirements.d.ts.map +1 -1
- package/dist/tex-requirements.js +26 -6
- package/dist/tex-requirements.js.map +1 -1
- package/dist/tex-venue-rules.d.ts +1 -1
- package/dist/tex-venue-rules.d.ts.map +1 -1
- package/dist/tex-venue-rules.js.map +1 -1
- package/docs/rules/tex/claim-emphasis.md +71 -0
- package/docs/rules/tex/contrast-frames.md +100 -0
- package/docs/rules/tex/relation-markers.md +72 -0
- package/docs/rules.md +46 -42
- package/package.json +1 -1
- package/presets/aidc.jsonc +50 -0
- package/presets/venue-profile.schema.json +48 -1
- package/skills/grade-paper-writing/SKILL.md +59 -27
- package/skills/grade-paper-writing/SKILL.md.spec.ts +58 -26
- package/src/adapters/latex/index.test.ts +91 -0
- package/src/adapters/latex/index.ts +3 -2
- package/src/adapters/latex/prose.ts +188 -58
- package/src/cli.ts +19 -18
- package/src/domain/register.test.ts +153 -0
- package/src/domain/register.ts +261 -0
- package/src/domain/tex-document.ts +37 -3
- package/src/ports/latex.ts +6 -0
- package/src/presets.ts +7 -1
- package/src/register-bands.test.ts +327 -0
- package/src/register-bands.ts +291 -0
- package/src/register.ts +7 -37
- package/src/rule-cases.test.ts +67 -17
- package/src/tex-requirements.ts +47 -8
- package/src/tex-venue-rules.ts +7 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tex-venue-rules.js","sourceRoot":"","sources":["../src/tex-venue-rules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tex-venue-rules.js","sourceRoot":"","sources":["../src/tex-venue-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# tex/claim-emphasis
|
|
2
|
+
|
|
3
|
+
**Level:** warn · **Reads:** `paper.tex` and the files it includes → `paperlint.json`
|
|
4
|
+
|
|
5
|
+
## What it catches
|
|
6
|
+
|
|
7
|
+
A body that sets its claims in bold inside running sentences more often than the accepted papers of
|
|
8
|
+
its venue do. A claim in bold is a `\textbf{…}` (or `{\bfseries …}`, `{\bf …}`) that:
|
|
9
|
+
|
|
10
|
+
- stands **inside** a sentence — not opening a paragraph or a list item, where bold is a label
|
|
11
|
+
(`\textbf{Varying the volume}. We …`, `\item \textbf{A corpus of questions}: …`), braces around it
|
|
12
|
+
or not; and
|
|
13
|
+
- **states** rather than names: six words or more, or holding a number
|
|
14
|
+
(`\textbf{median coverage is 2.5/10}`, `\textbf{they react to the dangerous word}`).
|
|
15
|
+
|
|
16
|
+
A term in bold (`\textbf{Pressure-Acoustic Transformation (PAT)}`), italics and `\emph`, headings,
|
|
17
|
+
run-in headings, captions, tables and figures are not counted. Counted per 10,000 words of the body.
|
|
18
|
+
|
|
19
|
+
Above the band it reports once at the start of the body, then once at every claim in bold, where it
|
|
20
|
+
stands. Below the band it reports once. A body under 2 000 words, or a paper whose preset records no
|
|
21
|
+
anchors, is not judged.
|
|
22
|
+
|
|
23
|
+
## Why
|
|
24
|
+
|
|
25
|
+
Setting a finding in bold is how a post makes a point land; an accepted paper puts the number in a
|
|
26
|
+
sentence that says whose it is, or in a table. Measured on the LaTeX source, per 10,000 words:
|
|
27
|
+
|
|
28
|
+
| paper | words | claims in bold | per 10,000 |
|
|
29
|
+
| ------------------------------------------------------- | ----: | -------------: | ---------: |
|
|
30
|
+
| `leaking-queries-acsac25` (ACSAC 2025) | 9133 | 0 | 0.0 |
|
|
31
|
+
| `rr-dataset-quality-acsac24` (ACSAC 2024) | 8130 | 0 | 0.0 |
|
|
32
|
+
| `secure-acsac24` (ACSAC 2024) | 7519 | 0 | 0.0 |
|
|
33
|
+
| `llm-splained-acsac25` (ACSAC 2025) | 9529 | 1 | 1.0 |
|
|
34
|
+
| `barovox-acsac24` (ACSAC 2024) | 7670 | 8 | 10.4 |
|
|
35
|
+
| the paper reviewers called a blog post, current version | 10476 | 42 | 40.1 |
|
|
36
|
+
| the same paper, before its rewrite | 6128 | 42 | 68.5 |
|
|
37
|
+
| `agenticdev-acm26` (ours, "too informal", ACM) | 4374 | 8 | 18.3 |
|
|
38
|
+
|
|
39
|
+
Two shapes were measured and left out, because they do not separate the groups: all bold inside a
|
|
40
|
+
sentence (accepted papers 0–44 per 10,000, that paper 60 — terms in bold are common), and
|
|
41
|
+
phrases of six words or more in italics (accepted 0–7.8, the paper 4.8 — italics carry quotes and
|
|
42
|
+
examples). BaroVox's 8 are six of its results set in bold (_0.35_, _4.09/5_, …), its claim of a
|
|
43
|
+
_first-ever use of this technique on pressure sensors_, and a dataset name with a digit
|
|
44
|
+
(_SpeechCommand256_). That name and LLM-splained's one count, a list of topics in bold, are the two
|
|
45
|
+
false positives in the corpus; the band keeps both papers inside.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
|
|
49
|
+
```latex
|
|
50
|
+
We find that \textbf{the median guard blocks 2 of 10 disasters}. % a claim in bold
|
|
51
|
+
The median guard blocks 2 of 10 disasters (Table~\ref{t:cov}). % none
|
|
52
|
+
We introduce \textbf{GateBench}, a harness for scraped guards. % none: a term
|
|
53
|
+
\textbf{Threat model.} The attacker controls the prompt. % none: a run-in heading
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Options / preset fields
|
|
57
|
+
|
|
58
|
+
No rule options. The band is the venue preset's `register.anchors`, exactly as for
|
|
59
|
+
[`tex/contrast-frames`](contrast-frames.md), which explains how it is derived. For `paperlint:aidc` it
|
|
60
|
+
is **0–17.8**.
|
|
61
|
+
|
|
62
|
+
## What it does not check
|
|
63
|
+
|
|
64
|
+
Whether a bold phrase deserves emphasis, a claim in bold shorter than six words with no number
|
|
65
|
+
(_it is unsafe_), or emphasis by other means (capitals, colour, a box).
|
|
66
|
+
|
|
67
|
+
## How to fix
|
|
68
|
+
|
|
69
|
+
Take the bold off a finding and let the sentence carry it — with its owner (_we measured_, a
|
|
70
|
+
`\ref` to the table) — or move the number into a table or figure. Keep bold for a term at its
|
|
71
|
+
definition and for a label that opens a paragraph.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# tex/contrast-frames
|
|
2
|
+
|
|
3
|
+
**Level:** warn · **Reads:** `paper.tex` and the files it includes → `paperlint.json`
|
|
4
|
+
|
|
5
|
+
## What it catches
|
|
6
|
+
|
|
7
|
+
A body whose contrast frames — a claim set against a rejected alternative — run outside the band
|
|
8
|
+
the accepted papers of its venue set. Counted per 10,000 words of the body, in these forms:
|
|
9
|
+
|
|
10
|
+
| form | example |
|
|
11
|
+
| ------------------------------- | --------------------------------------------------------------- |
|
|
12
|
+
| _X, not Y_ (and `;`, `---`) | _they react to the dangerous word, not the dangerous operation_ |
|
|
13
|
+
| _X, and not Y_ · _X, but not Y_ | _it reads the field, and not the raw input_ |
|
|
14
|
+
| _not X but Y_ (one clause) | _over-blocking is not a side metric but a precondition_ |
|
|
15
|
+
| _rather than_ | _it fires on the mention rather than the act_ |
|
|
16
|
+
| _instead of_ | _it reads the whole event instead of the command_ |
|
|
17
|
+
| _as opposed to_ | _it matches words as opposed to operations_ |
|
|
18
|
+
|
|
19
|
+
Not counted: _not only … but also_; a negated clause followed by _, but_ (_the audit is not
|
|
20
|
+
reported, but …_); _, not yet_ · _not already_ · _not necessarily_ and their kin, which reject
|
|
21
|
+
nothing; _without_ and _unlike_ — both measured, both as frequent in accepted papers as in the
|
|
22
|
+
paper reviewers called a blog post, so they would add noise and no signal.
|
|
23
|
+
|
|
24
|
+
Above the band it reports once at the start of the body — the count, the rate, the band and the
|
|
25
|
+
anchors' own range, with the first three sentences — and then once at every frame, with the words
|
|
26
|
+
around it, so an editor shows where to rewrite. Below the band it reports once. A body under 2 000
|
|
27
|
+
words is not judged, and neither is a paper whose preset records no anchors.
|
|
28
|
+
|
|
29
|
+
It reads the same body as [`tex/register`](register.md): from the start of the document, the
|
|
30
|
+
abstract included, to `\appendix` or the bibliography, includes spliced in; headings, run-in
|
|
31
|
+
headings, captions, tables, figures and code are not prose.
|
|
32
|
+
|
|
33
|
+
## Why
|
|
34
|
+
|
|
35
|
+
Reviewers called a paper "too informal" and "a blogpost". Its body set a claim against what it is
|
|
36
|
+
not several times per page — the device carries the argument in place of a word that names the
|
|
37
|
+
relation (_because_, _therefore_). Measured on the LaTeX source, per 10,000 words:
|
|
38
|
+
|
|
39
|
+
| paper | words | frames | per 10,000 |
|
|
40
|
+
| ---------------------------------------------------------- | ----: | -----: | ---------: |
|
|
41
|
+
| `barovox-acsac24` (ACSAC 2024) | 7670 | 1 | 1.3 |
|
|
42
|
+
| `rr-dataset-quality-acsac24` (ACSAC 2024) | 8130 | 3 | 3.7 |
|
|
43
|
+
| `secure-acsac24` (ACSAC 2024) | 7519 | 3 | 4.0 |
|
|
44
|
+
| `llm-splained-acsac25` (ACSAC 2025) | 9529 | 4 | 4.2 |
|
|
45
|
+
| `leaking-queries-acsac25` (ACSAC 2025) | 9133 | 5 | 5.5 |
|
|
46
|
+
| the paper reviewers called a blog post, before its rewrite | 6128 | 62 | 101.2 |
|
|
47
|
+
| the same paper, after a rewrite aimed at contrast frames | 6121 | 25 | 40.8 |
|
|
48
|
+
| the same paper, its current version | 10476 | 29 | 27.7 |
|
|
49
|
+
| `agenticdev-acm26` (ours, "too informal", ACM) | 4374 | 22 | 50.3 |
|
|
50
|
+
|
|
51
|
+
An independent blind hand count — a reader who did not know which text was which, counting every
|
|
52
|
+
explicit negation that rejects one named term for another, _without_ and _unlike_ included — put the
|
|
53
|
+
first version at ~86 per 10,000 words and four accepted ACSAC excerpts at ~9–19: a different counter,
|
|
54
|
+
the same five- to tenfold gap. Compare rates only within one counter.
|
|
55
|
+
|
|
56
|
+
## Examples
|
|
57
|
+
|
|
58
|
+
```latex
|
|
59
|
+
The guards react to the dangerous word, not the dangerous operation. % a frame
|
|
60
|
+
The guards match the words of a command; they do not parse the operation. % none
|
|
61
|
+
Because the guards match words, 24 of 46 block a harmless echo. % none
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Options / preset fields
|
|
65
|
+
|
|
66
|
+
No rule options. The band is the preset's: `register.anchors` in the venue preset, each anchor a
|
|
67
|
+
paper with its body's `words` and its count of each measure, as these rules count them:
|
|
68
|
+
|
|
69
|
+
```jsonc
|
|
70
|
+
"register": {
|
|
71
|
+
"anchors": [
|
|
72
|
+
{ "paper": "barovox-acsac24", "words": 7670, "contrast_frames": 1, "claim_emphasis": 8, "relation_markers": 31 }
|
|
73
|
+
]
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
The band is the anchors' range widened at each end by two Poisson standard deviations of the anchor
|
|
78
|
+
standing there (an anchor with no occurrence is widened as if it had one; below zero is zero), so a
|
|
79
|
+
paper of that anchor's length and register falls outside it about one time in forty. For
|
|
80
|
+
`paperlint:aidc`, the anchors are the five accepted ACSAC papers above — AIDC has no accepted papers of
|
|
81
|
+
its own yet, and uses ACSAC's template — and the band is **0–10.4**. `src/register-bands.test.ts`
|
|
82
|
+
re-measures every anchor that has a fixture, so a change to a counter changes the preset with it.
|
|
83
|
+
|
|
84
|
+
A preset of your own gets a band the same way: measure accepted papers of the venue, as LaTeX
|
|
85
|
+
source, and record them (`anchorOf` in `src/register-bands.ts` is the one way an anchor is measured).
|
|
86
|
+
|
|
87
|
+
## What it does not check
|
|
88
|
+
|
|
89
|
+
Whether a given frame is needed. A frame is the right sentence where a reader would otherwise assume
|
|
90
|
+
the rejected alternative; the rule counts, and judging each one is the job of the `grade-paper-writing`
|
|
91
|
+
skill. It does not read a frame split over two sentences (_It is fast. Not exact._), a negation by
|
|
92
|
+
synonym (_ignores_, _fails to_), or anything in the appendix.
|
|
93
|
+
|
|
94
|
+
## How to fix
|
|
95
|
+
|
|
96
|
+
Say what the thing is and why, with the evidence, and name the relation to the sentence before —
|
|
97
|
+
_because_, _therefore_, _for example_ — instead of setting it against what it is not. Replacing
|
|
98
|
+
_, not_ with _rather than_ changes nothing: both are counted. Keep a frame where the rejected reading
|
|
99
|
+
is the one a reviewer brings to the page, and check after each rewrite that every claim and number
|
|
100
|
+
still says what it said.
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# tex/relation-markers
|
|
2
|
+
|
|
3
|
+
**Level:** warn · **Reads:** `paper.tex` and the files it includes → `paperlint.json`
|
|
4
|
+
|
|
5
|
+
## What it catches
|
|
6
|
+
|
|
7
|
+
A body that names how its sentences relate less often — or far more often — than the accepted papers
|
|
8
|
+
of its venue. A relation marker is one of: _therefore_, _thus_, _hence_, _consequently_, _as a
|
|
9
|
+
result_, _because_, _since_, _this means_, _this implies_, _which explains_, _in turn_, _that is,_,
|
|
10
|
+
_i.e._, _in contrast_, _by contrast_, _however_, _nevertheless_, _nonetheless_, _whereas_, _in other
|
|
11
|
+
words_, _for this reason_, _it follows_, _accordingly_, _specifically,_, _in particular,_, _for
|
|
12
|
+
example_, _for instance_, _e.g._ — as whole words, anywhere in a sentence. Counted per 10,000 words of
|
|
13
|
+
the body.
|
|
14
|
+
|
|
15
|
+
Outside the band it reports once, at the start of the body, with the count, the rate, the band and
|
|
16
|
+
the anchors' range. A body under 2 000 words, or a paper whose preset records no anchors, is not
|
|
17
|
+
judged.
|
|
18
|
+
|
|
19
|
+
This is the FLOOR among the register checks: [`tex/contrast-frames`](contrast-frames.md) and
|
|
20
|
+
[`tex/claim-emphasis`](claim-emphasis.md) catch a device used too often; this one catches the
|
|
21
|
+
relation left for the reader to infer, which is what a rewrite that only deletes devices leaves
|
|
22
|
+
behind.
|
|
23
|
+
|
|
24
|
+
## Why
|
|
25
|
+
|
|
26
|
+
A reviewer wrote: _"Readers are often required to infer the intended relationships between claims."_
|
|
27
|
+
Measured on the LaTeX source, per 10,000 words:
|
|
28
|
+
|
|
29
|
+
| paper | words | markers | per 10,000 |
|
|
30
|
+
| ------------------------------------------------------- | ----: | ------: | ---------: |
|
|
31
|
+
| `rr-dataset-quality-acsac24` (ACSAC 2024) | 8130 | 32 | 39.4 |
|
|
32
|
+
| `barovox-acsac24` (ACSAC 2024) | 7670 | 31 | 40.4 |
|
|
33
|
+
| `secure-acsac24` (ACSAC 2024) | 7519 | 38 | 50.5 |
|
|
34
|
+
| `llm-splained-acsac25` (ACSAC 2025) | 9529 | 84 | 88.2 |
|
|
35
|
+
| `leaking-queries-acsac25` (ACSAC 2025) | 9133 | 103 | 112.8 |
|
|
36
|
+
| the paper reviewers called a blog post, current version | 10476 | 20 | 19.1 |
|
|
37
|
+
| the same paper, before its rewrite | 6128 | 9 | 14.7 |
|
|
38
|
+
| `agenticdev-acm26` (ours, "too informal", ACM) | 4374 | 13 | 29.7 |
|
|
39
|
+
|
|
40
|
+
_However_ alone stands 6–11 times in every accepted paper and never in the current version of ours. The
|
|
41
|
+
separation survives dropping any one marker from the list: with each of the 24 that occur removed in
|
|
42
|
+
turn, the lowest accepted paper stays at least 1.38 times the highest version of ours (the worst case
|
|
43
|
+
is dropping _however_). The list was fixed before this
|
|
44
|
+
corpus was measured (it is the one a register diagnosis of the same papers used, on text extracted
|
|
45
|
+
from PDFs, where the gap was narrow); on the parse tree the gap is twofold.
|
|
46
|
+
|
|
47
|
+
## Examples
|
|
48
|
+
|
|
49
|
+
```latex
|
|
50
|
+
Most guards match words. 24 of 46 block a harmless echo. % the relation is left to infer
|
|
51
|
+
Because most guards match words, 24 of 46 block a harmless echo. % named
|
|
52
|
+
Most guards match words; as a result, 24 of 46 block a harmless echo. % named
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Options / preset fields
|
|
56
|
+
|
|
57
|
+
No rule options. The band is the venue preset's `register.anchors`, exactly as for
|
|
58
|
+
[`tex/contrast-frames`](contrast-frames.md), which explains how it is derived. For `paperlint:aidc` it
|
|
59
|
+
is **25.4–135.0**.
|
|
60
|
+
|
|
61
|
+
## What it does not check
|
|
62
|
+
|
|
63
|
+
Whether a marker names the right relation, or a relation named another way (_this is why_, _so that_,
|
|
64
|
+
a colon). The list counts only words whose meaning does not depend on context; _since_ is on it and
|
|
65
|
+
is sometimes temporal.
|
|
66
|
+
|
|
67
|
+
## How to fix
|
|
68
|
+
|
|
69
|
+
Where two sentences stand side by side, say whether the second is the cause, the consequence, an
|
|
70
|
+
example or a limit of the first — with the word, not with a dash, a colon or a short sentence left to
|
|
71
|
+
land the point. The fix adds words; pay for them by moving detail to a table or the appendix, not by
|
|
72
|
+
cutting the connectives from another paragraph.
|
package/docs/rules.md
CHANGED
|
@@ -3,36 +3,39 @@
|
|
|
3
3
|
The README lists what each check catches in one line. This page says exactly which file each one
|
|
4
4
|
reads and when it fails. Errors fail `paperlint lint`; warnings print and do not.
|
|
5
5
|
|
|
6
|
-
| Rule | Level | Reads
|
|
7
|
-
| ----------------------------------------------------------- | ----- |
|
|
8
|
-
| `paper/stages` | error | `PIPELINE-STATUS.md`
|
|
9
|
-
| `paper/source` | error | `PIPELINE-STATUS.md`
|
|
10
|
-
| `paper/author-list` | error | `paper.tex` → `_build/references.json`
|
|
11
|
-
| `paper/section-word` | warn | `paper.tex` and its body files, `paper.md`
|
|
12
|
-
| `paper/leading-zero` | warn | `paper.tex` and its body files, `paper.md`
|
|
13
|
-
| `paper/figure-ref-style` | warn | `paper.tex` and its body files
|
|
14
|
-
| `bib/reachable-entry` | warn | `paper.tex` (its `filecontents` bibliography)
|
|
15
|
-
| `paper/cite-exists` | error | `paper.tex` → `_build/references.json`
|
|
16
|
-
| `paper/refs-fresh` | error | `paper.tex` → `_build/references.json`
|
|
17
|
-
| `paper/refs-checked` | warn | `paper.tex` → `_build/references.json`
|
|
18
|
-
| `tex/future-promise` | warn | `paper.tex` and its body files
|
|
19
|
-
| `tex/acm-frontmatter-override` | error | `paper.tex`
|
|
20
|
-
| [`tex/template`](rules/tex/template.md) | error | `paper.tex` → `paperlint.json`
|
|
21
|
-
| [`tex/required-section`](rules/tex/required-section.md) | error | `paper.tex` → `paperlint.json`
|
|
22
|
-
| [`format/layout-override`](rules/format/layout-override.md) | error | `paper.tex` → `paperlint.json`
|
|
23
|
-
| [`anonymity/identity`](rules/anonymity/identity.md) | error | `paper.tex` → `_build/paper.facts.json`
|
|
24
|
-
| [`tex/venue-leftover`](rules/tex/venue-leftover.md) | warn | `paper.tex` → `paperlint.json`
|
|
25
|
-
| [`tex/claim-provenance`](rules/tex/claim-provenance.md) | warn | `paper.tex`
|
|
26
|
-
| [`tex/register`](rules/tex/register.md) | warn | `paper.tex` and the files it includes
|
|
27
|
-
| `
|
|
28
|
-
| `
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
31
|
-
| `
|
|
32
|
-
| `pdf/
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
| `pdf/
|
|
6
|
+
| Rule | Level | Reads | Fails when |
|
|
7
|
+
| ----------------------------------------------------------- | ----- | -------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
8
|
+
| `paper/stages` | error | `PIPELINE-STATUS.md` | a declared stage's PDF is missing, or the `bytes:` it names does not match the file's real size, or a frozen PDF exists that no stage declares |
|
|
9
|
+
| `paper/source` | error | `PIPELINE-STATUS.md` | a declared stage has no frozen `.tex` beside its PDF (a commit hash does not count — squash and gc destroy it) |
|
|
10
|
+
| `paper/author-list` | error | `paper.tex` → `_build/references.json` | an entry's authors are not those of the version it cites — typically the arXiv preprint's list under a published venue. Checked online by `paperlint build` (DBLP), reported on the entry's own line |
|
|
11
|
+
| `paper/section-word` | warn | `paper.tex` and its body files, `paper.md` | `§` or `\S\ref` instead of the word Section. **Fixable:** `--fix` writes `Section~\ref{…}` / `Section 5` |
|
|
12
|
+
| `paper/leading-zero` | warn | `paper.tex` and its body files, `paper.md` | a decimal below 1 without its leading zero (`.05` instead of `0.05`, IEEE / ISO 80000-1 style), counted only where the reader sees it — prose, math and table cells, not macro options, column specs, comments, code or tikz. A number right after `¶` or `§` (`¶¶.42`) is a paragraph designator and is not reported; in a paragraph that cites numbers that way, another bare decimal is reported without a fix, with the zero as a suggestion. **Fixable** |
|
|
13
|
+
| `paper/figure-ref-style` | warn | `paper.tex` and its body files | `Fig.~\ref` and `Figure~\ref` mixed in one document; each minority occurrence is reported. **Fixable:** `--fix` writes the majority form |
|
|
14
|
+
| `bib/reachable-entry` | warn | `paper.tex` (its `filecontents` bibliography) | an entry has no doi, url or arXiv id — a reader has nothing to follow. Reported on the entry; no fix, the link has to be looked up |
|
|
15
|
+
| `paper/cite-exists` | error | `paper.tex` → `_build/references.json` | an entry's doi or arXiv id resolves to nothing, or to a different work. Checked online by `paperlint build`; a work that was merely not found is not a finding |
|
|
16
|
+
| `paper/refs-fresh` | error | `paper.tex` → `_build/references.json` | the bibliography changed since the build checked it (its SHA-256 differs) — run `npx paperlint build` |
|
|
17
|
+
| `paper/refs-checked` | warn | `paper.tex` → `_build/references.json` | the paper has a bibliography and no build has checked it, or the last build could not (no network) — so the two rules above did not run |
|
|
18
|
+
| `tex/future-promise` | warn | `paper.tex` and its body files | a camera-ready build still says "will be released" about something already handed over |
|
|
19
|
+
| `tex/acm-frontmatter-override` | error | `paper.tex` | an `acmart` build overrides ACM's front-matter commands and drops template elements from page 1 |
|
|
20
|
+
| [`tex/template`](rules/tex/template.md) | error | `paper.tex` → `paperlint.json` | the `\documentclass` is not the preset's `template` class, or lacks an option it names — [page](rules/tex/template.md) |
|
|
21
|
+
| [`tex/required-section`](rules/tex/required-section.md) | error | `paper.tex` → `paperlint.json` | a section the preset requires (AIDC: «LLM Usage Statement», last) is missing or not where it must be — [page](rules/tex/required-section.md) |
|
|
22
|
+
| [`format/layout-override`](rules/format/layout-override.md) | error | `paper.tex` → `paperlint.json` | the source changes the page layout the venue's template sets for the whole document — `geometry`, a layout `\setlength`, `\linespread`, `\baselinestretch` — [page](rules/format/layout-override.md) |
|
|
23
|
+
| [`anonymity/identity`](rules/anonymity/identity.md) | error | `paper.tex` → `_build/paper.facts.json` | a double-blind venue (`"blind": true`) and no `identity` declared, or a declared name, handle, email or project in the PDF's text, metadata or link targets — [page](rules/anonymity/identity.md) |
|
|
24
|
+
| [`tex/venue-leftover`](rules/tex/venue-leftover.md) | warn | `paper.tex` → `paperlint.json` | the text names another shipped venue than the one the paper extends («Submission to VenueA 2026» in a paper now set for VenueB) — [page](rules/tex/venue-leftover.md) |
|
|
25
|
+
| [`tex/claim-provenance`](rules/tex/claim-provenance.md) | warn | `paper.tex` | a sentence of the body states a number and does not say whose it is — no citation or link, no _we_/_our_, no `\ref` or "Table 2", no sample ("n = 134", "48 runs") — [page](rules/tex/claim-provenance.md) |
|
|
26
|
+
| [`tex/register`](rules/tex/register.md) | warn | `paper.tex` and the files it includes | the body runs to a post's register: more than 0.8 sentences per 1000 words open with _And_, _So_, _But_, _Nor_, _Or_ or _Yet_ — the limit is an option — [page](rules/tex/register.md) |
|
|
27
|
+
| [`tex/contrast-frames`](rules/tex/contrast-frames.md) | warn | `paper.tex` and the files it includes → `paperlint.json` | contrast frames (_X, not Y_, _not X but Y_, _rather than_, _instead of_, _as opposed to_) per 10,000 words fall outside the band the venue preset's anchors set (AIDC: 0–10.4, from five accepted ACSAC papers); above it, each frame is reported too — [page](rules/tex/contrast-frames.md) |
|
|
28
|
+
| [`tex/claim-emphasis`](rules/tex/claim-emphasis.md) | warn | `paper.tex` and the files it includes → `paperlint.json` | claims set in bold inside a sentence (six words or more, or holding a number; not a term, not a label opening a paragraph) per 10,000 words fall outside the preset's band (AIDC: 0–17.8); above it, each is reported too — [page](rules/tex/claim-emphasis.md) |
|
|
29
|
+
| [`tex/relation-markers`](rules/tex/relation-markers.md) | warn | `paper.tex` and the files it includes → `paperlint.json` | words that name how a sentence relates to the one before (_because_, _therefore_, _however_, _for example_ …) per 10,000 words fall outside the preset's band (AIDC: 25.4–135.0) — the floor that catches relations left to infer — [page](rules/tex/relation-markers.md) |
|
|
30
|
+
| `review/frontmatter` | error | `reviews/*.md` | the review's frontmatter fails paperlint's JSON Schema — a `findings` record without `id`/`status`, an unknown field, or an **open** finding with no `cause` (`skill-defect` · `missing-skill` · `hook` · `rule`). A review with no `findings` key is not checked for findings |
|
|
31
|
+
| `sibling/frontmatter` | warn | `siblings/*.md` (not `README.md`) | a sibling card's frontmatter has no `read:` saying how much of the competing paper was read (`full` · `abstract` · `none`) |
|
|
32
|
+
| `pdf/fresh` | error | `paper.tex` → `_build/paper.facts.json` | the paper names a venue and the facts cannot be judged: not JSON, a schema other than 3, or they describe a PDF that is gone or differs from the one on disk (its SHA-256) |
|
|
33
|
+
| `pdf/profile` | error | `paper.tex` → `paperlint.json` | `paperlint.json` is not JSON or has an unknown key, its `extends` does not resolve (not found, a cycle, a chain longer than four, a preset that fails the schema, an npm name), it names no `kind` while the preset has kinds, or names a kind the preset does not have |
|
|
34
|
+
| `pdf/fonts` | error | `paper.tex` → `_build/paper.facts.json` | a font the pages draw is Type 3 or not embedded, or no font starts with the family the venue preset names for body text (`fonts_text`) or headings (`fonts_title`) |
|
|
35
|
+
| `pdf/geometry` | error | `paper.tex` → `_build/paper.facts.json` | the page width or height is more than `dimTol` (default 0.05 in) off the preset's, or the column count differs |
|
|
36
|
+
| [`format/page-limit`](rules/format/page-limit.md) | error | `paper.tex` → `_build/paper.facts.json` | body or reference pages exceed the limits of the paper's kind. With `body_ends_at: "references"` (AIDC) the body ends at the references or the appendix, whichever comes first — found by hyperref's anchors, then the heading line — and the page it ends on counts when body text stands above the heading; an end it cannot find, or signals that disagree, are reported — [page](rules/format/page-limit.md) |
|
|
37
|
+
| [`pdf/body-size`](rules/pdf/body-size.md) | error | `paper.tex` → `_build/paper.facts.json` | the body font size is more than `body_pt_tol` off the preset's, or the reference font size is outside the preset's range widened by `body_pt_tol`. banal reads 0.3 pt above the size the glyphs are set in; checked on five built accepted papers (none reported) and three variants one size off (each reported) — [page](rules/pdf/body-size.md) |
|
|
38
|
+
| `pdf/measured` | warn | `paper.tex` → `_build/paper.facts.json` | the paper's `paperlint.json` names no venue preset yet; or it names one and there are no facts (it was not built), or the facts carry no page geometry (banal was not found) — so the checks above did not run |
|
|
36
39
|
|
|
37
40
|
**Body files** are the files `paper.tex` includes from its document body (`\input`, `\include`,
|
|
38
41
|
`\subfile`, nested ones too), found in the paper's directory — not a preamble include, not a file
|
|
@@ -202,21 +205,22 @@ papers/
|
|
|
202
205
|
|
|
203
206
|
The numbers and packages above illustrate the shape; take yours from the venue's own call for papers and template.
|
|
204
207
|
|
|
205
|
-
| key | what it is
|
|
206
|
-
| ------------------- |
|
|
207
|
-
| `extends` | the preset this one builds on: `paperlint:<name>` or `./path` / `../path`, relative to this file
|
|
208
|
-
| `name` | how messages name the venue; the file name otherwise
|
|
209
|
-
| `template` | the `\documentclass` the venue's template uses — a whole line (`\documentclass[conference,compsoc]{IEEEtran}`) or a bare class name; `tex/template` requires the paper's class and every option named here
|
|
210
|
-
| `aliases` | other names the venue goes by in a paper's text — its acronym, its parent conference: `["AISec", "ACM CCS"]`. Collected along `extends`, with `name`. Read by `tex/venue-leftover`
|
|
211
|
-
| `blind` | the venue reviews double-blind — set only where its call says so, with the quote. Turns on `anonymity/identity`; a child's value replaces its parent's
|
|
212
|
-
| `required_sections` | sections the venue requires, `[{ "title": "LLM Usage Statement", "position": "last" }]`: the exact title, and `last` when it must close the paper. Read by `tex/required-section`; a child's list replaces its parent's
|
|
213
|
-
| `format` | page size, columns, fonts, font sizes, and `kinds` (page limits per kind of paper)
|
|
214
|
-
| `tex` | TeX Live packages, each with the files that prove it is installed. Required unless `extends` is set
|
|
215
|
-
| `rules` | rules the venue implies, rule id → severity or `[severity, options]`
|
|
208
|
+
| key | what it is |
|
|
209
|
+
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
210
|
+
| `extends` | the preset this one builds on: `paperlint:<name>` or `./path` / `../path`, relative to this file |
|
|
211
|
+
| `name` | how messages name the venue; the file name otherwise |
|
|
212
|
+
| `template` | the `\documentclass` the venue's template uses — a whole line (`\documentclass[conference,compsoc]{IEEEtran}`) or a bare class name; `tex/template` requires the paper's class and every option named here |
|
|
213
|
+
| `aliases` | other names the venue goes by in a paper's text — its acronym, its parent conference: `["AISec", "ACM CCS"]`. Collected along `extends`, with `name`. Read by `tex/venue-leftover` |
|
|
214
|
+
| `blind` | the venue reviews double-blind — set only where its call says so, with the quote. Turns on `anonymity/identity`; a child's value replaces its parent's |
|
|
215
|
+
| `required_sections` | sections the venue requires, `[{ "title": "LLM Usage Statement", "position": "last" }]`: the exact title, and `last` when it must close the paper. Read by `tex/required-section`; a child's list replaces its parent's |
|
|
216
|
+
| `format` | page size, columns, fonts, font sizes, and `kinds` (page limits per kind of paper) |
|
|
217
|
+
| `tex` | TeX Live packages, each with the files that prove it is installed. Required unless `extends` is set |
|
|
218
|
+
| `rules` | rules the venue implies, rule id → severity or `[severity, options]` |
|
|
219
|
+
| `register` | `{ "anchors": [{ "paper", "words", "contrast_frames", "claim_emphasis", "relation_markers" }] }`: accepted papers of the venue (or its parent conference) as the register rules count them. Each measure's band is the anchors' range widened by two Poisson standard deviations — [page](rules/tex/contrast-frames.md#options--preset-fields). Read by `tex/contrast-frames`, `tex/claim-emphasis`, `tex/relation-markers`; a child's block replaces its parent's |
|
|
216
220
|
|
|
217
221
|
How a chain merges, from the root preset to the paper: `tex` is the union — a child never removes a
|
|
218
222
|
package; `format` keys are replaced one by one, and a child's kind replaces that kind whole;
|
|
219
|
-
`rules` are replaced rule by rule, and the paper's own `rules` come last. A chain is at most four
|
|
223
|
+
`rules` are replaced rule by rule, and the paper's own `rules` come last; `register` is replaced whole. A chain is at most four
|
|
220
224
|
presets long, and a cycle is refused by name. `paperlint toolchain` installs the packages of every
|
|
221
225
|
shipped preset and of every preset your papers extend.
|
|
222
226
|
|
package/package.json
CHANGED
package/presets/aidc.jsonc
CHANGED
|
@@ -43,6 +43,56 @@
|
|
|
43
43
|
// for) is not a section with this title and does not count.
|
|
44
44
|
"required_sections": [{ "title": "LLM Usage Statement", "position": "last" }],
|
|
45
45
|
|
|
46
|
+
// THE REGISTER OF THE BODY IS JUDGED AGAINST ACSAC, AIDC'S PARENT CONFERENCE: AIDC 2026 is the
|
|
47
|
+
// workshop's first edition, so it has no accepted papers yet, and it uses ACSAC's template. The
|
|
48
|
+
// anchors are the five accepted ACSAC papers in fixtures/accepted-papers/, measured by paperlint's
|
|
49
|
+
// own counters on their LaTeX source (tex/contrast-frames, tex/claim-emphasis, tex/relation-markers).
|
|
50
|
+
// src/register-bands.test.ts re-measures every anchor that has a fixture and requires these exact
|
|
51
|
+
// numbers, so a change to a counter changes this list in the same commit. The bands they set, per
|
|
52
|
+
// 10,000 words (the anchors' range, widened by two Poisson standard deviations at each end):
|
|
53
|
+
// contrast frames anchors 1.3–5.5 band 0–10.4
|
|
54
|
+
// claims in bold anchors 0.0–10.4 band 0–17.8
|
|
55
|
+
// relation markers anchors 39.4–112.8 band 25.4–135.0
|
|
56
|
+
"register": {
|
|
57
|
+
"anchors": [
|
|
58
|
+
{
|
|
59
|
+
"paper": "barovox-acsac24",
|
|
60
|
+
"words": 7670,
|
|
61
|
+
"contrast_frames": 1,
|
|
62
|
+
"claim_emphasis": 8,
|
|
63
|
+
"relation_markers": 31,
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"paper": "leaking-queries-acsac25",
|
|
67
|
+
"words": 9133,
|
|
68
|
+
"contrast_frames": 5,
|
|
69
|
+
"claim_emphasis": 0,
|
|
70
|
+
"relation_markers": 103,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"paper": "llm-splained-acsac25",
|
|
74
|
+
"words": 9529,
|
|
75
|
+
"contrast_frames": 4,
|
|
76
|
+
"claim_emphasis": 1,
|
|
77
|
+
"relation_markers": 84,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"paper": "rr-dataset-quality-acsac24",
|
|
81
|
+
"words": 8130,
|
|
82
|
+
"contrast_frames": 3,
|
|
83
|
+
"claim_emphasis": 0,
|
|
84
|
+
"relation_markers": 32,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"paper": "secure-acsac24",
|
|
88
|
+
"words": 7519,
|
|
89
|
+
"contrast_frames": 3,
|
|
90
|
+
"claim_emphasis": 0,
|
|
91
|
+
"relation_markers": 38,
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
|
|
46
96
|
"format": {
|
|
47
97
|
// \textwidth and \textheight of [conference,compsoc], measured (ieee-conference.jsonc).
|
|
48
98
|
"textblock_w_in": 7.0,
|
|
@@ -137,8 +137,55 @@
|
|
|
137
137
|
}
|
|
138
138
|
},
|
|
139
139
|
"rules": {
|
|
140
|
-
"description": "Rules the venue implies, rule id
|
|
140
|
+
"description": "Rules the venue implies, rule id → ESLint entry (a severity, or [severity, options]). Applied to every paper that extends this preset, before the paper's own rules.",
|
|
141
141
|
"type": "object"
|
|
142
|
+
},
|
|
143
|
+
"register": {
|
|
144
|
+
"description": "The register rules' anchors (`tex/contrast-frames`, `tex/claim-emphasis`, `tex/relation-markers`): accepted papers of the venue, or of its parent conference, each with its body's word count and its count of each measure as paperlint's own counters give them. A measure's band is the anchors' range widened by two Poisson standard deviations at each end (docs/rules/tex/contrast-frames.md). A child preset's block replaces its parent's.",
|
|
145
|
+
"type": "object",
|
|
146
|
+
"additionalProperties": false,
|
|
147
|
+
"required": ["anchors"],
|
|
148
|
+
"properties": {
|
|
149
|
+
"anchors": {
|
|
150
|
+
"type": "array",
|
|
151
|
+
"minItems": 1,
|
|
152
|
+
"items": {
|
|
153
|
+
"type": "object",
|
|
154
|
+
"additionalProperties": false,
|
|
155
|
+
"required": [
|
|
156
|
+
"paper",
|
|
157
|
+
"words",
|
|
158
|
+
"contrast_frames",
|
|
159
|
+
"claim_emphasis",
|
|
160
|
+
"relation_markers"
|
|
161
|
+
],
|
|
162
|
+
"properties": {
|
|
163
|
+
"paper": {
|
|
164
|
+
"description": "The anchor: a directory under fixtures/accepted-papers/ when the paper is there, or how to find it.",
|
|
165
|
+
"type": "string",
|
|
166
|
+
"minLength": 1
|
|
167
|
+
},
|
|
168
|
+
"words": {
|
|
169
|
+
"description": "Words of the body, as the register rules count them.",
|
|
170
|
+
"type": "integer",
|
|
171
|
+
"minimum": 1
|
|
172
|
+
},
|
|
173
|
+
"contrast_frames": {
|
|
174
|
+
"type": "integer",
|
|
175
|
+
"minimum": 0
|
|
176
|
+
},
|
|
177
|
+
"claim_emphasis": {
|
|
178
|
+
"type": "integer",
|
|
179
|
+
"minimum": 0
|
|
180
|
+
},
|
|
181
|
+
"relation_markers": {
|
|
182
|
+
"type": "integer",
|
|
183
|
+
"minimum": 0
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
142
189
|
}
|
|
143
190
|
},
|
|
144
191
|
"allOf": [
|