paperlint 6.3.0 → 7.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/CONTRIBUTING.md +4 -2
- package/README.md +2 -2
- package/dist/adapters/latex/conditionals.d.ts +21 -0
- package/dist/adapters/latex/conditionals.d.ts.map +1 -0
- package/dist/adapters/latex/conditionals.js +75 -0
- package/dist/adapters/latex/conditionals.js.map +1 -0
- package/dist/adapters/latex/headings.d.ts +10 -0
- package/dist/adapters/latex/headings.d.ts.map +1 -0
- package/dist/adapters/latex/headings.js +129 -0
- package/dist/adapters/latex/headings.js.map +1 -0
- 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 +1 -1
- package/dist/adapters/latex/parse.d.ts.map +1 -1
- package/dist/adapters/latex/parse.js +3 -2
- package/dist/adapters/latex/parse.js.map +1 -1
- package/dist/build.d.ts +1 -1
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +1 -1
- package/dist/build.js.map +1 -1
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -3
- package/dist/cli.js.map +1 -1
- package/dist/domain/heading-case.d.ts +100 -0
- package/dist/domain/heading-case.d.ts.map +1 -0
- package/dist/domain/heading-case.js +365 -0
- package/dist/domain/heading-case.js.map +1 -0
- package/dist/domain/tex-document.d.ts +32 -0
- package/dist/domain/tex-document.d.ts.map +1 -1
- package/dist/domain/tex-document.js +11 -0
- package/dist/domain/tex-document.js.map +1 -1
- package/dist/eslint-rules/latex-language.d.ts.map +1 -1
- package/dist/eslint-rules/latex-language.js +16 -3
- package/dist/eslint-rules/latex-language.js.map +1 -1
- package/dist/facts-file.d.ts +3 -3
- package/dist/facts-file.d.ts.map +1 -1
- package/dist/facts-file.js +3 -3
- package/dist/facts-file.js.map +1 -1
- package/dist/folder-venue-rule.js +6 -6
- package/dist/folder-venue-rule.js.map +1 -1
- package/dist/heading-case.d.ts +48 -0
- package/dist/heading-case.d.ts.map +1 -0
- package/dist/heading-case.js +191 -0
- package/dist/heading-case.js.map +1 -0
- package/dist/ports/latex.d.ts +7 -1
- package/dist/ports/latex.d.ts.map +1 -1
- package/dist/preset-card-rule.d.ts +100 -0
- package/dist/preset-card-rule.d.ts.map +1 -0
- package/dist/preset-card-rule.js +221 -0
- package/dist/preset-card-rule.js.map +1 -0
- package/dist/presets.d.ts +19 -2
- package/dist/presets.d.ts.map +1 -1
- package/dist/presets.js +97 -62
- package/dist/presets.js.map +1 -1
- package/dist/tex-requirements.d.ts +33 -3
- package/dist/tex-requirements.d.ts.map +1 -1
- package/dist/tex-requirements.js +27 -2
- package/dist/tex-requirements.js.map +1 -1
- package/dist/tex-venue-rules.d.ts +1 -1
- package/dist/tex-venue-rules.d.ts.map +1 -1
- package/dist/tex-venue-rules.js.map +1 -1
- package/docs/configuration.md +13 -1
- package/docs/optional-rules.md +4 -3
- package/docs/rules/format/page-limit.md +1 -1
- package/docs/rules/paper/folder-venue-leftover.md +1 -1
- package/docs/rules/talk/profile.md +1 -1
- package/docs/rules/tex/heading-case.md +424 -0
- package/docs/rules.md +62 -53
- package/eslint-rules/latex-language.test.mjs +12 -0
- package/eslint-rules/latex-language.ts +17 -4
- package/eslint-rules/paper-typography.test.mjs +12 -0
- package/eslint.config.mjs +59 -1
- package/fixtures/build-e2e/acmart/paper.tex +1 -1
- package/fixtures/build-e2e/fallback/expect.json +3 -3
- package/lib/skill-checks.mjs +31 -0
- package/package.json +7 -1
- package/presets/acm-sigconf.jsonc +5 -0
- package/presets/acm-sigconf.md +43 -0
- package/presets/agenticdev.jsonc +27 -6
- package/presets/agenticdev.md +151 -0
- package/presets/aidc.jsonc +6 -0
- package/presets/aidc.md +75 -0
- package/presets/aisec.jsonc +5 -1
- package/presets/aisec.md +117 -0
- package/presets/ieee-conference.jsonc +5 -0
- package/presets/ieee-conference.md +38 -0
- package/presets/realm.jsonc +7 -2
- package/presets/realm.md +166 -0
- package/presets/tex/agenticdev.tex +1 -1
- package/presets/tex-base.jsonc +6 -0
- package/presets/tex-base.md +30 -0
- package/presets/venue-profile.schema.json +40 -1
- package/skills/find-venue/SKILL.md +6 -5
- package/skills/find-venue/SKILL.md.spec.ts +5 -4
- package/skills/paper-pipeline/SKILL.md +5 -6
- package/skills/paper-pipeline/SKILL.md.spec.ts +4 -5
- package/skills/paper-pipeline/references/acl-venue-rules.md +1 -1
- package/skills/study-accepted-papers/SKILL.md +3 -3
- package/skills/study-accepted-papers/SKILL.md.spec.ts +2 -2
- package/skills/submit-paper/SKILL.md +26 -22
- package/skills/submit-paper/SKILL.md.spec.ts +25 -21
- package/skills/submit-paper/references/publishers/acm.md +1 -1
- package/src/adapters/latex/conditionals.ts +130 -0
- package/src/adapters/latex/headings.ts +163 -0
- package/src/adapters/latex/index.test.ts +65 -0
- package/src/adapters/latex/index.ts +3 -0
- package/src/adapters/latex/parse.ts +3 -2
- package/src/build.ts +2 -2
- package/src/cli.test.ts +50 -7
- package/src/cli.ts +21 -4
- package/src/domain/heading-case.test.ts +660 -0
- package/src/domain/heading-case.ts +538 -0
- package/src/domain/tex-document.ts +36 -0
- package/src/domain/venue-name.test.ts +13 -7
- package/src/facts-file.test.ts +4 -4
- package/src/facts-file.ts +6 -6
- package/src/folder-venue-rule.test.ts +10 -10
- package/src/folder-venue-rule.ts +6 -6
- package/src/heading-case.test.ts +500 -0
- package/src/heading-case.ts +275 -0
- package/src/init.test.ts +1 -1
- package/src/new-paper.test.ts +10 -6
- package/src/paper-settings-commands.test.ts +25 -10
- package/src/ports/latex.ts +7 -0
- package/src/preset-card-rule.test.ts +266 -0
- package/src/preset-card-rule.ts +384 -0
- package/src/presets.test.ts +193 -40
- package/src/presets.ts +139 -70
- package/src/rule-cases.test.ts +136 -50
- package/src/submission.test.ts +2 -1
- package/src/talk-rules.test.ts +6 -3
- package/src/tex-requirements.harness.ts +25 -11
- package/src/tex-requirements.test.ts +127 -1
- package/src/tex-requirements.ts +70 -8
- package/src/tex-venue-rules.test.ts +35 -21
- package/src/tex-venue-rules.ts +2 -1
- package/src/venue-rules.test.ts +7 -6
- package/templates/paper/paper.tex +1 -1
- package/skills/submit-paper/references/venues/agenticdev.md +0 -171
- package/skills/submit-paper/references/venues/aisec.md +0 -105
- package/skills/submit-paper/references/venues/realm.md +0 -155
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "ACM acmart sigconf — template family card"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# ACM `acmart` sigconf
|
|
6
|
+
|
|
7
|
+
The card of the template family `paperlint:acm-sigconf` ([`acm-sigconf.jsonc`](acm-sigconf.jsonc)).
|
|
8
|
+
A family is what a publisher's template decides, whatever the venue: it names no venue and has no
|
|
9
|
+
call for papers. A venue preset extends it and adds what its own call sets — the page limit of each
|
|
10
|
+
kind of paper, and the rules its producer implies. The template is
|
|
11
|
+
[acmart on CTAN](https://ctan.org/pkg/acmart).
|
|
12
|
+
|
|
13
|
+
A paper for an ACM venue that has no preset may extend the family directly: page size, columns and
|
|
14
|
+
fonts are then checked, and the page limit is not (a family has no kinds).
|
|
15
|
+
|
|
16
|
+
## What the family encodes
|
|
17
|
+
|
|
18
|
+
- **The class**: `\documentclass[sigconf]{acmart}` — `sigconf` is required, since acmart's default
|
|
19
|
+
format is a single-column manuscript no sigconf venue takes. `review`, `anonymous`, `screen` and
|
|
20
|
+
`nonacm` are the paper's to add.
|
|
21
|
+
- **The page**: US letter, 8.5 × 11 in; a text block of at most 18 × 23.5 cm (7.087 × 9.252 in);
|
|
22
|
+
two columns.
|
|
23
|
+
- **The fonts**: Libertine for the text, Biolinum for the title; body text at 9 pt, references from
|
|
24
|
+
7 to 9 pt (banal measures 0.3 pt high on every template, hence the 0.5 pt tolerance).
|
|
25
|
+
- **TeX packages** on top of the base set: acmart and everything it loads itself — libertine,
|
|
26
|
+
inconsolata and newtx (if any one is missing, acmart silently falls back to Computer Modern), the
|
|
27
|
+
rest found by building and installing what was missing.
|
|
28
|
+
|
|
29
|
+
The numbers were measured on acmart sigconf builds (banal and pdf.js, 2026-08-26) and quoted from
|
|
30
|
+
the Conference Publishing author instructions for ACM (2026-08-25).
|
|
31
|
+
|
|
32
|
+
## What the family resolves to
|
|
33
|
+
|
|
34
|
+
<!-- paperlint:preset-rules -->
|
|
35
|
+
<!-- prettier-ignore-start -->
|
|
36
|
+
<!-- Generated from acm-sigconf.jsonc by `npx eslint --fix` (rule preset/card-rules). Edit the preset, not this section. -->
|
|
37
|
+
|
|
38
|
+
**`paperlint:acm-sigconf`** — template family, no venue of its own · extended by `paperlint:agenticdev`, `paperlint:aisec`
|
|
39
|
+
|
|
40
|
+
No preset of this chain sets a rule: under it, every rule keeps paperlint's default.
|
|
41
|
+
|
|
42
|
+
<!-- prettier-ignore-end -->
|
|
43
|
+
<!-- /paperlint:preset-rules -->
|
package/presets/agenticdev.jsonc
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
// AgenticDev (an ASE workshop) — a VENUE preset over the ACM sigconf family. Prose about the venue
|
|
2
|
-
// is in agenticdev.md
|
|
2
|
+
// is in its card, agenticdev.md beside this file (every preset has one: `npm run lint` fails
|
|
3
|
+
// without it, and the card's rules section is generated from this file). Everything the ACM template decides (page size, columns, fonts, font
|
|
3
4
|
// sizes, TeX packages) comes from acm-sigconf.jsonc; this file adds what AgenticDev's call for
|
|
4
5
|
// papers sets.
|
|
5
6
|
// Source for the numbers: the Conference Publishing author instructions 2026-08-25.
|
|
6
7
|
{
|
|
8
|
+
"type": "venue",
|
|
9
|
+
"name": "AgenticDev",
|
|
10
|
+
// The workshop's call for papers on the ASE 2026 site.
|
|
11
|
+
"url": "https://conf.researchr.org/home/ase-2026/agenticdev-2026",
|
|
7
12
|
"extends": "paperlint:acm-sigconf",
|
|
8
13
|
|
|
9
14
|
// What the venue is called in a paper's text (tex/venue-leftover). Its parent conference, ASE,
|
|
@@ -63,12 +68,28 @@
|
|
|
63
68
|
|
|
64
69
|
// The proceedings are produced by Conference Publishing Consulting — agenticdev.md takes its
|
|
65
70
|
// numbers from their author instructions — which require "balanced columns on the last page, if
|
|
66
|
-
// the page is not filled"
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
//
|
|
71
|
+
// the page is not filled", checked before the proceedings are produced: "problem papers are sent
|
|
72
|
+
// back to the authors". So every AgenticDev paper gets the optional rule; a paper can still turn
|
|
73
|
+
// it off in its own paperlint.json. 120 pt is the rule's default, measured: a balanced build ended
|
|
74
|
+
// 2.7 pt apart, an unbalanced one 321.4 pt apart (docs/optional-rules.md).
|
|
75
|
+
//
|
|
76
|
+
// The same vendor asks for headline style in the title and in every heading. Its help page
|
|
77
|
+
// (https://www.conference-publishing.com/Help.php) defines it: «Headline-Style Capitalization
|
|
78
|
+
// (according to the Chicago Manual of Style, Sections 8.157, 8.158, and 8.159)», with the word
|
|
79
|
+
// lists the rule's chicago-headline style judges by. Its instructions for an event
|
|
80
|
+
// (https://www.conference-publishing.com/Instructions.php?Event=ITICSE18) set both scopes:
|
|
81
|
+
// «The title should use headline-style capitalization (e.g., 'The Best POPL Paper of All Time')»
|
|
82
|
+
// and «All levels of headings use headline-style capitalization.» Its checklist names it, and
|
|
83
|
+
// papers that miss it are returned to their authors. The rule lives here and not in acm-sigconf: ACM's own
|
|
84
|
+
// pages and the other vendors that produce ACM proceedings were not read, and an error on a
|
|
85
|
+
// requirement nobody has seen would block correct papers. A venue whose author kit names the
|
|
86
|
+
// same authority adds the same line; one that names another (APA, IEEE, Springer) waits for that
|
|
87
|
+
// style (docs/rules/tex/heading-case.md, «Adding a style»).
|
|
71
88
|
"rules": {
|
|
72
89
|
"pdf/last-page-balance": ["error", { "tolerancePt": 120 }],
|
|
90
|
+
"tex/heading-case": [
|
|
91
|
+
"error",
|
|
92
|
+
{ "title": "chicago-headline", "headings": "chicago-headline" },
|
|
93
|
+
],
|
|
73
94
|
},
|
|
74
95
|
}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AgenticDev @ ASE — venue card"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# AgenticDev @ ASE
|
|
6
|
+
|
|
7
|
+
The card of the venue preset `paperlint:agenticdev` ([`agenticdev.jsonc`](agenticdev.jsonc)): what
|
|
8
|
+
the venue asks for, in prose. The numbers a machine checks live in the preset; the section at the
|
|
9
|
+
end is generated from it. The `submit-paper` skill reads this card for the venue's specifics.
|
|
10
|
+
|
|
11
|
+
**Re-verify the call for papers every year**
|
|
12
|
+
([conf.researchr.org/home/ase-2026/agenticdev-2026](https://conf.researchr.org/home/ase-2026/agenticdev-2026)):
|
|
13
|
+
dates, limits and tracks change between editions.
|
|
14
|
+
|
|
15
|
+
## The venue (2026 edition)
|
|
16
|
+
|
|
17
|
+
- **Venue**: Workshop on Agentic AI for Next-Generation Software Development, co-located with
|
|
18
|
+
**ASE** (Automated Software Engineering), Munich, October 2026.
|
|
19
|
+
- **Portal**: HotCRP, `https://agenticdev2026.hotcrp.com/paper/new`.
|
|
20
|
+
- **Deadline**: July 15, 2026, AoE. Notification August 21, camera-ready August 28.
|
|
21
|
+
- **Format**: ACM `\documentclass[sigconf,review,anonymous]{acmart}` → **double-blind**. Build with
|
|
22
|
+
`pdflatex; bibtex; pdflatex; pdflatex`; add `\microtypesetup{expansion=false}` (the most common
|
|
23
|
+
acmart crash).
|
|
24
|
+
- **No supplementary-material field** on the HotCRP form (Title, Submission, Abstract, Authors, ACM
|
|
25
|
+
corresponding, Contacts, PC conflicts). Host the artifact externally (an anonymized view-only
|
|
26
|
+
link) and `\url{}` it in the paper's Availability section; see `submit-paper` §2.
|
|
27
|
+
- **Archival**: accepted papers go into the **ASE workshop proceedings**, with a DOI; selected
|
|
28
|
+
papers are invited to a journal special issue. ASE's publisher **alternates by year** — ASEW '24
|
|
29
|
+
ACM (`10.1145/3691621.*`), ASE 2025 Workshops IEEE (`csdl/proceedings/asew/2025`), the main track
|
|
30
|
+
likewise ('22 ACM, '23 IEEE, '24 ACM, '25 IEEE). There is no dual ACM DL / IEEE Xplore
|
|
31
|
+
publication; the `10.5555` prefix in the ACM DL is a Guide catalog entry, not an ACM
|
|
32
|
+
publication. Confirm the year's publisher with the chairs before paying an article processing
|
|
33
|
+
charge.
|
|
34
|
+
|
|
35
|
+
## Paper kinds and limits
|
|
36
|
+
|
|
37
|
+
The preset's `format.kinds`; a paper names its own in its `paperlint.json` (`kind`).
|
|
38
|
+
|
|
39
|
+
| kind | body pages | extra pages of references | what it is |
|
|
40
|
+
| ------- | ---------: | ------------------------: | --------------------- |
|
|
41
|
+
| `full` | 10 | 2 | mature work |
|
|
42
|
+
| `short` | 5 | 2 | WIP, vision, position |
|
|
43
|
+
| `demo` | 5 | 2 | demo or tool |
|
|
44
|
+
|
|
45
|
+
At camera-ready the limits stay the same: a sixth page taken by the bibliography of a short paper
|
|
46
|
+
still counts within them.
|
|
47
|
+
|
|
48
|
+
## What else the preset encodes
|
|
49
|
+
|
|
50
|
+
- **The ACM template**, through `extends: paperlint:acm-sigconf`: letter paper, two columns,
|
|
51
|
+
Libertine at 9 pt, acmart's TeX packages ([`acm-sigconf.md`](acm-sigconf.md)).
|
|
52
|
+
- **Balanced columns on the last page** (`pdf/last-page-balance`, 120 pt tolerance). The proceedings
|
|
53
|
+
are produced by Conference Publishing Consulting, whose author instructions require "balanced
|
|
54
|
+
columns on the last page, if the page is not filled"; problem papers are sent back.
|
|
55
|
+
- **Headline-style capitalization** in the title and every heading (`tex/heading-case`, the
|
|
56
|
+
`chicago-headline` style). The same producer's instructions: «The title should use headline-style
|
|
57
|
+
capitalization» and «All levels of headings use headline-style capitalization», defined on its
|
|
58
|
+
help page as Chicago Manual of Style §§8.157–8.159.
|
|
59
|
+
- **Names**: `AgenticDev` is what `tex/venue-leftover` looks for in another venue's paper; ASE is
|
|
60
|
+
left out on purpose — a three-letter acronym too many sentences use for other things.
|
|
61
|
+
- **The talk** (`talk`): remote presentation by video only, with the numbers below.
|
|
62
|
+
|
|
63
|
+
## Naming the venue correctly
|
|
64
|
+
|
|
65
|
+
AgenticDev is a workshop of ASE 2026, listed on ASE's own co-located events page; it is **not** the
|
|
66
|
+
ASE main track, which has its own program, committee and selectivity.
|
|
67
|
+
|
|
68
|
+
| write | do not write |
|
|
69
|
+
| ----------------------------------------------------- | ------------------------------------ |
|
|
70
|
+
| "accepted at AgenticDev 2026, a workshop of ASE 2026" | "accepted at ASE 2026" |
|
|
71
|
+
| "workshop paper, ASE 2026 workshop proceedings" | "published at a CORE A\* conference" |
|
|
72
|
+
| "ASE is CORE A\*; AgenticDev is one of its workshops" | "this paper is CORE A\*" |
|
|
73
|
+
|
|
74
|
+
## Registration
|
|
75
|
+
|
|
76
|
+
Registration of at least one author is a condition of appearing in the proceedings, not only of
|
|
77
|
+
attending. 2026: article processing charge $350 (ACM is fully open access since 2026-01-01), and
|
|
78
|
+
workshop-day registration (non-member) €350 until 08-31, €410 until 09-20, €460 on site.
|
|
79
|
+
|
|
80
|
+
## PC members (the "PC conflicts" field) — 2026
|
|
81
|
+
|
|
82
|
+
Andrea Rosani (Free U Bozen/Bolzano) · Giuseppe Di Fatta (Free U Bozen/Bolzano) · Jean Marie Mottu
|
|
83
|
+
(Nantes U) · Paolo Papotti (Eurecom) · Simos Gerasimou (Cyprus U of Technology). The list changes
|
|
84
|
+
every year — read the current PC page.
|
|
85
|
+
|
|
86
|
+
## Topic fit
|
|
87
|
+
|
|
88
|
+
Trustworthiness, verification and validation of AI agents; benchmarking and empirical evaluation;
|
|
89
|
+
integration into developer workflows; agent-based coding and testing.
|
|
90
|
+
|
|
91
|
+
## Camera-ready (2026 edition)
|
|
92
|
+
|
|
93
|
+
The ACM mechanics are the same for every ACM venue and live one level up, in the `submit-paper`
|
|
94
|
+
skill's `references/publishers/acm.md` (eRights first, the preamble, the copyright block, CCS
|
|
95
|
+
concepts, source files). AgenticDev's own:
|
|
96
|
+
|
|
97
|
+
- **Deadline**: August 28, 2026, 2 PM AoE.
|
|
98
|
+
- **ACM ISBN**: `979-8-4007-2985-0/26/10`.
|
|
99
|
+
- **Copyright block**: `AgenticDev '26, October 12–16, 2026, Munich, Germany`.
|
|
100
|
+
- **No longer double-blind**: the `review` and `anonymous` class options come off for the final.
|
|
101
|
+
- **Title changes are allowed** — the portal asks for the title "exactly as it should appear in the
|
|
102
|
+
ACM DL". Decide before eRights.
|
|
103
|
+
|
|
104
|
+
## The talk (2026 edition)
|
|
105
|
+
|
|
106
|
+
**The deadline and the upload channel come from the parent conference's not-in-person page, not
|
|
107
|
+
from this card** — look it up again for each edition.
|
|
108
|
+
|
|
109
|
+
Remote presentation is allowed, but there is no live slot: the workshop adopts ASE 2026's
|
|
110
|
+
[Not-in-Person Presentations](https://conf.researchr.org/track/ase-2026/ase-2026-not-in-person-presentations)
|
|
111
|
+
policy:
|
|
112
|
+
|
|
113
|
+
> ASE 2026 does not provide presentation slots for papers that are not presented in-person by one
|
|
114
|
+
> of the authors.
|
|
115
|
+
|
|
116
|
+
The author sends instead:
|
|
117
|
+
|
|
118
|
+
| artifact | what the page says | deadline (2026) |
|
|
119
|
+
| --------- | --------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
|
|
120
|
+
| video | "made available via a dedicated page on the conference website (recommendation: 10 min duration, mp4 file format, HD resolution)" | 2026-10-08 |
|
|
121
|
+
| one-slide | "shown during one of the conference sessions"; no size or format stated | same as the video |
|
|
122
|
+
| poster | optional for the workshop; ASE prints it | 2026-09-21 |
|
|
123
|
+
|
|
124
|
+
**Where to upload**: "find the submission link on the submission page for your paper (see
|
|
125
|
+
author-kit e-mail from Conference Publishing Consulting)" — the same personal page as the
|
|
126
|
+
camera-ready, block "Optional Archive/Appendix/Video/Picture Submissions … Submit Material to ACM".
|
|
127
|
+
"All submitted material will be published in the ACM DL if the publishing-rights agreement gives
|
|
128
|
+
permission for this", so tick permission for auxiliary material in eRights.
|
|
129
|
+
|
|
130
|
+
**The slot**: per the chairs' email to all authors (2026-09-29), a short paper gets 10 minutes in
|
|
131
|
+
total, approximately 6–7 for the presentation and 3–4 for questions. The full-paper slot was not
|
|
132
|
+
stated, so the preset gives `talk` numbers for `short` only. No source requires a live answer to
|
|
133
|
+
questions; put a contact address on the video's last slide and on the one-slide.
|
|
134
|
+
|
|
135
|
+
The `talk/*` rules check the finished files against these numbers: `docs/talk.md`.
|
|
136
|
+
|
|
137
|
+
## What the preset resolves to
|
|
138
|
+
|
|
139
|
+
<!-- paperlint:preset-rules -->
|
|
140
|
+
<!-- prettier-ignore-start -->
|
|
141
|
+
<!-- Generated from agenticdev.jsonc by `npx eslint --fix` (rule preset/card-rules). Edit the preset, not this section. -->
|
|
142
|
+
|
|
143
|
+
**`paperlint:agenticdev`** — venue preset for AgenticDev · call for papers: <https://conf.researchr.org/home/ase-2026/agenticdev-2026> · extends `paperlint:acm-sigconf`
|
|
144
|
+
|
|
145
|
+
| rule | severity | options | set in |
|
|
146
|
+
| --- | --- | --- | --- |
|
|
147
|
+
| [`pdf/last-page-balance`](../docs/rules.md) | error | `{"tolerancePt":120}` | this preset |
|
|
148
|
+
| [`tex/heading-case`](../docs/rules/tex/heading-case.md) | error | `{"title":"chicago-headline","headings":"chicago-headline"}` | this preset |
|
|
149
|
+
|
|
150
|
+
<!-- prettier-ignore-end -->
|
|
151
|
+
<!-- /paperlint:preset-rules -->
|
package/presets/aidc.jsonc
CHANGED
|
@@ -19,7 +19,13 @@
|
|
|
19
19
|
// what refuses the upload.
|
|
20
20
|
//
|
|
21
21
|
// THE REVIEW IS DOUBLE-BLIND: `"blind":true` in the same portal data, and the call above.
|
|
22
|
+
//
|
|
23
|
+
// Its card, in prose: `aidc.md` beside this file.
|
|
22
24
|
{
|
|
25
|
+
"type": "venue",
|
|
26
|
+
"name": "AIDC",
|
|
27
|
+
// The call quoted above.
|
|
28
|
+
"url": "https://aidcworkshop.github.io/",
|
|
23
29
|
"extends": "paperlint:ieee-conference",
|
|
24
30
|
|
|
25
31
|
// «Submissions must be properly anonymized for double-blind review.» (the call above), and
|
package/presets/aidc.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AIDC @ IEEE ACSAC — venue card"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# AIDC @ IEEE ACSAC
|
|
6
|
+
|
|
7
|
+
The card of the venue preset `paperlint:aidc` ([`aidc.jsonc`](aidc.jsonc)): what the venue asks
|
|
8
|
+
for, in prose. The numbers a machine checks live in the preset; the section at the end is generated
|
|
9
|
+
from it. The `submit-paper` skill reads this card for the venue's specifics.
|
|
10
|
+
|
|
11
|
+
**Re-verify the call for papers every year** ([aidcworkshop.github.io](https://aidcworkshop.github.io/)).
|
|
12
|
+
|
|
13
|
+
## The venue (2026 edition, the first)
|
|
14
|
+
|
|
15
|
+
- **Venue**: Workshop on Agentic AI in Offensive and Defensive Cyber Operations, held at
|
|
16
|
+
**IEEE ACSAC 2026** (Annual Computer Security Applications Conference).
|
|
17
|
+
- **Format**, verbatim from the call: «All submitted papers must be prepared in US Letter size, not
|
|
18
|
+
A4, using the double-column IEEE conference format. This requirement will be strictly enforced.»
|
|
19
|
+
and «LaTeX submissions must use the IEEEtran.cls version 1.8b template with the
|
|
20
|
+
\documentclass[conference,compsoc]{IEEEtran} document class option.»
|
|
21
|
+
- **Double-blind**: «Submissions must be properly anonymized for double-blind review.», and
|
|
22
|
+
`"blind":true` in the portal's data.
|
|
23
|
+
- **Portal**: HotCRP at `https://aidc.submit.acsac.org`.
|
|
24
|
+
- 🔴 **The deadline people get wrong**: the HotCRP portal closes 2026-10-02 11:59:59 UTC
|
|
25
|
+
(`"sub":1790942399` on `https://aidc.submit.acsac.org/deadlines`), while the workshop page says
|
|
26
|
+
«October 2, 2026 (Anywhere-on-Earth, AoE)» — a day later. The portal is what refuses the upload.
|
|
27
|
+
|
|
28
|
+
## Paper kinds and limits
|
|
29
|
+
|
|
30
|
+
| kind | body pages | what it is |
|
|
31
|
+
| --------- | ---------: | ------------------------------------------------------------------------------------------------------------- |
|
|
32
|
+
| `regular` | 12 | «Regular technical papers: Up to 12 pages excluding references and appendices.» |
|
|
33
|
+
| `short` | 6 | «Short position papers or work-in-progress (WIP) papers: Up to 6 pages, excluding references and appendices.» |
|
|
34
|
+
|
|
35
|
+
References, appendices and the LLM Usage Statement are unlimited. 🔴 **The body is counted up to
|
|
36
|
+
where the references start** (`format.body_ends_at: "references"`), not by banal's count: banal
|
|
37
|
+
calls any page with non-bibliography text body, so an LLM Usage Statement or an appendix placed
|
|
38
|
+
before the references would push a paper whose body ends at the foot of page 12 to «body 13».
|
|
39
|
+
See `docs/rules/format/page-limit.md`.
|
|
40
|
+
|
|
41
|
+
## What else the preset encodes
|
|
42
|
+
|
|
43
|
+
- **The IEEE template**, through `extends: paperlint:ieee-conference` — letter paper, two columns,
|
|
44
|
+
Times at 10 pt, IEEEtran's TeX packages ([`ieee-conference.md`](ieee-conference.md)) — with the
|
|
45
|
+
`compsoc` option required in the class line (`tex/template`) and compsoc's text block,
|
|
46
|
+
7.00 × 9.02 in.
|
|
47
|
+
- **The LLM Usage Statement** (`required_sections`). The call: «Authors must follow the ACSAC AI
|
|
48
|
+
Usage Policy for all workshop submissions.» The policy (`https://www.acsac.org/2026/submissions/ai/`):
|
|
49
|
+
«If LLMs are used, authors must include a separate, clearly marked section titled "LLM Usage
|
|
50
|
+
Statement" at the end of the paper. This section does not count towards the page limit.» and
|
|
51
|
+
«Failure to comply with these requirements is grounds for desk rejection without further
|
|
52
|
+
review.» `tex/required-section` cannot know whether LLMs were used, so it requires the section
|
|
53
|
+
always — an author who used none says so in it. A bold paragraph is not a section with this
|
|
54
|
+
title and does not count.
|
|
55
|
+
- **Double-blind review** (`blind`), so `anonymity/identity` checks the PDF against the paper's
|
|
56
|
+
declared `identity`.
|
|
57
|
+
- **Where submissions go** (`portal`): `paperlint submission` reads and updates a paper's
|
|
58
|
+
submission through HotCRP's API on that site.
|
|
59
|
+
- **Names**: `AIDC` and `ACSAC`, what `tex/venue-leftover` looks for in another venue's paper.
|
|
60
|
+
- **The register of the body** (`register`): the workshop's first edition has no accepted papers,
|
|
61
|
+
so the bands of `tex/contrast-frames`, `tex/claim-emphasis` and `tex/relation-markers` are set by
|
|
62
|
+
five accepted ACSAC papers on the same template, in `fixtures/accepted-papers/`.
|
|
63
|
+
|
|
64
|
+
## What the preset resolves to
|
|
65
|
+
|
|
66
|
+
<!-- paperlint:preset-rules -->
|
|
67
|
+
<!-- prettier-ignore-start -->
|
|
68
|
+
<!-- Generated from aidc.jsonc by `npx eslint --fix` (rule preset/card-rules). Edit the preset, not this section. -->
|
|
69
|
+
|
|
70
|
+
**`paperlint:aidc`** — venue preset for AIDC · call for papers: <https://aidcworkshop.github.io/> · extends `paperlint:ieee-conference`
|
|
71
|
+
|
|
72
|
+
No preset of this chain sets a rule: under it, every rule keeps paperlint's default.
|
|
73
|
+
|
|
74
|
+
<!-- prettier-ignore-end -->
|
|
75
|
+
<!-- /paperlint:preset-rules -->
|
package/presets/aisec.jsonc
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// AISec @ ACM CCS — a VENUE preset over the ACM sigconf family. Data for the `pdf/*` rules over
|
|
2
2
|
// `_build/paper.facts.json`.
|
|
3
|
-
// Prose about the venue and tracks is in `aisec.md`
|
|
3
|
+
// Prose about the venue and tracks is in its card, `aisec.md` beside this file.
|
|
4
4
|
//
|
|
5
5
|
// PAGE LIMITS — verbatim from https://aisec.cc/ (verified 2026-08-26, not from memory):
|
|
6
6
|
// «Submitted papers must be at most 10 pages long in double-column ACM format---excluding
|
|
@@ -23,6 +23,10 @@
|
|
|
23
23
|
// but that is the main conference). Turn pdf/last-page-balance on in the paper's paperlint.json if
|
|
24
24
|
// the camera-ready instructions ask for it.
|
|
25
25
|
{
|
|
26
|
+
"type": "venue",
|
|
27
|
+
"name": "AISec",
|
|
28
|
+
// The call quoted above.
|
|
29
|
+
"url": "https://aisec.cc/",
|
|
26
30
|
"extends": "paperlint:acm-sigconf",
|
|
27
31
|
|
|
28
32
|
// What the venue is called in a paper's text (tex/venue-leftover): the workshop, and the
|
package/presets/aisec.md
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AISec @ ACM CCS — venue card"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# AISec @ ACM CCS
|
|
6
|
+
|
|
7
|
+
The card of the venue preset `paperlint:aisec` ([`aisec.jsonc`](aisec.jsonc)): what the venue asks
|
|
8
|
+
for, in prose. The numbers a machine checks live in the preset; the section at the end is generated
|
|
9
|
+
from it. The `submit-paper` skill reads this card for the venue's specifics.
|
|
10
|
+
|
|
11
|
+
**Re-verify the call for papers every year** ([aisec.cc](https://aisec.cc/)) — deadline, page limit
|
|
12
|
+
and tracks shift between editions.
|
|
13
|
+
|
|
14
|
+
## The bar
|
|
15
|
+
|
|
16
|
+
AISec is the long-running AI-security workshop of **ACM CCS**, a top security conference — not a
|
|
17
|
+
first-edition workshop. Mature threat modelling, honest evaluation and sound ethics are expected,
|
|
18
|
+
not rewarded: a security committee rejects on soundness and ethics grounds that a software
|
|
19
|
+
engineering workshop would wave through.
|
|
20
|
+
|
|
21
|
+
## The venue (2026 edition)
|
|
22
|
+
|
|
23
|
+
- **Venue**: ACM Workshop on Artificial Intelligence and Security (**AISec**), co-located with
|
|
24
|
+
**ACM CCS** (Computer and Communications Security).
|
|
25
|
+
- **Deadline**: 24 July 2026 (check the AoE cutoff on the call each cycle).
|
|
26
|
+
- **Tracks**: full research papers; **benchmark papers** (new evaluation frameworks or datasets
|
|
27
|
+
**with artifact sharing** — a track of its own); position and SoK (systematization of knowledge)
|
|
28
|
+
papers. Pitch to the bar of the chosen track.
|
|
29
|
+
- **Format**: ACM double-column (`sigconf`). Build with `pdflatex; bibtex; pdflatex; pdflatex`; add
|
|
30
|
+
`\microtypesetup{expansion=false}` (the most common acmart crash).
|
|
31
|
+
- **Blind model**: **double-blind** — `\documentclass[sigconf,review,anonymous]{acmart}`, author
|
|
32
|
+
`Anonymous Author(s)`. See `submit-paper` §0/§4.
|
|
33
|
+
- **Archival**: accepted papers go into the CCS workshop proceedings in the ACM Digital Library,
|
|
34
|
+
with a DOI.
|
|
35
|
+
- **No supplementary-material field** on the form: host the artifact externally, anonymized (a
|
|
36
|
+
view-only link), and `\url{}` it in the Availability section. See `submit-paper` §2 and
|
|
37
|
+
`paper-pipeline/references/anonymization.md`.
|
|
38
|
+
|
|
39
|
+
## Paper kinds and limits
|
|
40
|
+
|
|
41
|
+
Verbatim from the call: «Submitted papers must be at most 10 pages long in double-column ACM
|
|
42
|
+
format---excluding bibliography and well-marked appendices, for which up to two additional pages
|
|
43
|
+
can be used (hence, the paper's overall length must be of 12 pages at most).»
|
|
44
|
+
|
|
45
|
+
The limits are the same for every track; the preset keeps one kind per track so a paper's
|
|
46
|
+
`paperlint.json` says which track it was submitted under.
|
|
47
|
+
|
|
48
|
+
| kind | body pages | pages of bibliography and appendices |
|
|
49
|
+
| ----------- | ---------: | -----------------------------------: |
|
|
50
|
+
| `research` | 10 | 2 |
|
|
51
|
+
| `benchmark` | 10 | 2 |
|
|
52
|
+
| `position` | 10 | 2 |
|
|
53
|
+
| `sok` | 10 | 2 |
|
|
54
|
+
|
|
55
|
+
⚠️ The venue tolerates a 13th page that holds **only** the generative-AI paragraph («Too many pages:
|
|
56
|
+
the limit is 12 pages, found 13» is then acceptable). `format/page-limit` does not know this
|
|
57
|
+
exception and reports the 13th page; a person clears that case by eye.
|
|
58
|
+
|
|
59
|
+
## What else the preset encodes
|
|
60
|
+
|
|
61
|
+
- **The ACM template**, through `extends: paperlint:acm-sigconf` — AISec points to the main ACM
|
|
62
|
+
CCS formatting instructions and publishes no numbers of its own ([`acm-sigconf.md`](acm-sigconf.md)).
|
|
63
|
+
- **Names**: `AISec` and `ACM CCS`, what `tex/venue-leftover` looks for in another venue's paper.
|
|
64
|
+
- **No rules of its own**: nothing says who produces the AISec proceedings or whether they require
|
|
65
|
+
a balanced last page. A paper turns `pdf/last-page-balance` on in its own `paperlint.json` if the
|
|
66
|
+
camera-ready instructions ask for it.
|
|
67
|
+
|
|
68
|
+
## What decides acceptance at a security venue
|
|
69
|
+
|
|
70
|
+
1. **Threat-model soundness.** Name the attacker and their capabilities (what they observe and
|
|
71
|
+
control, their goal, their budget), and separate accidental failure from an adaptive adversary
|
|
72
|
+
— conflating the two is the classic reject. The threat model goes up front.
|
|
73
|
+
2. **Ethics and responsible disclosure — a hard reject vector.**
|
|
74
|
+
- Anonymize studied third parties too: aggregate statistics and use anonymized IDs for the
|
|
75
|
+
entities studied, rather than naming maintainers or projects.
|
|
76
|
+
- Disclose findings to affected parties **before** any de-anonymized release; the paper states
|
|
77
|
+
the disclosure timeline and the release gate that holds de-anonymized data back until then.
|
|
78
|
+
- The anonymized artifact must itself be leak-free — the released files, not just the PDF. A
|
|
79
|
+
named entity in the artifact is invisible to a paper-only read.
|
|
80
|
+
3. **Dual use.** A paper that publishes an evasion or attack technique publishes its fix with it.
|
|
81
|
+
4. **Generative-AI disclosure.** ACM and CCS require stating how generative AI was used in the
|
|
82
|
+
work (writing, code, experiments).
|
|
83
|
+
|
|
84
|
+
## Track fit
|
|
85
|
+
|
|
86
|
+
Adversarial ML, ML for security and security for ML, LLM and agent safety and security, evaluation
|
|
87
|
+
and benchmarking of AI-security defenses, poisoning, evasion and extraction, and rigorous
|
|
88
|
+
measurement of whether a claimed safety mechanism holds. A measurement paper that ships a reusable
|
|
89
|
+
evaluation framework and an anonymized artifact fits the benchmark track; name the track in the
|
|
90
|
+
abstract.
|
|
91
|
+
|
|
92
|
+
## Compose with
|
|
93
|
+
|
|
94
|
+
- `submit-paper` — the mechanics: HotCRP form, anonymous artifact hosting, "ready for review".
|
|
95
|
+
- `camera-ready` — de-anonymization and the release gate after acceptance.
|
|
96
|
+
- `pc-panel-review` — its ethics lens and artifact-runner lens (plant a leak, confirm it is caught).
|
|
97
|
+
- `paper-pipeline/references/artifact-checklist.md` and `paper-pipeline/references/anonymization.md`.
|
|
98
|
+
|
|
99
|
+
## Camera-ready
|
|
100
|
+
|
|
101
|
+
AISec is an ACM venue, so the final's mechanics are the ACM ones in the `submit-paper` skill's
|
|
102
|
+
`references/publishers/acm.md`: eRights first (it needs the final title), the preamble out of
|
|
103
|
+
submission mode, source files beside the PDF, CCS concepts from the 2012 CCS browser. AISec's own
|
|
104
|
+
DOI, ISBN, copyright line and dates are added here when the venue publishes them.
|
|
105
|
+
|
|
106
|
+
## What the preset resolves to
|
|
107
|
+
|
|
108
|
+
<!-- paperlint:preset-rules -->
|
|
109
|
+
<!-- prettier-ignore-start -->
|
|
110
|
+
<!-- Generated from aisec.jsonc by `npx eslint --fix` (rule preset/card-rules). Edit the preset, not this section. -->
|
|
111
|
+
|
|
112
|
+
**`paperlint:aisec`** — venue preset for AISec · call for papers: <https://aisec.cc/> · extends `paperlint:acm-sigconf`
|
|
113
|
+
|
|
114
|
+
No preset of this chain sets a rule: under it, every rule keeps paperlint's default.
|
|
115
|
+
|
|
116
|
+
<!-- prettier-ignore-end -->
|
|
117
|
+
<!-- /paperlint:preset-rules -->
|
|
@@ -24,7 +24,12 @@
|
|
|
24
24
|
// aidc.jsonc). The planted defects fail as they should, measured on the same compsoc paper:
|
|
25
25
|
// `a4paper` added to the options → page 8.264 x 11.694 in: pdf/geometry
|
|
26
26
|
// Computer Modern (`\rmdefault{cmr}`) → fonts CMR10, CMBX12, …: pdf/fonts, no NimbusRomNo9L
|
|
27
|
+
//
|
|
28
|
+
// Its card, in prose: `ieee-conference.md` beside this file.
|
|
27
29
|
{
|
|
30
|
+
// A template family: it names no venue, so no `name` and no `url` (the venues that extend it do).
|
|
31
|
+
"type": "family",
|
|
32
|
+
|
|
28
33
|
"template": "\\documentclass[conference]{IEEEtran}",
|
|
29
34
|
|
|
30
35
|
// TeX Live packages the IEEEtran template needs ON TOP OF tex-base.jsonc, each with the files that
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "IEEE IEEEtran conference — template family card"
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# IEEE `IEEEtran` conference
|
|
6
|
+
|
|
7
|
+
The card of the template family `paperlint:ieee-conference`
|
|
8
|
+
([`ieee-conference.jsonc`](ieee-conference.jsonc)). A family is what a publisher's template
|
|
9
|
+
decides, whatever the venue: it names no venue and has no call for papers. A venue preset extends
|
|
10
|
+
it and adds what its own call sets — the class options it names, the page limit of each kind of
|
|
11
|
+
paper, the sections it requires. The template is [IEEEtran on CTAN](https://ctan.org/pkg/ieeetran).
|
|
12
|
+
|
|
13
|
+
## What the family encodes
|
|
14
|
+
|
|
15
|
+
- **The class**: `\documentclass[conference]{IEEEtran}`. A venue that requires `compsoc` names it
|
|
16
|
+
in its own template and its own text block (as `aidc` does).
|
|
17
|
+
- **The page**: US letter, 8.5 × 11 in; the text block of `[conference]`, 7.14 × 9.30 in; two
|
|
18
|
+
columns.
|
|
19
|
+
- **The fonts**: Times (the URW clone the PDF names NimbusRomNo9L) for text, headings and title;
|
|
20
|
+
body at 10 pt, the bibliography at 8 pt (IEEEtran sets it in `\footnotesize`).
|
|
21
|
+
- **TeX packages** on top of the base set: ieeetran, cite, psnfss and times.
|
|
22
|
+
|
|
23
|
+
The numbers are measured, not copied: IEEE's own template files (`bare_conf.tex`,
|
|
24
|
+
`bare_conf_compsoc.tex`) and a 13-page paper built on each with IEEEtran.cls V1.8b, on two TeX Live
|
|
25
|
+
versions. `compsoc` changes the text block and the headings, and nothing the `pdf/*` rules judge.
|
|
26
|
+
|
|
27
|
+
## What the family resolves to
|
|
28
|
+
|
|
29
|
+
<!-- paperlint:preset-rules -->
|
|
30
|
+
<!-- prettier-ignore-start -->
|
|
31
|
+
<!-- Generated from ieee-conference.jsonc by `npx eslint --fix` (rule preset/card-rules). Edit the preset, not this section. -->
|
|
32
|
+
|
|
33
|
+
**`paperlint:ieee-conference`** — template family, no venue of its own · extended by `paperlint:aidc`
|
|
34
|
+
|
|
35
|
+
No preset of this chain sets a rule: under it, every rule keeps paperlint's default.
|
|
36
|
+
|
|
37
|
+
<!-- prettier-ignore-end -->
|
|
38
|
+
<!-- /paperlint:preset-rules -->
|
package/presets/realm.jsonc
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// REALM @ EMNLP 2026 format profile — ACL family, NOT ACM. Prose is in `realm.md`
|
|
2
|
-
// the family's shared rules are in `paper-pipeline/references/acl-venue-rules.md`.
|
|
1
|
+
// REALM @ EMNLP 2026 format profile — ACL family, NOT ACM. Prose is in its card, `realm.md`
|
|
2
|
+
// beside this file; the family's shared rules are in `paper-pipeline/references/acl-venue-rules.md`.
|
|
3
3
|
//
|
|
4
4
|
// 🔴 THE GEOMETRY NUMBERS ARE MEASURED, NOT COPIED. banal run against our own build
|
|
5
5
|
// (`repro/build-submission.sh` → `build/acl_latex.pdf`, 2026-08-26):
|
|
@@ -8,6 +8,11 @@
|
|
|
8
8
|
// acmart (letter 8.5x11, size 9, Libertine) shares NOTHING with this — copying the numbers from
|
|
9
9
|
// `agenticdev.jsonc` would give a gate that reddens on a correct paper.
|
|
10
10
|
{
|
|
11
|
+
"type": "venue",
|
|
12
|
+
"name": "REALM",
|
|
13
|
+
// The workshop's call for papers, which the page limits below are quoted from.
|
|
14
|
+
"url": "https://realm-workshop.github.io/call_for_papers",
|
|
15
|
+
|
|
11
16
|
// ACL's template is not a class: `acl_latex.tex` opens with `\documentclass[11pt]{article}` and
|
|
12
17
|
// loads `acl.sty` as a package (https://github.com/acl-org/acl-style-files, checked 2026-09-27).
|
|
13
18
|
// So the class `tex/template` compares against is article, at 11pt.
|