paperlint 2.0.0 → 2.0.1

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 (138) hide show
  1. package/.github/workflows/ci.yml +4 -4
  2. package/CLAUDE.md +3 -3
  3. package/LICENSE +1 -1
  4. package/README.md +25 -10
  5. package/action.harness.mjs +10 -10
  6. package/action.mutations.mjs +3 -3
  7. package/action.yml +11 -11
  8. package/bin/{rpp.mjs → paperlint.mjs} +2 -2
  9. package/dist/adapters/banal/invocation.js +3 -3
  10. package/dist/adapters/banal/invocation.js.map +1 -1
  11. package/dist/adapters/banal/run.d.ts +1 -1
  12. package/dist/adapters/banal/run.js +1 -1
  13. package/dist/adapters/banal/run.js.map +1 -1
  14. package/dist/adapters/banal/settings.d.ts +4 -4
  15. package/dist/adapters/banal/settings.d.ts.map +1 -1
  16. package/dist/adapters/banal/settings.js +4 -4
  17. package/dist/adapters/banal/settings.js.map +1 -1
  18. package/dist/adapters/banal/xml.js +1 -1
  19. package/dist/adapters/banal/xml.js.map +1 -1
  20. package/dist/adapters/curl/download.io.d.ts.map +1 -1
  21. package/dist/adapters/curl/download.io.js +2 -2
  22. package/dist/adapters/curl/download.io.js.map +1 -1
  23. package/dist/build-engine.d.ts +1 -1
  24. package/dist/build-engine.js +1 -1
  25. package/dist/build.js +1 -1
  26. package/dist/cli.d.ts +14 -29
  27. package/dist/cli.d.ts.map +1 -1
  28. package/dist/cli.js +36 -74
  29. package/dist/cli.js.map +1 -1
  30. package/dist/doctor.d.ts.map +1 -1
  31. package/dist/doctor.js +0 -2
  32. package/dist/doctor.js.map +1 -1
  33. package/dist/engine.d.ts +2 -2
  34. package/dist/engine.d.ts.map +1 -1
  35. package/dist/engine.js +1 -1
  36. package/dist/hooks-settings.d.ts +0 -18
  37. package/dist/hooks-settings.d.ts.map +1 -1
  38. package/dist/hooks-settings.js +70 -42
  39. package/dist/hooks-settings.js.map +1 -1
  40. package/dist/init.d.ts +2 -10
  41. package/dist/init.d.ts.map +1 -1
  42. package/dist/init.js +7 -39
  43. package/dist/init.js.map +1 -1
  44. package/dist/link-skills.js +2 -2
  45. package/dist/link-skills.js.map +1 -1
  46. package/dist/rules-config.d.ts +1 -1
  47. package/dist/rules-config.js +2 -2
  48. package/dist/toolchain.d.ts +2 -2
  49. package/dist/toolchain.d.ts.map +1 -1
  50. package/dist/toolchain.js +8 -8
  51. package/dist/toolchain.js.map +1 -1
  52. package/dist/types.d.ts +4 -4
  53. package/dist/types.d.ts.map +1 -1
  54. package/docs/configuration.md +6 -10
  55. package/docs/e2e.md +3 -4
  56. package/docs/install.md +11 -3
  57. package/docs/optional-rules.md +1 -1
  58. package/docs/rules.md +1 -1
  59. package/docs/toolchain.md +5 -5
  60. package/eslint-rules/paper-typography.mjs +1 -1
  61. package/eslint-rules/paper-typography.mutations.mjs +1 -1
  62. package/eslint-rules/pdf-last-page-balance.harness.mjs +5 -3
  63. package/fixtures/build-e2e/guards/paper.tex +1 -1
  64. package/fixtures/pdf-facts/README.md +1 -1
  65. package/fixtures/real-markdown-paper/baseline.json +1 -1
  66. package/fixtures/real-markdown-paper/baseline.mjs +2 -2
  67. package/fixtures/toolchain-mirror/install-tl +2 -2
  68. package/fixtures/toolchain-mirror/stub-pdflatex +1 -1
  69. package/fixtures/toolchain-mirror/stub-tlmgr +1 -1
  70. package/hooks/hooks.harness.mjs +1 -1
  71. package/lib/paper-config.harness.mjs +3 -3
  72. package/lib/paper-config.mjs +3 -3
  73. package/lib/skill-trigger-cases.harness.mjs +1 -1
  74. package/package.json +4 -4
  75. package/plugin/hooks/hooks.json +3 -3
  76. package/scripts/check.mjs +1 -1
  77. package/scripts/harness-api.frozen.json +1 -1
  78. package/scripts/harness-api.test.ts +2 -2
  79. package/scripts/layer-legacy.frozen.json +1 -1
  80. package/scripts/mutation-batteries-frozen.harness.mjs +1 -1
  81. package/scripts/mutation-batteries.frozen.json +2 -2
  82. package/scripts/release-config.test.ts +1 -1
  83. package/skills/paper-pipeline/description-language.eval.mjs +1 -1
  84. package/skills/paper-pipeline/framing-vs-vocabulary.eval.mjs +1 -1
  85. package/skills/paper-pipeline/grade-paper-writing-ablation.eval.mjs +2 -2
  86. package/skills/paper-pipeline/pipeline-firing.eval.mjs +1 -1
  87. package/skills/paper-pipeline/pipeline-language.eval.mjs +1 -1
  88. package/skills/paper-pipeline/scripts/consumer.d.mts +1 -0
  89. package/skills/paper-pipeline/scripts/consumer.harness.mjs +10 -4
  90. package/skills/paper-pipeline/scripts/consumer.mjs +8 -1
  91. package/skills/paper-pipeline/scripts/consumer.mutations.mjs +1 -1
  92. package/skills/render-paper/SKILL.md +3 -3
  93. package/skills/render-paper/SKILL.md.spec.ts +2 -2
  94. package/skills/render-paper/extract-pdf-facts.harness.mjs +1 -1
  95. package/skills/submit-paper/references/venues/venue-profile.schema.json +1 -1
  96. package/src/adapters/banal/index.test.ts +1 -1
  97. package/src/adapters/banal/invocation.test.ts +3 -3
  98. package/src/adapters/banal/invocation.ts +3 -3
  99. package/src/adapters/banal/locate.test.ts +4 -4
  100. package/src/adapters/banal/run.ts +2 -2
  101. package/src/adapters/banal/settings.test.ts +12 -6
  102. package/src/adapters/banal/settings.ts +9 -5
  103. package/src/adapters/banal/xml.test.ts +1 -1
  104. package/src/adapters/banal/xml.ts +1 -1
  105. package/src/adapters/curl/download.io.ts +4 -2
  106. package/src/adapters/curl/download.test.ts +3 -1
  107. package/src/adapters/node/files.test.ts +1 -1
  108. package/src/adapters/node/process.test.ts +2 -2
  109. package/src/adapters/node/workspace.test.ts +4 -4
  110. package/src/build-engine.harness.mjs +2 -2
  111. package/src/build-engine.ts +1 -1
  112. package/src/build.harness.mjs +6 -6
  113. package/src/build.mutations.mjs +3 -2
  114. package/src/build.ts +1 -1
  115. package/src/cli.harness.mjs +68 -129
  116. package/src/cli.mutations.mjs +7 -32
  117. package/src/cli.ts +46 -92
  118. package/src/doctor.harness.mjs +9 -25
  119. package/src/doctor.ts +0 -2
  120. package/src/engine.harness.mjs +4 -2
  121. package/src/engine.ts +2 -2
  122. package/src/hooks-settings.harness.mjs +24 -15
  123. package/src/hooks-settings.mutations.mjs +2 -4
  124. package/src/hooks-settings.ts +92 -49
  125. package/src/init.ts +7 -49
  126. package/src/latex-log.harness.mjs +1 -1
  127. package/src/link-skills.harness.mjs +3 -1
  128. package/src/link-skills.mutations.mjs +1 -1
  129. package/src/link-skills.ts +2 -2
  130. package/src/new-paper.harness.mjs +1 -1
  131. package/src/pdf-facts.harness.mjs +1 -1
  132. package/src/rules-config.ts +2 -2
  133. package/src/structure.harness.mjs +1 -1
  134. package/src/tex-requirements.harness.mjs +1 -1
  135. package/src/toolchain.harness.mjs +34 -25
  136. package/src/toolchain.ts +14 -8
  137. package/src/types.ts +4 -4
  138. package/plugin/.claude-plugin/plugin.json +0 -8
