paperlint 7.0.0 → 7.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.
Files changed (75) hide show
  1. package/README.md +18 -11
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +2 -2
  4. package/dist/cli.js.map +1 -1
  5. package/dist/domain/body-pages.d.ts +29 -0
  6. package/dist/domain/body-pages.d.ts.map +1 -1
  7. package/dist/domain/body-pages.js +25 -0
  8. package/dist/domain/body-pages.js.map +1 -1
  9. package/dist/paper-includes.d.ts +3 -0
  10. package/dist/paper-includes.d.ts.map +1 -1
  11. package/dist/paper-includes.js +17 -2
  12. package/dist/paper-includes.js.map +1 -1
  13. package/dist/presets.d.ts +10 -3
  14. package/dist/presets.d.ts.map +1 -1
  15. package/dist/presets.js +8 -7
  16. package/dist/presets.js.map +1 -1
  17. package/dist/submission.d.ts +8 -0
  18. package/dist/submission.d.ts.map +1 -1
  19. package/dist/submission.js +19 -7
  20. package/dist/submission.js.map +1 -1
  21. package/dist/tex-requirements.d.ts +9 -0
  22. package/dist/tex-requirements.d.ts.map +1 -1
  23. package/dist/tex-requirements.js +7 -3
  24. package/dist/tex-requirements.js.map +1 -1
  25. package/dist/tex-venue-rules.d.ts +5 -2
  26. package/dist/tex-venue-rules.d.ts.map +1 -1
  27. package/dist/tex-venue-rules.js +29 -10
  28. package/dist/tex-venue-rules.js.map +1 -1
  29. package/dist/venue-rules.d.ts +2 -1
  30. package/dist/venue-rules.d.ts.map +1 -1
  31. package/dist/venue-rules.js +55 -7
  32. package/dist/venue-rules.js.map +1 -1
  33. package/docs/configuration.md +1 -1
  34. package/docs/e2e.md +14 -12
  35. package/docs/rules/format/page-limit.md +18 -1
  36. package/docs/rules/tex/template.md +25 -5
  37. package/docs/rules/tex/venue-leftover.md +13 -0
  38. package/docs/rules.md +63 -55
  39. package/docs/submission.md +5 -1
  40. package/fixtures/build-e2e/msr/PIPELINE-STATUS.md +3 -0
  41. package/fixtures/build-e2e/msr/expect.json +18 -0
  42. package/fixtures/build-e2e/msr/paper.tex +49 -0
  43. package/fixtures/build-e2e/msr/paperlint.json +1 -0
  44. package/fixtures/build-e2e/msr-appendix-after/PIPELINE-STATUS.md +3 -0
  45. package/fixtures/build-e2e/msr-appendix-after/expect.json +20 -0
  46. package/fixtures/build-e2e/msr-appendix-after/paper.tex +48 -0
  47. package/fixtures/build-e2e/msr-appendix-after/paperlint.json +1 -0
  48. package/package.json +1 -1
  49. package/presets/ieee-conference.md +1 -1
  50. package/presets/msr.jsonc +71 -0
  51. package/presets/msr.md +94 -0
  52. package/presets/venue-profile.schema.json +25 -0
  53. package/skills/camera-ready/SKILL.md +8 -1
  54. package/skills/camera-ready/SKILL.md.spec.ts +7 -0
  55. package/skills/submission-portal/SKILL.md +2 -2
  56. package/skills/submission-portal/SKILL.md.spec.ts +1 -1
  57. package/skills/submit-paper/SKILL.md +9 -1
  58. package/skills/submit-paper/SKILL.md.spec.ts +8 -0
  59. package/src/cli.ts +7 -2
  60. package/src/domain/body-pages.test.ts +144 -0
  61. package/src/domain/body-pages.ts +61 -1
  62. package/src/new-paper.test.ts +27 -0
  63. package/src/paper-includes.test.ts +26 -0
  64. package/src/paper-includes.ts +20 -2
  65. package/src/paper-settings-commands.test.ts +1 -1
  66. package/src/preset-card-rule.test.ts +1 -0
  67. package/src/presets.test.ts +66 -1
  68. package/src/presets.ts +23 -6
  69. package/src/submission.test.ts +42 -3
  70. package/src/submission.ts +28 -7
  71. package/src/tex-requirements.ts +21 -4
  72. package/src/tex-venue-rules.test.ts +161 -0
  73. package/src/tex-venue-rules.ts +45 -15
  74. package/src/venue-rules.test.ts +173 -2
  75. package/src/venue-rules.ts +71 -10
