paperlint 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/dependabot.yml +72 -0
- package/.github/workflows/ci.yml +297 -0
- package/.github/workflows/dependabot-automerge.yml +70 -0
- package/.github/workflows/pr-title.yml +59 -0
- package/.github/workflows/release.yml +54 -0
- package/CLAUDE.md +598 -0
- package/CONTRIBUTING.md +159 -0
- package/LICENSE +21 -0
- package/README.md +240 -0
- package/action.harness.mjs +287 -0
- package/action.mutations.mjs +162 -0
- package/action.yml +138 -0
- package/bin/rpp.mjs +43 -0
- package/dist/action-ref.d.ts +12 -0
- package/dist/action-ref.d.ts.map +1 -0
- package/dist/action-ref.js +16 -0
- package/dist/action-ref.js.map +1 -0
- package/dist/adapters/banal/failure.d.ts +73 -0
- package/dist/adapters/banal/failure.d.ts.map +1 -0
- package/dist/adapters/banal/failure.js +58 -0
- package/dist/adapters/banal/failure.js.map +1 -0
- package/dist/adapters/banal/index.d.ts +17 -0
- package/dist/adapters/banal/index.d.ts.map +1 -0
- package/dist/adapters/banal/index.js +56 -0
- package/dist/adapters/banal/index.js.map +1 -0
- package/dist/adapters/banal/install.d.ts +26 -0
- package/dist/adapters/banal/install.d.ts.map +1 -0
- package/dist/adapters/banal/install.js +15 -0
- package/dist/adapters/banal/install.js.map +1 -0
- package/dist/adapters/banal/invocation.d.ts +48 -0
- package/dist/adapters/banal/invocation.d.ts.map +1 -0
- package/dist/adapters/banal/invocation.js +43 -0
- package/dist/adapters/banal/invocation.js.map +1 -0
- package/dist/adapters/banal/locate.d.ts +50 -0
- package/dist/adapters/banal/locate.d.ts.map +1 -0
- package/dist/adapters/banal/locate.js +34 -0
- package/dist/adapters/banal/locate.js.map +1 -0
- package/dist/adapters/banal/output.d.ts +27 -0
- package/dist/adapters/banal/output.d.ts.map +1 -0
- package/dist/adapters/banal/output.js +112 -0
- package/dist/adapters/banal/output.js.map +1 -0
- package/dist/adapters/banal/pin.d.ts +19 -0
- package/dist/adapters/banal/pin.d.ts.map +1 -0
- package/dist/adapters/banal/pin.js +15 -0
- package/dist/adapters/banal/pin.js.map +1 -0
- package/dist/adapters/banal/probe.d.ts +12 -0
- package/dist/adapters/banal/probe.d.ts.map +1 -0
- package/dist/adapters/banal/probe.js +27 -0
- package/dist/adapters/banal/probe.js.map +1 -0
- package/dist/adapters/banal/run.d.ts +89 -0
- package/dist/adapters/banal/run.d.ts.map +1 -0
- package/dist/adapters/banal/run.js +104 -0
- package/dist/adapters/banal/run.js.map +1 -0
- package/dist/adapters/banal/settings.d.ts +18 -0
- package/dist/adapters/banal/settings.d.ts.map +1 -0
- package/dist/adapters/banal/settings.js +29 -0
- package/dist/adapters/banal/settings.js.map +1 -0
- package/dist/adapters/banal/xml.d.ts +48 -0
- package/dist/adapters/banal/xml.d.ts.map +1 -0
- package/dist/adapters/banal/xml.js +67 -0
- package/dist/adapters/banal/xml.js.map +1 -0
- package/dist/adapters/curl/download.io.d.ts +14 -0
- package/dist/adapters/curl/download.io.d.ts.map +1 -0
- package/dist/adapters/curl/download.io.js +69 -0
- package/dist/adapters/curl/download.io.js.map +1 -0
- package/dist/adapters/curl/index.d.ts +6 -0
- package/dist/adapters/curl/index.d.ts.map +1 -0
- package/dist/adapters/curl/index.js +6 -0
- package/dist/adapters/curl/index.js.map +1 -0
- package/dist/adapters/memory/index.d.ts +43 -0
- package/dist/adapters/memory/index.d.ts.map +1 -0
- package/dist/adapters/memory/index.js +79 -0
- package/dist/adapters/memory/index.js.map +1 -0
- package/dist/adapters/node/files.io.d.ts +3 -0
- package/dist/adapters/node/files.io.d.ts.map +1 -0
- package/dist/adapters/node/files.io.js +31 -0
- package/dist/adapters/node/files.io.js.map +1 -0
- package/dist/adapters/node/host.io.d.ts +3 -0
- package/dist/adapters/node/host.io.d.ts.map +1 -0
- package/dist/adapters/node/host.io.js +14 -0
- package/dist/adapters/node/host.io.js.map +1 -0
- package/dist/adapters/node/index.d.ts +25 -0
- package/dist/adapters/node/index.d.ts.map +1 -0
- package/dist/adapters/node/index.js +14 -0
- package/dist/adapters/node/index.js.map +1 -0
- package/dist/adapters/node/process.io.d.ts +14 -0
- package/dist/adapters/node/process.io.d.ts.map +1 -0
- package/dist/adapters/node/process.io.js +41 -0
- package/dist/adapters/node/process.io.js.map +1 -0
- package/dist/adapters/node/workspace.io.d.ts +4 -0
- package/dist/adapters/node/workspace.io.d.ts.map +1 -0
- package/dist/adapters/node/workspace.io.js +33 -0
- package/dist/adapters/node/workspace.io.js.map +1 -0
- package/dist/adapters/pdfjs/fill.d.ts +42 -0
- package/dist/adapters/pdfjs/fill.d.ts.map +1 -0
- package/dist/adapters/pdfjs/fill.js +91 -0
- package/dist/adapters/pdfjs/fill.js.map +1 -0
- package/dist/build-engine.d.ts +48 -0
- package/dist/build-engine.d.ts.map +1 -0
- package/dist/build-engine.js +148 -0
- package/dist/build-engine.js.map +1 -0
- package/dist/build.d.ts +163 -0
- package/dist/build.d.ts.map +1 -0
- package/dist/build.js +575 -0
- package/dist/build.js.map +1 -0
- package/dist/cli.d.ts +151 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +951 -0
- package/dist/cli.js.map +1 -0
- package/dist/doctor.d.ts +42 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +280 -0
- package/dist/doctor.js.map +1 -0
- package/dist/domain/geometry.d.ts +71 -0
- package/dist/domain/geometry.d.ts.map +1 -0
- package/dist/domain/geometry.js +35 -0
- package/dist/domain/geometry.js.map +1 -0
- package/dist/domain/host.d.ts +16 -0
- package/dist/domain/host.d.ts.map +1 -0
- package/dist/domain/host.js +8 -0
- package/dist/domain/host.js.map +1 -0
- package/dist/domain/page-layout.d.ts +34 -0
- package/dist/domain/page-layout.d.ts.map +1 -0
- package/dist/domain/page-layout.js +8 -0
- package/dist/domain/page-layout.js.map +1 -0
- package/dist/domain/paths.d.ts +5 -0
- package/dist/domain/paths.d.ts.map +1 -0
- package/dist/domain/paths.js +2 -0
- package/dist/domain/paths.js.map +1 -0
- package/dist/domain/result.d.ts +23 -0
- package/dist/domain/result.d.ts.map +1 -0
- package/dist/domain/result.js +10 -0
- package/dist/domain/result.js.map +1 -0
- package/dist/domain/sha256.d.ts +7 -0
- package/dist/domain/sha256.d.ts.map +1 -0
- package/dist/domain/sha256.js +14 -0
- package/dist/domain/sha256.js.map +1 -0
- package/dist/domain/text.d.ts +6 -0
- package/dist/domain/text.d.ts.map +1 -0
- package/dist/domain/text.js +7 -0
- package/dist/domain/text.js.map +1 -0
- package/dist/engine.d.ts +93 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +119 -0
- package/dist/engine.js.map +1 -0
- package/dist/exit-code.d.ts +22 -0
- package/dist/exit-code.d.ts.map +1 -0
- package/dist/exit-code.js +10 -0
- package/dist/exit-code.js.map +1 -0
- package/dist/facts-file.d.ts +96 -0
- package/dist/facts-file.d.ts.map +1 -0
- package/dist/facts-file.js +134 -0
- package/dist/facts-file.js.map +1 -0
- package/dist/hooks-settings.d.ts +141 -0
- package/dist/hooks-settings.d.ts.map +1 -0
- package/dist/hooks-settings.js +306 -0
- package/dist/hooks-settings.js.map +1 -0
- package/dist/init.d.ts +201 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +579 -0
- package/dist/init.js.map +1 -0
- package/dist/latex-log.d.ts +80 -0
- package/dist/latex-log.d.ts.map +1 -0
- package/dist/latex-log.js +187 -0
- package/dist/latex-log.js.map +1 -0
- package/dist/latex-loop.d.ts +129 -0
- package/dist/latex-loop.d.ts.map +1 -0
- package/dist/latex-loop.js +113 -0
- package/dist/latex-loop.js.map +1 -0
- package/dist/link-skills.d.ts +51 -0
- package/dist/link-skills.d.ts.map +1 -0
- package/dist/link-skills.js +199 -0
- package/dist/link-skills.js.map +1 -0
- package/dist/new-paper.d.ts +48 -0
- package/dist/new-paper.d.ts.map +1 -0
- package/dist/new-paper.js +110 -0
- package/dist/new-paper.js.map +1 -0
- package/dist/pdf-facts.d.ts +44 -0
- package/dist/pdf-facts.d.ts.map +1 -0
- package/dist/pdf-facts.js +239 -0
- package/dist/pdf-facts.js.map +1 -0
- package/dist/pdf-geometry.d.ts +170 -0
- package/dist/pdf-geometry.d.ts.map +1 -0
- package/dist/pdf-geometry.js +158 -0
- package/dist/pdf-geometry.js.map +1 -0
- package/dist/ports/download.d.ts +9 -0
- package/dist/ports/download.d.ts.map +1 -0
- package/dist/ports/download.js +2 -0
- package/dist/ports/download.js.map +1 -0
- package/dist/ports/files.d.ts +11 -0
- package/dist/ports/files.d.ts.map +1 -0
- package/dist/ports/files.js +2 -0
- package/dist/ports/files.js.map +1 -0
- package/dist/ports/measure-geometry.d.ts +8 -0
- package/dist/ports/measure-geometry.d.ts.map +1 -0
- package/dist/ports/measure-geometry.js +2 -0
- package/dist/ports/measure-geometry.js.map +1 -0
- package/dist/ports/process.d.ts +45 -0
- package/dist/ports/process.d.ts.map +1 -0
- package/dist/ports/process.js +2 -0
- package/dist/ports/process.js.map +1 -0
- package/dist/ports/tool-installer.d.ts +29 -0
- package/dist/ports/tool-installer.d.ts.map +1 -0
- package/dist/ports/tool-installer.js +2 -0
- package/dist/ports/tool-installer.js.map +1 -0
- package/dist/ports/workspace.d.ts +18 -0
- package/dist/ports/workspace.d.ts.map +1 -0
- package/dist/ports/workspace.js +2 -0
- package/dist/ports/workspace.js.map +1 -0
- package/dist/rules-config.d.ts +34 -0
- package/dist/rules-config.d.ts.map +1 -0
- package/dist/rules-config.js +132 -0
- package/dist/rules-config.js.map +1 -0
- package/dist/structure.d.ts +34 -0
- package/dist/structure.d.ts.map +1 -0
- package/dist/structure.js +149 -0
- package/dist/structure.js.map +1 -0
- package/dist/tex-requirements.d.ts +43 -0
- package/dist/tex-requirements.d.ts.map +1 -0
- package/dist/tex-requirements.js +127 -0
- package/dist/tex-requirements.js.map +1 -0
- package/dist/toolchain.d.ts +159 -0
- package/dist/toolchain.d.ts.map +1 -0
- package/dist/toolchain.js +542 -0
- package/dist/toolchain.js.map +1 -0
- package/dist/types.d.ts +110 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/docs/configuration.md +235 -0
- package/docs/e2e.md +152 -0
- package/docs/incidents.md +59 -0
- package/docs/install.md +170 -0
- package/docs/optional-rules.md +107 -0
- package/docs/package-shape-options.md +262 -0
- package/docs/prior-art/README.md +76 -0
- package/docs/prior-art/blocking-vs-advisory.md +83 -0
- package/docs/prior-art/content-delivery.md +124 -0
- package/docs/prior-art/multi-mode-tools.md +106 -0
- package/docs/prior-art/nondeterministic-checks.md +99 -0
- package/docs/prior-art/package-location.md +422 -0
- package/docs/prior-art/paper-folder-scaffolding.md +538 -0
- package/docs/prior-art/readme-structure.md +69 -0
- package/docs/prior-art/repro/README.md +92 -0
- package/docs/prior-art/repro/claim1-allowedtools.mjs +66 -0
- package/docs/prior-art/repro/claim1-at2.mjs +40 -0
- package/docs/prior-art/repro/claim1-crosschannel.mjs +54 -0
- package/docs/prior-art/repro/claim1-frontmatter.mjs +76 -0
- package/docs/prior-art/repro/claim1-hook-payload-reporter.mjs +10 -0
- package/docs/prior-art/repro/claim1-plugin-frontmatter.mjs +27 -0
- package/docs/prior-art/repro/claim1-plugin-skill.mjs +52 -0
- package/docs/prior-art/repro/claim1-project-skill.mjs +81 -0
- package/docs/prior-art/repro/claim2-marketplace-flat-asclaimed.json +1 -0
- package/docs/prior-art/repro/claim2-marketplace-negative-control.json +1 -0
- package/docs/prior-art/repro/claim2-marketplace-nested-exact.json +9 -0
- package/docs/prior-art/repro/claim2-marketplace-nested-noversion.json +9 -0
- package/docs/prior-art/repro/claim2-marketplace-nested-range.json +1 -0
- package/docs/prior-art/repro/claim3-imports.mjs +50 -0
- package/docs/prior-art/repro/claim4-find-package-json.mjs +8 -0
- package/docs/prior-art/repro/claim4-package-dir.mjs +39 -0
- package/docs/prior-art/repro/claim4-parent-arg.mjs +17 -0
- package/docs/prior-art/repro/claim4-resolve-apis.mjs +21 -0
- package/docs/prior-art/repro/claim4-setup-consumers.mjs +45 -0
- package/docs/prior-art/repro/claim4-yarn-pnp.mjs +70 -0
- package/docs/prior-art/repro/claim5-bin-launch.mjs +39 -0
- package/docs/prior-art/repro/claim5-exports-mutation.mjs +57 -0
- package/docs/prior-art/repro/claim5-resolved-location-and-bin.mjs +33 -0
- package/docs/prior-art/repro/claim6-candidate-ambiguity.mjs +17 -0
- package/docs/prior-art/repro/claim6-doc-path-candidates.mjs +27 -0
- package/docs/prior-art/test-tooling.md +131 -0
- package/docs/rules.md +58 -0
- package/docs/texlive-install-decision.md +230 -0
- package/docs/toolchain.md +152 -0
- package/eslint-rules/doc-fields.harness.mjs +336 -0
- package/eslint-rules/doc-fields.mjs +186 -0
- package/eslint-rules/doc-fields.mutations.mjs +96 -0
- package/eslint-rules/install-path-literals.harness.mjs +121 -0
- package/eslint-rules/install-path-literals.mjs +108 -0
- package/eslint-rules/install-path-literals.mutations.mjs +62 -0
- package/eslint-rules/latex-language.harness.mjs +599 -0
- package/eslint-rules/latex-language.mjs +591 -0
- package/eslint-rules/latex-language.mutations.mjs +196 -0
- package/eslint-rules/paper-research-question.harness.mjs +146 -0
- package/eslint-rules/paper-research-question.mjs +180 -0
- package/eslint-rules/paper-research-question.mutations.mjs +127 -0
- package/eslint-rules/paper-stages.harness.mjs +356 -0
- package/eslint-rules/paper-stages.mjs +455 -0
- package/eslint-rules/paper-stages.mutations.mjs +157 -0
- package/eslint-rules/paper-typography.harness.mjs +291 -0
- package/eslint-rules/paper-typography.mjs +313 -0
- package/eslint-rules/paper-typography.mutations.mjs +131 -0
- package/eslint-rules/papers.harness.mjs +259 -0
- package/eslint-rules/papers.mjs +166 -0
- package/eslint-rules/papers.mutations.mjs +186 -0
- package/eslint-rules/pdf-last-page-balance.harness.mjs +206 -0
- package/eslint-rules/pdf-last-page-balance.mjs +208 -0
- package/eslint-rules/review-findings-cause.harness.mjs +228 -0
- package/eslint-rules/review-findings-cause.mjs +135 -0
- package/eslint-rules/review-findings-cause.mutations.mjs +72 -0
- package/eslint-rules/temp-root-realpath.harness.mjs +176 -0
- package/eslint-rules/temp-root-realpath.mjs +129 -0
- package/eslint-rules/temp-root-realpath.mutations.mjs +99 -0
- package/eslint-rules/tex-build.harness.mjs +753 -0
- package/eslint-rules/tex-build.mjs +322 -0
- package/eslint-rules/tex-build.mutations.mjs +258 -0
- package/eslint.config.mjs +521 -0
- package/fixtures/build-e2e/acmart/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/acmart/paper.tex +11 -0
- package/fixtures/build-e2e/acmart/venue.json +1 -0
- package/fixtures/build-e2e/broken/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/broken/paper.tex +7 -0
- package/fixtures/build-e2e/cite/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/cite/build.sh +5 -0
- package/fixtures/build-e2e/cite/paper.tex +10 -0
- package/fixtures/build-e2e/cite/refs.bib +9 -0
- package/fixtures/build-e2e/empty/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/empty/paper.tex +6 -0
- package/fixtures/build-e2e/fallback/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/fallback/paper.tex +11 -0
- package/fixtures/build-e2e/guards/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/guards/paper.tex +10 -0
- package/fixtures/build-e2e/no-source/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/unbalanced/PIPELINE-STATUS.md +3 -0
- package/fixtures/build-e2e/unbalanced/paper.tex +28 -0
- package/fixtures/build-e2e/unbalanced/refs.bib +269 -0
- package/fixtures/install-path-literals/clean.fixture.mjs +3 -0
- package/fixtures/install-path-literals/clean.md +15 -0
- package/fixtures/install-path-literals/defect.fixture.mjs +3 -0
- package/fixtures/install-path-literals/defect.md +14 -0
- package/fixtures/latex-language/clean.tex +50 -0
- package/fixtures/latex-language/defect.tex +52 -0
- package/fixtures/paper-research-question/comment-only/PIPELINE-STATUS.md +9 -0
- package/fixtures/paper-research-question/comment-only/paper.tex +7 -0
- package/fixtures/paper-research-question/declared-not-in-paper/PIPELINE-STATUS.md +10 -0
- package/fixtures/paper-research-question/declared-not-in-paper/paper.tex +6 -0
- package/fixtures/paper-research-question/draft/PIPELINE-STATUS.md +6 -0
- package/fixtures/paper-research-question/draft/paper.tex +2 -0
- package/fixtures/paper-research-question/markdown-no-rq/PIPELINE-STATUS.md +9 -0
- package/fixtures/paper-research-question/markdown-no-rq/paper.md +4 -0
- package/fixtures/paper-research-question/shipped-no-rq/PIPELINE-STATUS.md +12 -0
- package/fixtures/paper-research-question/shipped-no-rq/paper.tex +3 -0
- package/fixtures/paper-research-question/shipped-with-rq/PIPELINE-STATUS.md +10 -0
- package/fixtures/paper-research-question/shipped-with-rq/paper.tex +2 -0
- package/fixtures/paper-stages/authors-ran/PIPELINE-STATUS.md +16 -0
- package/fixtures/paper-stages/marker-in-prose/PIPELINE-STATUS.md +17 -0
- package/fixtures/paper-stages/nofile/PIPELINE-STATUS.md +8 -0
- package/fixtures/paper-stages/noheader/PIPELINE-STATUS.md +1 -0
- package/fixtures/paper-stages/noheader/versions/2026-07-22-submitted.pdf +0 -0
- package/fixtures/paper-stages/nothing/PIPELINE-STATUS.md +3 -0
- package/fixtures/paper-stages/ok/PIPELINE-STATUS.md +9 -0
- package/fixtures/paper-stages/ok/versions/2026-07-22-submitted.pdf +0 -0
- package/fixtures/paper-stages/stale/PIPELINE-STATUS.md +1 -0
- package/fixtures/paper-stages/stale/versions/2026-07-22-submitted.STALE-WRONG-FILE.pdf +0 -0
- package/fixtures/paper-stages/twice/PIPELINE-STATUS.md +14 -0
- package/fixtures/paper-stages/twice/versions/2026-08-06-submitted.pdf +0 -0
- package/fixtures/paper-stages/twice/versions/2026-10-24-submitted.pdf +0 -0
- package/fixtures/paper-stages/undeclared/PIPELINE-STATUS.md +8 -0
- package/fixtures/paper-stages/undeclared/versions/2026-07-22-submitted.pdf +0 -0
- package/fixtures/paper-stages/undeclared/versions/2026-08-29-camera-ready.pdf +0 -0
- package/fixtures/paper-stages/wrongsize/PIPELINE-STATUS.md +8 -0
- package/fixtures/paper-stages/wrongsize/versions/2026-07-22-submitted.pdf +0 -0
- package/fixtures/paper-typography/clean-paper/paper.tex +29 -0
- package/fixtures/paper-typography/messy-paper/paper.tex +27 -0
- package/fixtures/pdf-facts/README.md +22 -0
- package/fixtures/pdf-facts/corrupt-font.pdf +0 -0
- package/fixtures/pdf-facts/encrypted.pdf +0 -0
- package/fixtures/pdf-facts/hidden-text.pdf +0 -0
- package/fixtures/pdf-facts/hidden-text.tex +28 -0
- package/fixtures/pdf-facts/t3-all.pdf +0 -0
- package/fixtures/pdf-facts/t3-all.tex +8 -0
- package/fixtures/pdf-facts/t3-mixed.pdf +0 -0
- package/fixtures/pdf-facts/t3-mixed.tex +9 -0
- package/fixtures/pdf-facts/ttf.pdf +2240 -1
- package/fixtures/pdf-facts/ttf.tex +6 -0
- package/fixtures/real-markdown-paper/baseline.json +24 -0
- package/fixtures/real-markdown-paper/baseline.mjs +48 -0
- package/fixtures/render-paper/build-clean.sh +25 -0
- package/fixtures/render-paper/build-defect.sh +15 -0
- package/fixtures/review-findings-cause/clean.md +17 -0
- package/fixtures/review-findings-cause/defect.md +14 -0
- package/fixtures/review-findings-cause/old-debt.md +14 -0
- package/fixtures/review-findings-cause/quiet-in-fence.md +16 -0
- package/fixtures/tex-build/clean.tex +21 -0
- package/fixtures/tex-build/defect.tex +24 -0
- package/fixtures/tex-build/frontmatter-clean.tex +25 -0
- package/fixtures/tex-build/frontmatter-defect.tex +23 -0
- package/fixtures/toolchain-mirror/catalog.txt +5 -0
- package/fixtures/toolchain-mirror/install-tl +27 -0
- package/fixtures/toolchain-mirror/release-texlive.txt +3 -0
- package/fixtures/toolchain-mirror/release-year +1 -0
- package/fixtures/toolchain-mirror/stub-kpsewhich +8 -0
- package/fixtures/toolchain-mirror/stub-pdflatex +3 -0
- package/fixtures/toolchain-mirror/stub-tlmgr +44 -0
- package/hooks/hooks.harness.mjs +713 -0
- package/hooks/hooks.mutations.mjs +337 -0
- package/hooks/paper-edit-guard.hook.d.mts +13 -0
- package/hooks/paper-edit-guard.hook.mjs +457 -0
- package/hooks/paper-skills-nudge.hook.mjs +136 -0
- package/hooks/paper-status-gates.hook.mjs +156 -0
- package/hooks/paper-status-gates.sh +91 -0
- package/lib/agent-cli-version.harness.mjs +165 -0
- package/lib/agent-cli-version.mjs +106 -0
- package/lib/agent-cli-version.mutations.mjs +109 -0
- package/lib/markdown.mjs +386 -0
- package/lib/mutation-driver.harness.mjs +227 -0
- package/lib/mutation-driver.mjs +397 -0
- package/lib/mutation-driver.mutations.mjs +68 -0
- package/lib/paper-config.d.mts +34 -0
- package/lib/paper-config.harness.mjs +286 -0
- package/lib/paper-config.mjs +142 -0
- package/lib/paper-config.mutations.mjs +143 -0
- package/lib/skill-checks.mjs +701 -0
- package/lib/skill-corpus.mjs +403 -0
- package/lib/skill-eval-fixture.mjs +63 -0
- package/lib/skill-eval-kit.mjs +257 -0
- package/lib/skill-trigger-cases.harness.mjs +170 -0
- package/lib/skill-trigger-cases.mjs +446 -0
- package/lib/skill-trigger-cases.mutations.mjs +65 -0
- package/lib/trigger-ledger.mjs +215 -0
- package/package.json +97 -0
- package/plugin/.claude-plugin/plugin.json +8 -0
- package/plugin/hooks/hooks.json +30 -0
- package/scripts/check.harness.mjs +177 -0
- package/scripts/check.mjs +239 -0
- package/scripts/check.mutations.mjs +110 -0
- package/scripts/eslint-report-guard.mjs +82 -0
- package/scripts/exclusive.mjs +138 -0
- package/scripts/harness-api.frozen.json +76 -0
- package/scripts/harness-api.test.ts +175 -0
- package/scripts/layer-legacy-frozen.d.mts +28 -0
- package/scripts/layer-legacy-frozen.mjs +152 -0
- package/scripts/layer-legacy-frozen.test.ts +115 -0
- package/scripts/layer-legacy.frozen.json +50 -0
- package/scripts/mutation-batteries-frozen.harness.mjs +204 -0
- package/scripts/mutation-batteries-frozen.mjs +238 -0
- package/scripts/mutation-batteries.frozen.json +117 -0
- package/scripts/release-config.test.ts +90 -0
- package/scripts/rules-are-content-only.harness.mjs +113 -0
- package/scripts/rules-are-content-only.mjs +138 -0
- package/scripts/rules-are-content-only.mutations.mjs +81 -0
- package/scripts/rules-see-files.harness.mjs +115 -0
- package/scripts/rules-see-files.mjs +99 -0
- package/scripts/rules-see-files.mutations.mjs +131 -0
- package/scripts/run-mutations.mjs +100 -0
- package/scripts/semantic-release-plugins.d.ts +16 -0
- package/skills/README.md +15 -0
- package/skills/analyze-sibling-paper/SKILL.md +170 -0
- package/skills/analyze-sibling-paper/SKILL.md.spec.ts +186 -0
- package/skills/analyze-sibling-paper/analyze-sibling-paper.eval.mjs +19 -0
- package/skills/analyze-sibling-paper/analyze-sibling-paper.harness.mjs +23 -0
- package/skills/argument-arc/SKILL.md +177 -0
- package/skills/argument-arc/SKILL.md.spec.ts +192 -0
- package/skills/argument-arc/argument-arc.eval.mjs +19 -0
- package/skills/argument-arc/argument-arc.harness.mjs +23 -0
- package/skills/build-benchmark/SKILL.md +213 -0
- package/skills/build-benchmark/SKILL.md.spec.ts +220 -0
- package/skills/build-benchmark/build-benchmark.eval.mjs +19 -0
- package/skills/build-benchmark/build-benchmark.harness.mjs +23 -0
- package/skills/build-benchmark/references/adversarial-cold-repro.md +68 -0
- package/skills/camera-ready/SKILL.md +148 -0
- package/skills/camera-ready/SKILL.md.spec.ts +164 -0
- package/skills/camera-ready/camera-ready.eval.mjs +19 -0
- package/skills/camera-ready/camera-ready.harness.mjs +23 -0
- package/skills/cold-read-diff/SKILL.md +160 -0
- package/skills/cold-read-diff/SKILL.md.spec.ts +166 -0
- package/skills/cold-read-diff/cold-read-diff.eval.mjs +19 -0
- package/skills/cold-read-diff/cold-read-diff.harness.mjs +23 -0
- package/skills/draft-paper/SKILL.md +152 -0
- package/skills/draft-paper/SKILL.md.spec.ts +169 -0
- package/skills/draft-paper/draft-paper.eval.mjs +19 -0
- package/skills/draft-paper/draft-paper.harness.mjs +23 -0
- package/skills/extend-paper/SKILL.md +99 -0
- package/skills/extend-paper/SKILL.md.spec.ts +116 -0
- package/skills/extend-paper/extend-paper.eval.mjs +19 -0
- package/skills/extend-paper/extend-paper.harness.mjs +23 -0
- package/skills/find-venue/SKILL.md +128 -0
- package/skills/find-venue/SKILL.md.spec.ts +145 -0
- package/skills/find-venue/find-venue.eval.mjs +19 -0
- package/skills/find-venue/find-venue.harness.mjs +23 -0
- package/skills/grade-paper-writing/SKILL.md +436 -0
- package/skills/grade-paper-writing/SKILL.md.spec.ts +453 -0
- package/skills/grade-paper-writing/fixtures/control_gopen.txt +1 -0
- package/skills/grade-paper-writing/fixtures/control_human_paper.txt +1 -0
- package/skills/grade-paper-writing/fixtures/rewrite.txt +1 -0
- package/skills/grade-paper-writing/fixtures/specimen.txt +1 -0
- package/skills/grade-paper-writing/fixtures/structure-checks.md +22 -0
- package/skills/grade-paper-writing/grade-paper-writing.eval.mjs +19 -0
- package/skills/grade-paper-writing/grade-paper-writing.harness.mjs +23 -0
- package/skills/grade-paper-writing/prose-lint.mjs +713 -0
- package/skills/harden-paper/SKILL.md +318 -0
- package/skills/harden-paper/SKILL.md.spec.ts +336 -0
- package/skills/harden-paper/check-numbers.sh +33 -0
- package/skills/harden-paper/check-release-claims.sh +35 -0
- package/skills/harden-paper/fixtures/uncited-assertions-sample.md +43 -0
- package/skills/harden-paper/fixtures/uncited-assertions-sample.tex +77 -0
- package/skills/harden-paper/harden-paper.eval.mjs +19 -0
- package/skills/harden-paper/harden-paper.harness.mjs +23 -0
- package/skills/map-prior-work/SKILL.md +211 -0
- package/skills/map-prior-work/SKILL.md.spec.ts +227 -0
- package/skills/map-prior-work/map-prior-work.eval.mjs +19 -0
- package/skills/map-prior-work/map-prior-work.harness.mjs +23 -0
- package/skills/osf-artifact-upload/SKILL.md +52 -0
- package/skills/osf-artifact-upload/SKILL.md.spec.ts +59 -0
- package/skills/osf-artifact-upload/osf-artifact-upload.eval.mjs +22 -0
- package/skills/osf-artifact-upload/osf-artifact-upload.harness.mjs +103 -0
- package/skills/paper-adversarial-review/SKILL.md +126 -0
- package/skills/paper-adversarial-review/SKILL.md.spec.ts +142 -0
- package/skills/paper-adversarial-review/paper-adversarial-review.eval.mjs +19 -0
- package/skills/paper-adversarial-review/paper-adversarial-review.harness.mjs +23 -0
- package/skills/paper-pipeline/PIPELINE-MAP.md +371 -0
- package/skills/paper-pipeline/SKILL.md +499 -0
- package/skills/paper-pipeline/SKILL.md.spec.ts +517 -0
- package/skills/paper-pipeline/description-language.eval.mjs +347 -0
- package/skills/paper-pipeline/framing-vs-vocabulary.eval.mjs +891 -0
- package/skills/paper-pipeline/grade-paper-writing-ablation.eval.mjs +1254 -0
- package/skills/paper-pipeline/paper-pipeline.eval.mjs +22 -0
- package/skills/paper-pipeline/paper-pipeline.harness.mjs +143 -0
- package/skills/paper-pipeline/pipeline-firing.baseline.json +270 -0
- package/skills/paper-pipeline/pipeline-firing.eval.mjs +664 -0
- package/skills/paper-pipeline/pipeline-language.eval.mjs +672 -0
- package/skills/paper-pipeline/references/acceptance-gate.md +329 -0
- package/skills/paper-pipeline/references/acl-venue-rules.md +142 -0
- package/skills/paper-pipeline/references/anonymization.md +68 -0
- package/skills/paper-pipeline/references/artifact-checklist.md +93 -0
- package/skills/paper-pipeline/references/body-vs-appendix.md +97 -0
- package/skills/paper-pipeline/references/credit-criteria.md +69 -0
- package/skills/paper-pipeline/references/occupancy-2026-08-06-probe/README.md +35 -0
- package/skills/paper-pipeline/references/occupancy-2026-08-06-probe/run_retext.mjs +24 -0
- package/skills/paper-pipeline/references/occupancy-2026-08-06-probe/sentences.txt +11 -0
- package/skills/paper-pipeline/references/occupancy-2026-08-06-probe/test_sentences.py +25 -0
- package/skills/paper-pipeline/references/occupancy-2026-08-06-prose-checkers.md +538 -0
- package/skills/paper-pipeline/references/occupancy-2026-08-06-reproducible-tooling.md +431 -0
- package/skills/paper-pipeline/references/occupancy-2026-08-06-staleness-and-orchestration.md +592 -0
- package/skills/paper-pipeline/references/pipeline-status-template.md +162 -0
- package/skills/paper-pipeline/references/review-ratchet.md +36 -0
- package/skills/paper-pipeline/references/sweep-2026-08-09-ideal-pipeline.md +585 -0
- package/skills/paper-pipeline/references/writing-craft.md +448 -0
- package/skills/paper-pipeline/repro/2026-08-07-description-language-control.log +63 -0
- package/skills/paper-pipeline/repro/2026-08-07-fork-check.log +52 -0
- package/skills/paper-pipeline/repro/2026-08-07-fork-check2.log +33 -0
- package/skills/paper-pipeline/repro/2026-08-07-language-eval-pilot.log +33 -0
- package/skills/paper-pipeline/repro/2026-08-07-language-eval-raw.log +166 -0
- package/skills/paper-pipeline/repro/2026-08-08-framing-vs-vocabulary-oracle.json +338 -0
- package/skills/paper-pipeline/repro/2026-08-08-framing-vs-vocabulary-oracle.log +118 -0
- package/skills/paper-pipeline/repro/2026-08-08-framing-vs-vocabulary-raw.log +245 -0
- package/skills/paper-pipeline/repro/2026-08-08-framing-vs-vocabulary.json +776 -0
- package/skills/paper-pipeline/repro/2026-08-08-grade-paper-writing-ablation-A6-oracle.log +53 -0
- package/skills/paper-pipeline/repro/2026-08-08-grade-paper-writing-ablation-A6-raw.log +89 -0
- package/skills/paper-pipeline/repro/2026-08-08-grade-paper-writing-ablation-oracle.json +450 -0
- package/skills/paper-pipeline/repro/2026-08-08-grade-paper-writing-ablation-oracle.log +136 -0
- package/skills/paper-pipeline/repro/2026-08-08-grade-paper-writing-ablation-raw.log +242 -0
- package/skills/paper-pipeline/repro/2026-08-08-grade-paper-writing-ablation-setupdiff.log +59 -0
- package/skills/paper-pipeline/repro/2026-08-08-grade-paper-writing-ablation.json +1032 -0
- package/skills/paper-pipeline/repro/2026-08-08-parent-replication-gpw.json +139 -0
- package/skills/paper-pipeline/repro/2026-08-08-parent-replication-gpw.log +98 -0
- package/skills/paper-pipeline/repro/2026-08-08-parent-replication.mjs +92 -0
- package/skills/paper-pipeline/repro/README.md +129 -0
- package/skills/paper-pipeline/repro/analyze-language-eval.py +116 -0
- package/skills/paper-pipeline/scripts/README.md +344 -0
- package/skills/paper-pipeline/scripts/announce.mjs +67 -0
- package/skills/paper-pipeline/scripts/artifact-coverage.harness.mjs +496 -0
- package/skills/paper-pipeline/scripts/artifact-coverage.mjs +397 -0
- package/skills/paper-pipeline/scripts/artifact-coverage.mutations.mjs +218 -0
- package/skills/paper-pipeline/scripts/check-provenance.mjs +184 -0
- package/skills/paper-pipeline/scripts/consumer.d.mts +32 -0
- package/skills/paper-pipeline/scripts/consumer.harness.mjs +562 -0
- package/skills/paper-pipeline/scripts/consumer.mjs +535 -0
- package/skills/paper-pipeline/scripts/consumer.mutations.mjs +190 -0
- package/skills/paper-pipeline/scripts/extract-ref-facts.harness.mjs +457 -0
- package/skills/paper-pipeline/scripts/extract-ref-facts.mjs +656 -0
- package/skills/paper-pipeline/scripts/extract-ref-facts.mutations.mjs +54 -0
- package/skills/paper-pipeline/scripts/fixtures/clean/PIPELINE-STATUS.md +51 -0
- package/skills/paper-pipeline/scripts/fixtures/dirty/PIPELINE-STATUS.md +52 -0
- package/skills/paper-pipeline/scripts/fixtures/dirty/paper.md +6 -0
- package/skills/paper-pipeline/scripts/fixtures/real-bib/refs.bib +153 -0
- package/skills/paper-pipeline/scripts/generated-code.harness.mjs +466 -0
- package/skills/paper-pipeline/scripts/generated-code.mjs +338 -0
- package/skills/paper-pipeline/scripts/generated-code.mutations.mjs +254 -0
- package/skills/paper-pipeline/scripts/ledger.mjs +623 -0
- package/skills/paper-pipeline/scripts/ledger.selftest.mjs +286 -0
- package/skills/paper-pipeline/scripts/pipeline-check.harness.mjs +389 -0
- package/skills/paper-pipeline/scripts/pipeline-check.mjs +737 -0
- package/skills/paper-pipeline/scripts/pipeline-check.mutations.mjs +54 -0
- package/skills/paper-pipeline/scripts/pipeline-edges.mjs +169 -0
- package/skills/paper-pipeline/scripts/population-map.harness.mjs +178 -0
- package/skills/paper-pipeline/scripts/population-map.mjs +181 -0
- package/skills/paper-pipeline/scripts/population-map.mutations.mjs +65 -0
- package/skills/paper-pipeline/scripts/population-map.selftest.mjs +122 -0
- package/skills/paper-pipeline/scripts/provenance.harness.mjs +240 -0
- package/skills/paper-pipeline/scripts/provenance.mutations.mjs +59 -0
- package/skills/paper-pipeline/scripts/round-diff.harness.mjs +881 -0
- package/skills/paper-pipeline/scripts/round-diff.mjs +576 -0
- package/skills/paper-pipeline/scripts/round-diff.mutations.mjs +276 -0
- package/skills/paper-pipeline/scripts/run-mechanical.mjs +633 -0
- package/skills/paper-pipeline/scripts/status.mjs +295 -0
- package/skills/paper-status/SKILL.md +183 -0
- package/skills/paper-status/SKILL.md.spec.ts +190 -0
- package/skills/paper-status/paper-status.eval.mjs +22 -0
- package/skills/paper-status/paper-status.harness.mjs +25 -0
- package/skills/pc-panel-review/SKILL.md +263 -0
- package/skills/pc-panel-review/SKILL.md.spec.ts +280 -0
- package/skills/pc-panel-review/pc-panel-review.eval.mjs +19 -0
- package/skills/pc-panel-review/pc-panel-review.harness.mjs +23 -0
- package/skills/plan-paper-timeline/SKILL.md +182 -0
- package/skills/plan-paper-timeline/SKILL.md.spec.ts +200 -0
- package/skills/plan-paper-timeline/fixtures/fake-google-calendar.mjs +239 -0
- package/skills/plan-paper-timeline/plan-paper-timeline.effects.harness.mjs +431 -0
- package/skills/plan-paper-timeline/plan-paper-timeline.effects.mutations.mjs +65 -0
- package/skills/plan-paper-timeline/plan-paper-timeline.eval.mjs +19 -0
- package/skills/plan-paper-timeline/plan-paper-timeline.harness.mjs +23 -0
- package/skills/render-paper/SKILL.md +159 -0
- package/skills/render-paper/SKILL.md.spec.ts +166 -0
- package/skills/render-paper/check-render.sh +419 -0
- package/skills/render-paper/checkers-requirements.txt +55 -0
- package/skills/render-paper/ensure-checkers.sh +69 -0
- package/skills/render-paper/extract-pdf-facts.harness.mjs +166 -0
- package/skills/render-paper/extract-pdf-facts.mjs +144 -0
- package/skills/render-paper/render-paper.eval.mjs +19 -0
- package/skills/render-paper/render-paper.harness.mjs +339 -0
- package/skills/research-ideate/SKILL.md +136 -0
- package/skills/research-ideate/SKILL.md.spec.ts +152 -0
- package/skills/research-ideate/research-ideate.eval.mjs +19 -0
- package/skills/research-ideate/research-ideate.harness.mjs +23 -0
- package/skills/skill-contract.mutations.mjs +179 -0
- package/skills/study-accepted-papers/SKILL.md +206 -0
- package/skills/study-accepted-papers/SKILL.md.spec.ts +223 -0
- package/skills/study-accepted-papers/study-accepted-papers.eval.mjs +19 -0
- package/skills/study-accepted-papers/study-accepted-papers.harness.mjs +23 -0
- package/skills/submit-paper/SKILL.md +182 -0
- package/skills/submit-paper/SKILL.md.spec.ts +199 -0
- package/skills/submit-paper/check-deanon.sh +149 -0
- package/skills/submit-paper/references/publishers/acm.md +92 -0
- package/skills/submit-paper/references/venues/agenticdev.jsonc +108 -0
- package/skills/submit-paper/references/venues/agenticdev.md +139 -0
- package/skills/submit-paper/references/venues/agenticdev.tex +19 -0
- package/skills/submit-paper/references/venues/aisec.jsonc +101 -0
- package/skills/submit-paper/references/venues/aisec.md +105 -0
- package/skills/submit-paper/references/venues/paper-guards.tex +41 -0
- package/skills/submit-paper/references/venues/realm.jsonc +81 -0
- package/skills/submit-paper/references/venues/realm.md +155 -0
- package/skills/submit-paper/references/venues/tex-base.jsonc +50 -0
- package/skills/submit-paper/references/venues/venue-profile.schema.json +74 -0
- package/skills/submit-paper/submit-paper.eval.mjs +19 -0
- package/skills/submit-paper/submit-paper.harness.mjs +23 -0
- package/skills/sweep-design-space/SKILL.md +269 -0
- package/skills/sweep-design-space/SKILL.md.spec.ts +285 -0
- package/skills/sweep-design-space/sweep-design-space.eval.mjs +19 -0
- package/skills/sweep-design-space/sweep-design-space.harness.mjs +23 -0
- package/skills/tighten-paper/SKILL.md +368 -0
- package/skills/tighten-paper/SKILL.md.spec.ts +384 -0
- package/skills/tighten-paper/structure.mjs +371 -0
- package/skills/tighten-paper/tighten-paper.eval.mjs +19 -0
- package/skills/tighten-paper/tighten-paper.harness.mjs +23 -0
- package/skills/verify-citations/SKILL.md +328 -0
- package/skills/verify-citations/SKILL.md.spec.ts +345 -0
- package/skills/verify-citations/scripts/bib-authors.mjs +479 -0
- package/skills/verify-citations/scripts/bib-authors.test.mjs +175 -0
- package/skills/verify-citations/scripts/verify-cites.mjs +1108 -0
- package/skills/verify-citations/scripts/verify-cites.test.mjs +735 -0
- package/skills/verify-citations/verify-citations.eval.mjs +19 -0
- package/skills/verify-citations/verify-citations.harness.mjs +23 -0
- package/src/CLAUDE.md +51 -0
- package/src/action-ref.test.ts +26 -0
- package/src/action-ref.ts +15 -0
- package/src/adapters/banal/failure.test.ts +63 -0
- package/src/adapters/banal/failure.ts +118 -0
- package/src/adapters/banal/index.test.ts +119 -0
- package/src/adapters/banal/index.ts +100 -0
- package/src/adapters/banal/install.test.ts +20 -0
- package/src/adapters/banal/install.ts +41 -0
- package/src/adapters/banal/invocation.test.ts +74 -0
- package/src/adapters/banal/invocation.ts +95 -0
- package/src/adapters/banal/locate.test.ts +52 -0
- package/src/adapters/banal/locate.ts +84 -0
- package/src/adapters/banal/output.test.ts +140 -0
- package/src/adapters/banal/output.ts +141 -0
- package/src/adapters/banal/pin.ts +30 -0
- package/src/adapters/banal/probe.ts +35 -0
- package/src/adapters/banal/run.test.ts +191 -0
- package/src/adapters/banal/run.ts +244 -0
- package/src/adapters/banal/settings.test.ts +31 -0
- package/src/adapters/banal/settings.ts +55 -0
- package/src/adapters/banal/xml.test.ts +111 -0
- package/src/adapters/banal/xml.ts +112 -0
- package/src/adapters/curl/download.io.ts +73 -0
- package/src/adapters/curl/download.test.ts +55 -0
- package/src/adapters/curl/index.ts +5 -0
- package/src/adapters/memory/index.ts +131 -0
- package/src/adapters/node/files.io.ts +39 -0
- package/src/adapters/node/files.test.ts +28 -0
- package/src/adapters/node/host.io.ts +15 -0
- package/src/adapters/node/index.ts +36 -0
- package/src/adapters/node/process.io.ts +49 -0
- package/src/adapters/node/process.test.ts +46 -0
- package/src/adapters/node/workspace.io.ts +40 -0
- package/src/adapters/node/workspace.test.ts +58 -0
- package/src/adapters/pdfjs/fill.test.ts +111 -0
- package/src/adapters/pdfjs/fill.ts +141 -0
- package/src/build-engine.harness.mjs +314 -0
- package/src/build-engine.ts +219 -0
- package/src/build.harness.mjs +631 -0
- package/src/build.mutations.mjs +195 -0
- package/src/build.ts +793 -0
- package/src/cli.harness.mjs +2007 -0
- package/src/cli.mutations.mjs +448 -0
- package/src/cli.ts +1189 -0
- package/src/doctor.harness.mjs +396 -0
- package/src/doctor.mutations.mjs +175 -0
- package/src/doctor.ts +356 -0
- package/src/domain/geometry.ts +108 -0
- package/src/domain/host.ts +23 -0
- package/src/domain/page-layout.ts +32 -0
- package/src/domain/paths.ts +5 -0
- package/src/domain/result.test.ts +26 -0
- package/src/domain/result.ts +29 -0
- package/src/domain/sha256.test.ts +12 -0
- package/src/domain/sha256.ts +21 -0
- package/src/domain/text.ts +11 -0
- package/src/engine.harness.mjs +252 -0
- package/src/engine.ts +176 -0
- package/src/exit-code.test.ts +21 -0
- package/src/exit-code.ts +38 -0
- package/src/facts-file.test.ts +240 -0
- package/src/facts-file.ts +241 -0
- package/src/hooks-settings.harness.mjs +386 -0
- package/src/hooks-settings.mutations.mjs +116 -0
- package/src/hooks-settings.ts +434 -0
- package/src/init.ts +900 -0
- package/src/latex-log.harness.mjs +226 -0
- package/src/latex-log.ts +234 -0
- package/src/latex-loop.harness.mjs +449 -0
- package/src/latex-loop.ts +211 -0
- package/src/link-skills.harness.mjs +273 -0
- package/src/link-skills.mutations.mjs +136 -0
- package/src/link-skills.ts +258 -0
- package/src/new-paper.harness.mjs +216 -0
- package/src/new-paper.mutations.mjs +79 -0
- package/src/new-paper.ts +158 -0
- package/src/pdf-facts.harness.mjs +188 -0
- package/src/pdf-facts.ts +327 -0
- package/src/pdf-geometry.harness.mjs +254 -0
- package/src/pdf-geometry.ts +300 -0
- package/src/ports/download.ts +10 -0
- package/src/ports/files.ts +11 -0
- package/src/ports/measure-geometry.ts +8 -0
- package/src/ports/process.ts +46 -0
- package/src/ports/tool-installer.ts +33 -0
- package/src/ports/workspace.ts +20 -0
- package/src/rules-config.harness.mjs +114 -0
- package/src/rules-config.ts +178 -0
- package/src/structure.harness.mjs +179 -0
- package/src/structure.mutations.mjs +83 -0
- package/src/structure.ts +166 -0
- package/src/tex-requirements.harness.mjs +238 -0
- package/src/tex-requirements.ts +181 -0
- package/src/toolchain.harness.mjs +651 -0
- package/src/toolchain.ts +755 -0
- package/src/types.ts +106 -0
- package/templates/paper/PIPELINE-STATUS.md +72 -0
- package/templates/paper/paper.md +4 -0
- package/templates/paper/paper.tex +8 -0
- package/tsconfig.json +23 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
|
|
2
|
+
37 skills installed → 36 competitors per run
|
|
3
|
+
|
|
4
|
+
MEASURED VOCABULARY OVERLAP (prompt content-words found in the target description)
|
|
5
|
+
skill AH AL SH SL HIGH-LOW
|
|
6
|
+
tighten-paper 0.81 0.00 0.79 0.04 +0.78
|
|
7
|
+
grade-paper-writing 0.85 0.14 0.78 0.05 +0.72
|
|
8
|
+
argument-arc 0.86 0.00 0.69 0.00 +0.77
|
|
9
|
+
|
|
10
|
+
oracle: 48 closed-book picks over 37 descriptions
|
|
11
|
+
|
|
12
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
13
|
+
AH HIT tighten-paper produce a cut and fold plan for this draft — which sections do
|
|
14
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
15
|
+
AH HIT tighten-paper tell me which parts are TMI and belong in the appendix instead
|
|
16
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
17
|
+
AH HIT tighten-paper reorder and merge whatever is needed so it is not too long for
|
|
18
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
19
|
+
AH HIT tighten-paper give me a structural verdict on this drafted paper, cover to c
|
|
20
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
21
|
+
AL HIT tighten-paper decide what gets deleted from this manuscript and list it back
|
|
22
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
23
|
+
AL HIT tighten-paper tell me which two chapters should be welded into one, and whic
|
|
24
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
25
|
+
AL HIT tighten-paper I want a shortlist of paragraphs to delete so it fits on fewer
|
|
26
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
27
|
+
AL HIT tighten-paper rank the chapters by how little they matter, worst first, so I
|
|
28
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
29
|
+
SH HIT tighten-paper this feels long and overly complex, and the middle drags
|
|
30
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
31
|
+
SH HIT tighten-paper after three review rounds it has collected a lot of hedge-mass
|
|
32
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
33
|
+
SH HIT tighten-paper it does not deliver its point and nobody could skim it
|
|
34
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
35
|
+
SH HIT tighten-paper it is too long for its contribution and hard to read cover to
|
|
36
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
37
|
+
SL miss NONE people keep bailing out partway through and I cannot tell why
|
|
38
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
39
|
+
SL HIT tighten-paper there is a nine page ceiling and I am well over it
|
|
40
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
41
|
+
SL HIT tighten-paper my co-author says the whole thing sprawls and he lost the thre
|
|
42
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
43
|
+
SL miss cold-read-diff every paragraph seems necessary to me and yet the whole is exh
|
|
44
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
45
|
+
AH HIT grade-paper-writing grade the writing craft in this draft and name the offending s
|
|
46
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
47
|
+
AH HIT grade-paper-writing run the blind multi-grader panel over the prose clarity and ja
|
|
48
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
49
|
+
AH HIT grade-paper-writing score the title, the abstract and the intro architecture one t
|
|
50
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
51
|
+
AH HIT grade-paper-writing grade how well this reads, hedge stacking included, and give m
|
|
52
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
53
|
+
AL HIT grade-paper-writing mark this manuscript out of five on how it is put together at
|
|
54
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
55
|
+
AL HIT grade-paper-writing give me a scored report card on the language, with the worst e
|
|
56
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
57
|
+
AL miss NONE rate how professional the phrasing sounds against papers peopl
|
|
58
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
59
|
+
AL miss NONE assign a number to the quality of the English here and point a
|
|
60
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
61
|
+
SH HIT grade-paper-writing the abstract reads like a wall of jargon
|
|
62
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
63
|
+
SH HIT grade-paper-writing the intro architecture is fine but the prose clarity is not
|
|
64
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
65
|
+
SH HIT grade-paper-writing there is hedge stacking everywhere and the point never lands
|
|
66
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
67
|
+
SH HIT grade-paper-writing the writing does not read well even though the draft is finish
|
|
68
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
69
|
+
SL miss NONE something about the way this is worded makes me wince and I ca
|
|
70
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
71
|
+
SL miss NONE my supervisor said the English gets in the way of the science
|
|
72
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
73
|
+
SL miss cold-read-diff the sentences are correct but they feel like wet cardboard
|
|
74
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
75
|
+
SL miss NONE I went through my own opening twice and still had to start ove
|
|
76
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
77
|
+
AH HIT argument-arc build the one-sentence-per-section outline before the large re
|
|
78
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
79
|
+
AH HIT argument-arc run the bottom-up inevitability pass over the argument archite
|
|
80
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
81
|
+
AH HIT argument-arc repair the argument architecture — the same structural objecti
|
|
82
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
83
|
+
AH HIT argument-arc check the name and number budget, the reader has too much to c
|
|
84
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
85
|
+
AL HIT argument-arc give me a single line for each part of the manuscript, working
|
|
86
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
87
|
+
AL HIT argument-arc make the ending feel unavoidable given everything before it, a
|
|
88
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
89
|
+
AL miss tighten-paper count how many invented labels and figures the audience must m
|
|
90
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
91
|
+
AL miss NONE lay out the chain of reasoning as a list so I can see where a
|
|
92
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
93
|
+
SH HIT argument-arc the reader says we throw ideas at them
|
|
94
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
95
|
+
SH HIT argument-arc the same structural objection repeats in every round
|
|
96
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
97
|
+
SH HIT argument-arc there is no argument architecture here, just a sequence
|
|
98
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
99
|
+
SH HIT argument-arc we blew the name and number budget somewhere in the middle
|
|
100
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
101
|
+
SL miss tighten-paper each part is fine alone but together they do not add up to any
|
|
102
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
103
|
+
SL HIT argument-arc my advisor cannot tell what the conclusion depends on
|
|
104
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
105
|
+
SL miss NONE the ending arrives without having been earned
|
|
106
|
+
Ignoring 24 permissions.allow entries from .claude/settings.json and .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/home/user/mine"].hasTrustDialogAccepted: true in /root/.claude.json.
|
|
107
|
+
SL miss NONE someone asked me what the point was and I gave three answers
|
|
108
|
+
|
|
109
|
+
ORACLE ACCURACY BY CELL (closed book, 37 descriptions in context, 1 pick each)
|
|
110
|
+
cell hit none wrong
|
|
111
|
+
ACTION / HIGH overlap 12/12 0 0
|
|
112
|
+
ACTION / LOW overlap 8/12 3 1
|
|
113
|
+
SITUATION / HIGH overlap 12/12 0 0
|
|
114
|
+
SITUATION / LOW overlap 3/12 6 3
|
|
115
|
+
|
|
116
|
+
rows → repro/2026-08-08-framing-vs-vocabulary-oracle.json
|
|
117
|
+
|
|
118
|
+
READ THIS AS AN UPPER BOUND, NOT A HUMAN. The oracle's task is strictly easier than the harness's (closed book, nothing else to do, no context budget). A cell the ORACLE also misses is a cell whose descriptions do not determine the answer — that is C. A cell the oracle gets and the harness does not is a cell where the information exists and the selector is not using it — that is not C.
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
|
|
2
|
+
37 skills installed → 36 competitors per run
|
|
3
|
+
|
|
4
|
+
MEASURED VOCABULARY OVERLAP (prompt content-words found in the target description)
|
|
5
|
+
skill AH AL SH SL HIGH-LOW
|
|
6
|
+
tighten-paper 0.81 0.00 0.79 0.04 +0.78
|
|
7
|
+
grade-paper-writing 0.85 0.14 0.78 0.05 +0.72
|
|
8
|
+
argument-arc 0.86 0.00 0.69 0.00 +0.77
|
|
9
|
+
|
|
10
|
+
mode=main 3 skills x 4 cells x 4 prompts x 3 trials = 144 runs
|
|
11
|
+
|
|
12
|
+
=== tighten-paper [ACTION / HIGH overlap]
|
|
13
|
+
Spent: 268,613 tokens (11 in · 1.2k out · 163.4k cache) · ~$0.69 API-equivalent
|
|
14
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
15
|
+
0.67 T2 O0 S1 ov=1.00 produce a cut and fold plan for this draft — which secti
|
|
16
|
+
Spent: 313,255 tokens (12 in · 1.2k out · 267.7k cache) · ~$0.36 API-equivalent
|
|
17
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
18
|
+
Session so far: 581,868 tokens · ~$1.06 API-equivalent
|
|
19
|
+
1.00 T3 O0 S0 ov=0.57 tell me which parts are TMI and belong in the appendix i
|
|
20
|
+
0.00 T0 O0 S3 ov=0.67 reorder and merge whatever is needed so it is not too lo
|
|
21
|
+
Spent: 359,374 tokens (15 in · 1.6k out · 312.7k cache) · ~$0.39 API-equivalent
|
|
22
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
23
|
+
Session so far: 941,242 tokens · ~$1.44 API-equivalent
|
|
24
|
+
1.00 T3 O0 S0 ov=1.00 give me a structural verdict on this drafted paper, cove
|
|
25
|
+
|
|
26
|
+
=== tighten-paper [ACTION / LOW overlap]
|
|
27
|
+
Spent: 818,892 tokens (35 in · 4.4k out · 764.9k cache) · ~$0.59 API-equivalent
|
|
28
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
29
|
+
Session so far: 1,760,134 tokens · ~$2.04 API-equivalent
|
|
30
|
+
1.00 T3 O0 S0 ov=0.00 decide what gets deleted from this manuscript and list i
|
|
31
|
+
Spent: 272,298 tokens (12 in · 2.3k out · 224.9k cache) · ~$0.37 API-equivalent
|
|
32
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
33
|
+
Session so far: 2,032,432 tokens · ~$2.41 API-equivalent
|
|
34
|
+
0.33 T1 O0 S2 ov=0.00 tell me which two chapters should be welded into one, an
|
|
35
|
+
Spent: 269,556 tokens (12 in · 1.3k out · 224.2k cache) · ~$0.35 API-equivalent
|
|
36
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
37
|
+
Session so far: 2,301,988 tokens · ~$2.76 API-equivalent
|
|
38
|
+
0.33 T1 O0 S2 ov=0.00 I want a shortlist of paragraphs to delete so it fits on
|
|
39
|
+
Spent: 586,948 tokens (25 in · 2.4k out · 538.1k cache) · ~$0.48 API-equivalent
|
|
40
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
41
|
+
Session so far: 2,888,936 tokens · ~$3.24 API-equivalent
|
|
42
|
+
1.00 T3 O0 S0 ov=0.00 rank the chapters by how little they matter, worst first
|
|
43
|
+
|
|
44
|
+
=== tighten-paper [SITUATION / HIGH overlap]
|
|
45
|
+
0.00 T0 O0 S3 ov=1.00 this feels long and overly complex, and the middle drags
|
|
46
|
+
Spent: 313,677 tokens (13 in · 1.3k out · 267.8k cache) · ~$0.37 API-equivalent
|
|
47
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
48
|
+
Session so far: 3,202,613 tokens · ~$3.60 API-equivalent
|
|
49
|
+
1.00 T3 O0 S0 ov=0.67 after three review rounds it has collected a lot of hedg
|
|
50
|
+
Spent: 359,774 tokens (16 in · 1.6k out · 313.3k cache) · ~$0.39 API-equivalent
|
|
51
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
52
|
+
Session so far: 3,562,387 tokens · ~$3.99 API-equivalent
|
|
53
|
+
0.67 T2 O0 S1 ov=0.50 it does not deliver its point and nobody could skim it
|
|
54
|
+
Spent: 268,281 tokens (10 in · 1.1k out · 223.0k cache) · ~$0.35 API-equivalent
|
|
55
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
56
|
+
Session so far: 3,830,668 tokens · ~$4.34 API-equivalent
|
|
57
|
+
1.00 T3 O0 S0 ov=1.00 it is too long for its contribution and hard to read cov
|
|
58
|
+
|
|
59
|
+
=== tighten-paper [SITUATION / LOW overlap]
|
|
60
|
+
Spent: 685,381 tokens (119 in · 5.8k out · 629.8k cache) · ~$0.57 API-equivalent
|
|
61
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
62
|
+
Session so far: 4,516,049 tokens · ~$4.92 API-equivalent
|
|
63
|
+
0.00 T0 O1 S2 ov=0.00 people keep bailing out partway through and I cannot tel
|
|
64
|
+
instead: grade-paper-writing
|
|
65
|
+
0.00 T0 O0 S3 ov=0.00 there is a nine page ceiling and I am well over it
|
|
66
|
+
Spent: 363,146 tokens (16 in · 2.8k out · 314.6k cache) · ~$0.41 API-equivalent
|
|
67
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
68
|
+
Session so far: 4,879,195 tokens · ~$5.33 API-equivalent
|
|
69
|
+
0.33 T1 O0 S2 ov=0.00 my co-author says the whole thing sprawls and he lost th
|
|
70
|
+
Spent: 133,764 tokens (6 in · 830 out · 90.1k cache) · ~$0.30 API-equivalent
|
|
71
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
72
|
+
Session so far: 5,012,959 tokens · ~$5.62 API-equivalent
|
|
73
|
+
0.00 T0 O0 S3 ov=0.17 every paragraph seems necessary to me and yet the whole
|
|
74
|
+
|
|
75
|
+
=== grade-paper-writing [ACTION / HIGH overlap]
|
|
76
|
+
0.00 T0 O0 S3 ov=0.88 grade the writing craft in this draft and name the offen
|
|
77
|
+
Spent: 587,385 tokens (26 in · 2.7k out · 537.9k cache) · ~$0.48 API-equivalent
|
|
78
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
79
|
+
Session so far: 5,600,344 tokens · ~$6.10 API-equivalent
|
|
80
|
+
1.00 T3 O0 S0 ov=1.00 run the blind multi-grader panel over the prose clarity
|
|
81
|
+
Spent: 226,090 tokens (10 in · 3.1k out · 179.1k cache) · ~$0.36 API-equivalent
|
|
82
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
83
|
+
Session so far: 5,826,434 tokens · ~$6.47 API-equivalent
|
|
84
|
+
0.00 T0 O0 S3 ov=0.67 score the title, the abstract and the intro architecture
|
|
85
|
+
Spent: 133,732 tokens (6 in · 803 out · 90.1k cache) · ~$0.30 API-equivalent
|
|
86
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
87
|
+
Session so far: 5,960,166 tokens · ~$6.76 API-equivalent
|
|
88
|
+
0.00 T0 O0 S3 ov=0.86 grade how well this reads, hedge stacking included, and
|
|
89
|
+
|
|
90
|
+
=== grade-paper-writing [ACTION / LOW overlap]
|
|
91
|
+
Spent: 319,174 tokens (14 in · 3.7k out · 270.3k cache) · ~$0.41 API-equivalent
|
|
92
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
93
|
+
Session so far: 6,279,340 tokens · ~$7.17 API-equivalent
|
|
94
|
+
0.00 T0 O0 S3 ov=0.14 mark this manuscript out of five on how it is put togeth
|
|
95
|
+
Spent: 224,508 tokens (10 in · 1.3k out · 179.3k cache) · ~$0.34 API-equivalent
|
|
96
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
97
|
+
Session so far: 6,503,848 tokens · ~$7.51 API-equivalent
|
|
98
|
+
0.33 T1 O0 S2 ov=0.00 give me a scored report card on the language, with the w
|
|
99
|
+
Spent: 133,528 tokens (6 in · 606 out · 90.1k cache) · ~$0.29 API-equivalent
|
|
100
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
101
|
+
Session so far: 6,637,376 tokens · ~$7.80 API-equivalent
|
|
102
|
+
0.00 T0 O0 S3 ov=0.13 rate how professional the phrasing sounds against papers
|
|
103
|
+
0.00 T0 O0 S3 ov=0.29 assign a number to the quality of the English here and p
|
|
104
|
+
|
|
105
|
+
=== grade-paper-writing [SITUATION / HIGH overlap]
|
|
106
|
+
0.00 T0 O0 S3 ov=1.00 the abstract reads like a wall of jargon
|
|
107
|
+
0.00 T0 O0 S3 ov=0.80 the intro architecture is fine but the prose clarity is
|
|
108
|
+
0.00 T0 O0 S3 ov=0.67 there is hedge stacking everywhere and the point never l
|
|
109
|
+
Spent: 315,150 tokens (14 in · 1.8k out · 268.6k cache) · ~$0.38 API-equivalent
|
|
110
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
111
|
+
Session so far: 6,952,526 tokens · ~$8.18 API-equivalent
|
|
112
|
+
0.67 T2 O0 S1 ov=0.67 the writing does not read well even though the draft is
|
|
113
|
+
|
|
114
|
+
=== grade-paper-writing [SITUATION / LOW overlap]
|
|
115
|
+
Spent: 133,456 tokens (6 in · 531 out · 90.1k cache) · ~$0.29 API-equivalent
|
|
116
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
117
|
+
Session so far: 7,085,982 tokens · ~$8.47 API-equivalent
|
|
118
|
+
0.00 T0 O0 S3 ov=0.00 something about the way this is worded makes me wince an
|
|
119
|
+
Spent: 133,530 tokens (6 in · 627 out · 90.1k cache) · ~$0.29 API-equivalent
|
|
120
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
121
|
+
Session so far: 7,219,512 tokens · ~$8.76 API-equivalent
|
|
122
|
+
0.00 T0 O0 S3 ov=0.00 my supervisor said the English gets in the way of the sc
|
|
123
|
+
Spent: 133,279 tokens (6 in · 364 out · 90.1k cache) · ~$0.29 API-equivalent
|
|
124
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
125
|
+
Session so far: 7,352,791 tokens · ~$9.05 API-equivalent
|
|
126
|
+
0.00 T0 O0 S3 ov=0.20 the sentences are correct but they feel like wet cardboa
|
|
127
|
+
Spent: 133,973 tokens (6 in · 1.1k out · 90.1k cache) · ~$0.30 API-equivalent
|
|
128
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
129
|
+
Session so far: 7,486,764 tokens · ~$9.35 API-equivalent
|
|
130
|
+
0.00 T0 O0 S3 ov=0.00 I went through my own opening twice and still had to sta
|
|
131
|
+
|
|
132
|
+
=== argument-arc [ACTION / HIGH overlap]
|
|
133
|
+
Spent: 267,398 tokens (11 in · 683 out · 223.0k cache) · ~$0.34 API-equivalent
|
|
134
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
135
|
+
Session so far: 7,754,162 tokens · ~$9.69 API-equivalent
|
|
136
|
+
1.00 T3 O0 S0 ov=1.00 build the one-sentence-per-section outline before the la
|
|
137
|
+
Spent: 313,723 tokens (14 in · 1.2k out · 267.9k cache) · ~$0.37 API-equivalent
|
|
138
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
139
|
+
Session so far: 8,067,885 tokens · ~$10.06 API-equivalent
|
|
140
|
+
1.00 T3 O0 S0 ov=1.00 run the bottom-up inevitability pass over the argument a
|
|
141
|
+
Spent: 267,096 tokens (9 in · 557 out · 223.0k cache) · ~$0.34 API-equivalent
|
|
142
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
143
|
+
Session so far: 8,334,981 tokens · ~$10.40 API-equivalent
|
|
144
|
+
1.00 T3 O0 S0 ov=0.86 repair the argument architecture — the same structural o
|
|
145
|
+
Spent: 268,114 tokens (12 in · 947 out · 223.0k cache) · ~$0.35 API-equivalent
|
|
146
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
147
|
+
Session so far: 8,603,095 tokens · ~$10.74 API-equivalent
|
|
148
|
+
1.00 T3 O0 S0 ov=0.57 check the name and number budget, the reader has too muc
|
|
149
|
+
|
|
150
|
+
=== argument-arc [ACTION / LOW overlap]
|
|
151
|
+
Spent: 179,101 tokens (8 in · 1.4k out · 134.4k cache) · ~$0.32 API-equivalent
|
|
152
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
153
|
+
Session so far: 8,782,196 tokens · ~$11.06 API-equivalent
|
|
154
|
+
0.33 T1 O0 S2 ov=0.00 give me a single line for each part of the manuscript, w
|
|
155
|
+
Spent: 635,950 tokens (28 in · 3.1k out · 584.1k cache) · ~$0.51 API-equivalent
|
|
156
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
157
|
+
Session so far: 9,418,146 tokens · ~$11.58 API-equivalent
|
|
158
|
+
1.00 T3 O0 S0 ov=0.00 make the ending feel unavoidable given everything before
|
|
159
|
+
Spent: 685,144 tokens (29 in · 3.4k out · 632.8k cache) · ~$0.53 API-equivalent
|
|
160
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
161
|
+
Session so far: 10,103,290 tokens · ~$12.11 API-equivalent
|
|
162
|
+
1.00 T3 O0 S0 ov=0.00 count how many invented labels and figures the audience
|
|
163
|
+
Spent: 133,777 tokens (6 in · 842 out · 90.1k cache) · ~$0.30 API-equivalent
|
|
164
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
165
|
+
Session so far: 10,237,067 tokens · ~$12.41 API-equivalent
|
|
166
|
+
0.00 T0 O0 S3 ov=0.00 lay out the chain of reasoning as a list so I can see wh
|
|
167
|
+
|
|
168
|
+
=== argument-arc [SITUATION / HIGH overlap]
|
|
169
|
+
Spent: 267,056 tokens (9 in · 548 out · 223.0k cache) · ~$0.34 API-equivalent
|
|
170
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
171
|
+
Session so far: 10,504,123 tokens · ~$12.75 API-equivalent
|
|
172
|
+
1.00 T3 O0 S0 ov=1.00 the reader says we throw ideas at them
|
|
173
|
+
Spent: 268,105 tokens (10 in · 1.0k out · 223.0k cache) · ~$0.35 API-equivalent
|
|
174
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
175
|
+
Session so far: 10,772,228 tokens · ~$13.09 API-equivalent
|
|
176
|
+
1.00 T3 O0 S0 ov=0.60 the same structural objection repeats in every round
|
|
177
|
+
Spent: 451,000 tokens (20 in · 2.3k out · 402.9k cache) · ~$0.43 API-equivalent
|
|
178
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
179
|
+
Session so far: 11,223,228 tokens · ~$13.52 API-equivalent
|
|
180
|
+
1.00 T3 O0 S0 ov=0.67 there is no argument architecture here, just a sequence
|
|
181
|
+
Spent: 268,287 tokens (11 in · 1.1k out · 223.0k cache) · ~$0.35 API-equivalent
|
|
182
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
183
|
+
Session so far: 11,491,515 tokens · ~$13.87 API-equivalent
|
|
184
|
+
1.00 T3 O0 S0 ov=0.50 we blew the name and number budget somewhere in the midd
|
|
185
|
+
|
|
186
|
+
=== argument-arc [SITUATION / LOW overlap]
|
|
187
|
+
Spent: 133,143 tokens (6 in · 239 out · 90.1k cache) · ~$0.29 API-equivalent
|
|
188
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
189
|
+
Session so far: 11,624,658 tokens · ~$14.16 API-equivalent
|
|
190
|
+
0.00 T0 O0 S3 ov=0.00 each part is fine alone but together they do not add up
|
|
191
|
+
Spent: 360,852 tokens (16 in · 2.5k out · 312.8k cache) · ~$0.40 API-equivalent
|
|
192
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
193
|
+
Session so far: 11,985,510 tokens · ~$14.56 API-equivalent
|
|
194
|
+
1.00 T3 O0 S0 ov=0.00 my advisor cannot tell what the conclusion depends on
|
|
195
|
+
Spent: 133,182 tokens (6 in · 290 out · 90.1k cache) · ~$0.29 API-equivalent
|
|
196
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
197
|
+
Session so far: 12,118,692 tokens · ~$14.85 API-equivalent
|
|
198
|
+
0.00 T0 O0 S3 ov=0.00 the ending arrives without having been earned
|
|
199
|
+
Spent: 88,664 tokens (4 in · 56 out · 60.0k cache) · ~$0.19 API-equivalent
|
|
200
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
201
|
+
Session so far: 12,207,356 tokens · ~$15.04 API-equivalent
|
|
202
|
+
0.00 T0 O0 S3 ov=0.00 someone asked me what the point was and I gave three ans
|
|
203
|
+
|
|
204
|
+
==============================================================================
|
|
205
|
+
THE 2x2 — target trigger rate
|
|
206
|
+
|
|
207
|
+
HIGH overlap LOW overlap
|
|
208
|
+
ACTION 64% (23/36) 44% (16/36)
|
|
209
|
+
SITUATION 61% (22/36) 11% (4/36)
|
|
210
|
+
|
|
211
|
+
main effect of FRAMING (AH+AL) - (SH+SL) = 18pp
|
|
212
|
+
main effect of VOCABULARY (AH+SH) - (AL+SL) = 35pp
|
|
213
|
+
|
|
214
|
+
A (lexical) predicts AH high, SH high, AL low, SL low
|
|
215
|
+
B (framing) predicts AH high, AL high, SH low, SL low
|
|
216
|
+
observed AH 64% AL 44% SH 61% SL 11%
|
|
217
|
+
|
|
218
|
+
==============================================================================
|
|
219
|
+
WHAT FIRED INSTEAD — the C discriminator
|
|
220
|
+
|
|
221
|
+
cell target other silent
|
|
222
|
+
ACTION / HIGH overlap 64% 0% 36%
|
|
223
|
+
ACTION / LOW overlap 44% 0% 56%
|
|
224
|
+
SITUATION / HIGH overlap 61% 0% 39%
|
|
225
|
+
SITUATION / LOW overlap 11% 3% 86%
|
|
226
|
+
|
|
227
|
+
OTHER = a competitor was selected and the target was not. The prompt routed somewhere;
|
|
228
|
+
the selector disagreed. Ambiguity (C) or a lexically nearer rival (A).
|
|
229
|
+
SILENT = nothing resolved. The target was never selected AND neither was anything else.
|
|
230
|
+
A description that does not cover the phrasing (A or B) — but see caveat 2:
|
|
231
|
+
a run that simply answered the question is also SILENT.
|
|
232
|
+
|
|
233
|
+
WHICH competitors took the runs (all cells):
|
|
234
|
+
1 grade-paper-writing
|
|
235
|
+
|
|
236
|
+
per-skill, target rate by cell:
|
|
237
|
+
skill AH AL SH SL
|
|
238
|
+
tighten-paper 67% 67% 67% 8%
|
|
239
|
+
grade-paper-writing 25% 8% 17% 0%
|
|
240
|
+
argument-arc 100% 58% 100% 25%
|
|
241
|
+
|
|
242
|
+
per-run rows → repro/2026-08-08-framing-vs-vocabulary.json
|
|
243
|
+
|
|
244
|
+
Run --mode oracle before concluding C is dead: the 2x2 alone cannot tell "the description was
|
|
245
|
+
not a candidate" from "no description could have been", and that is exactly what C claims.
|