package/dist/toolchain.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * `paperlint toolchain` — install upstream TeX Live, with exactly the packages the venue profiles
3
- * declare, into rpp's own cache, and banal (the page-geometry script HotCRP runs) at its pinned
3
+ * declare, into paperlint's own cache, and banal (the page-geometry script HotCRP runs) at its pinned
4
4
  * commit (`adapters/banal/`). `paperlint build` offers the TeX Live install on a terminal.
5
5
  *
6
6
  * 🔴 WHY paperlint INSTALLS TeX AT ALL (rule 11). "Install TeX Live yourself" was a manual step with a
@@ -19,8 +19,8 @@
19
19
  * once reported success having installed nothing: installers' exit codes are not evidence.)
20
20
  * A second run with everything present does nothing and says so; `--check` only reports.
21
21
  *
22
- * Where: `$RPP_TEXLIVE_DIR` when set (CI points its cache there), else
23
- * `$XDG_CACHE_HOME/rpp/texlive`, else `~/.cache/rpp/texlive` — one tree per TeX Live year inside.
22
+ * Where: `$PAPERLINT_TEXLIVE_DIR` when set (CI points its cache there), else
23
+ * `$XDG_CACHE_HOME/paperlint/texlive`, else `~/.cache/paperlint/texlive` — one tree per TeX Live year inside.
24
24
  * Processes run through the injected `run` (the port `build.ts` uses), so the harness drives the
25
25
  * real download/unpack/verify logic against a fake mirror on disk, never the network.
26
26
  */
@@ -34,8 +34,8 @@ import { homedir, tmpdir } from "node:os";
34
34
  import { join } from "node:path";
35
35
  import { isExecutable, missingTools, probeTree, supportedPlatform, } from "./engine.js";
36
36
  import { declaredUnion, packageNames, } from "./tex-requirements.js";
