paperlint 10.4.0 → 11.0.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/.github/workflows/deadlines.yml +27 -7
- package/README.md +16 -15
- package/dist/CLAUDE.md.spec.d.ts.map +1 -1
- package/dist/CLAUDE.md.spec.js +6 -3
- package/dist/CLAUDE.md.spec.js.map +1 -1
- package/dist/adapters/hotcrp/index.d.ts +6 -4
- package/dist/adapters/hotcrp/index.d.ts.map +1 -1
- package/dist/adapters/hotcrp/index.js +6 -4
- package/dist/adapters/hotcrp/index.js.map +1 -1
- package/dist/adapters/hotcrp/portal.io.d.ts +3 -1
- package/dist/adapters/hotcrp/portal.io.d.ts.map +1 -1
- package/dist/adapters/hotcrp/portal.io.js +36 -11
- package/dist/adapters/hotcrp/portal.io.js.map +1 -1
- package/dist/adapters/hotcrp/response.d.ts +6 -1
- package/dist/adapters/hotcrp/response.d.ts.map +1 -1
- package/dist/adapters/hotcrp/response.js +17 -0
- package/dist/adapters/hotcrp/response.js.map +1 -1
- package/dist/adapters/hotcrp/site.d.ts +9 -0
- package/dist/adapters/hotcrp/site.d.ts.map +1 -0
- package/dist/adapters/hotcrp/site.js +22 -0
- package/dist/adapters/hotcrp/site.js.map +1 -0
- package/dist/adapters/hotcrp/token.d.ts +13 -0
- package/dist/adapters/hotcrp/token.d.ts.map +1 -0
- package/dist/adapters/hotcrp/token.js +48 -0
- package/dist/adapters/hotcrp/token.js.map +1 -0
- package/dist/adapters/latex/abstract.d.ts +22 -0
- package/dist/adapters/latex/abstract.d.ts.map +1 -0
- package/dist/adapters/latex/abstract.js +187 -0
- package/dist/adapters/latex/abstract.js.map +1 -0
- package/dist/adapters/latex/captions.d.ts +9 -0
- package/dist/adapters/latex/captions.d.ts.map +1 -0
- package/dist/adapters/latex/captions.js +40 -0
- package/dist/adapters/latex/captions.js.map +1 -0
- package/dist/adapters/latex/headings.d.ts +6 -0
- package/dist/adapters/latex/headings.d.ts.map +1 -1
- package/dist/adapters/latex/headings.js +5 -4
- package/dist/adapters/latex/headings.js.map +1 -1
- package/dist/adapters/latex/index.d.ts +1 -0
- package/dist/adapters/latex/index.d.ts.map +1 -1
- package/dist/adapters/latex/index.js +3 -0
- package/dist/adapters/latex/index.js.map +1 -1
- package/dist/adapters/latex/parse.d.ts +15 -0
- package/dist/adapters/latex/parse.d.ts.map +1 -1
- package/dist/adapters/latex/parse.js +64 -1
- package/dist/adapters/latex/parse.js.map +1 -1
- package/dist/adapters/node/list-entries.io.d.ts.map +1 -1
- package/dist/adapters/node/list-entries.io.js +3 -1
- package/dist/adapters/node/list-entries.io.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +20 -8
- package/dist/cli.js.map +1 -1
- package/dist/cycle-rules.d.ts.map +1 -1
- package/dist/cycle-rules.js +3 -4
- package/dist/cycle-rules.js.map +1 -1
- package/dist/domain/deadline.d.ts +8 -1
- package/dist/domain/deadline.d.ts.map +1 -1
- package/dist/domain/deadline.js +26 -12
- package/dist/domain/deadline.js.map +1 -1
- package/dist/domain/decide-first.d.ts +11 -1
- package/dist/domain/decide-first.d.ts.map +1 -1
- package/dist/domain/decide-first.js +6 -0
- package/dist/domain/decide-first.js.map +1 -1
- package/dist/domain/index-columns.d.ts.map +1 -1
- package/dist/domain/index-columns.js +2 -0
- package/dist/domain/index-columns.js.map +1 -1
- package/dist/domain/portal-token.d.ts +44 -0
- package/dist/domain/portal-token.d.ts.map +1 -0
- package/dist/domain/portal-token.js +32 -0
- package/dist/domain/portal-token.js.map +1 -0
- package/dist/domain/study-registry.d.ts +65 -8
- package/dist/domain/study-registry.d.ts.map +1 -1
- package/dist/domain/study-registry.js +63 -19
- package/dist/domain/study-registry.js.map +1 -1
- package/dist/domain/submission.d.ts +30 -0
- package/dist/domain/submission.d.ts.map +1 -1
- package/dist/domain/submission.js +68 -0
- package/dist/domain/submission.js.map +1 -1
- package/dist/lib/paper-config.d.ts +1 -1
- package/dist/lib/paper-config.d.ts.map +1 -1
- package/dist/lib/paper-config.js +6 -4
- package/dist/lib/paper-config.js.map +1 -1
- package/dist/outputs-before-decision-rule.d.ts +1 -1
- package/dist/outputs-before-decision-rule.d.ts.map +1 -1
- package/dist/outputs-before-decision-rule.js +21 -17
- package/dist/outputs-before-decision-rule.js.map +1 -1
- package/dist/paper-settings.d.ts +3 -1
- package/dist/paper-settings.d.ts.map +1 -1
- package/dist/paper-settings.js +11 -5
- package/dist/paper-settings.js.map +1 -1
- package/dist/ports/latex.d.ts +23 -0
- package/dist/ports/latex.d.ts.map +1 -1
- package/dist/ports/list-entries.d.ts +7 -4
- package/dist/ports/list-entries.d.ts.map +1 -1
- package/dist/ports/study-deps.d.ts +14 -0
- package/dist/ports/study-deps.d.ts.map +1 -0
- package/dist/ports/study-deps.js +2 -0
- package/dist/ports/study-deps.js.map +1 -0
- package/dist/ports/study-folder.d.ts +43 -0
- package/dist/ports/study-folder.d.ts.map +1 -0
- package/dist/ports/study-folder.js +2 -0
- package/dist/ports/study-folder.js.map +1 -0
- package/dist/ports/submission-portal.d.ts +39 -2
- package/dist/ports/submission-portal.d.ts.map +1 -1
- package/dist/ports/venue-deadlines.d.ts +1 -1
- package/dist/presets.d.ts +1 -2
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +1 -2
- package/dist/presets.js.map +1 -1
- package/dist/studies.d.ts.map +1 -1
- package/dist/studies.js +10 -7
- package/dist/studies.js.map +1 -1
- package/dist/study-folder.d.ts +14 -0
- package/dist/study-folder.d.ts.map +1 -0
- package/dist/study-folder.js +123 -0
- package/dist/study-folder.js.map +1 -0
- package/dist/study-gate.d.ts +1 -1
- package/dist/study-gate.d.ts.map +1 -1
- package/dist/study-gate.js +65 -28
- package/dist/study-gate.js.map +1 -1
- package/dist/study-index-input.d.ts +1 -1
- package/dist/study-index-input.d.ts.map +1 -1
- package/dist/study-index-input.js +8 -3
- package/dist/study-index-input.js.map +1 -1
- package/dist/study-modes.d.ts +38 -27
- package/dist/study-modes.d.ts.map +1 -1
- package/dist/study-modes.js +42 -53
- package/dist/study-modes.js.map +1 -1
- package/dist/study-registry-rule.d.ts +2 -6
- package/dist/study-registry-rule.d.ts.map +1 -1
- package/dist/study-registry-rule.js +32 -41
- package/dist/study-registry-rule.js.map +1 -1
- package/dist/submission.d.ts +49 -11
- package/dist/submission.d.ts.map +1 -1
- package/dist/submission.js +332 -44
- package/dist/submission.js.map +1 -1
- package/docs/configuration.md +2 -1
- package/docs/design/study-modes.md +46 -28
- package/docs/rules/cycle/record.md +9 -6
- package/docs/rules/repro/outputs-before-decision.md +3 -0
- package/docs/rules/repro/study-registered.md +3 -2
- package/docs/rules/tex/heading-case.md +1 -1
- package/docs/submission.md +47 -48
- package/eslint.config.mjs +39 -24
- package/lib/paper-config.ts +7 -4
- package/package.json +6 -1
- package/presets/msr.jsonc +9 -7
- package/presets/msr.md +14 -10
- package/scripts/check.ts +1 -1
- package/scripts/refresh-deadlines/compare.test.ts +75 -0
- package/scripts/refresh-deadlines/compare.ts +101 -0
- package/scripts/refresh-deadlines/main.test.ts +140 -0
- package/scripts/refresh-deadlines/main.ts +56 -0
- package/scripts/refresh-deadlines/refresh.test.ts +287 -0
- package/scripts/refresh-deadlines/refresh.ts +183 -0
- package/skills/grade-paper-writing/SKILL.md +4 -2
- package/skills/grade-paper-writing/SKILL.md.spec.ts +3 -1
- package/skills/grade-paper-writing/__snapshots__/prose-lint.test.ts.snap +16 -3
- package/skills/grade-paper-writing/prose-lint.mjs +127 -95
- package/skills/grade-paper-writing/prose-lint.test.ts +119 -10
- package/skills/submission-portal/SKILL.md +60 -44
- package/skills/submission-portal/SKILL.md.spec.ts +62 -43
- package/skills/submission-portal/submission-portal.test.ts +4 -73
- package/src/CLAUDE.md +7 -4
- package/src/CLAUDE.md.spec.ts +6 -3
- package/src/adapters/hotcrp/cassette/README.md +4 -4
- package/src/adapters/hotcrp/cassette/deadlines-msr2027.html +9 -9
- package/src/adapters/hotcrp/deadlines.io.test.ts +2 -2
- package/src/adapters/hotcrp/deadlines.test.ts +3 -3
- package/src/adapters/hotcrp/index.ts +15 -3
- package/src/adapters/hotcrp/portal.io.ts +61 -17
- package/src/adapters/hotcrp/portal.test.ts +105 -1
- package/src/adapters/hotcrp/response.ts +21 -0
- package/src/adapters/hotcrp/site.ts +34 -0
- package/src/adapters/hotcrp/token.test.ts +69 -0
- package/src/adapters/hotcrp/token.ts +51 -0
- package/src/adapters/latex/abstract.test.ts +280 -0
- package/src/adapters/latex/abstract.ts +272 -0
- package/src/adapters/latex/captions.test.ts +57 -0
- package/src/adapters/latex/captions.ts +56 -0
- package/src/adapters/latex/headings.ts +5 -4
- package/src/adapters/latex/index.test.ts +31 -1
- package/src/adapters/latex/index.ts +3 -0
- package/src/adapters/latex/parse.ts +71 -3
- package/src/adapters/node/list-entries.io.ts +2 -1
- package/src/adapters/node/list-entries.test.ts +18 -0
- package/src/cli.test.ts +20 -8
- package/src/cli.ts +22 -13
- package/src/cycle-rules.test.ts +6 -6
- package/src/cycle-rules.ts +7 -4
- package/src/domain/deadline.test.ts +31 -2
- package/src/domain/deadline.ts +42 -16
- package/src/domain/decide-first.test.ts +33 -0
- package/src/domain/decide-first.ts +16 -1
- package/src/domain/index-columns.test.ts +49 -4
- package/src/domain/index-columns.ts +2 -0
- package/src/domain/portal-token.test.ts +55 -0
- package/src/domain/portal-token.ts +63 -0
- package/src/domain/study-measurements.test.ts +7 -3
- package/src/domain/study-registry.test.ts +34 -6
- package/src/domain/study-registry.ts +123 -31
- package/src/domain/submission.test.ts +88 -0
- package/src/domain/submission.ts +99 -0
- package/src/new-paper.test.ts +1 -0
- package/src/outputs-before-decision-rule.test.ts +47 -2
- package/src/outputs-before-decision-rule.ts +31 -22
- package/src/paper-settings.test.ts +20 -0
- package/src/paper-settings.ts +17 -5
- package/src/ports/latex.ts +25 -0
- package/src/ports/list-entries.ts +7 -4
- package/src/ports/study-deps.ts +14 -0
- package/src/ports/study-folder.ts +38 -0
- package/src/ports/submission-portal.ts +43 -1
- package/src/ports/venue-deadlines.ts +1 -1
- package/src/presets.test.ts +8 -5
- package/src/presets.ts +1 -2
- package/src/studies-index-modes.test.ts +2 -2
- package/src/studies.ts +19 -10
- package/src/study-folder.test.ts +237 -0
- package/src/study-folder.ts +176 -0
- package/src/study-gate.test.ts +158 -7
- package/src/study-gate.ts +127 -54
- package/src/study-index-input.ts +12 -4
- package/src/study-modes.ts +67 -80
- package/src/study-registry-rule.test.ts +87 -0
- package/src/study-registry-rule.ts +58 -66
- package/src/submission-new.test.ts +569 -0
- package/src/submission-show.test.ts +210 -0
- package/src/submission-update.test.ts +160 -0
- package/src/submission.test.ts +140 -518
- package/src/submission.ts +494 -61
- package/scripts/refresh-deadlines.test.ts +0 -431
- package/scripts/refresh-deadlines.ts +0 -387
package/dist/submission.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../src/submission.ts"],"names":[],"mappings":"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"}
|
package/docs/configuration.md
CHANGED
|
@@ -98,7 +98,7 @@ refused by name. `node_modules/`, `.git/` and `<papers>/.template/` are skipped.
|
|
|
98
98
|
```
|
|
99
99
|
|
|
100
100
|
The same keys as the root file, minus the project-only ones (`papersDir`, `structure` and the
|
|
101
|
-
skills' keys), which are refused here by name, plus `talk` and `
|
|
101
|
+
skills' keys), which are refused here by name, plus `talk`, `submission`, `authors` and `cycles`, which only a paper has. **It merges over the root file:** its `extends`,
|
|
102
102
|
`kind` and `pdf` win; one it does not set comes from the root.
|
|
103
103
|
|
|
104
104
|
| key | what it is |
|
|
@@ -109,6 +109,7 @@ skills' keys), which are refused here by name, plus `talk` and `submission`, whi
|
|
|
109
109
|
| `identity` | what identifies the authors — names, handles, emails, affiliations, your own project names. A blind venue's PDF must say none of it ([`anonymity/identity`](rules/anonymity/identity.md)). Joined with the root's list |
|
|
110
110
|
| `talk` | how this paper is presented, `{ "mode": "remote-video" }` plus optional `dir`, `files`, `one_slide` — the `talk/*` rules judge its finished files ([`talk.md`](talk.md)). Only here: the root file refuses it |
|
|
111
111
|
| `submission` | which submission on the venue's portal is this paper's, `{ "id": 7 }` — read by [`paperlint submission`](submission.md), with the preset's `portal`. Only here: the root file refuses it |
|
|
112
|
+
| `authors` | the authors as the venue's portal should record them, in the paper's order: `[{ "name": "…", "email": "…", "affiliation": "…" }]` (`affiliation` optional) — read by [`paperlint submission new`](submission.md), never guessed. Only here: the root file refuses it |
|
|
112
113
|
| `cycles` | the paper's attempts at venues, one entry per attempt, oldest first — see [The paper's cycles](#the-papers-cycles) below. With it, `extends`, `kind` and `submission` are the current attempt's and may not be written beside it. Only here: the root file refuses it |
|
|
113
114
|
| `rules` | rule overrides for this paper alone — `{ "<rule>": "<severity>" }`, or blocks with globs relative to the paper |
|
|
114
115
|
| `$comment` | a note for humans; ignored |
|
|
@@ -67,8 +67,9 @@ decision that is a directory, a decision its own outputs match). A runner calls
|
|
|
67
67
|
npx paperlint studies gate papers/my-paper P1-S03 && ./run.sh
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
-
For an exploratory study it exits 0 and says it has no gate. A study that declares no mode,
|
|
71
|
-
plan is still a draft,
|
|
70
|
+
For an exploratory study it exits 0 and says it has no gate. A study that declares no mode, whose
|
|
71
|
+
plan is still a draft, or whose id two rows of the registry share (the gate answers for exactly one
|
|
72
|
+
study), is refused.
|
|
72
73
|
|
|
73
74
|
### 3. `repro/outputs-before-decision` — the proof of order a reviewer can re-run
|
|
74
75
|
|
|
@@ -132,17 +133,31 @@ make a command or a rule read, judge or write files that belong to nothing in it
|
|
|
132
133
|
|
|
133
134
|
Every command and rule that reads a study's folder — `studies gate`, `studies index` and `new`,
|
|
134
135
|
`repro/outputs-before-decision`, and `repro/study-registered`'s reads of plans and result files —
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
136
|
+
goes through one reader, `studyFolder` (`src/study-folder.ts`), built once per run from the paper's
|
|
137
|
+
folder over `ListEntries`, which does not follow links. It decides first whether a row's folder may
|
|
138
|
+
be entered at all (`refusal`): its `folder` is one folder directly inside `repro/` (`isFolderName`:
|
|
139
|
+
not empty, not `.` or `..`, no separator or NUL) and not a symbolic link. Such a row is never read
|
|
140
|
+
through: `studies index` and `new` refuse the registry, the gate refuses the study, the order rule
|
|
141
|
+
treats it as no study, and `repro/study-registered` reads its plan and results as missing.
|
|
142
|
+
|
|
143
|
+
A plan's path is held inside its folder by the registry rule's own `isInside`, the same on every
|
|
144
|
+
platform (a backslash is refused outright). The reader walks the path one component at a time, and a
|
|
145
|
+
plan or a result file whose path passes through a symbolic link — the file itself, or a directory
|
|
146
|
+
above it — is never read. The gate refuses it naming the link, the order rule treats the study as
|
|
147
|
+
declaring no mode, and `repro/study-registered` reports it (`bad-plan`, `result-file`) with the link.
|
|
148
|
+
|
|
149
|
+
The decision file is held inside the paper by the schema (`staysInside`) and is judged by the same
|
|
150
|
+
walk (`decisionEntry`, `entryAt`): every component of its path must be a real directory and the last
|
|
151
|
+
a regular file. A directory or a symbolic link as the file itself is refused by the gate and reported
|
|
152
|
+
by the rule (`decision-not-file`); a symbolic link above the file is refused naming that link
|
|
153
|
+
(`decision-linked`).
|
|
154
|
+
|
|
155
|
+
The plan reads, the result-file existence checks and the decision's path check take a `StudyFolder`
|
|
156
|
+
and not `Files`, so a read that follows a link is not what those readers are handed. A study's
|
|
157
|
+
outputs are listed through it too (`StudyFolder.list`).
|
|
158
|
+
|
|
159
|
+
Only a **ready** plan's mode decides anything: the gate refuses a draft, naming its empty fields, and
|
|
160
|
+
the order rule judges no draft — a draft may name no outputs, or an empty decision file.
|
|
146
161
|
|
|
147
162
|
### 6. Legacy plans
|
|
148
163
|
|
|
@@ -220,21 +235,24 @@ Read for this note (2026-10-16):
|
|
|
220
235
|
|
|
221
236
|
## Where each part lives
|
|
222
237
|
|
|
223
|
-
| part
|
|
224
|
-
|
|
|
225
|
-
| the modes, what is an output, which decision a mode waits on
|
|
226
|
-
| the order judge and its messages
|
|
227
|
-
| the index's mode columns and the history they show
|
|
228
|
-
| the index, which columns the lint compares, `isFolderName`
|
|
229
|
-
| the schema of `mode`; readiness by kind
|
|
230
|
-
| git: committed state, first commits, ancestry, shallow
|
|
231
|
-
| what the app asks of git
|
|
232
|
-
| a directory's entries, links not followed
|
|
233
|
-
| the studies with a mode, and
|
|
234
|
-
| the
|
|
235
|
-
| the
|
|
236
|
-
|
|
|
237
|
-
|
|
|
238
|
+
| part | file | layer |
|
|
239
|
+
| ------------------------------------------------------------ | ------------------------------------- | ------- |
|
|
240
|
+
| the modes, what is an output, which decision a mode waits on | `src/domain/study-mode.ts` | domain |
|
|
241
|
+
| the order judge and its messages | `src/domain/decide-first.ts` | domain |
|
|
242
|
+
| the index's mode columns and the history they show | `src/domain/index-columns.ts` | domain |
|
|
243
|
+
| the index, which columns the lint compares, `isFolderName` | `src/domain/study-registry.ts` | domain |
|
|
244
|
+
| the schema of `mode`; readiness by kind | `src/adapters/study-registry/` | adapter |
|
|
245
|
+
| git: committed state, first commits, ancestry, shallow | `src/adapters/git/` | adapter |
|
|
246
|
+
| what the app asks of git | `src/ports/git-history.ts` | port |
|
|
247
|
+
| a directory's entries, links not followed | `src/ports/list-entries.ts` | port |
|
|
248
|
+
| the studies with a mode, and how a decision's path stands | `src/study-modes.ts` | app |
|
|
249
|
+
| what the study readers need of a study's folder | `src/ports/study-folder.ts` | port |
|
|
250
|
+
| what the study readers are handed | `src/ports/study-deps.ts` | port |
|
|
251
|
+
| the one reader of a study's folder, links not followed | `src/study-folder.ts` | app |
|
|
252
|
+
| the order rule | `src/outputs-before-decision-rule.ts` | app |
|
|
253
|
+
| the plans and histories `studies index` and `new` write from | `src/study-index-input.ts` | app |
|
|
254
|
+
| `gate`; `new` and `index` | `src/study-gate.ts`, `src/studies.ts` | app |
|
|
255
|
+
| wiring: git with PATH and HOME, the clock | `src/cli.ts` | root |
|
|
238
256
|
|
|
239
257
|
## What it does not check
|
|
240
258
|
|
|
@@ -81,9 +81,11 @@ Failing — `paperlint.json`, the call's own dates inverted:
|
|
|
81
81
|
|
|
82
82
|
```text
|
|
83
83
|
papers/my-paper/PIPELINE-STATUS.md
|
|
84
|
-
1:1 error paperlint.json, cycle «conf-2027»: the call's "registration" (2026-10-26T11:59:59Z
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
1:1 error paperlint.json, cycle «conf-2027»: the call's "registration" (2026-10-26T11:59:59Z,
|
|
85
|
+
the call's reading on 2026-09-09 from https://conf.example/cfp) is after its
|
|
86
|
+
"submission" (2026-10-24T11:59:59Z, the call's reading on 2026-09-09 from
|
|
87
|
+
https://conf.example/cfp) — a date typed wrong, or an AoE day miscounted (write a
|
|
88
|
+
call's date as "YYYY-MM-DD AoE" and paperlint converts it)
|
|
87
89
|
cycle/record
|
|
88
90
|
```
|
|
89
91
|
|
|
@@ -91,8 +93,9 @@ Failing — a cycle at `paperlint:msr` that copies the portal's reading the pres
|
|
|
91
93
|
|
|
92
94
|
```text
|
|
93
95
|
1:1 error paperlint.json, cycle «msr-2027»: the "submission" deadline records a portal reading,
|
|
94
|
-
and the preset paperlint:msr carries
|
|
95
|
-
|
|
96
|
+
and the preset paperlint:msr carries it (2026-10-21T11:59:59Z, the portal's reading on
|
|
97
|
+
2026-10-19 from https://msr2027.hotcrp.com/deadlines — venues move dates: re-check there
|
|
98
|
+
before relying on it) — a second copy drifts when paperlint updates the preset: delete this
|
|
96
99
|
one (the call's reading and an override stay) cycle/record
|
|
97
100
|
```
|
|
98
101
|
|
|
@@ -101,7 +104,7 @@ Passing:
|
|
|
101
104
|
- the first record with the registration on `2026-10-20 AoE`;
|
|
102
105
|
- a cycle at `paperlint:msr` recording the call's abstract day as `registration` (`2026-10-20 AoE`)
|
|
103
106
|
and its paper day as `submission` (`2026-10-23 AoE`): the preset's portal `submission`
|
|
104
|
-
(`2026-10-
|
|
107
|
+
(`2026-10-21T11:59:59Z`, the end of the abstract day AoE) binds, and is not a contradiction;
|
|
105
108
|
- a cycle with no `deadlines` at all;
|
|
106
109
|
- a paper whose `paperlint.json` has no `cycles` (the flat form, `"extends": "paperlint:…"`).
|
|
107
110
|
|
|
@@ -36,6 +36,9 @@ A study decided before its run — its plan's `mode` is `decide_before_run`, the
|
|
|
36
36
|
a directory with the commits of anything under it, and records a link rather than the file it
|
|
37
37
|
points to, so no order is read from either. (A path that names the paper's folder
|
|
38
38
|
itself, `.`, or ends in `/` is refused when the plan is parsed.)
|
|
39
|
+
- **`decision-linked`** — the decision path passes through a symbolic link above the file: git
|
|
40
|
+
records the link, not the files behind it, so no order is read from it, and the finding names the
|
|
41
|
+
link.
|
|
39
42
|
- **`shallow`** — the clone is shallow, so every file's first commit is the clone's: no order can be
|
|
40
43
|
read, and the rule says so instead of judging.
|
|
41
44
|
- **`no-history`** — git could not answer (not installed, not a repository).
|
|
@@ -209,7 +209,7 @@ The rule reports:
|
|
|
209
209
|
must meet a requirement the registry does not hold (`unknown-requirement`);
|
|
210
210
|
- a `headline` measurement with no `approval`, or, when the registry names its `author`, one approved
|
|
211
211
|
by anyone else (`headline-approval`);
|
|
212
|
-
- a row's `plan` that is outside its folder, not a file, or not of the plan's shape — and, once the
|
|
212
|
+
- a row's `plan` that is outside its folder, not a file, reached through a symbolic link, or not of the plan's shape — and, once the
|
|
213
213
|
study has run (`running`, `done`, `stopped`, `superseded`), a plan that leaves `question`,
|
|
214
214
|
`population.source`, `population.draw.method` or `primary_outcome` empty, or — for a measurement —
|
|
215
215
|
declares no `mode` or leaves one of its texts empty (`bad-plan`);
|
|
@@ -316,7 +316,8 @@ No rule options.
|
|
|
316
316
|
- Whether the paper cites a study: `in_paper` is declared, not detected.
|
|
317
317
|
- The index's `decision` and `first output` cells: they name commits a squash merge renames.
|
|
318
318
|
- Inside a study folder that is a symbolic link: nothing is read through it, so its plan and its
|
|
319
|
-
result file read as missing.
|
|
319
|
+
result file read as missing. A plan or a result file whose path passes through a link inside the
|
|
320
|
+
folder is not read either, and is reported naming the link (`bad-plan`, `result-file`).
|
|
320
321
|
- What may stand at the top of `repro/` besides the study folders, and whether a study folder has a
|
|
321
322
|
`README.md`: that is [`repro/allowed-files-only`](allowed-files-only.md).
|
|
322
323
|
|
|
@@ -376,7 +376,7 @@ author wrote. Two corpora, 2026-10-03, both measured on headings, before the rul
|
|
|
376
376
|
- **The accepted paper in this repository**, `fixtures/accepted-papers/agenticdev-acm26`: 9
|
|
377
377
|
headings, 6 of them in sentence case, which the vendor's checklist does not accept. The rule
|
|
378
378
|
reports 18 words, every one a true positive, and its fixes write the six corrected
|
|
379
|
-
headings ([`fixtures/accepted-papers/README.md`](
|
|
379
|
+
headings ([`fixtures/accepted-papers/README.md`](https://github.com/zernie/paperlint/blob/main/fixtures/accepted-papers/README.md)).
|
|
380
380
|
Its `\title` and short title, read since 2026-10-04, are already in headline style and add no
|
|
381
381
|
finding.
|
|
382
382
|
- **277 `acmart` sources from arXiv** (authors' versions of papers whose arXiv comment names an ACM
|
package/docs/submission.md
CHANGED
|
@@ -1,73 +1,72 @@
|
|
|
1
1
|
# The submission on the venue's portal
|
|
2
2
|
|
|
3
|
-
`paperlint submission` reads and updates a paper's submission on the venue's submission
|
|
4
|
-
|
|
3
|
+
`paperlint submission` creates, reads and updates a paper's submission on the venue's submission
|
|
4
|
+
portal. Only [HotCRP](https://github.com/kohler/hotcrp) is supported; any other portal is refused
|
|
5
|
+
with `portal kind "<kind>" is not supported; upload by hand`.
|
|
5
6
|
|
|
6
7
|
```sh
|
|
8
|
+
npx paperlint submission new papers/my-paper # a dry run: the portal checks it and keeps nothing
|
|
9
|
+
npx paperlint submission new papers/my-paper --save # creates the real submission
|
|
7
10
|
npx paperlint submission show papers/my-paper
|
|
8
|
-
npx paperlint submission update papers/my-paper
|
|
9
|
-
npx paperlint submission update papers/my-paper --save
|
|
11
|
+
npx paperlint submission update papers/my-paper # a dry run
|
|
12
|
+
npx paperlint submission update papers/my-paper --save # changes the real submission
|
|
10
13
|
```
|
|
11
14
|
|
|
12
15
|
## What it needs
|
|
13
16
|
|
|
14
|
-
|
|
17
|
+
| where | key | what it says |
|
|
18
|
+
| ---------------------------- | ---------------------------------------------------- | --------------------------------------------------------------------- |
|
|
19
|
+
| the venue preset | `"portal": { "kind": "hotcrp", "url": "https://…" }` | where the venue takes submissions (`paperlint:aidc`, `paperlint:msr`) |
|
|
20
|
+
| the paper's `paperlint.json` | `"authors": [{ "name", "email", "affiliation"? }]` | for `new`: every author, in the paper's order — never guessed |
|
|
21
|
+
| the paper's `paperlint.json` | `"submission": { "id": 7 }` | which submission is this paper's — `new --save` writes it |
|
|
22
|
+
| the environment | `HOTCRP_TOKEN_<SITE>`, e.g. `HOTCRP_TOKEN_MSR2027` | your API token for that site |
|
|
15
23
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
24
|
+
**The token** works on the site it was made on only, so each site has its own variable:
|
|
25
|
+
`HOTCRP_TOKEN_MSR2027` for `msr2027.hotcrp.com`; for a site not on hotcrp.com, its whole host
|
|
26
|
+
(with a port other than the default) and path, every other character becoming `_`, so two paths
|
|
27
|
+
on one host that differ only in punctuation (`/conf-a`, `/conf/a`) share one variable. A plain
|
|
28
|
+
`HOTCRP_TOKEN` is not read. When the token is missing, misnamed or refused, the command prints
|
|
29
|
+
where on that site to make one, which permissions to tick, and the exact variable to set. Set it
|
|
30
|
+
in your environment — never paste it into a chat; paperlint never prints it.
|
|
21
31
|
|
|
22
|
-
|
|
23
|
-
[`rules.md`](rules.md)) — or upload by hand: a kind paperlint has no adapter for is refused with
|
|
24
|
-
`portal kind "<kind>" is not supported; upload by hand`.
|
|
32
|
+
A missing key or token stops the command with exit 2 and a line naming what to set.
|
|
25
33
|
|
|
26
|
-
|
|
27
|
-
// papers/my-paper/paperlint.json
|
|
28
|
-
{ "extends": "paperlint:aidc", "kind": "regular", "submission": { "id": 7 } }
|
|
29
|
-
```
|
|
34
|
+
## `new`
|
|
30
35
|
|
|
31
|
-
|
|
32
|
-
settings → Developer**; `show` needs the scopes `submeta:read` and `document:read`, `update` also
|
|
33
|
-
`submeta:write` and `document:write`. paperlint sends it as `Authorization: bearer <token>` and
|
|
34
|
-
never prints it or writes it anywhere.
|
|
36
|
+
Creates the submission and sends four things, printing them first — the abstract in full:
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
- **the title** — the paper's `\title`; when it holds a command of your own, the PDF's title;
|
|
39
|
+
- **the abstract** — `\begin{abstract}…\end{abstract}` as plain text: your argument-less macros
|
|
40
|
+
expanded, dashes and quotes as TeX sets them, citations and comments dropped. Anything it cannot
|
|
41
|
+
read without guessing stops the command with the macro and its line; then pass
|
|
42
|
+
`--abstract <file>`, plain text;
|
|
43
|
+
- **the authors** — from `"authors"`; without it, `new` stops and names the key;
|
|
44
|
+
- **the PDF** — the paper's own, or `--pdf <file>`.
|
|
38
45
|
|
|
39
|
-
|
|
46
|
+
Without `--save` it is a dry run. With `--save` the new id is written into `paperlint.json` (the
|
|
47
|
+
open cycle, with `cycles`), and the next command is `show`. Every run prints what is left to do on
|
|
48
|
+
the site (conflicts, topics, the venue's own fields). `new` is refused when the paper already has a
|
|
49
|
+
submission id.
|
|
40
50
|
|
|
41
|
-
|
|
42
|
-
abstract's length in words, and the PDF the portal holds — its hash, size and upload time — then
|
|
43
|
-
whether that PDF is the local one: HotCRP stores a PDF's sha256 as `sha2-<hex>`, and paperlint
|
|
44
|
-
compares it with the sha256 of the paper's `paper.pdf` (or its `pdf` setting, or `--pdf <file>`).
|
|
45
|
-
`match yes` means the portal holds exactly the file you built. Exit 0 whenever the portal answered.
|
|
51
|
+
## `show`
|
|
46
52
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
53
|
+
Prints the submission's status, title, type, topics, abstract length and the PDF the portal holds,
|
|
54
|
+
then `match`: `yes` means the portal holds exactly the PDF you built (compared by sha256). Then the
|
|
55
|
+
deadlines in force for the current attempt, each with when and where it was read
|
|
56
|
+
([Deadlines](configuration.md#deadlines)). Exit 0 whenever the portal answered.
|
|
51
57
|
|
|
52
58
|
## `update`
|
|
53
59
|
|
|
54
|
-
Sends the PDF
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
`--save` the real submission changes. Either way it prints HotCRP's verdict — `valid`, the fields the
|
|
59
|
-
change touched (`change_list`), HotCRP's messages — and the local file's sha256. Exit 1 when the
|
|
60
|
-
change is not valid or the HTTP status is not 2xx.
|
|
61
|
-
|
|
62
|
-
Before it sends anything, dry run or not, it prints one line asking you to open that exact PDF and
|
|
63
|
-
check it against the venue's call for papers — named by the preset's `url` when the preset is a
|
|
64
|
-
venue: what paperlint checks is an aid, and the venue's reading of the PDF is what counts.
|
|
60
|
+
Sends the PDF and, when asked, a new abstract (`--abstract <file>`) and "submitted" (`--submit`).
|
|
61
|
+
Without `--save` it is a dry run. It prints the portal's verdict and its messages; exit 1 when the
|
|
62
|
+
portal would not take the change. Before sending, it asks you to open that exact PDF and check it
|
|
63
|
+
against the venue's call for papers.
|
|
65
64
|
|
|
66
|
-
The safe order: `
|
|
67
|
-
|
|
65
|
+
The safe order: `new`, `new --save` once; then `show`, `update`, `update --save`, and `show` again
|
|
66
|
+
until it says `match yes`. Every `--save` comes after the author has read the dry run and said yes.
|
|
68
67
|
|
|
69
68
|
## What it does not do
|
|
70
69
|
|
|
71
|
-
- It does not
|
|
72
|
-
supplementary files.
|
|
70
|
+
- It does not set conflicts, topics or the venue's other fields, change the authors after `new`, or
|
|
71
|
+
upload supplementary files.
|
|
73
72
|
- It does not check the PDF against the venue; that is `paperlint lint`.
|
package/eslint.config.mjs
CHANGED
|
@@ -212,27 +212,36 @@ export const IO_MODULES = [
|
|
|
212
212
|
"readline/promises",
|
|
213
213
|
].flatMap((m) => [m, `node:${m}`]);
|
|
214
214
|
|
|
215
|
-
/**
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
"
|
|
227
|
-
"
|
|
228
|
-
"
|
|
229
|
-
"
|
|
230
|
-
"
|
|
231
|
-
"
|
|
232
|
-
|
|
215
|
+
/**
|
|
216
|
+
* The npm packages that exist because of ONE external program or format, from `dependencies` in
|
|
217
|
+
* package.json: only that tool's adapter (or `src/cli.ts`, the root) imports them; the domain, a
|
|
218
|
+
* port and the app take a port. A package that exists because of one external tool goes here in the
|
|
219
|
+
* same PR that adds its adapter. A pure utility library (remeda, zod, ts-essentials) needs nothing:
|
|
220
|
+
* the inside may import every package and Node built-in that is not listed here and is not an effect
|
|
221
|
+
* (`IO_MODULES`).
|
|
222
|
+
*/
|
|
223
|
+
export const TOOL_PACKAGES = [
|
|
224
|
+
"@eslint/markdown", // ESLint's Markdown language
|
|
225
|
+
"@eslint/plugin-kit",
|
|
226
|
+
"@retorquere/bibtex-parser", // BibTeX
|
|
227
|
+
"@unified-latex/unified-latex-types", // LaTeX
|
|
228
|
+
"@unified-latex/unified-latex-util-ligatures",
|
|
229
|
+
"@unified-latex/unified-latex-util-macros",
|
|
230
|
+
"@unified-latex/unified-latex-util-parse",
|
|
231
|
+
"@unified-latex/unified-latex-util-replace",
|
|
232
|
+
"@unified-latex/unified-latex-util-visit",
|
|
233
|
+
"ajv", // JSON Schema
|
|
234
|
+
"eslint",
|
|
235
|
+
"js-yaml", // YAML
|
|
236
|
+
"markdown-it", // Markdown
|
|
237
|
+
"mp4box", // MP4
|
|
238
|
+
"srt-parser-2", // SRT subtitles
|
|
239
|
+
"typescript", // the compiler API
|
|
240
|
+
"unpdf", // PDF
|
|
241
|
+
"vigiles", // the agent harness
|
|
242
|
+
].flatMap((m) => [m, `${m}/**`]);
|
|
233
243
|
|
|
234
244
|
const ORIGINS = ["external", "core"];
|
|
235
|
-
const modules = (source) => ({ to: { module: { origin: ORIGINS, source } } });
|
|
236
245
|
const elements = (...types) => ({ element: { types: { anyOf: types } } });
|
|
237
246
|
const APP = { file: { categories: "app" } };
|
|
238
247
|
const ROOT = { file: { categories: "root" } };
|
|
@@ -337,14 +346,20 @@ export const layerBoundaries = (root) => ({
|
|
|
337
346
|
allow: { to: elements("js-module") },
|
|
338
347
|
},
|
|
339
348
|
// ── libraries and built-ins (the plugin calls Node built-ins origin "core") ──
|
|
349
|
+
// Everyone may import any package and built-in …
|
|
340
350
|
{
|
|
341
|
-
from: elements("domain", "port"),
|
|
342
|
-
allow:
|
|
351
|
+
from: [elements("domain", "port", "adapter"), APP, ROOT],
|
|
352
|
+
allow: { to: { module: { origin: ORIGINS } } },
|
|
343
353
|
},
|
|
344
|
-
|
|
354
|
+
// … but the inside — not an adapter, not the root — not a package that exists because of
|
|
355
|
+
// one external tool (TOOL_PACKAGES). Effects are axis B's, below.
|
|
345
356
|
{
|
|
346
|
-
from: [elements("
|
|
347
|
-
|
|
357
|
+
from: [elements("domain", "port"), APP],
|
|
358
|
+
disallow: {
|
|
359
|
+
to: { module: { origin: "external", source: TOOL_PACKAGES } },
|
|
360
|
+
},
|
|
361
|
+
message:
|
|
362
|
+
"{{ dependency.source }} exists because of one external tool or format: only that tool's adapter (src/adapters/<tool>/) and src/cli.ts import it; this file takes a port (src/CLAUDE.md, layers). A new package of that kind is listed in TOOL_PACKAGES in the PR that adds its adapter.",
|
|
348
363
|
},
|
|
349
364
|
// Tests may import anything, fakes included …
|
|
350
365
|
{
|
package/lib/paper-config.ts
CHANGED
|
@@ -138,11 +138,13 @@ export const SETTINGS_KEYS: Readonly<Record<string, string>> = Object.freeze({
|
|
|
138
138
|
pdf: "where the built PDF is, relative to the paper, when it is not paper.pdf — the facts",
|
|
139
139
|
identity:
|
|
140
140
|
"what identifies the authors — names, handles, emails, affiliations, own project names; a blind venue's PDF must not say any of them — anonymity/identity. The root's list and a paper's are joined",
|
|
141
|
-
talk: 'how this paper is presented: { "mode": "remote-video", "dir"?, "files"?, "one_slide"? } — the talk/ rules.
|
|
141
|
+
talk: 'how this paper is presented: { "mode": "remote-video", "dir"?, "files"?, "one_slide"? } — the talk/ rules. Set only in a paper\'s own paperlint.json; in the root paperlint.json it is an error',
|
|
142
142
|
submission:
|
|
143
|
-
"which submission on the venue's portal is this paper's: { \"id\": <number> } — paperlint submission, with the preset's \"portal\".
|
|
143
|
+
"which submission on the venue's portal is this paper's: { \"id\": <number> } — paperlint submission, with the preset's \"portal\". Set only in a paper's own paperlint.json; in the root paperlint.json it is an error",
|
|
144
|
+
authors:
|
|
145
|
+
'the authors as the venue\'s portal should record them, in order: [{ "name", "email", "affiliation"? }] — paperlint submission new. Set only in a paper\'s own paperlint.json; in the root paperlint.json it is an error',
|
|
144
146
|
cycles:
|
|
145
|
-
"the paper's attempts at venues, oldest first: [{ id, venue, kind, opened, phase?, deadlines, submission?, outcome }] — extends, kind and submission are then the current attempt's, and the cycle/ rules judge the record.
|
|
147
|
+
"the paper's attempts at venues, oldest first: [{ id, venue, kind, opened, phase?, deadlines, submission?, outcome }] — extends, kind and submission are then the current attempt's, and the cycle/ rules judge the record. Set only in a paper's own paperlint.json; in the root paperlint.json it is an error",
|
|
146
148
|
scripts: "how skill prose names the scripts — consumer.mjs",
|
|
147
149
|
timezone: "the zone deadline anchors are written in — consumer.mjs",
|
|
148
150
|
contactEmail: "the polite-pool address for citation lookups — consumer.mjs",
|
|
@@ -151,10 +153,11 @@ export const SETTINGS_KEYS: Readonly<Record<string, string>> = Object.freeze({
|
|
|
151
153
|
$comment: "a note for humans (JSON Schema's own comment keyword); ignored",
|
|
152
154
|
});
|
|
153
155
|
|
|
154
|
-
/** The keys that only mean something for one paper:
|
|
156
|
+
/** The keys that only mean something for one paper: an error in the root `paperlint.json`. */
|
|
155
157
|
export const PAPER_ONLY_KEYS: readonly string[] = Object.freeze([
|
|
156
158
|
"talk",
|
|
157
159
|
"submission",
|
|
160
|
+
"authors",
|
|
158
161
|
"cycles",
|
|
159
162
|
]);
|
|
160
163
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "paperlint",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.0.0",
|
|
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",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"coverage": "NODE_OPTIONS=\"--import=./test/coverage-src.ts $NODE_OPTIONS\" c8 --check-coverage npm test --",
|
|
16
16
|
"lint": "eslint .",
|
|
17
17
|
"check": "node scripts/check.ts",
|
|
18
|
+
"refresh-deadlines": "node --conditions=paperlint-source scripts/refresh-deadlines/main.ts",
|
|
18
19
|
"fmt": "prettier --write .",
|
|
19
20
|
"fmt:check": "prettier --check ."
|
|
20
21
|
},
|
|
@@ -23,7 +24,10 @@
|
|
|
23
24
|
"@eslint/plugin-kit": "^0.7.2",
|
|
24
25
|
"@retorquere/bibtex-parser": "^10.0.1",
|
|
25
26
|
"@unified-latex/unified-latex-types": "^1.8.4",
|
|
27
|
+
"@unified-latex/unified-latex-util-ligatures": "^1.8.4",
|
|
28
|
+
"@unified-latex/unified-latex-util-macros": "^1.8.4",
|
|
26
29
|
"@unified-latex/unified-latex-util-parse": "^1.8.4",
|
|
30
|
+
"@unified-latex/unified-latex-util-replace": "^1.8.4",
|
|
27
31
|
"@unified-latex/unified-latex-util-visit": "^1.8.4",
|
|
28
32
|
"ajv": "^6.12.6",
|
|
29
33
|
"eslint": "^10.9.1",
|
|
@@ -52,6 +56,7 @@
|
|
|
52
56
|
"eslint-plugin-n": "^18.3.0",
|
|
53
57
|
"eslint-plugin-project-structure": "^3.14.5",
|
|
54
58
|
"eslint-plugin-sonarjs": "^4.2.1",
|
|
59
|
+
"jsonc-parser": "^3.3.1",
|
|
55
60
|
"prettier": "^3.8.1",
|
|
56
61
|
"semantic-release": "25.0.9",
|
|
57
62
|
"typescript-eslint": "^8.70.1",
|
package/presets/msr.jsonc
CHANGED
|
@@ -38,23 +38,25 @@
|
|
|
38
38
|
"portal": { "kind": "hotcrp", "url": "https://msr2027.hotcrp.com" },
|
|
39
39
|
|
|
40
40
|
// Read from the portal's public deadlines page (no account) by the adapter in src/adapters/hotcrp/.
|
|
41
|
-
// «Submissions must be completed by this deadline» is the `submission
|
|
42
|
-
//
|
|
43
|
-
//
|
|
41
|
+
// «Submissions must be completed by this deadline» is the `submission`, «Completed submissions
|
|
42
|
+
// may be updated until this deadline» the `resubmission`. Read 2026-10-19 18:05 UTC: «Wednesday
|
|
43
|
+
// Oct 21, 2026, 7:59:59 AM EDT» (`"sub":1792583999`) and «Saturday Oct 24, 2026, 7:59:59 AM EDT»
|
|
44
|
+
// — the ends of the call's abstract and paper days AoE. The reading of 2026-10-05 was 04:00 UTC
|
|
45
|
+
// on the abstract and paper days themselves; the portal moved both later on or before 2026-10-19.
|
|
44
46
|
"deadlines": [
|
|
45
47
|
{
|
|
46
48
|
"what": "submission",
|
|
47
|
-
"at": "2026-10-
|
|
49
|
+
"at": "2026-10-21T11:59:59Z",
|
|
48
50
|
"source": "portal",
|
|
49
51
|
"url": "https://msr2027.hotcrp.com/deadlines",
|
|
50
|
-
"read": "2026-10-
|
|
52
|
+
"read": "2026-10-19",
|
|
51
53
|
},
|
|
52
54
|
{
|
|
53
55
|
"what": "resubmission",
|
|
54
|
-
"at": "2026-10-
|
|
56
|
+
"at": "2026-10-24T11:59:59Z",
|
|
55
57
|
"source": "portal",
|
|
56
58
|
"url": "https://msr2027.hotcrp.com/deadlines",
|
|
57
|
-
"read": "2026-10-
|
|
59
|
+
"read": "2026-10-19",
|
|
58
60
|
},
|
|
59
61
|
],
|
|
60
62
|
|