@@ -46,7 +46,7 @@ import { sha256Hex } from "./domain/sha256.js";
46
46
  import { fieldOf } from "./domain/record.js";
47
47
  import { CONFIG_FILE } from "#lib/paper-config";
48
48
  import { findLeaks } from "./domain/anonymity.js";
49
- import { bodyEnd } from "./domain/body-pages.js";
49
+ import { bodyEnd, pageSplit, } from "./domain/body-pages.js";
50
50
  const finding = (messageId, data = {}) => ({ messageId, data });
51
51
  const text = (files, p) => {
52
52
  const b = files.readBytes(callerPath(p));
@@ -170,9 +170,19 @@ export function judgeGeometry(g, format, venue, dimTol) {
170
170
  out.push(finding("columns", { got: g.columns, want: format.columns, venue }));
171
171
  return out;
172
172
  }
173
+ /**
174
+ * How many of banal's two counts — body, then references — a venue's counting replaces with its own
175
+ * from the text: none for banal's count, the body for `body_ends_at`, both with `appendix_in_body`.
176
+ */
177
+ function countedFromText(format) {
178
+ if (format.bodyEndsAt !== "references")
179
+ return 0;
180
+ return format.appendixInBody === true ? 2 : 1;
181
+ }
173
182
  /**
174
183
  * Body and reference pages, as banal classifies them, against the kind's limits. A venue that counts
175
- * the body before the references is judged on its body by `judgeBodyEnd` instead.
184
+ * the body before the references is judged on its body by `judgeBodyEnd` instead, and one that
185
+ * counts the appendix as body on both.
176
186
  */
177
187
  export function judgePages(g, resolved) {
178
188
  const kind = resolved.kind;
@@ -182,7 +192,7 @@ export function judgePages(g, resolved) {
182
192
  [kind.limits.bodyPagesMax, g.body_pages, "body pages"],
183
193
  [kind.limits.refPagesMax, g.ref_pages, "reference pages"],
184
194
  ];
185
- const from = resolved.format.bodyEndsAt === "references" ? 1 : 0;
195
+ const from = countedFromText(resolved.format);
186
196
  return pages.slice(from).flatMap(([max, got, what]) => max !== null && got > max
187
197
  ? [
188
198
  finding("pages", {
@@ -204,10 +214,12 @@ export function judgePages(g, resolved) {
204
214
  */
205
215
  export function judgeBodyEnd(text, resolved) {
206
216
  const kind = resolved.kind;
207
- const max = kind?.limits.bodyPagesMax ?? null;
208
- if (resolved.format.bodyEndsAt !== "references" ||
209
- kind === null ||
210
- max === null)
217
+ if (resolved.format.bodyEndsAt !== "references" || kind === null)
218
+ return [];
219
+ if (resolved.format.appendixInBody === true)
220
+ return judgeSplit(text, resolved, kind);
221
+ const max = kind.limits.bodyPagesMax;
222
+ if (max === null)
211
223
  return [];
212
224
  const end = endOfBody(text);
213
225
  const venue = resolved.venue;
@@ -225,6 +237,42 @@ export function judgeBodyEnd(text, resolved) {
225
237
  }
226
238
  }
227
239
  }
240
+ /** The findings of a split that was found: the body, and the pages holding only references. */
241
+ function splitFindings(split, limits, at) {
242
+ const refs = `the references on page ${String(split.page)}`;
243
+ const body = split.appendixFrom === null
244
+ ? `body pages (up to ${refs}, appendices included)`
245
+ : `body pages (up to ${refs}, and the appendix from page ${String(split.appendixFrom)})`;
246
+ const counts = [
247
+ [limits.bodyPagesMax, split.bodyPages, body],
248
+ [limits.refPagesMax, split.refPages, "pages holding only references"],
249
+ ];
250
+ return counts.flatMap(([max, got, what]) => max !== null && got > max
251
+ ? [finding("pages", { what, got, max, ...at })]
252
+ : []);
253
+ }
254
+ /**
255
+ * The body, appendices included, and the pages holding only references (`appendix_in_body`),
256
+ * against the kind's two limits. Like `judgeBodyEnd`, an end it cannot find is said, not passed.
257
+ */
258
+ function judgeSplit(text, resolved, kind) {
259
+ const limits = kind.limits;
260
+ if (limits.bodyPagesMax === null && limits.refPagesMax === null)
261
+ return [];
262
+ const split = pageSplit(text.pages, {
263
+ bib: text.bibAnchorPage,
264
+ appendix: text.appendixAnchorPage,
265
+ });
266
+ const venue = resolved.venue;
267
+ switch (split.kind) {
268
+ case "missing":
269
+ return [finding("noReferences", { venue })];
270
+ case "disagree":
271
+ return [finding("unclear", { venue, why: disagreement(split) })];
272
+ case "found":
273
+ return splitFindings(split, limits, { venue, kind: kind.name });
274
+ }
275
+ }
228
276
  /** Where the body ends in what the PDF says, and where hyperref anchored the two ends. */
229
277
  const endOfBody = (t) => bodyEnd(t.pages, { bib: t.bibAnchorPage, appendix: t.appendixAnchorPage });
230
278
  /** What the `unclear` message says about a structural signal the text does not bear out. */
@@ -1 +1 @@
1
- {"version":3,"file":"venue-rules.js","sourceRoot":"","sources":["../src/venue-rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"venue-rules.js","sourceRoot":"","sources":["../src/venue-rules.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ venues/usenix-sec.jsonc (optional, your own) a VENUE PRESET: format, page l
16
16
 
17
17
  The shipped presets (`paperlint:<name>`) live in the package, under
18
18
  `presets/`: `acm-sigconf`, `agenticdev`, `aidc`, `aisec`,
19
- `ieee-conference`, `realm`. Each declares what it is — `"type": "venue"` with the venue's `name` and
19
+ `ieee-conference`, `msr`, `realm`. Each declares what it is — `"type": "venue"` with the venue's `name` and
20
20
  the `url` of its call for papers, or `"type": "family"` for a publisher's template, which names no
21
21
  venue (`tex-base.jsonc`, the TeX packages every paper gets, is `"base"`).
22
22
 
package/docs/e2e.md CHANGED
@@ -84,18 +84,20 @@ findings for each rule it names (`[]` is "none"). One `describe` per fixture dir
84
84
  declared field into a test. A folder without `expect.json`, or with one the schema rejects, fails.
85
85
  A new venue fixture is a new folder: its paper, its `paperlint.json`, its `expect.json`.
86
86
 
87
- | fixture | what it is there to prove |
88
- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
89
- | `acmart` | a real `\documentclass{acmart}` source builds, and the PDF carries the class's **own** font families — not one family of the silent substitution |
90
- | `fallback` | the same document with the fonts missing still **builds green**, and is **rejected** by the font check. The failure is in the artifact, not in the exit code |
91
- | `cite` | the bibtex path: the PDF shows `[1]`, not `[?]`, and no `??`. Its `build.sh` would leave a trace if run — it must not run, and the run must say it is ignored |
92
- | `guards` | `\input{paper-guards}` resolves with no configuration, because paperlint puts its own venues directory on `TEXINPUTS` |
93
- | `unbalanced` | a two-column acmart paper whose last page comes out 621.5 / 264.8 pt builds **green** — the build does not judge the layout and rewrites nothing — while `_build/paper.facts.json` records both heights, and `paperlint lint` with `pdf/last-page-balance` turned on in `rules` reports the page |
94
- | `broken` | a failing build names pdflatex and its exit code, quotes the error line and its `l.NNN` context, and deletes the stale `paper.pdf` planted before the run |
95
- | `no-source` | a paper with no `paper.tex` is named separately, and the run as a whole is a failure |
96
- | `empty` | a document with no pages: pdflatex exits 0 and writes no PDF, and that is a failure, not a green `paper.pdf` |
97
- | `aidc` | a real `[conference,compsoc]{IEEEtran}` paper builds on paperlint's TeX Live in NimbusRomNo9L, `tex/template`, `tex/required-section` and the `pdf/*` rules find nothing, and `tex/venue-leftover` warns once, on its planted line. It declares `identity` and names nobody, so `anonymity/identity` is silent on a real build, and `format/page-limit` finds the IEEEtran «References» heading |
98
- | `anon-*` | six AIDC papers, each planting the declared (invented) name on ONE path, and `anonymity/identity` reports exactly one finding naming where: `author` the author block · `ack` an acknowledgments paragraph · `bib` a self-citation, printed by `IEEEtran.bst` as «A. Example» · `pdfauthor` `\hypersetup{pdfauthor=…}`, on no page · `href` a link whose target is the author's account while its text is not (the anonymous mirror beside it is not reported) · `macro` the name behind `\newcommand` |
87
+ | fixture | what it is there to prove |
88
+ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
89
+ | `acmart` | a real `\documentclass{acmart}` source builds, and the PDF carries the class's **own** font families — not one family of the silent substitution |
90
+ | `fallback` | the same document with the fonts missing still **builds green**, and is **rejected** by the font check. The failure is in the artifact, not in the exit code |
91
+ | `cite` | the bibtex path: the PDF shows `[1]`, not `[?]`, and no `??`. Its `build.sh` would leave a trace if run — it must not run, and the run must say it is ignored |
92
+ | `guards` | `\input{paper-guards}` resolves with no configuration, because paperlint puts its own venues directory on `TEXINPUTS` |
93
+ | `unbalanced` | a two-column acmart paper whose last page comes out 621.5 / 264.8 pt builds **green** — the build does not judge the layout and rewrites nothing — while `_build/paper.facts.json` records both heights, and `paperlint lint` with `pdf/last-page-balance` turned on in `rules` reports the page |
94
+ | `broken` | a failing build names pdflatex and its exit code, quotes the error line and its `l.NNN` context, and deletes the stale `paper.pdf` planted before the run |
95
+ | `no-source` | a paper with no `paper.tex` is named separately, and the run as a whole is a failure |
96
+ | `empty` | a document with no pages: pdflatex exits 0 and writes no PDF, and that is a failure, not a green `paper.pdf` |
97
+ | `aidc` | a real `[conference,compsoc]{IEEEtran}` paper builds on paperlint's TeX Live in NimbusRomNo9L, `tex/template`, `tex/required-section` and the `pdf/*` rules find nothing, and `tex/venue-leftover` warns once, on its planted line. It declares `identity` and names nobody, so `anonymity/identity` is silent on a real build, and `format/page-limit` finds the IEEEtran «References» heading |
98
+ | `anon-*` | six AIDC papers, each planting the declared (invented) name on ONE path, and `anonymity/identity` reports exactly one finding naming where: `author` the author block · `ack` an acknowledgments paragraph · `bib` a self-citation, printed by `IEEEtran.bst` as «A. Example» · `pdfauthor` `\hypersetup{pdfauthor=…}`, on no page · `href` a link whose target is the author's account while its text is not (the anonymous mirror beside it is not reported) · `macro` the name behind `\newcommand` |
99
+ | `msr` | a real `[10pt,conference]{IEEEtran}` paper whose ten pages of main text include an appendix before the references, then two pages of only references: `format/page-limit`, `tex/template` and `anonymity/identity` find nothing. banal's count of the same PDF (body 9, references 3) would have failed it |
100
+ | `msr-appendix-after` | the appendix after the references brings the main text to eleven pages: exactly one `format/page-limit` finding, naming where the appendix starts. banal's count (body 9, references 2) would have passed it |
99
101
 
100
102
  The `fallback` row is the point of the whole file. `acmart.cls` checks for `libertine.sty`,
101
103
  `zi4.sty` and `newtxmath.sty`, and failing to find any of them sets `\@ACM@newfontsfalse` and
@@ -17,6 +17,19 @@ How the body is counted depends on the preset:
17
17
  appendices» excludes an appendix wherever it sits. What follows is not counted. The page the body
18
18
  ends on counts as body when body text stands above the heading there: a body that runs half a
19
19
  page past the limit is over the limit.
20
+ - **With `"appendix_in_body": true` as well** (MSR: «All submissions must not exceed 10 pages for
21
+ the main text, inclusive of all figures, tables, appendices, etc. Two more pages containing only
22
+ references are permitted.»), the appendix is body wherever it sits, and banal's two counts are
23
+ replaced by the text's. The body is every page up to the references — that page too when body
24
+ text stands above the heading — and, when the appendix starts after the references, every page
25
+ from the appendix's to the last. The pages between hold only references, and they are what
26
+ `ref_pages_max` limits. An appendix before the references ends nothing.
27
+
28
+ Why not banal's count for such a venue, measured on IEEEtran `[10pt,conference]` builds
29
+ (2026-10-05): banal types a page whose first heading reads «Appendix» as bibliography, so ten pages
30
+ of main text whose appendix stands before the references measured body 9, references 3 — a correct
31
+ paper failed on its references; and an appendix after the references was counted as reference
32
+ pages, so eleven pages of main text measured body 10, references 2 — an over-long paper passed.
20
33
 
21
34
  ## How it finds where the body ends
22
35
 
@@ -83,13 +96,17 @@ When a structural signal and the text disagree, the count is not made and the ru
83
96
  ## Options / preset fields
84
97
 
85
98
  No rule options. It reads, from the preset, `format.kinds.<kind>.body_pages_max`,
86
- `format.kinds.<kind>.ref_pages_max` and `format.body_ends_at`; from the paper's `paperlint.json`,
99
+ `format.kinds.<kind>.ref_pages_max`, `format.body_ends_at` and `format.appendix_in_body` (which
100
+ the schema accepts only beside `body_ends_at`); from the paper's `paperlint.json`,
87
101
  `kind`. A preset with no kinds, or a kind with no limits, has nothing to check.
88
102
 
89
103
  ## What it does not check
90
104
 
91
105
  - **An appendix before the references, without hyperref**, is counted as body: nothing structural
92
106
  says where it starts. With hyperref it ends the body.
107
+ - **An appendix after the references, without hyperref, under `appendix_in_body`**, is counted
108
+ as reference pages: nothing structural says where it starts. `ref_pages_max` still limits the
109
+ pages after the references, so a long one is reported, as references.
93
110
  - **An appendix whose heading does not read «Appendix…»** (the standard classes print `A` and the
94
111
  title) is reported as `unclear` when hyperref anchors it.
95
112
  - **A bibliography that is not numbered and not linked by hyperref** has no confirmed heading and no
@@ -5,8 +5,9 @@
5
5
  ## What it catches
6
6
 
7
7
  The paper is not set in the class its venue requires. The rule compares the `\documentclass` line
8
- of `paper.tex` with the preset's `template`: the class must be the same, and every option the
9
- template names must be there. The paper may add options of its own.
8
+ of `paper.tex` with the preset's `template`: the class must be the same, every option the
9
+ template names must be there, and no option the preset forbids (`template_forbids`) may be. The
10
+ paper may add other options of its own.
10
11
 
11
12
  A source that keeps one file for several venues and picks the class behind a TeX switch has several
12
13
  `\documentclass` lines. The switch is not evaluated: each line is a candidate, the paper passes when
@@ -49,6 +50,16 @@ The first line reports:
49
50
 
50
51
  > the class option `compsoc` is missing: aidc requires `\documentclass[conference,compsoc]{IEEEtran}`
51
52
 
53
+ Under a preset that forbids options — MSR: «LaTeX users must use \documentclass[10pt,conference]{IEEEtran}
54
+ without including the compsoc or compsocconf options» (https://2027.msrconf.org/track/msr-2027-technical-papers):
55
+
56
+ ```latex
57
+ \documentclass[10pt,conference,compsoc]{IEEEtran} % fails: compsoc is forbidden
58
+ \documentclass[10pt,conference]{IEEEtran} % passes
59
+ ```
60
+
61
+ > the class option `compsoc` is forbidden: MSR requires `\documentclass[10pt,conference]{IEEEtran}` without `compsoc`, `compsocconf`
62
+
52
63
  ## Preset field
53
64
 
54
65
  No rule options. It reads `template`, merged along `extends` (a child's replaces its parent's):
@@ -60,15 +71,24 @@ No rule options. It reads `template`, merged along `extends` (a child's replaces
60
71
  A whole `\documentclass[…]{…}` line, or a bare class name (`"article"`), which requires the class
61
72
  and no option. A value that is neither is reported as a finding that names the preset file.
62
73
 
74
+ ```jsonc
75
+ "template_forbids": ["compsoc", "compsocconf"]
76
+ ```
77
+
78
+ Class options the venue's call forbids, each reported where the class line carries it. Read with the
79
+ `template` of the same file, and only with it: the schema refuses it alone, and a child preset's
80
+ `template` replaces both.
81
+
63
82
  ## What it does not check
64
83
 
65
- - Options a venue forbids (`review`, `anonymous` in a camera-ready): only that what the venue
66
- requires is there.
84
+ - An option a venue forbids that its preset does not list in `template_forbids` (`review` in a
85
+ camera-ready).
67
86
  - The version of the class file (#94).
68
87
  - A `\documentclass` inside a comment: the rule reads the parse tree, so it does not count.
69
88
  - Which branch of a TeX switch builds: with several class lines, one matching candidate is enough.
70
89
 
71
90
  ## How to fix
72
91
 
73
- Set the `\documentclass` line to the one the message quotes, keeping your own extra options. A new
92
+ Set the `\documentclass` line to the one the message quotes, keeping your own extra options
93
+ and dropping a forbidden one. A new
74
94
  paper made with `paperlint new <name> --venue <preset>` already has it.
@@ -57,10 +57,23 @@ No rule options. It reads every shipped preset's `name` and `aliases`, collected
57
57
  A name the paper's own chain also declares (two workshops of one parent conference) is never
58
58
  reported.
59
59
 
60
+ ```jsonc
61
+ "mentions": "with-year"
62
+ ```
63
+
64
+ A venue whose name is also a common acronym counts only with a year beside the name: under
65
+ `paperlint:msr`, «First written for MSR 2027.», «MSR'27» and «MSR~2027» are reported, and
66
+ «Manual Speech Recognition (MSR)», «Microsoft Research (MSR)» or «MSR, in 2027» are not. Any
67
+ whole-word use counted for MSR at first, and an accepted ACSAC paper that defines «MSR» for itself
68
+ drew six warnings. Per preset, not hard-coded: a name that only a venue uses (`AgenticDev`) stays
69
+ reported with or without a year.
70
+
60
71
  ## What it does not check
61
72
 
62
73
  - A venue no shipped preset describes.
63
74
  - A name split by markup (`\textbf{AI}Sec`).
75
+ - A `with-year` venue named without a year («submitted to MSR»): the rule cannot tell it from the
76
+ acronym.
64
77
 
65
78
  ## How to fix
66
79