37
- export const CACHE_ENV = "RPP_TEXLIVE_DIR";
38
- export const MIRROR_ENV = "RPP_CTAN_MIRROR";
37
+ export const CACHE_ENV = "PAPERLINT_TEXLIVE_DIR";
38
+ export const MIRROR_ENV = "PAPERLINT_CTAN_MIRROR";
39
39
  /**
40
40
  * The CTAN mirrors, redirector first. 🔴 SEVERAL, AND THAT IS A MEASUREMENT: run 33650803245 died
41
41
  * on `curl: (60) SSL certificate problem` because `mirror.ctan.org` REDIRECTED to a community
@@ -57,7 +57,7 @@ const TLMGR_MS = 15 * 60 * 1000;
57
57
  export function cacheRoot(env, home = homedir()) {
58
58
  if (env[CACHE_ENV])
59
59
  return env[CACHE_ENV];
60
- return join(env["XDG_CACHE_HOME"] || join(home, ".cache"), "rpp", "texlive");
60
+ return join(env["XDG_CACHE_HOME"] || join(home, ".cache"), "paperlint", "texlive");
61
61
  }
62
62
  /**
63
63
  * The platform directory under `<tree>/bin` that holds a RUNNABLE pdflatex — found, not guessed per
@@ -246,7 +246,7 @@ function unpack(io, archive, work) {
246
246
  }
247
247
  /** Download, unpack and run install-tl: a fresh scheme-basic tree in `<root>/<year>`. */
