paperlint 13.1.0 → 13.3.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/ci.yml +10 -0
- package/CLAUDE.md +9 -1
- package/dist/adapters/git/index.d.ts.map +1 -1
- package/dist/adapters/git/index.js +13 -0
- package/dist/adapters/git/index.js.map +1 -1
- package/dist/adapters/study-registry/index.d.ts +142 -1
- package/dist/adapters/study-registry/index.d.ts.map +1 -1
- package/dist/adapters/study-registry/index.js +160 -1
- package/dist/adapters/study-registry/index.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +2 -2
- package/dist/doctor.js.map +1 -1
- package/dist/domain/decide-first.d.ts +43 -0
- package/dist/domain/decide-first.d.ts.map +1 -1
- package/dist/domain/decide-first.js +45 -2
- package/dist/domain/decide-first.js.map +1 -1
- package/dist/domain/study-gates.d.ts +96 -0
- package/dist/domain/study-gates.d.ts.map +1 -0
- package/dist/domain/study-gates.js +56 -0
- package/dist/domain/study-gates.js.map +1 -0
- package/dist/domain/study-mode.d.ts +6 -0
- package/dist/domain/study-mode.d.ts.map +1 -1
- package/dist/domain/study-mode.js.map +1 -1
- package/dist/domain/study-registry.d.ts +24 -4
- package/dist/domain/study-registry.d.ts.map +1 -1
- package/dist/domain/study-registry.js +39 -2
- package/dist/domain/study-registry.js.map +1 -1
- package/dist/domain/study-result.d.ts +151 -0
- package/dist/domain/study-result.d.ts.map +1 -0
- package/dist/domain/study-result.js +175 -0
- package/dist/domain/study-result.js.map +1 -0
- package/dist/outputs-before-decision-rule.d.ts.map +1 -1
- package/dist/outputs-before-decision-rule.js +37 -3
- package/dist/outputs-before-decision-rule.js.map +1 -1
- package/dist/ports/git-history.d.ts +12 -0
- package/dist/ports/git-history.d.ts.map +1 -1
- package/dist/ports/study-registry-codec.d.ts +3 -0
- package/dist/ports/study-registry-codec.d.ts.map +1 -1
- package/dist/skills/assess-novelty/scripts/candidate_page.d.ts +1 -0
- package/dist/skills/assess-novelty/scripts/novelty_reader_brief.d.ts +25 -0
- package/dist/skills/build-label-page/scripts/label-page-cli.d.ts +6 -0
- package/dist/skills/build-label-page/scripts/label-page-commands.d.ts +14 -0
- package/dist/skills/build-label-page/scripts/label-page-core.d.ts +149 -0
- package/dist/skills/build-label-page/scripts/label-page-html.d.ts +5 -0
- package/dist/skills/build-label-page/scripts/label-page.d.ts +2 -0
- package/dist/study-modes.d.ts +3 -0
- package/dist/study-modes.d.ts.map +1 -1
- package/dist/study-modes.js +8 -1
- package/dist/study-modes.js.map +1 -1
- package/dist/study-registry-rule.d.ts.map +1 -1
- package/dist/study-registry-rule.js +1 -0
- package/dist/study-registry-rule.js.map +1 -1
- package/dist/study-result-rule.d.ts +12 -0
- package/dist/study-result-rule.d.ts.map +1 -0
- package/dist/study-result-rule.js +87 -0
- package/dist/study-result-rule.js.map +1 -0
- package/docs/design/study-gates.md +208 -0
- package/docs/rules/repro/outputs-before-decision.md +8 -0
- package/docs/rules/repro/study-registered.md +38 -15
- package/docs/rules/repro/study-result.md +100 -0
- package/docs/rules.md +1 -0
- package/docs/toolchain.md +1 -1
- package/eslint.config.mjs +52 -0
- package/package.json +3 -1
- package/presets/agentverify.md +15 -4
- package/schemas/plan.v2.schema.json +341 -0
- package/skills/assess-novelty/scripts/candidate_page.css +31 -0
- package/skills/assess-novelty/scripts/candidate_page.html +934 -0
- package/skills/assess-novelty/scripts/candidate_page.js +165 -0
- package/skills/assess-novelty/scripts/candidate_page.test.ts +401 -0
- package/skills/assess-novelty/scripts/candidate_page.ts +194 -0
- package/skills/assess-novelty/scripts/check_novelty.py +230 -0
- package/skills/assess-novelty/scripts/check_novelty.test.ts +490 -0
- package/skills/assess-novelty/scripts/check_novelty_coverage.test.ts +176 -0
- package/skills/assess-novelty/scripts/crop_quote.py +104 -0
- package/skills/assess-novelty/scripts/crop_quote.test.ts +130 -0
- package/skills/assess-novelty/scripts/fixtures/crop-quote/make_sample.py +42 -0
- package/skills/assess-novelty/scripts/fixtures/crop-quote/sample.pdf +106 -0
- package/skills/assess-novelty/scripts/fixtures/novelty/CLAIMS.md +11 -0
- package/skills/assess-novelty/scripts/fixtures/novelty/paper.tex +10 -0
- package/skills/assess-novelty/scripts/fixtures/novelty/siblings/2026-10-27-novelty-refutation.md +8 -0
- package/skills/assess-novelty/scripts/fixtures/novelty/siblings/data/doe-preprint.txt +63 -0
- package/skills/assess-novelty/scripts/fixtures/novelty/siblings/novelty.json +54 -0
- package/skills/assess-novelty/scripts/novelty_candidates.py +136 -0
- package/skills/assess-novelty/scripts/novelty_candidates.test.ts +222 -0
- package/skills/assess-novelty/scripts/novelty_cells.py +88 -0
- package/skills/assess-novelty/scripts/novelty_cells.test.ts +159 -0
- package/skills/assess-novelty/scripts/novelty_coverage.py +55 -0
- package/skills/assess-novelty/scripts/novelty_reader_brief.js +165 -0
- package/skills/assess-novelty/scripts/novelty_reader_brief.test.ts +251 -0
- package/skills/assess-novelty/scripts/novelty_reader_brief.ts +215 -0
- package/skills/assess-novelty/scripts/quote_match.py +34 -0
- package/skills/assess-novelty/scripts/script_edges.test.ts +174 -0
- package/skills/build-label-page/SKILL.md +85 -54
- package/skills/build-label-page/SKILL.md.spec.ts +85 -53
- package/skills/build-label-page/build-label-page.test.ts +10 -941
- package/skills/build-label-page/references/checklist.md +45 -3
- package/skills/build-label-page/references/closed-choice-generator.md +88 -0
- package/skills/build-label-page/scripts/label-page-cli.js +72 -0
- package/skills/build-label-page/scripts/label-page-cli.ts +85 -0
- package/skills/build-label-page/scripts/label-page-commands.js +14 -0
- package/skills/build-label-page/scripts/label-page-commands.ts +14 -0
- package/skills/build-label-page/scripts/label-page-core.js +850 -0
- package/skills/build-label-page/scripts/label-page-core.test.ts +1164 -0
- package/skills/build-label-page/scripts/label-page-core.ts +1210 -0
- package/skills/build-label-page/scripts/label-page-html.js +33 -0
- package/skills/build-label-page/scripts/label-page-html.test.ts +413 -0
- package/skills/build-label-page/scripts/label-page-html.ts +43 -0
- package/skills/build-label-page/scripts/label-page.js +70 -0
- package/skills/build-label-page/scripts/label-page.test.ts +71 -0
- package/skills/build-label-page/scripts/label-page.ts +71 -0
- package/skills/build-label-page/scripts/page-template.html +513 -0
- package/src/adapters/git/index.test.ts +33 -0
- package/src/adapters/git/index.ts +19 -0
- package/src/adapters/study-registry/gates.test.ts +181 -0
- package/src/adapters/study-registry/index.ts +219 -1
- package/src/adapters/study-registry/mode.test.ts +6 -0
- package/src/cli.ts +3 -0
- package/src/doctor.ts +4 -2
- package/src/domain/decide-first.test.ts +131 -0
- package/src/domain/decide-first.ts +92 -2
- package/src/domain/study-gates.ts +125 -0
- package/src/domain/study-measurements.test.ts +71 -0
- package/src/domain/study-mode.ts +6 -0
- package/src/domain/study-registry.ts +64 -2
- package/src/domain/study-result.test.ts +300 -0
- package/src/domain/study-result.ts +358 -0
- package/src/outputs-before-decision-rule.test.ts +115 -2
- package/src/outputs-before-decision-rule.ts +50 -2
- package/src/ports/git-history.ts +12 -0
- package/src/ports/study-registry-codec.ts +3 -0
- package/src/rule-cases.test.ts +74 -0
- package/src/studies.test.ts +3 -0
- package/src/study-modes.ts +10 -1
- package/src/study-registry-rule.ts +1 -0
- package/src/study-result-rule.test.ts +281 -0
- package/src/study-result-rule.ts +123 -0
- package/skills/build-label-page/references/example-generator.py +0 -803
package/.github/workflows/ci.yml
CHANGED
|
@@ -86,6 +86,11 @@ jobs:
|
|
|
86
86
|
run: npm ci
|
|
87
87
|
timeout-minutes: 5
|
|
88
88
|
|
|
89
|
+
# skills/assess-novelty/scripts/crop_quote.py reads PDFs with PyMuPDF (python3 ships on the runners).
|
|
90
|
+
- name: PyMuPDF for the novelty scripts
|
|
91
|
+
run: python3 -m pip install --break-system-packages pymupdf
|
|
92
|
+
timeout-minutes: 3
|
|
93
|
+
|
|
89
94
|
# Harnesses. `--min=1` is inside the script: it refuses a run where NOTHING matched.
|
|
90
95
|
#
|
|
91
96
|
# 🔴 WHAT IT DOES NOT DO, contrary to what was written here before 17.09: it does NOT protect
|
|
@@ -236,6 +241,11 @@ jobs:
|
|
|
236
241
|
run: npm ci
|
|
237
242
|
timeout-minutes: 8
|
|
238
243
|
|
|
244
|
+
# skills/assess-novelty/scripts/crop_quote.py reads PDFs with PyMuPDF (python3 ships on the runners).
|
|
245
|
+
- name: PyMuPDF for the novelty scripts
|
|
246
|
+
run: python3 -m pip install --break-system-packages pymupdf
|
|
247
|
+
timeout-minutes: 3
|
|
248
|
+
|
|
239
249
|
# Issue #9's distinction: prints BOTH spellings of the temp root. If they match, this machine
|
|
240
250
|
# is not the platform the macOS cell exists for, and green below says nothing about it.
|
|
241
251
|
- name: two spellings of one directory — does this machine see them
|
package/CLAUDE.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- vigiles:sha256:
|
|
1
|
+
<!-- vigiles:sha256:08ea3aae9448b383 compiled from CLAUDE.md.spec.ts -->
|
|
2
2
|
|
|
3
3
|
# CLAUDE.md
|
|
4
4
|
|
|
@@ -78,6 +78,14 @@ Before writing machinery, **run the thing you are about to replace and paste its
|
|
|
78
78
|
|
|
79
79
|
**Guidance only** — Read "this is quick" as a warning. Show the defect (output, or a quoted line), name the layer and channel (more than one is a conversation, not a commit), and spend an adversarial pass on forks and on anything that goes outward.
|
|
80
80
|
|
|
81
|
+
### Show A Checks Whole Flow
|
|
82
|
+
|
|
83
|
+
**Guidance only** — When a change adds or changes a gate (a plan field, a lint rule, a result check), show the author the whole flow in English as a diagram before building it: each stage, who writes it, which rule checks it, when it fires, what turns red, and what the machine cannot see. The author asked for this format (2026-11-01).
|
|
84
|
+
|
|
85
|
+
### Split A Pull Request Over 1000 Lines
|
|
86
|
+
|
|
87
|
+
**Guidance only** — A pull request stays at most about 1000 changed lines (`git diff --shortstat origin/main`, tests and docs included), so the author can skim all of it. A feature asked for while a PR is open goes in a new PR, not into the open one. Larger work is split into PRs that each stand on their own. The author asked for this after a 7000-line PR (2026-11-01).
|
|
88
|
+
|
|
81
89
|
### Installing Paperlint Is Smooth
|
|
82
90
|
|
|
83
91
|
**Guidance only** — The target is `npm i` plus one command; any further manual step is a paperlint defect, except a choice that really belongs to the user, named when it is asked. An automatic step that can fail silently is worse than an explicit one.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/git/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/git/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,QAAQ,EAIR,UAAU,EACV,QAAQ,EAGT,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAoDtE;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAWtC,CAAC;AAEpC,oCAAoC;AACpC,wBAAgB,UAAU,CACxB,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GACpC,UAAU,GAAG,QAAQ,CAqBvB"}
|
|
@@ -71,8 +71,21 @@ export function gitHistory(run, env) {
|
|
|
71
71
|
: { kind: "changed", commit };
|
|
72
72
|
},
|
|
73
73
|
order: (studyDir, decision) => orderIn(git, studyDir, decision),
|
|
74
|
+
fileAt: (studyDir, commit, path) => fileAtIn(git, studyDir, commit, path),
|
|
74
75
|
};
|
|
75
76
|
}
|
|
77
|
+
/** `path` (relative to `studyDir`) at `commit`: `ls-tree` says whether it is there, `show` gives its text. */
|
|
78
|
+
const fileAtIn = (git, studyDir, commit, path) => {
|
|
79
|
+
const listed = git(studyDir, ["ls-tree", "--name-only", commit, "--", path]);
|
|
80
|
+
if ("why" in listed)
|
|
81
|
+
return { kind: "unknown", why: listed.why };
|
|
82
|
+
if (listed.out.trim() === "")
|
|
83
|
+
return { kind: "absent" };
|
|
84
|
+
const shown = git(studyDir, ["show", `${commit}:./${path}`]);
|
|
85
|
+
return "why" in shown
|
|
86
|
+
? { kind: "unknown", why: shown.why }
|
|
87
|
+
: { kind: "text", text: shown.out };
|
|
88
|
+
};
|
|
76
89
|
/** Whether `file` is in HEAD's tree (`git ls-tree`, which takes an absolute path in the worktree). */
|
|
77
90
|
const inHead = (git, cwd, file) => {
|
|
78
91
|
const t = git(cwd, ["ls-tree", "--name-only", "HEAD", "--", file]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/git/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/git/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
import { z } from "zod";
|
|
21
21
|
import { type Approval, type AuthorCheck, type Measurement, type ParsedPlan, type ParsedRegistry, type Requirement, type Study, type PlanTextField, type StudyKind, type StudyPlan, type StudyRegistry } from "../../domain/study-registry.ts";
|
|
22
22
|
import { type Decision, type StudyMode } from "../../domain/study-mode.ts";
|
|
23
|
+
import { type Funnel, type KappaStep, type RecallAudit, type SecondCheck, type SelfTest, type WeLoseIf } from "../../domain/study-gates.ts";
|
|
24
|
+
import { type ParsedResult, type StudyResult } from "../../domain/study-result.ts";
|
|
23
25
|
import type { StudyRegistryCodec } from "../../ports/study-registry-codec.ts";
|
|
24
26
|
declare const study: z.ZodObject<{
|
|
25
27
|
id: z.ZodString;
|
|
@@ -150,6 +152,35 @@ declare const decisionShape: z.ZodObject<{
|
|
|
150
152
|
file: z.ZodString;
|
|
151
153
|
note: z.ZodString;
|
|
152
154
|
}, z.core.$strict>;
|
|
155
|
+
/** When the claim loses: below a threshold or above one, exactly one of the two. */
|
|
156
|
+
declare const weLoseIf: z.ZodUnion<readonly [z.ZodObject<{
|
|
157
|
+
result: z.ZodString;
|
|
158
|
+
below: z.ZodNumber;
|
|
159
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
160
|
+
result: z.ZodString;
|
|
161
|
+
above: z.ZodNumber;
|
|
162
|
+
}, z.core.$strict>]>;
|
|
163
|
+
declare const kappaStep: z.ZodObject<{
|
|
164
|
+
step: z.ZodString;
|
|
165
|
+
min_kappa: z.ZodNumber;
|
|
166
|
+
}, z.core.$strict>;
|
|
167
|
+
/** The steps judged by two raters, each named once; or none. */
|
|
168
|
+
declare const secondCheck: z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodArray<z.ZodObject<{
|
|
169
|
+
step: z.ZodString;
|
|
170
|
+
min_kappa: z.ZodNumber;
|
|
171
|
+
}, z.core.$strict>>]>;
|
|
172
|
+
declare const selfTest: z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodObject<{
|
|
173
|
+
made_by: z.ZodString;
|
|
174
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
175
|
+
must_catch: z.ZodString;
|
|
176
|
+
must_pass: z.ZodString;
|
|
177
|
+
}, z.core.$strict>]>;
|
|
178
|
+
declare const funnel: z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodArray<z.ZodString>]>;
|
|
179
|
+
/** The audit of the extractor: files a person reads in full, and the least recall in (0, 1]. */
|
|
180
|
+
declare const recallAudit: z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodObject<{
|
|
181
|
+
n_files: z.ZodNumber;
|
|
182
|
+
min_recall: z.ZodNumber;
|
|
183
|
+
}, z.core.$strict>]>;
|
|
153
184
|
/** How the outcomes are kept from the decisions: exactly one mode, by its `kind`. */
|
|
154
185
|
declare const mode: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
155
186
|
kind: z.ZodLiteral<"decide_before_run">;
|
|
@@ -158,6 +189,13 @@ declare const mode: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
158
189
|
file: z.ZodString;
|
|
159
190
|
note: z.ZodString;
|
|
160
191
|
}, z.core.$strict>;
|
|
192
|
+
we_lose_if: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodObject<{
|
|
193
|
+
result: z.ZodString;
|
|
194
|
+
below: z.ZodNumber;
|
|
195
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
196
|
+
result: z.ZodString;
|
|
197
|
+
above: z.ZodNumber;
|
|
198
|
+
}, z.core.$strict>]>>>;
|
|
161
199
|
}, z.core.$strict>, z.ZodObject<{
|
|
162
200
|
kind: z.ZodLiteral<"exploratory">;
|
|
163
201
|
reason: z.ZodString;
|
|
@@ -193,11 +231,41 @@ declare const planShape: z.ZodObject<{
|
|
|
193
231
|
file: z.ZodString;
|
|
194
232
|
note: z.ZodString;
|
|
195
233
|
}, z.core.$strict>;
|
|
234
|
+
we_lose_if: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodObject<{
|
|
235
|
+
result: z.ZodString;
|
|
236
|
+
below: z.ZodNumber;
|
|
237
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
238
|
+
result: z.ZodString;
|
|
239
|
+
above: z.ZodNumber;
|
|
240
|
+
}, z.core.$strict>]>>>;
|
|
196
241
|
}, z.core.$strict>, z.ZodObject<{
|
|
197
242
|
kind: z.ZodLiteral<"exploratory">;
|
|
198
243
|
reason: z.ZodString;
|
|
199
244
|
}, z.core.$strict>], "kind">>;
|
|
245
|
+
$schema: z.ZodOptional<z.ZodLiteral<"https://unpkg.com/paperlint/schemas/plan.v2.schema.json">>;
|
|
246
|
+
second_check: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodArray<z.ZodObject<{
|
|
247
|
+
step: z.ZodString;
|
|
248
|
+
min_kappa: z.ZodNumber;
|
|
249
|
+
}, z.core.$strict>>]>>>;
|
|
250
|
+
self_test: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodObject<{
|
|
251
|
+
made_by: z.ZodString;
|
|
252
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
253
|
+
must_catch: z.ZodString;
|
|
254
|
+
must_pass: z.ZodString;
|
|
255
|
+
}, z.core.$strict>]>>>;
|
|
256
|
+
funnel: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodArray<z.ZodString>]>>>;
|
|
257
|
+
recall_audit: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodObject<{
|
|
258
|
+
n_files: z.ZodNumber;
|
|
259
|
+
min_recall: z.ZodNumber;
|
|
260
|
+
}, z.core.$strict>]>>>;
|
|
200
261
|
}, z.core.$strict>;
|
|
262
|
+
/**
|
|
263
|
+
* The JSON Schema of a plan v2, generated from the parser's own shape: what an editor offers for a
|
|
264
|
+
* `plan.json` whose `$schema` names it. Shipped as `schemas/plan.v2.schema.json`; a test holds the
|
|
265
|
+
* file to this. The rules, not the schema, decide: a gate left out of a decide-first mode, or a
|
|
266
|
+
* draft, is theirs to report.
|
|
267
|
+
*/
|
|
268
|
+
export declare const planV2JsonSchema: () => unknown;
|
|
201
269
|
/**
|
|
202
270
|
* A plan under its old name, `prereg.json`, written by hand before the plan had a schema: open at
|
|
203
271
|
* every level, its own top-level keys kept in `extra`. A seed makes the draw seeded, none (or null) a
|
|
@@ -244,6 +312,24 @@ declare const legacyAsPlan: z.ZodPipe<z.ZodObject<{
|
|
|
244
312
|
quote: string;
|
|
245
313
|
} | null | undefined;
|
|
246
314
|
}>>;
|
|
315
|
+
/**
|
|
316
|
+
* A study's `result.json` (src/domain/study-result.ts): open — the study's own numbers by any name —
|
|
317
|
+
* with the four parts the gates read, each of a fixed shape when present.
|
|
318
|
+
*/
|
|
319
|
+
declare const studyResult: z.ZodObject<{
|
|
320
|
+
claim: z.ZodOptional<z.ZodLiteral<"lost">>;
|
|
321
|
+
kappa: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
322
|
+
self_test: z.ZodOptional<z.ZodObject<{
|
|
323
|
+
passed: z.ZodNumber;
|
|
324
|
+
failed: z.ZodNumber;
|
|
325
|
+
}, z.core.$strict>>;
|
|
326
|
+
funnel: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodNumber>>;
|
|
327
|
+
recall_audit: z.ZodOptional<z.ZodObject<{
|
|
328
|
+
files: z.ZodNumber;
|
|
329
|
+
units_in_files: z.ZodNumber;
|
|
330
|
+
extracted: z.ZodNumber;
|
|
331
|
+
}, z.core.$strict>>;
|
|
332
|
+
}, z.core.$loose>;
|
|
247
333
|
/** A plan that parsed: ready, or a draft. */
|
|
248
334
|
type ReadyOrDraft = Exclude<ParsedPlan, {
|
|
249
335
|
readonly kind: "unreadable";
|
|
@@ -279,10 +365,33 @@ declare const planFor: (kind: StudyKind) => z.ZodPipe<z.ZodObject<{
|
|
|
279
365
|
file: z.ZodString;
|
|
280
366
|
note: z.ZodString;
|
|
281
367
|
}, z.core.$strict>;
|
|
368
|
+
we_lose_if: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodObject<{
|
|
369
|
+
result: z.ZodString;
|
|
370
|
+
below: z.ZodNumber;
|
|
371
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
372
|
+
result: z.ZodString;
|
|
373
|
+
above: z.ZodNumber;
|
|
374
|
+
}, z.core.$strict>]>>>;
|
|
282
375
|
}, z.core.$strict>, z.ZodObject<{
|
|
283
376
|
kind: z.ZodLiteral<"exploratory">;
|
|
284
377
|
reason: z.ZodString;
|
|
285
378
|
}, z.core.$strict>], "kind">>;
|
|
379
|
+
$schema: z.ZodOptional<z.ZodLiteral<"https://unpkg.com/paperlint/schemas/plan.v2.schema.json">>;
|
|
380
|
+
second_check: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodArray<z.ZodObject<{
|
|
381
|
+
step: z.ZodString;
|
|
382
|
+
min_kappa: z.ZodNumber;
|
|
383
|
+
}, z.core.$strict>>]>>>;
|
|
384
|
+
self_test: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodObject<{
|
|
385
|
+
made_by: z.ZodString;
|
|
386
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
387
|
+
must_catch: z.ZodString;
|
|
388
|
+
must_pass: z.ZodString;
|
|
389
|
+
}, z.core.$strict>]>>>;
|
|
390
|
+
funnel: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodArray<z.ZodString>]>>>;
|
|
391
|
+
recall_audit: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodLiteral<"none">, z.ZodObject<{
|
|
392
|
+
n_files: z.ZodNumber;
|
|
393
|
+
min_recall: z.ZodNumber;
|
|
394
|
+
}, z.core.$strict>]>>>;
|
|
286
395
|
}, z.core.$strict>, z.ZodTransform<{
|
|
287
396
|
readonly kind: "ready";
|
|
288
397
|
readonly plan: StudyPlan;
|
|
@@ -320,10 +429,33 @@ declare const planFor: (kind: StudyKind) => z.ZodPipe<z.ZodObject<{
|
|
|
320
429
|
file: string;
|
|
321
430
|
note: string;
|
|
322
431
|
};
|
|
432
|
+
we_lose_if?: {
|
|
433
|
+
result: string;
|
|
434
|
+
below: number;
|
|
435
|
+
} | {
|
|
436
|
+
result: string;
|
|
437
|
+
above: number;
|
|
438
|
+
} | null | undefined;
|
|
323
439
|
} | {
|
|
324
440
|
kind: "exploratory";
|
|
325
441
|
reason: string;
|
|
326
442
|
} | undefined;
|
|
443
|
+
$schema?: "https://unpkg.com/paperlint/schemas/plan.v2.schema.json" | undefined;
|
|
444
|
+
second_check?: "none" | {
|
|
445
|
+
step: string;
|
|
446
|
+
min_kappa: number;
|
|
447
|
+
}[] | null | undefined;
|
|
448
|
+
self_test?: "none" | {
|
|
449
|
+
made_by: string;
|
|
450
|
+
} | {
|
|
451
|
+
must_catch: string;
|
|
452
|
+
must_pass: string;
|
|
453
|
+
} | null | undefined;
|
|
454
|
+
funnel?: string[] | "none" | null | undefined;
|
|
455
|
+
recall_audit?: "none" | {
|
|
456
|
+
n_files: number;
|
|
457
|
+
min_recall: number;
|
|
458
|
+
} | null | undefined;
|
|
327
459
|
}>>;
|
|
328
460
|
/**
|
|
329
461
|
* A `prereg.json`: loose, mapped onto the plan, then ready or draft. Written before modes existed, it
|
|
@@ -402,7 +534,14 @@ export type SchemasAreTheDomain = [
|
|
|
402
534
|
Same<z.output<ReturnType<typeof planFor>>, ReadyOrDraft>,
|
|
403
535
|
Same<z.output<typeof legacyPlan>, ReadyOrDraft>,
|
|
404
536
|
Same<z.output<typeof mode>, StudyMode>,
|
|
405
|
-
Same<z.output<typeof decisionShape>, Decision
|
|
537
|
+
Same<z.output<typeof decisionShape>, Decision>,
|
|
538
|
+
Same<z.output<typeof weLoseIf>, WeLoseIf>,
|
|
539
|
+
Same<z.output<typeof kappaStep>, KappaStep>,
|
|
540
|
+
Same<z.output<typeof secondCheck>, SecondCheck>,
|
|
541
|
+
Same<z.output<typeof selfTest>, SelfTest>,
|
|
542
|
+
Same<z.output<typeof funnel>, Funnel>,
|
|
543
|
+
Same<z.output<typeof recallAudit>, RecallAudit>,
|
|
544
|
+
Same<z.output<typeof studyResult>, StudyResult>
|
|
406
545
|
] extends true[] ? true : never;
|
|
407
546
|
/** The proof is used, so the build checks it. */
|
|
408
547
|
export declare const SCHEMAS_ARE_THE_DOMAIN: SchemasAreTheDomain;
|
|
@@ -412,6 +551,8 @@ export declare function parseStudyRegistry(text: string): ParsedRegistry;
|
|
|
412
551
|
export declare const parseStudyPlan: (text: string, kind: StudyKind) => ParsedPlan;
|
|
413
552
|
/** A plan still named `prereg.json`: loose, read only when a row names it. */
|
|
414
553
|
export declare const parseLegacyPlan: (text: string) => ParsedPlan;
|
|
554
|
+
/** A study's `result.json` text, parsed once at the boundary: the result, or every reason it is none. */
|
|
555
|
+
export declare function parseStudyResult(text: string): ParsedResult;
|
|
415
556
|
export declare const studyRegistryCodec: StudyRegistryCodec;
|
|
416
557
|
export {};
|
|
417
558
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/study-registry/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAQL,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,aAAa,EACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,SAAS,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAcT,CAAC;AAIH,QAAA,MAAM,WAAW;;;;;kBAKf,CAAC;AAEH,QAAA,MAAM,QAAQ;;;;;kBAKZ,CAAC;AAEH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;iBAOf,CAAC;AAEH,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAQZ,CAAC;AAEH,QAAA,MAAM,WAAW;;;;kBAAkC,CAAC;AAwFpD,QAAA,MAAM,aAAa;;;kBAAsD,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/study-registry/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,8 @@ import { z } from "zod";
|
|
|
21
21
|
import { README } from "../../domain/repro-layout.js";
|
|
22
22
|
import { IN_PAPER, MEASUREMENT_ROLES, PLAN_FIELDS, PLAN_TEXT_FIELDS, PREFIX_PATTERN, STUDY_KINDS, STUDY_STATUSES, } from "../../domain/study-registry.js";
|
|
23
23
|
import { needsMode, } from "../../domain/study-mode.js";
|
|
24
|
+
import { NONE, PLAN_V2, } from "../../domain/study-gates.js";
|
|
25
|
+
import { CLAIM_LOST, } from "../../domain/study-result.js";
|
|
24
26
|
const study = z.looseObject({
|
|
25
27
|
id: z.string(),
|
|
26
28
|
folder: z.string(),
|
|
@@ -134,12 +136,68 @@ const inPaper = z
|
|
|
134
136
|
const decisionShape = z.strictObject({ file: inPaper, note: z.string() });
|
|
135
137
|
/** The output globs: each once; none yet in a draft. */
|
|
136
138
|
const outputs = z.array(inFolder).superRefine(once("the output"));
|
|
139
|
+
// ── a plan v2's gates (src/domain/study-gates.ts) ───────────────────────────────────
|
|
140
|
+
/** A threshold: a finite number. */
|
|
141
|
+
const threshold = z.number().refine(Number.isFinite, "is not a finite number");
|
|
142
|
+
/** When the claim loses: below a threshold or above one, exactly one of the two. */
|
|
143
|
+
const weLoseIf = z.union([
|
|
144
|
+
z.strictObject({ result: words, below: threshold }),
|
|
145
|
+
z.strictObject({ result: words, above: threshold }),
|
|
146
|
+
]);
|
|
147
|
+
/** The literal that says "this study has none of it". */
|
|
148
|
+
const none = z.literal(NONE);
|
|
149
|
+
const kappaStep = z.strictObject({
|
|
150
|
+
step: words,
|
|
151
|
+
min_kappa: z
|
|
152
|
+
.number()
|
|
153
|
+
.gt(0, "is a kappa above 0")
|
|
154
|
+
.lte(1, "is a kappa of at most 1"),
|
|
155
|
+
});
|
|
156
|
+
/** The steps judged by two raters, each named once; or none. */
|
|
157
|
+
const secondCheck = z.union([
|
|
158
|
+
none,
|
|
159
|
+
z
|
|
160
|
+
.array(kappaStep)
|
|
161
|
+
.min(1, 'lists no step — write "none" when nothing is labelled')
|
|
162
|
+
.superRefine((steps, ctx) => {
|
|
163
|
+
once("the step")(steps.map((t) => t.step), ctx);
|
|
164
|
+
}),
|
|
165
|
+
]);
|
|
166
|
+
/** A path inside the study's folder: a file or a folder. */
|
|
167
|
+
const inStudyFolder = z
|
|
168
|
+
.string()
|
|
169
|
+
.min(1)
|
|
170
|
+
.refine(staysInside, "is not a path inside the study's folder");
|
|
171
|
+
const selfTest = z.union([
|
|
172
|
+
none,
|
|
173
|
+
z.strictObject({ made_by: inStudyFolder }),
|
|
174
|
+
z.strictObject({ must_catch: inStudyFolder, must_pass: inStudyFolder }),
|
|
175
|
+
]);
|
|
176
|
+
const funnel = z.union([
|
|
177
|
+
none,
|
|
178
|
+
z
|
|
179
|
+
.array(words)
|
|
180
|
+
.min(1, 'lists no reason — write "none" when no unit is dropped')
|
|
181
|
+
.superRefine(once("the reason")),
|
|
182
|
+
]);
|
|
183
|
+
/** The audit of the extractor: files a person reads in full, and the least recall in (0, 1]. */
|
|
184
|
+
const recallAudit = z.union([
|
|
185
|
+
none,
|
|
186
|
+
z.strictObject({
|
|
187
|
+
n_files: z.number().int().positive("is at least 1 file"),
|
|
188
|
+
min_recall: z
|
|
189
|
+
.number()
|
|
190
|
+
.gt(0, "is a recall above 0")
|
|
191
|
+
.lte(1, "is a recall of at most 1"),
|
|
192
|
+
}),
|
|
193
|
+
]);
|
|
137
194
|
/** How the outcomes are kept from the decisions: exactly one mode, by its `kind`. */
|
|
138
195
|
const mode = z.discriminatedUnion("kind", [
|
|
139
196
|
z.strictObject({
|
|
140
197
|
kind: z.literal("decide_before_run"),
|
|
141
198
|
outputs,
|
|
142
199
|
decision: decisionShape,
|
|
200
|
+
we_lose_if: weLoseIf.nullable().optional(),
|
|
143
201
|
}),
|
|
144
202
|
z.strictObject({ kind: z.literal("exploratory"), reason: z.string() }),
|
|
145
203
|
]);
|
|
@@ -152,7 +210,57 @@ const planShape = z.strictObject({
|
|
|
152
210
|
author_check: authorCheck.nullable(),
|
|
153
211
|
extra: extra.optional(),
|
|
154
212
|
mode: mode.optional(),
|
|
213
|
+
$schema: z.literal(PLAN_V2).optional(),
|
|
214
|
+
second_check: secondCheck.nullable().optional(),
|
|
215
|
+
self_test: selfTest.nullable().optional(),
|
|
216
|
+
funnel: funnel.nullable().optional(),
|
|
217
|
+
recall_audit: recallAudit.nullable().optional(),
|
|
155
218
|
});
|
|
219
|
+
/**
|
|
220
|
+
* The JSON Schema of a plan v2, generated from the parser's own shape: what an editor offers for a
|
|
221
|
+
* `plan.json` whose `$schema` names it. Shipped as `schemas/plan.v2.schema.json`; a test holds the
|
|
222
|
+
* file to this. The rules, not the schema, decide: a gate left out of a decide-first mode, or a
|
|
223
|
+
* draft, is theirs to report.
|
|
224
|
+
*/
|
|
225
|
+
export const planV2JsonSchema = () => z.toJSONSchema(planShape.extend({
|
|
226
|
+
$schema: z.literal(PLAN_V2),
|
|
227
|
+
second_check: secondCheck.nullable(),
|
|
228
|
+
self_test: selfTest.nullable(),
|
|
229
|
+
funnel: funnel.nullable(),
|
|
230
|
+
recall_audit: recallAudit.nullable(),
|
|
231
|
+
}), { io: "input", unrepresentable: "any" });
|
|
232
|
+
/** The gates a plan v2 declares at its top, each present (null while undecided). */
|
|
233
|
+
const V2_GATES = [
|
|
234
|
+
"second_check",
|
|
235
|
+
"self_test",
|
|
236
|
+
"funnel",
|
|
237
|
+
"recall_audit",
|
|
238
|
+
];
|
|
239
|
+
/**
|
|
240
|
+
* A plan v2 declares every gate, and a decide-first mode its `we_lose_if`; a plan v1 declares none
|
|
241
|
+
* of them: a gate in a plan that does not say it is v2 would be read by nobody.
|
|
242
|
+
*/
|
|
243
|
+
const gatesOfItsVersion = (p, ctx) => {
|
|
244
|
+
const v2 = p.$schema !== undefined;
|
|
245
|
+
const decided = p.mode?.kind === "decide_before_run" ? p.mode : undefined;
|
|
246
|
+
const gates = [
|
|
247
|
+
...V2_GATES.map((g) => ({ path: [g], value: p[g] })),
|
|
248
|
+
...(decided === undefined
|
|
249
|
+
? []
|
|
250
|
+
: [{ path: ["mode", "we_lose_if"], value: decided.we_lose_if }]),
|
|
251
|
+
];
|
|
252
|
+
gates
|
|
253
|
+
.filter((g) => (g.value === undefined) === v2)
|
|
254
|
+
.forEach((g) => {
|
|
255
|
+
ctx.addIssue({
|
|
256
|
+
code: "custom",
|
|
257
|
+
path: g.path,
|
|
258
|
+
message: v2
|
|
259
|
+
? 'is missing, and a plan v2 declares it — "none" when the study has none of it, null until decided'
|
|
260
|
+
: `is a field of a plan v2 — add "$schema": "${PLAN_V2}"`,
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
};
|
|
156
264
|
/**
|
|
157
265
|
* A plan under its old name, `prereg.json`, written by hand before the plan had a schema: open at
|
|
158
266
|
* every level, its own top-level keys kept in `extra`. A seed makes the draw seeded, none (or null) a
|
|
@@ -216,6 +324,45 @@ const modeEmpties = (p, kind) => {
|
|
|
216
324
|
(f === "mode.decision.file" && !says(m.decision.file)) ||
|
|
217
325
|
(f === "mode.decision.note" && !says(m.decision.note)));
|
|
218
326
|
};
|
|
327
|
+
/** A count: a whole number, 0 or more. */
|
|
328
|
+
const count = z.number().int().nonnegative();
|
|
329
|
+
/**
|
|
330
|
+
* A study's `result.json` (src/domain/study-result.ts): open — the study's own numbers by any name —
|
|
331
|
+
* with the four parts the gates read, each of a fixed shape when present.
|
|
332
|
+
*/
|
|
333
|
+
const studyResult = z.looseObject({
|
|
334
|
+
claim: z.literal(CLAIM_LOST).optional(),
|
|
335
|
+
// Cohen's kappa lies in -1..1: a percentage (75) or a count is refused here, not compared with a bar.
|
|
336
|
+
kappa: z
|
|
337
|
+
.record(z.string(), z
|
|
338
|
+
.number()
|
|
339
|
+
.gte(-1, "is a kappa of at least -1")
|
|
340
|
+
.lte(1, "is a kappa of at most 1"))
|
|
341
|
+
.optional(),
|
|
342
|
+
self_test: z.strictObject({ passed: count, failed: count }).optional(),
|
|
343
|
+
funnel: z.record(z.string(), count).optional(),
|
|
344
|
+
// The counts of the audit, not a share: the files are checked against the plan, the recall computed.
|
|
345
|
+
recall_audit: z
|
|
346
|
+
.strictObject({
|
|
347
|
+
files: count,
|
|
348
|
+
units_in_files: z
|
|
349
|
+
.number()
|
|
350
|
+
.int()
|
|
351
|
+
.positive("is at least 1 unit — an audit that found none measures no recall"),
|
|
352
|
+
extracted: count,
|
|
353
|
+
})
|
|
354
|
+
.refine((c) => c.extracted <= c.units_in_files, "counts more units extracted than the person found in the files")
|
|
355
|
+
.optional(),
|
|
356
|
+
});
|
|
357
|
+
/** A plan v2's gates still null, by their field: decided is anything but null. */
|
|
358
|
+
const gateEmpties = (p) => PLAN_TEXT_FIELDS.filter((f) => (f === "mode.we_lose_if" &&
|
|
359
|
+
p.mode?.kind === "decide_before_run" &&
|
|
360
|
+
p.mode.we_lose_if === null) ||
|
|
361
|
+
((f === "second_check" ||
|
|
362
|
+
f === "self_test" ||
|
|
363
|
+
f === "funnel" ||
|
|
364
|
+
f === "recall_audit") &&
|
|
365
|
+
p[f] === null));
|
|
219
366
|
/**
|
|
220
367
|
* A parsed plan, ready when every required text is filled, else a draft naming the empty ones. A
|
|
221
368
|
* draft that carries the author's check is no plan: the author approved one with empty texts.
|
|
@@ -228,6 +375,7 @@ const readyOrDraft = (kind) => (p, ctx) => {
|
|
|
228
375
|
const empty = [
|
|
229
376
|
...PLAN_TEXT_FIELDS.filter((f) => paths.includes(f)),
|
|
230
377
|
...modeEmpties(p, kind),
|
|
378
|
+
...gateEmpties(p),
|
|
231
379
|
];
|
|
232
380
|
if (empty.length === 0)
|
|
233
381
|
return { kind: "ready", plan: p };
|
|
@@ -241,7 +389,7 @@ const readyOrDraft = (kind) => (p, ctx) => {
|
|
|
241
389
|
return z.NEVER;
|
|
242
390
|
};
|
|
243
391
|
/** A `plan.json` of a study of `kind`: strict, then ready or draft — a measurement's ready only with its mode. */
|
|
244
|
-
const planFor = (kind) => planShape.transform(readyOrDraft(kind));
|
|
392
|
+
const planFor = (kind) => planShape.superRefine(gatesOfItsVersion).transform(readyOrDraft(kind));
|
|
245
393
|
/**
|
|
246
394
|
* A `prereg.json`: loose, mapped onto the plan, then ready or draft. Written before modes existed, it
|
|
247
395
|
* is never asked for one; `repro/study-plan-name` already asks to move it to `plan.json`, where the
|
|
@@ -287,9 +435,20 @@ const planParser = (schema) => (text) => {
|
|
|
287
435
|
export const parseStudyPlan = (text, kind) => planParser(planFor(kind))(text);
|
|
288
436
|
/** A plan still named `prereg.json`: loose, read only when a row names it. */
|
|
289
437
|
export const parseLegacyPlan = planParser(legacyPlan);
|
|
438
|
+
/** A study's `result.json` text, parsed once at the boundary: the result, or every reason it is none. */
|
|
439
|
+
export function parseStudyResult(text) {
|
|
440
|
+
const json = jsonOf(text);
|
|
441
|
+
if (json === undefined)
|
|
442
|
+
return { kind: "unreadable", why: "not JSON" };
|
|
443
|
+
const parsed = studyResult.safeParse(json);
|
|
444
|
+
return parsed.success
|
|
445
|
+
? { kind: "read", result: parsed.data }
|
|
446
|
+
: { kind: "unreadable", why: reasons(parsed.error.issues) };
|
|
447
|
+
}
|
|
290
448
|
export const studyRegistryCodec = {
|
|
291
449
|
parse: parseStudyRegistry,
|
|
292
450
|
parsePlan: parseStudyPlan,
|
|
293
451
|
parseLegacyPlan,
|
|
452
|
+
parseResult: parseStudyResult,
|
|
294
453
|
};
|
|
295
454
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/study-registry/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/study-registry/index.ts"],"names":[],"mappings":"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"}
|