248
248
  export function installBase(io, root, mirrors, newerThan = null) {
249
- const work = realpathSync(mkdtempSync(join(tmpdir(), "rpp-install-tl-")));
249
+ const work = realpathSync(mkdtempSync(join(tmpdir(), "paperlint-install-tl-")));
250
250
  try {
251
251
  io.log(` downloading install-tl…`);
252
252
  const mirror = downloadInstaller(io, mirrors, join(work, "install-tl.tar.gz"));
@@ -288,7 +288,7 @@ export function installBase(io, root, mirrors, newerThan = null) {
288
288
  function runInstallTl(io, a) {
289
289
  const dir = join(a.root, a.year);
290
290
  mkdirSync(dir, { recursive: true });
291
- const profile = join(a.work, "rpp.profile");
291
+ const profile = join(a.work, "paperlint.profile");
292
292
  writeFileSync(profile, tlProfile(dir));
293
293
  io.log(` install-tl: TeX Live ${a.year} scheme-basic from ${a.mirror} (~150 MB, about a minute)…`);
294
294
  const r = io.run(join(a.installer, "install-tl"), ["-profile", profile, "-repository", a.mirror, "-no-interaction"], quiet(io, INSTALL_MS));
@@ -1 +1 @@
1
- {"version":3,"file":"toolchain.js","sourceRoot":"","sources":["../src/toolchain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolchain.js","sourceRoot":"","sources":["../src/toolchain.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -3,8 +3,8 @@ import type { RuleBlock } from "./rules-config.ts";
3
3
  * The shapes the CLI commands exchange. Before the move to TypeScript this was all `{}` and lived
4
4
  * in someone's head: a typo in a config key read as "field not set", not as an error.
5
5
  */
6
- /** The contents of the consumer's `rpp.json`. */
7
- export interface RppConfig {
6
+ /** The consumer's settings — the `paperlint` key of its `package.json`. */
7
+ export interface PaperlintConfig {
8
8
  /** 🔴 REQUIRED. The paper director(ies), relative to the config file ITSELF. The field name is
9
9
  * `PAPERS_DIR_FIELD` in lib/paper-config.mjs; code reads it through `papersDirOf()` in cli.ts. */
10
10
  papersDir?: string | string[];
@@ -26,7 +26,7 @@ export interface RppConfig {
26
26
  structure?: StructureConfig | false;
27
27
  /** REMOVED — `paperlint build` compiles the paper itself. Still typed so a leftover key can be named. */
28
28
  buildScripts?: unknown;
29
- /** ESLint config blocks appended after rpp's own — PARSED by `parseSettings` in cli.ts. */
29
+ /** ESLint config blocks appended after paperlint's own — PARSED by `parseSettings` in cli.ts. */
30
30
  rules?: readonly RuleBlock[];
31
31
  }
32
32
  export interface StructureConfig {
@@ -99,7 +99,7 @@ export interface BuildResult {
99
99
  }
100
100
  /** The result of reading the config: either data, or the exit code the caller exits with. */
101
101
  export type ConfigRead = {
102
- opts: RppConfig;
102
+ opts: PaperlintConfig;
103
103
  configPath: string | null;
104
104
  code?: undefined;
105
105
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -65,12 +65,8 @@ import code and cannot walk up a tree looking for a config; it can read a path i
65
65
  and the one path it can always name is the project's `package.json`.
66
66
 
67
67
  `paperlint lint` looks for it in the current directory and then upwards, the way eslint and tsc find
68
- theirs, and prints which file it found. `--config <file>` overrides the search.
69
-
70
- ⚠️ **`rpp.json` is deprecated and still read.** Earlier versions of `init` created it; `init` no
71
- longer does, and a run that reads one says so on its first line. The hooks never read it, so
72
- leaving settings there is how the linter and the guard end up watching different directories —
73
- `paperlint init` copies the value across for you.
68
+ theirs, and prints which file it found. `--config <file>` overrides the search; the file has the
69
+ same shape, with the settings under the `paperlint` key.
74
70
 
75
71
  ## The `rules` key: turning rules on and off
76
72
 
@@ -129,7 +125,7 @@ and the real findings leave with it.
129
125
 
130
126
  Those are the defaults; you only write the block to change them. `paper.md` is still in them
131
127
  because Markdown papers are deprecated but not yet removed
132
- ([#57](https://github.com/zernie/research-paper-pipeline/issues/57)). They were measured against a
128
+ ([#57](https://github.com/zernie/paperlint/issues/57)). They were measured against a
133
129
  real five-paper corpus rather than chosen — it passes with zero findings, while adding
134
130
  `paper.pdf` to `require` produces two findings on papers that are perfectly fine, which is why it
135
131
  is not there.
@@ -216,18 +212,18 @@ having run on it, because a missing build read as nothing to do.
216
212
  ⚠️ **A `build.sh` or `repro/build-submission.sh` in the paper directory is IGNORED.** Earlier
217
213
  versions ran it; `paperlint build` now says one line — `build.sh is ignored — paperlint builds the paper
218
214
  itself` — and builds the paper itself. The `buildScripts` key is ignored the same way.
219
- Why: [#59](https://github.com/zernie/research-paper-pipeline/issues/59).
215
+ Why: [#59](https://github.com/zernie/paperlint/issues/59).
220
216
 
221
217
  ## Using the rules from an existing ESLint config
222
218
 
223
219
  Under the hood `paperlint lint` builds an ESLint flat config and runs it. If your repository already
224
220
  lints with ESLint, you can import the rule modules from `paperlint/eslint-rules/`
225
- and wire them yourself; `bin/rpp.mjs` exports `buildConfig(options, texLanguage)` that returns
221
+ and wire them yourself; `bin/paperlint.mjs` exports `buildConfig(options, texLanguage)` that returns
226
222
  the exact config the CLI uses, so the shortest path is:
227
223
 
228
224
  ```js
229
225
  // eslint.config.mjs
230
- import { buildConfig } from "paperlint/bin/rpp.mjs";
226
+ import { buildConfig } from "paperlint/bin/paperlint.mjs";
231
227
  import { texLanguage } from "paperlint/eslint-rules/latex-language.mjs";
232
228
  export default buildConfig({ minFindings: 3 }, texLanguage);
233
229
  ```
package/docs/e2e.md CHANGED
@@ -35,8 +35,7 @@ temporary tree, **under npm and under pnpm separately**, and drives the installe
35
35
 
36
36
  - the install itself finishes
37
37
  - `paperlint --help` answers with zero
38
- - `paperlint init` declares the papers directory in `package.json`, and does _not_ leave a second
39
- carrier `rpp.json` behind
38
+ - `paperlint init` declares the papers directory in `package.json`
40
39
  - `paperlint init` finishes with zero — its doctor found no discrepancy
41
40
  - `paperlint init` wires the hooks into `.claude/settings.json` — the same commands `hooks.json`
42
41
  publishes, once each — and says they need `npm install` in a fresh clone; a second `init`
@@ -88,10 +87,10 @@ paperlint's own cache, because the runner has no other.
88
87
 
89
88
  ## `test/e2e/toolchain.mjs` — real TeX Live, and only it
90
89
 
91
- `paperlint toolchain` into `$RPP_TEXLIVE_DIR` against real CTAN; a second run must say "nothing to do"
90
+ `paperlint toolchain` into `$PAPERLINT_TEXLIVE_DIR` against real CTAN; a second run must say "nothing to do"
92
91
  within seconds; `--check` must exit 0; then the `acmart` fixture is built with PATH holding `node`
93
92
  only, so no other TeX Live and no PDF tool can stand in, and the PDF must carry Libertine and Biolinum
94
- and no Computer Modern face. Without `RPP_TEXLIVE_DIR` it is a declared skip: installing ~270 MB
93
+ and no Computer Modern face. Without `PAPERLINT_TEXLIVE_DIR` it is a declared skip: installing ~270 MB
95
94
  into a home directory as a side effect of `npm run check` is the unasked install rule 11 forbids.
96
95
  `src/toolchain.harness.mjs` covers the installer's logic (mirror fallback, archive check, time
97
96
  limit, verification, idempotence) against a fake mirror on disk, without the network.
package/docs/install.md CHANGED
@@ -20,6 +20,15 @@ your project's `node_modules`, so it needs the install first.
20
20
  and skill links that pointed into the old package. Until then the old key is still read, with a
21
21
  warning.
22
22
 
23
+ **Upgrading from 2.0.0**: 2.0.0 wrote hook commands that run `node_modules/paperlint/bin/rpp.mjs`,
24
+ a file later versions do not ship, so those hooks stop running. `npx paperlint doctor` names them;
25
+ `npx paperlint init` replaces them and keeps your own commands in the same matcher. The TeX Live
26
+ and banal caches moved from `~/.cache/rpp/` to `~/.cache/paperlint/`, so `npx paperlint toolchain`
27
+ downloads TeX Live once more (delete the old directory afterwards), and the environment variables
28
+ are now `PAPERLINT_TEXLIVE_DIR`, `PAPERLINT_BANAL_DIR` and `PAPERLINT_CTAN_MIRROR` — the `RPP_*`
29
+ names are no longer read. A leftover `rpp.json` is ignored; its settings belong under the
30
+ `"paperlint"` key of `package.json`.
31
+
23
32
  The npm package carries everything: the `paperlint` command, the ESLint rules, the Claude Code skills
24
33
  and hooks, and the scripts the skills run. External programs are separate:
25
34
 
@@ -68,8 +77,7 @@ gets the hooks; the hook commands run files inside `node_modules`, so a fresh cl
68
77
  config; it can only read a path it can spell, and the one it can always spell is
69
78
  `$CLAUDE_PROJECT_DIR/package.json`. That key is read by the three hooks, `eslint-rules/papers.mjs`,
70
79
  `lib/skill-trigger-cases.mjs` and `skills/paper-pipeline/scripts/consumer.mjs`; a separate
71
- `rpp.json` was read only by the CLI. `rpp.json` is still read as a deprecated fallback, and
72
- `paperlint lint` says so.
80
+ config file would be read only by the CLI, so there is none.
73
81
 
74
82
  **Nothing runs at install time.** No postinstall script and no automatic TeX download. npm's rule
75
83
  is that _"the only valid use of install or preinstall scripts is for compilation"_; husky removed
@@ -135,7 +143,7 @@ on the tree the manager laid out. It also checks that every shipped skill is rea
135
143
  directory under a skill's name survives.
136
144
 
137
145
  Yarn Plug'n'Play has no `node_modules`, and the hook commands in `plugin/hooks/hooks.json` name
138
- `${CLAUDE_PROJECT_DIR}/node_modules/paperlint/bin/rpp.mjs`. Supporting it would need
146
+ `${CLAUDE_PROJECT_DIR}/node_modules/paperlint/bin/paperlint.mjs`. Supporting it would need
139
147
  a different answer to "where is the runtime", not a flag.
140
148
 
141
149
  ## Install size
@@ -34,7 +34,7 @@ wide margin on both sides.
34
34
  ### What it reads
35
35
 
36
36
  The rule does not open the PDF to measure it. `paperlint build` measures every PDF it builds and writes
37
- the result to `<paper>/_build/paper.facts.json` ([`configuration.md`](configuration.md#how-rpp-build-compiles-a-paper)),
37
+ the result to `<paper>/_build/paper.facts.json` ([`configuration.md`](configuration.md#how-paperlint-build-compiles-a-paper)),
38
38
  and the rule judges that file, reporting on the paper's `paper.tex` at the `\documentclass` line.
39
39
  So: **build, then lint.**
40
40
 
package/docs/rules.md CHANGED
@@ -31,7 +31,7 @@ the review notes are Markdown files, and the other five rules read those.
31
31
 
32
32
  A Markdown body (`paper.md`, or `draft.md`) is still read today and gets only the two `paper/`
33
33
  rules, which is why they list it above. Markdown papers are deprecated and being removed
34
- ([#57](https://github.com/zernie/research-paper-pipeline/issues/57)); do not start a new one.
34
+ ([#57](https://github.com/zernie/paperlint/issues/57)); do not start a new one.
35
35
 
36
36
  ## The scorecard's `bytes:` and `sourceBytes:`
37
37
 
package/docs/toolchain.md CHANGED
@@ -36,12 +36,12 @@ The command has two halves, TeX Live and banal (below). Both always run, so one
36
36
  hide the other, and the exit code is 0 only when both are ready.
37
37
 
38
38
  It downloads `install-tl` from a CTAN mirror (four in turn; each download has its own time limit,
39
- TLS is always verified), installs `scheme-basic` into `~/.cache/rpp/texlive/<TeX Live year>`
40
- (`$XDG_CACHE_HOME/rpp/texlive` when that is set, `$RPP_TEXLIVE_DIR` over both), and `tlmgr install`s
39
+ TLS is always verified), installs `scheme-basic` into `~/.cache/paperlint/texlive/<TeX Live year>`
40
+ (`$XDG_CACHE_HOME/paperlint/texlive` when that is set, `$PAPERLINT_TEXLIVE_DIR` over both), and `tlmgr install`s
41
41
  every package the venue profiles declare. Then it checks the RESULT: `kpsewhich` must find every
42
42
  file each profile names, and each declared tool must be an executable in the bin directory. A gap
43
43
  fails the command and names the package and its file. Linux and macOS; on Windows it refuses, and
44
- `paperlint build` uses a TeX Live on PATH that has the packages. `RPP_CTAN_MIRROR` names one mirror
44
+ `paperlint build` uses a TeX Live on PATH that has the packages. `PAPERLINT_CTAN_MIRROR` names one mirror
45
45
  (a `…/systems/texlive/tlnet` URL) to use instead of the list.
46
46
 
47
47
  Measured 2026-09-24 from an empty directory: **3 min 04 s, 269 MB** (du: 298 MB), TeX Live 2026, 47
@@ -109,8 +109,8 @@ therefore does not contain banal. `paperlint toolchain` downloads it from HotCRP
109
109
  | version | banal 1.2 |
110
110
  | sha256 | `fd8cc4ae189b9da02460ae442a34f14434e5784210489fb668313ac671006911` |
111
111
 
112
- It refuses a file with any other sha256, stores it in `~/.cache/rpp/banal/<commit>/banal`
113
- (`$XDG_CACHE_HOME/rpp/banal` when set, `$RPP_BANAL_DIR` over both), and accepts it only after banal
112
+ It refuses a file with any other sha256, stores it in `~/.cache/paperlint/banal/<commit>/banal`
113
+ (`$XDG_CACHE_HOME/paperlint/banal` when set, `$PAPERLINT_BANAL_DIR` over both), and accepts it only after banal
114
114
  has run on a one-page probe and measured it. paperlint then runs it as a separate program — `perl banal
115
115
  -no-time -json <file>.xml` — and reads its JSON output. Nothing of banal is copied, linked or
116
116
  translated into this package.
@@ -27,7 +27,7 @@
27
27
  * two (blanking preserves length), so scanning `raw` and reporting the offset found there
28
28
  * still points at the right byte.
29
29
  *
30
- * ── WHY `bareDecimal` READS NEITHER, BUT THE PARSED TREE (rpp#44) ─────────────────────────
30
+ * ── WHY `bareDecimal` READS NEITHER, BUT THE PARSED TREE (paperlint#44) ─────────────────────────
31
31
  * Origin. On a workshop paper (HotCRP #20) Reviewer B wrote: `Numbers should be completed:
32
32
  * e.g. ".05" -> 0.05`. The submitted PDF really carried `p < .05`, `p=.002`, `p=.006` and
33
33
  * `p=.037` in its text (measured with pdftotext on the submitted version); the camera-ready
@@ -14,7 +14,7 @@
14
14
  * fixture exists, not that the count is correct.
15
15
  *
16
16
  * The bare-decimal count is the exception, because what it gets wrong is not the lexeme but the
17
- * INPUT: rpp#44 was a correct regex run over the wrong text. So two cases below change what it
17
+ * INPUT: paperlint#44 was a correct regex run over the wrong text. So two cases below change what it
18
18
  * reads — back to the raw source (the SILENT half must die), and with math dropped from the walk
19
19
  * (the CAUGHT half must die, since math is where p-values live).
20
20
  */
@@ -2,7 +2,7 @@
2
2
  * Colocated test for `eslint-rules/pdf-last-page-balance.mjs` (`pdf/last-page-balance`).
3
3
  * Run: `npx vigiles test eslint-rules/pdf-last-page-balance.harness.mjs`
4
4
  *
5
- * The rule is driven the way a consumer drives it: through rpp's own `buildConfig`, with the
5
+ * The rule is driven the way a consumer drives it: through paperlint's own `buildConfig`, with the
6
6
  * rule turned on by a `rules` block in the settings — not through a config invented here. Each
7
7
  * paper is a temporary directory holding `paper.tex`, `paper.pdf` and the facts `paperlint build`
8
8
  * would write beside them.
@@ -51,7 +51,9 @@ const facts = (lastPage, over = {}) => ({
51
51
  });
52
52
  const MEASURED = (l, r) => ({ kind: "measured", columns_pt: [l, r] });
53
53
 
54
- const root = realpathSync(mkdtempSync(join(tmpdir(), "rpp-balance-rule-")));
54
+ const root = realpathSync(
55
+ mkdtempSync(join(tmpdir(), "paperlint-balance-rule-")),
56
+ );
55
57
  /** A paper directory with paper.tex, paper.pdf and, unless `null`, `_build/paper.facts.json`. */
56
58
  const paper = (name, f, { pdf = PDF } = {}) => {
57
59
  const dir = join(root, "papers", name);
@@ -67,7 +69,7 @@ const paper = (name, f, { pdf = PDF } = {}) => {
67
69
  return dir;
68
70
  };
69
71
 
70
- /** Lint files with rpp's config, the rule turned on for `papers/**` (unless `rules` says otherwise). */
72
+ /** Lint files with paperlint's config, the rule turned on for `papers/**` (unless `rules` says otherwise). */
71
73
  async function lint(
72
74
  files,
73
75
  rules = [
@@ -1,4 +1,4 @@
1
- % `\input{paper-guards}` resolves with NO configuration: rpp puts its own venues directory on
1
+ % `\input{paper-guards}` resolves with NO configuration: paperlint puts its own venues directory on
2
2
  % TEXINPUTS. The guards fire only on the final pass (\finalpass), so a clean paper with a
3
3
  % forward \ref must still build.
4
4
  \documentclass{article}
@@ -14,7 +14,7 @@ poppler's numbers, so a pass means agreement with the tool pdf.js replaced.
14
14
  | `hidden-text.pdf` | `hidden-text.tex`, pdflatex | two-column body text beside near-white, rotated and render-mode-3 text; page 2 holds only hidden text, so banal calls it blank |
15
15
 
16
16
  `test/e2e/banal.mjs` also reads these files, with the real banal: it pins what banal 1.2 printed for
17
- each one on poppler's `pdftohtml` 24.02.0 (2026-09-25), so a pass there means rpp's pdf.js-written
17
+ each one on poppler's `pdftohtml` 24.02.0 (2026-09-25), so a pass there means paperlint's pdf.js-written
18
18
  XML measures the same as poppler's. `hidden-text.pdf` exists for that test: each kind of hidden text
19
19
  changes banal's answer if it is counted.
20
20
 
@@ -9,7 +9,7 @@
9
9
  "",
10
10
  "Recorded 2026-09-19. Three of the five are about the scorecard being deliberately thin",
11
11
  "(no pdf, no frozen source) rather than about the prose; paper/typography's single entry is",
12
- "the 18 p-values of rpp#44. They are real findings against IEEE / ISO 80000-1 style, which",
12
+ "the 18 p-values of paperlint#44. They are real findings against IEEE / ISO 80000-1 style, which",
13
13
  "requires the leading zero, in a blog post written for a general audience rather than for an",
14
14
  "IEEE venue. All 18 sit in prose and table cells, so the count from the parsed tree keeps them.",
15
15
  "The count is expected to stay. A drop is never a failure here, only growth is."
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * ONE reader of `baseline.json`, shared by the two runs that compare against it: the harness
3
- * beside this file (the repository's own `bin/rpp.mjs`) and `test/e2e/install.mjs` (the binary
3
+ * beside this file (the repository's own `bin/paperlint.mjs`) and `test/e2e/install.mjs` (the binary
4
4
  * a consumer actually got). Two copies of "growth fails, a drop never does" would drift the first
5
5
  * time one of them is tightened, and the two runs would then disagree about the same article.
6
6
  */
@@ -34,7 +34,7 @@ export function countByRule(stdout) {
34
34
  * otherwise. Always a failure.
35
35
  * vanished — a recorded rule went fully quiet without the recording being updated: how a check
36
36
  * dies unnoticed. Also a failure.
37
- * A partial drop is neither: it is what a fix looks like (rpp#44 is expected to take typography
37
+ * A partial drop is neither: it is what a fix looks like (paperlint#44 is expected to take typography
38
38
  * to zero, and then the recording is updated in the same change).
39
39
  */
40
40
  export function compareToBaseline(found, recorded = recordedFindings()) {
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
- # STANDS IN FOR install-tl in src/toolchain.harness.mjs. It reads TEXDIR from the profile rpp
2
+ # STANDS IN FOR install-tl in src/toolchain.harness.mjs. It reads TEXDIR from the profile paperlint
3
3
  # wrote and lays out a tree whose kpsewhich and tlmgr are the stubs shipped beside it, so the
4
- # harness drives rpp's real download, unpack, install and verify logic without the network.
4
+ # harness drives paperlint's real download, unpack, install and verify logic without the network.
5
5
  set -eu
6
6
  here=$(cd "$(dirname "$0")" && pwd)
7
7
  profile=""
@@ -1,3 +1,3 @@
1
1
  #!/bin/sh
2
- # Only its presence matters: rpp finds a tree by the pdflatex in its bin directory.
2
+ # Only its presence matters: paperlint finds a tree by the pdflatex in its bin directory.
3
3
  exit 0
@@ -1,7 +1,7 @@
1
1
  #!/bin/sh
2
2
  # Answers like tlmgr install: each package is looked up in the repository's catalog.txt
3
3
  # ("name file…", a "bin:NAME" item creates an executable). An unknown name gets tlmgr's own
4
- # wording, which is what rpp parses. Every call is appended to tlmgr.log at the tree root.
4
+ # wording, which is what paperlint parses. Every call is appended to tlmgr.log at the tree root.
5
5
  bin=$(cd "$(dirname "$0")" && pwd)
6
6
  tree=$(cd "$bin/../.." && pwd)
7
7
  repo=""
@@ -72,7 +72,7 @@ const check = (label, cond) => {
72
72
  * checkout, which is what `npm install` of a local package does anyway.
73
73
  */
74
74
  const consumer = (block, { papers = "docs/papers", paper = "alpha" } = {}) => {
75
- const dir = realpathSync(mkdtempSync(join(tmpdir(), "rpp-hooks-")));
75
+ const dir = realpathSync(mkdtempSync(join(tmpdir(), "paperlint-hooks-")));
76
76
  const nm = join(dir, "node_modules");
77
77
  mkdirSync(nm, { recursive: true });
78
78
  symlinkSync(join(ROOT, "node_modules", "vigiles"), join(nm, "vigiles"));
@@ -219,7 +219,7 @@ const loaded = await Promise.all(
219
219
  // refuses any key not in SETTINGS_KEYS. So the list must hold every key some reader reads — or a
220
220
  // consumer's valid key is refused — and nothing no one reads. The readers are FOUND, by the AST:
221
221
  // every `[CONFIG_KEY]?.<key>` (or the literal package name in the brackets), plus every field of
222
- // `RppConfig`, the CLI's typed view of the same object.
222
+ // `PaperlintConfig`, the CLI's typed view of the same object.
223
223
  {
224
224
  const { SETTINGS_KEYS } = await import(join(HERE, "paper-config.mjs"));
225
225
  const ts = (await import("typescript")).default;
@@ -239,7 +239,7 @@ const loaded = await Promise.all(
239
239
  const visit = (node) => {
240
240
  if (ts.isPropertyAccessExpression(node) && isSettings(node.expression))
241
241
  readKeys.add(node.name.text);
242
- if (ts.isInterfaceDeclaration(node) && node.name.text === "RppConfig")
242
+ if (ts.isInterfaceDeclaration(node) && node.name.text === "PaperlintConfig")
243
243
  for (const m of node.members)
244
244
  if (m.name && ts.isIdentifier(m.name)) readKeys.add(m.name.text);
245
245
  ts.forEachChild(node, visit);
@@ -274,7 +274,7 @@ const loaded = await Promise.all(
274
274
  unread.length === 0,
275
275
  );
276
276
  check(
277
- "and the scan found the readers it must find — the skill scripts' keys and RppConfig's",
277
+ "and the scan found the readers it must find — the skill scripts' keys and PaperlintConfig's",
278
278
  ["ledger", "citeChecks", "triggerCases", "papersDir", "rules"].every((k) =>
279
279
  readKeys.has(k),
280
280
  ),
@@ -96,7 +96,7 @@ export const OLD_PAPERS_DIR_FIELD = "papers";
96
96
  /**
97
97
  * The error text for a config that still uses the old field name, or `null` when it does not.
98
98
  *
99
- * @param settings the object under CONFIG_KEY (or the whole `rpp.json`)
99
+ * @param settings the object under CONFIG_KEY
100
100
  * @param where where that object lives, as the reader should see it in the message
101
101
  */
102
102
  export function renamedFieldMessage(
@@ -117,7 +117,7 @@ export function renamedFieldMessage(
117
117
  * 🔴 ONE LIST, AND IT IS CHECKED AGAINST THE READERS, NOT TRUSTED. The settings object has readers
118
118
  * all over the package (the CLI, the skill scripts, the trigger-case loader), each reading its own
119
119
  * keys. `lib/paper-config.harness.mjs` walks the package's source, finds every
120
- * `[CONFIG_KEY]?.<key>` read and every field of `RppConfig`, and requires each to be here — so a
120
+ * `[CONFIG_KEY]?.<key>` read and every field of `PaperlintConfig`, and requires each to be here — so a
121
121
  * new reader that forgets this list turns the harness red before a consumer's config does.
122
122
  */
123
123
  export const SETTINGS_KEYS = Object.freeze({
@@ -130,7 +130,7 @@ export const SETTINGS_KEYS = Object.freeze({
130
130
  minFindings: "review/findings-cause — paperlint lint",
131
131
  causeMarker: "review/findings-cause — paperlint lint",
132
132
  rules:
133
- "extra ESLint config blocks, appended after rpp's own — paperlint lint",
133
+ "extra ESLint config blocks, appended after paperlint's own — paperlint lint",
134
134
  buildScripts: "REMOVED; still named so paperlint build can say it is ignored",
135
135
  ledger: "the run ledger — skills/paper-pipeline/scripts/consumer.mjs",
136
136
  scripts: "how skill prose names the scripts — consumer.mjs",
@@ -54,7 +54,7 @@ function loadAt(root) {
54
54
  }
55
55
 
56
56
  function fixture(pkgJson, casesFile) {
57
- const root = realpathSync(mkdtempSync(join(tmpdir(), "rpp-cases-")));
57
+ const root = realpathSync(mkdtempSync(join(tmpdir(), "paperlint-cases-")));
58
58
  writeFileSync(join(root, "package.json"), JSON.stringify(pkgJson));
59
59
  if (casesFile) {
60
60
  mkdirSync(join(root, ".claude", "lib"), { recursive: true });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "paperlint",
3
- "version": "2.0.0",
4
- "description": "Machine-checkable gates for a research paper kept in git: ESLint rules over .tex/.md paper sources, plus the skills and hooks that drive each stage.",
3
+ "version": "2.0.1",
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",
7
7
  "scripts": {
@@ -51,7 +51,7 @@
51
51
  },
52
52
  "repository": {
53
53
  "type": "git",
54
- "url": "git+https://github.com/zernie/research-paper-pipeline.git"
54
+ "url": "git+https://github.com/zernie/paperlint.git"
55
55
  },
56
56
  "keywords": [
57
57
  "eslint",
@@ -68,7 +68,7 @@
68
68
  "node": ">=22.13"
69
69
  },
70
70
  "bin": {
71
- "paperlint": "bin/rpp.mjs"
71
+ "paperlint": "bin/paperlint.mjs"
72
72
  },
73
73
  "files": [
74
74
  ".github",
@@ -6,7 +6,7 @@
6
6
  "hooks": [
7
7
  {
8
8
  "type": "command",
9
- "command": "node \"${CLAUDE_PROJECT_DIR}/node_modules/paperlint/bin/rpp.mjs\" hook paper-edit-guard"
9
+ "command": "node \"${CLAUDE_PROJECT_DIR}/node_modules/paperlint/bin/paperlint.mjs\" hook paper-edit-guard"
10
10
  }
11
11
  ]
12
12
  }
@@ -17,11 +17,11 @@
17
17
  "hooks": [
18
18
  {
19
19
  "type": "command",
20
- "command": "node \"${CLAUDE_PROJECT_DIR}/node_modules/paperlint/bin/rpp.mjs\" hook paper-skills-nudge"
20
+ "command": "node \"${CLAUDE_PROJECT_DIR}/node_modules/paperlint/bin/paperlint.mjs\" hook paper-skills-nudge"
21
21
  },
22
22
  {
23
23
  "type": "command",
24
- "command": "node \"${CLAUDE_PROJECT_DIR}/node_modules/paperlint/bin/rpp.mjs\" hook paper-status-gates"
24
+ "command": "node \"${CLAUDE_PROJECT_DIR}/node_modules/paperlint/bin/paperlint.mjs\" hook paper-status-gates"
25
25
  }
26
26
  ]
27
27
  }
package/scripts/check.mjs CHANGED
@@ -140,7 +140,7 @@ export const GATES = [
140
140
  run: locked("node", "test/e2e/banal.mjs"),
141
141
  },
142
142
  {
143
- name: "toolchain e2e — real TeX Live into $RPP_TEXLIVE_DIR, then a build with only it on PATH",
143
+ name: "toolchain e2e — real TeX Live into $PAPERLINT_TEXLIVE_DIR, then a build with only it on PATH",
144
144
  job: "build-e2e",
145
145
  run: locked("node", "test/e2e/toolchain.mjs"),
146
146
  },