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,136 @@
|
|
|
1
|
+
|
|
2
|
+
37 skills installed → 36 competitors per run
|
|
3
|
+
|
|
4
|
+
ARMS — description length, word-set delta vs A0, mean prompt overlap
|
|
5
|
+
arm label chars words − + ovAH ovSH
|
|
6
|
+
A0 baseline (verbatim) 1174 94 0 0 0.85 0.78
|
|
7
|
+
A1 short (sentences 1-2 only) 528 46 48 0 0.71 0.78
|
|
8
|
+
A2 no-subordination 992 85 9 0 0.85 0.78
|
|
9
|
+
A3 no-negation 965 81 13 0 0.85 0.78
|
|
10
|
+
A4 no-machinery 598 44 50 0 0.44 0.35
|
|
11
|
+
A5 renamed (description identical) 1174 94 0 0 0.85 0.78
|
|
12
|
+
|
|
13
|
+
⚠ ovAH/ovSH FALL AS TEXT IS DELETED — caveat 2 in the header, quantified. The deletion arms carry
|
|
14
|
+
a vocabulary handicap against the parent's dominant factor. A rising deletion arm rose DESPITE it;
|
|
15
|
+
a flat one may be a real gain cancelled by it, and this design cannot tell. A5 is the only arm
|
|
16
|
+
with zero handicap (identical word set).
|
|
17
|
+
|
|
18
|
+
oracle: 6 arms x 8 closed-book picks over 37 descriptions
|
|
19
|
+
|
|
20
|
+
=== A0 baseline (verbatim)
|
|
21
|
+
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.
|
|
22
|
+
AH HIT grade-paper-writing grade the writing craft in this draft and name the offendi
|
|
23
|
+
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.
|
|
24
|
+
AH HIT grade-paper-writing run the blind multi-grader panel over the prose clarity an
|
|
25
|
+
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.
|
|
26
|
+
AH HIT grade-paper-writing score the title, the abstract and the intro architecture o
|
|
27
|
+
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.
|
|
28
|
+
AH HIT grade-paper-writing grade how well this reads, hedge stacking included, and gi
|
|
29
|
+
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.
|
|
30
|
+
SH HIT grade-paper-writing the abstract reads like a wall of jargon
|
|
31
|
+
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.
|
|
32
|
+
SH HIT grade-paper-writing the intro architecture is fine but the prose clarity is no
|
|
33
|
+
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.
|
|
34
|
+
SH miss tighten-paper there is hedge stacking everywhere and the point never lan
|
|
35
|
+
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.
|
|
36
|
+
SH HIT grade-paper-writing the writing does not read well even though the draft is fi
|
|
37
|
+
=== A1 short (sentences 1-2 only)
|
|
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
|
+
AH HIT grade-paper-writing grade the writing craft in this draft and name the offendi
|
|
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
|
+
AH HIT grade-paper-writing run the blind multi-grader panel over the prose clarity an
|
|
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
|
+
AH HIT grade-paper-writing score the title, the abstract and the intro architecture o
|
|
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 how well this reads, hedge stacking included, and gi
|
|
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
|
+
SH HIT grade-paper-writing the abstract reads like a wall of jargon
|
|
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
|
+
SH HIT grade-paper-writing the intro architecture is fine but the prose clarity is no
|
|
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
|
+
SH miss tighten-paper there is hedge stacking everywhere and the point never lan
|
|
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
|
+
SH HIT grade-paper-writing the writing does not read well even though the draft is fi
|
|
54
|
+
=== A2 no-subordination
|
|
55
|
+
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.
|
|
56
|
+
AH HIT grade-paper-writing grade the writing craft in this draft and name the offendi
|
|
57
|
+
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.
|
|
58
|
+
AH HIT grade-paper-writing run the blind multi-grader panel over the prose clarity an
|
|
59
|
+
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.
|
|
60
|
+
AH HIT grade-paper-writing score the title, the abstract and the intro architecture o
|
|
61
|
+
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.
|
|
62
|
+
AH HIT grade-paper-writing grade how well this reads, hedge stacking included, and gi
|
|
63
|
+
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.
|
|
64
|
+
SH HIT grade-paper-writing the abstract reads like a wall of jargon
|
|
65
|
+
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.
|
|
66
|
+
SH HIT grade-paper-writing the intro architecture is fine but the prose clarity is no
|
|
67
|
+
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.
|
|
68
|
+
SH HIT grade-paper-writing there is hedge stacking everywhere and the point never lan
|
|
69
|
+
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.
|
|
70
|
+
SH HIT grade-paper-writing the writing does not read well even though the draft is fi
|
|
71
|
+
=== A3 no-negation
|
|
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
|
+
AH HIT grade-paper-writing grade the writing craft in this draft and name the offendi
|
|
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
|
+
AH HIT grade-paper-writing run the blind multi-grader panel over the prose clarity an
|
|
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 grade-paper-writing score the title, the abstract and the intro architecture o
|
|
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 grade-paper-writing grade how well this reads, hedge stacking included, and gi
|
|
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
|
+
SH HIT grade-paper-writing the abstract reads like a wall of jargon
|
|
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
|
+
SH HIT grade-paper-writing the intro architecture is fine but the prose clarity is no
|
|
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
|
+
SH miss cold-read-diff there is hedge stacking everywhere and the point never lan
|
|
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
|
+
SH HIT grade-paper-writing the writing does not read well even though the draft is fi
|
|
88
|
+
=== A4 no-machinery
|
|
89
|
+
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.
|
|
90
|
+
AH HIT grade-paper-writing grade the writing craft in this draft and name the offendi
|
|
91
|
+
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.
|
|
92
|
+
AH HIT grade-paper-writing run the blind multi-grader panel over the prose clarity an
|
|
93
|
+
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.
|
|
94
|
+
AH HIT grade-paper-writing score the title, the abstract and the intro architecture o
|
|
95
|
+
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.
|
|
96
|
+
AH HIT grade-paper-writing grade how well this reads, hedge stacking included, and gi
|
|
97
|
+
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.
|
|
98
|
+
SH HIT grade-paper-writing the abstract reads like a wall of jargon
|
|
99
|
+
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.
|
|
100
|
+
SH HIT grade-paper-writing the intro architecture is fine but the prose clarity is no
|
|
101
|
+
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.
|
|
102
|
+
SH HIT grade-paper-writing there is hedge stacking everywhere and the point never lan
|
|
103
|
+
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.
|
|
104
|
+
SH HIT grade-paper-writing the writing does not read well even though the draft is fi
|
|
105
|
+
=== A5 renamed (description identical)
|
|
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
|
+
AH miss ?grade-paper-writing grade the writing craft in this draft and name the offendi
|
|
108
|
+
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.
|
|
109
|
+
AH miss ?grade-paper-writing run the blind multi-grader panel over the prose clarity an
|
|
110
|
+
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.
|
|
111
|
+
AH miss ?grade-paper-writing score the title, the abstract and the intro architecture o
|
|
112
|
+
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.
|
|
113
|
+
AH miss ?grade-paper-writing grade how well this reads, hedge stacking included, and gi
|
|
114
|
+
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.
|
|
115
|
+
SH miss ?grade-paper-writing the abstract reads like a wall of jargon
|
|
116
|
+
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.
|
|
117
|
+
SH miss ?grade-paper-writing the intro architecture is fine but the prose clarity is no
|
|
118
|
+
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.
|
|
119
|
+
SH miss tighten-paper there is hedge stacking everywhere and the point never lan
|
|
120
|
+
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.
|
|
121
|
+
SH miss ?grade-paper-writing the writing does not read well even though the draft is fi
|
|
122
|
+
|
|
123
|
+
ORACLE ACCURACY BY ARM (closed book, 37 descriptions in context, 1 pick each)
|
|
124
|
+
arm label hit AH SH none wrong
|
|
125
|
+
A0 baseline (verbatim) 7/8 4/4 3/4 0 1
|
|
126
|
+
A1 short (sentences 1-2 only) 7/8 4/4 3/4 0 1
|
|
127
|
+
A2 no-subordination 8/8 4/4 4/4 0 0
|
|
128
|
+
A3 no-negation 7/8 4/4 3/4 0 1
|
|
129
|
+
A4 no-machinery 8/8 4/4 4/4 0 0
|
|
130
|
+
A5 renamed (description identical) 0/8 0/4 0/4 0 8
|
|
131
|
+
|
|
132
|
+
rows → repro/2026-08-08-grade-paper-writing-ablation-oracle.json
|
|
133
|
+
|
|
134
|
+
READ AS AN UPPER BOUND, NOT A HUMAN, and read it AGAINST the harness arms: an arm where the
|
|
135
|
+
oracle moves WITH the harness changed what is recoverable from the text; an arm where the oracle
|
|
136
|
+
is flat and the harness moves changed what the harness DOES with the same recoverable text.
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
|
|
2
|
+
37 skills installed → 36 competitors per run
|
|
3
|
+
|
|
4
|
+
ARMS — description length, word-set delta vs A0, mean prompt overlap
|
|
5
|
+
arm label chars words − + ovAH ovSH
|
|
6
|
+
A0 baseline (verbatim) 1174 94 0 0 0.85 0.78
|
|
7
|
+
A1 short (sentences 1-2 only) 528 46 48 0 0.71 0.78
|
|
8
|
+
A2 no-subordination 992 85 9 0 0.85 0.78
|
|
9
|
+
A3 no-negation 965 81 13 0 0.85 0.78
|
|
10
|
+
A4 no-machinery 598 44 50 0 0.44 0.35
|
|
11
|
+
A5 renamed (description identical) 1174 94 0 0 0.85 0.78
|
|
12
|
+
|
|
13
|
+
⚠ ovAH/ovSH FALL AS TEXT IS DELETED — caveat 2 in the header, quantified. The deletion arms carry
|
|
14
|
+
a vocabulary handicap against the parent's dominant factor. A rising deletion arm rose DESPITE it;
|
|
15
|
+
a flat one may be a real gain cancelled by it, and this design cannot tell. A5 is the only arm
|
|
16
|
+
with zero handicap (identical word set).
|
|
17
|
+
|
|
18
|
+
mode=main 6 arms x 8 prompts x 3 trials = 144 runs
|
|
19
|
+
|
|
20
|
+
==============================================================================
|
|
21
|
+
=== A0 baseline (verbatim) (1174 chars, id vigiles-loose-skills:grade-paper-writing)
|
|
22
|
+
Spent: 224,340 tokens (10 in · 1.2k out · 89.3k cache) · ~$0.85 API-equivalent
|
|
23
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
24
|
+
AH 0.33 T1 O0 S2 ov=0.88 grade the writing craft in this draft and name the offen
|
|
25
|
+
Spent: 495,963 tokens (22 in · 2.2k out · 447.6k cache) · ~$0.44 API-equivalent
|
|
26
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
27
|
+
Session so far: 720,303 tokens · ~$1.29 API-equivalent
|
|
28
|
+
AH 1.00 T3 O0 S0 ov=1.00 run the blind multi-grader panel over the prose clarity
|
|
29
|
+
Spent: 544,750 tokens (23 in · 4.1k out · 493.1k cache) · ~$0.50 API-equivalent
|
|
30
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
31
|
+
Session so far: 1,265,053 tokens · ~$1.79 API-equivalent
|
|
32
|
+
AH 1.00 T3 O0 S0 ov=0.67 score the title, the abstract and the intro architecture
|
|
33
|
+
AH 0.00 T0 O0 S3 ov=0.86 grade how well this reads, hedge stacking included, and
|
|
34
|
+
SH 0.00 T0 O0 S3 ov=1.00 the abstract reads like a wall of jargon
|
|
35
|
+
Spent: 735,999 tokens (32 in · 7.3k out · 676.1k cache) · ~$0.63 API-equivalent
|
|
36
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
37
|
+
Session so far: 2,001,052 tokens · ~$2.42 API-equivalent
|
|
38
|
+
SH 0.67 T2 O0 S1 ov=0.80 the intro architecture is fine but the prose clarity is
|
|
39
|
+
Spent: 453,454 tokens (20 in · 2.9k out · 404.6k cache) · ~$0.44 API-equivalent
|
|
40
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
41
|
+
Session so far: 2,454,506 tokens · ~$2.86 API-equivalent
|
|
42
|
+
SH 0.67 T2 O0 S1 ov=0.67 there is hedge stacking everywhere and the point never l
|
|
43
|
+
Spent: 314,649 tokens (14 in · 1.7k out · 268.4k cache) · ~$0.37 API-equivalent
|
|
44
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
45
|
+
Session so far: 2,769,155 tokens · ~$3.23 API-equivalent
|
|
46
|
+
SH 0.67 T2 O0 S1 ov=0.67 the writing does not read well even though the draft is
|
|
47
|
+
|
|
48
|
+
==============================================================================
|
|
49
|
+
=== A1 short (sentences 1-2 only) (528 chars, id vigiles-loose-skills:grade-paper-writing)
|
|
50
|
+
Spent: 313,715 tokens (14 in · 1.2k out · 268.1k cache) · ~$0.36 API-equivalent
|
|
51
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
52
|
+
Session so far: 3,082,870 tokens · ~$3.59 API-equivalent
|
|
53
|
+
AH 0.67 T2 O0 S1 ov=0.88 grade the writing craft in this draft and name the offen
|
|
54
|
+
Spent: 500,245 tokens (22 in · 3.3k out · 449.4k cache) · ~$0.47 API-equivalent
|
|
55
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
56
|
+
Session so far: 3,583,115 tokens · ~$4.06 API-equivalent
|
|
57
|
+
AH 1.00 T3 O0 S0 ov=0.44 run the blind multi-grader panel over the prose clarity
|
|
58
|
+
Spent: 271,331 tokens (12 in · 1.7k out · 225.0k cache) · ~$0.36 API-equivalent
|
|
59
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
60
|
+
Session so far: 3,854,446 tokens · ~$4.42 API-equivalent
|
|
61
|
+
AH 0.33 T1 O0 S2 ov=0.67 score the title, the abstract and the intro architecture
|
|
62
|
+
AH 0.00 T0 O0 S3 ov=0.86 grade how well this reads, hedge stacking included, and
|
|
63
|
+
SH 0.00 T0 O0 S3 ov=1.00 the abstract reads like a wall of jargon
|
|
64
|
+
Spent: 837,604 tokens (36 in · 11.8k out · 769.3k cache) · ~$0.85 API-equivalent
|
|
65
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
66
|
+
Session so far: 4,692,050 tokens · ~$5.27 API-equivalent
|
|
67
|
+
SH 0.33 T1 O1 S1 ov=0.80 the intro architecture is fine but the prose clarity is
|
|
68
|
+
instead: cold-read-diff
|
|
69
|
+
Spent: 501,767 tokens (22 in · 3.5k out · 450.4k cache) · ~$0.47 API-equivalent
|
|
70
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
71
|
+
Session so far: 5,193,817 tokens · ~$5.75 API-equivalent
|
|
72
|
+
SH 1.00 T3 O0 S0 ov=0.67 there is hedge stacking everywhere and the point never l
|
|
73
|
+
Spent: 359,007 tokens (16 in · 1.5k out · 313.0k cache) · ~$0.38 API-equivalent
|
|
74
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
75
|
+
Session so far: 5,552,824 tokens · ~$6.13 API-equivalent
|
|
76
|
+
SH 0.67 T2 O0 S1 ov=0.67 the writing does not read well even though the draft is
|
|
77
|
+
|
|
78
|
+
==============================================================================
|
|
79
|
+
=== A2 no-subordination (992 chars, id vigiles-loose-skills:grade-paper-writing)
|
|
80
|
+
Spent: 403,627 tokens (18 in · 1.3k out · 357.7k cache) · ~$0.39 API-equivalent
|
|
81
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
82
|
+
Session so far: 5,956,451 tokens · ~$6.53 API-equivalent
|
|
83
|
+
AH 0.67 T2 O0 S1 ov=0.88 grade the writing craft in this draft and name the offen
|
|
84
|
+
Spent: 541,999 tokens (24 in · 2.3k out · 493.2k cache) · ~$0.46 API-equivalent
|
|
85
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
86
|
+
Session so far: 6,498,450 tokens · ~$6.99 API-equivalent
|
|
87
|
+
AH 1.00 T3 O0 S0 ov=1.00 run the blind multi-grader panel over the prose clarity
|
|
88
|
+
Spent: 549,686 tokens (24 in · 8.2k out · 493.4k cache) · ~$0.56 API-equivalent
|
|
89
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
90
|
+
Session so far: 7,048,136 tokens · ~$7.55 API-equivalent
|
|
91
|
+
AH 0.67 T2 O0 S1 ov=0.67 score the title, the abstract and the intro architecture
|
|
92
|
+
Spent: 133,822 tokens (6 in · 954 out · 90.1k cache) · ~$0.30 API-equivalent
|
|
93
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
94
|
+
Session so far: 7,181,958 tokens · ~$7.85 API-equivalent
|
|
95
|
+
AH 0.00 T0 O0 S3 ov=0.86 grade how well this reads, hedge stacking included, and
|
|
96
|
+
Spent: 403,466 tokens (18 in · 1.7k out · 357.0k cache) · ~$0.40 API-equivalent
|
|
97
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
98
|
+
Session so far: 7,585,424 tokens · ~$8.25 API-equivalent
|
|
99
|
+
SH 0.33 T1 O0 S2 ov=1.00 the abstract reads like a wall of jargon
|
|
100
|
+
Spent: 371,018 tokens (16 in · 4.5k out · 333.6k cache) · ~$0.42 API-equivalent
|
|
101
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
102
|
+
Session so far: 7,956,442 tokens · ~$8.67 API-equivalent
|
|
103
|
+
SH 0.00 T0 O1 S2 ov=0.80 the intro architecture is fine but the prose clarity is
|
|
104
|
+
instead: cold-read-diff
|
|
105
|
+
Spent: 634,493 tokens (27 in · 2.9k out · 584.6k cache) · ~$0.50 API-equivalent
|
|
106
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
107
|
+
Session so far: 8,590,935 tokens · ~$9.17 API-equivalent
|
|
108
|
+
SH 0.67 T2 O1 S0 ov=0.67 there is hedge stacking everywhere and the point never l
|
|
109
|
+
instead: tighten-paper
|
|
110
|
+
Spent: 450,474 tokens (20 in · 2.0k out · 403.4k cache) · ~$0.42 API-equivalent
|
|
111
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
112
|
+
Session so far: 9,041,409 tokens · ~$9.59 API-equivalent
|
|
113
|
+
SH 0.67 T2 O0 S1 ov=0.67 the writing does not read well even though the draft is
|
|
114
|
+
|
|
115
|
+
==============================================================================
|
|
116
|
+
=== A3 no-negation (965 chars, id vigiles-loose-skills:grade-paper-writing)
|
|
117
|
+
Spent: 358,407 tokens (16 in · 1.2k out · 312.7k cache) · ~$0.38 API-equivalent
|
|
118
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
119
|
+
Session so far: 9,399,816 tokens · ~$9.97 API-equivalent
|
|
120
|
+
AH 0.67 T2 O0 S1 ov=0.88 grade the writing craft in this draft and name the offen
|
|
121
|
+
Spent: 313,797 tokens (14 in · 1.5k out · 267.5k cache) · ~$0.37 API-equivalent
|
|
122
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
123
|
+
Session so far: 9,713,613 tokens · ~$10.34 API-equivalent
|
|
124
|
+
AH 1.00 T3 O0 S0 ov=1.00 run the blind multi-grader panel over the prose clarity
|
|
125
|
+
Spent: 405,847 tokens (18 in · 2.3k out · 358.2k cache) · ~$0.41 API-equivalent
|
|
126
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
127
|
+
Session so far: 10,119,460 tokens · ~$10.75 API-equivalent
|
|
128
|
+
AH 0.67 T2 O0 S1 ov=0.67 score the title, the abstract and the intro architecture
|
|
129
|
+
AH 0.00 T0 O0 S3 ov=0.86 grade how well this reads, hedge stacking included, and
|
|
130
|
+
Spent: 268,334 tokens (11 in · 1.2k out · 222.8k cache) · ~$0.35 API-equivalent
|
|
131
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
132
|
+
Session so far: 10,387,794 tokens · ~$11.10 API-equivalent
|
|
133
|
+
SH 1.00 T3 O0 S0 ov=1.00 the abstract reads like a wall of jargon
|
|
134
|
+
Spent: 554,174 tokens (110 in · 6.2k out · 497.4k cache) · ~$0.54 API-equivalent
|
|
135
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
136
|
+
Session so far: 10,941,968 tokens · ~$11.65 API-equivalent
|
|
137
|
+
SH 0.33 T1 O0 S2 ov=0.80 the intro architecture is fine but the prose clarity is
|
|
138
|
+
SH 0.00 T0 O0 S3 ov=0.67 there is hedge stacking everywhere and the point never l
|
|
139
|
+
Spent: 223,224 tokens (9 in · 1.0k out · 178.6k cache) · ~$0.33 API-equivalent
|
|
140
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
141
|
+
Session so far: 11,165,192 tokens · ~$11.98 API-equivalent
|
|
142
|
+
SH 0.67 T2 O0 S1 ov=0.67 the writing does not read well even though the draft is
|
|
143
|
+
|
|
144
|
+
==============================================================================
|
|
145
|
+
=== A4 no-machinery (598 chars, id vigiles-loose-skills:grade-paper-writing)
|
|
146
|
+
Spent: 494,646 tokens (22 in · 1.8k out · 447.2k cache) · ~$0.43 API-equivalent
|
|
147
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
148
|
+
Session so far: 11,659,838 tokens · ~$12.41 API-equivalent
|
|
149
|
+
AH 1.00 T3 O0 S0 ov=0.88 grade the writing craft in this draft and name the offen
|
|
150
|
+
Spent: 637,466 tokens (28 in · 3.6k out · 586.2k cache) · ~$0.52 API-equivalent
|
|
151
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
152
|
+
Session so far: 12,297,304 tokens · ~$12.93 API-equivalent
|
|
153
|
+
AH 1.00 T3 O0 S0 ov=0.33 run the blind multi-grader panel over the prose clarity
|
|
154
|
+
AH 0.00 T0 O0 S3 ov=0.00 score the title, the abstract and the intro architecture
|
|
155
|
+
Spent: 133,988 tokens (6 in · 1.1k out · 90.1k cache) · ~$0.30 API-equivalent
|
|
156
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
157
|
+
Session so far: 12,431,292 tokens · ~$13.23 API-equivalent
|
|
158
|
+
AH 0.00 T0 O0 S3 ov=0.57 grade how well this reads, hedge stacking included, and
|
|
159
|
+
Spent: 314,207 tokens (14 in · 1.3k out · 268.4k cache) · ~$0.37 API-equivalent
|
|
160
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
161
|
+
Session so far: 12,745,499 tokens · ~$13.60 API-equivalent
|
|
162
|
+
SH 0.67 T2 O0 S1 ov=0.75 the abstract reads like a wall of jargon
|
|
163
|
+
Spent: 369,391 tokens (16 in · 4.3k out · 318.1k cache) · ~$0.55 API-equivalent
|
|
164
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
165
|
+
Session so far: 13,114,890 tokens · ~$14.14 API-equivalent
|
|
166
|
+
SH 0.00 T0 O1 S2 ov=0.00 the intro architecture is fine but the prose clarity is
|
|
167
|
+
instead: cold-read-diff
|
|
168
|
+
Spent: 315,041 tokens (13 in · 2.1k out · 268.6k cache) · ~$0.38 API-equivalent
|
|
169
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
170
|
+
Session so far: 13,429,931 tokens · ~$14.52 API-equivalent
|
|
171
|
+
SH 0.00 T0 O2 S1 ov=0.00 there is hedge stacking everywhere and the point never l
|
|
172
|
+
instead: tighten-paper
|
|
173
|
+
Spent: 359,178 tokens (15 in · 1.5k out · 312.7k cache) · ~$0.39 API-equivalent
|
|
174
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
175
|
+
Session so far: 13,789,109 tokens · ~$14.91 API-equivalent
|
|
176
|
+
SH 1.00 T3 O0 S0 ov=0.67 the writing does not read well even though the draft is
|
|
177
|
+
|
|
178
|
+
==============================================================================
|
|
179
|
+
=== A5 renamed (description identical) (1174 chars, id vigiles-loose-skills:paper-readability-review)
|
|
180
|
+
AH 0.00 T0 O0 S3 ov=0.88 grade the writing craft in this draft and name the offen
|
|
181
|
+
Spent: 358,723 tokens (16 in · 1.4k out · 312.6k cache) · ~$0.38 API-equivalent
|
|
182
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
183
|
+
Session so far: 14,147,832 tokens · ~$15.29 API-equivalent
|
|
184
|
+
AH 1.00 T3 O0 S0 ov=1.00 run the blind multi-grader panel over the prose clarity
|
|
185
|
+
Spent: 363,060 tokens (16 in · 4.0k out · 313.5k cache) · ~$0.43 API-equivalent
|
|
186
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
187
|
+
Session so far: 14,510,892 tokens · ~$15.72 API-equivalent
|
|
188
|
+
AH 0.33 T1 O0 S2 ov=0.67 score the title, the abstract and the intro architecture
|
|
189
|
+
AH 0.00 T0 O0 S3 ov=0.86 grade how well this reads, hedge stacking included, and
|
|
190
|
+
SH 0.00 T0 O0 S3 ov=1.00 the abstract reads like a wall of jargon
|
|
191
|
+
Spent: 596,707 tokens (26 in · 6.4k out · 540.2k cache) · ~$0.56 API-equivalent
|
|
192
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
193
|
+
Session so far: 15,107,599 tokens · ~$16.28 API-equivalent
|
|
194
|
+
SH 0.00 T0 O0 S3 ov=0.80 the intro architecture is fine but the prose clarity is
|
|
195
|
+
Spent: 634,313 tokens (28 in · 3.2k out · 583.8k cache) · ~$0.51 API-equivalent
|
|
196
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
197
|
+
Session so far: 15,741,912 tokens · ~$16.78 API-equivalent
|
|
198
|
+
SH 0.67 T2 O1 S0 ov=0.67 there is hedge stacking everywhere and the point never l
|
|
199
|
+
instead: tighten-paper
|
|
200
|
+
Spent: 179,241 tokens (8 in · 1.4k out · 134.4k cache) · ~$0.32 API-equivalent
|
|
201
|
+
Billed to: your Claude subscription — $0 metered ✅
|
|
202
|
+
Session so far: 15,921,153 tokens · ~$17.10 API-equivalent
|
|
203
|
+
SH 0.00 T0 O0 S3 ov=0.67 the writing does not read well even though the draft is
|
|
204
|
+
|
|
205
|
+
==============================================================================
|
|
206
|
+
THE ABLATION — target trigger rate by arm
|
|
207
|
+
|
|
208
|
+
arm label chars fired AH SH Δ vs A0
|
|
209
|
+
A0 baseline (verbatim) 1174 54% (13/24) 58% 50% —
|
|
210
|
+
A1 short (sentences 1-2 only) 528 50% (12/24) 50% 50% -4pp
|
|
211
|
+
A2 no-subordination 992 50% (12/24) 58% 42% -4pp
|
|
212
|
+
A3 no-negation 965 54% (13/24) 58% 50% 0pp
|
|
213
|
+
A4 no-machinery 598 46% (11/24) 50% 42% -8pp
|
|
214
|
+
A5 renamed (description identical) 1174 25% (6/24) 33% 17% -29pp
|
|
215
|
+
|
|
216
|
+
==============================================================================
|
|
217
|
+
TARGET / OTHER / SILENT — the parent's discriminator
|
|
218
|
+
|
|
219
|
+
arm label target other silent
|
|
220
|
+
A0 baseline (verbatim) 54% 0% 46%
|
|
221
|
+
A1 short (sentences 1-2 only) 50% 4% 46%
|
|
222
|
+
A2 no-subordination 50% 8% 42%
|
|
223
|
+
A3 no-negation 54% 0% 46%
|
|
224
|
+
A4 no-machinery 46% 13% 42%
|
|
225
|
+
A5 renamed (description identical) 25% 4% 71%
|
|
226
|
+
|
|
227
|
+
OTHER = a competitor was selected and the target was not. The parent saw ONE in 144 runs.
|
|
228
|
+
SILENT = nothing resolved. 42 of this skill's 48 parent runs were SILENT; that is the number
|
|
229
|
+
an arm has to move. See caveat 4: a run that simply answered is also SILENT.
|
|
230
|
+
|
|
231
|
+
WHICH competitors took the runs (all arms):
|
|
232
|
+
4 tighten-paper
|
|
233
|
+
3 cold-read-diff
|
|
234
|
+
|
|
235
|
+
🔴 n = 24 PER ARM. At ~20% baseline the 95% interval is roughly ±16pp. A factor of two is
|
|
236
|
+
readable; fifteen points is not. If every arm lands within noise of A0, the finding is that the
|
|
237
|
+
cause is NOT IN THE DESCRIPTION TEXT — report that, do not pick the largest number.
|
|
238
|
+
|
|
239
|
+
per-run rows → repro/2026-08-08-grade-paper-writing-ablation.json
|
|
240
|
+
|
|
241
|
+
Run --mode oracle before reading any arm as a mechanism: a harness move with a matching oracle
|
|
242
|
+
move is a change in what the TEXT supports, not in what the harness does with it.
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
|
|
2
|
+
37 skills installed → 36 competitors per run
|
|
3
|
+
|
|
4
|
+
ARMS — description length, word-set delta vs A0, mean prompt overlap
|
|
5
|
+
arm label chars words − + ovAH ovSH
|
|
6
|
+
A0 baseline (verbatim) 1174 94 0 0 0.85 0.78
|
|
7
|
+
A1 short (sentences 1-2 only) 528 46 48 0 0.71 0.78
|
|
8
|
+
A2 no-subordination 992 85 9 0 0.85 0.78
|
|
9
|
+
A3 no-negation 965 81 13 0 0.85 0.78
|
|
10
|
+
A4 no-machinery 598 44 50 0 0.44 0.35
|
|
11
|
+
A5 renamed (description identical) 1174 94 0 0 0.85 0.78
|
|
12
|
+
A6 persona-only (A1's mirror) 225 22 72 0 0.19 0.35
|
|
13
|
+
|
|
14
|
+
⚠ ovAH/ovSH FALL AS TEXT IS DELETED — caveat 2 in the header, quantified. The deletion arms carry
|
|
15
|
+
a vocabulary handicap against the parent's dominant factor. A rising deletion arm rose DESPITE it;
|
|
16
|
+
a flat one may be a real gain cancelled by it, and this design cannot tell. A5 is the only arm
|
|
17
|
+
with zero handicap (identical word set).
|
|
18
|
+
|
|
19
|
+
HARNESS OPTIONS — this file vs the parent (extracted from both sources)
|
|
20
|
+
option ablation parent
|
|
21
|
+
allowedTools ["Skill" ["Skill"
|
|
22
|
+
trials TRIALS TRIALS
|
|
23
|
+
concurrency 3 3
|
|
24
|
+
spacingSec 2 2
|
|
25
|
+
timeoutMs 180000 180000
|
|
26
|
+
minPrompts 4 4
|
|
27
|
+
fixture /.exec(src)?.[0] ?? "").replace( FIXTURE
|
|
28
|
+
skillsDir dir SKILLS_DIR
|
|
29
|
+
|
|
30
|
+
fixture sha256/16 ablation 1cee4e4c8fc95e59
|
|
31
|
+
FIXTURE source block identical to the parent's: YES
|
|
32
|
+
fired predicate identical (modulo the id it matches): YES
|
|
33
|
+
firedSkills() helper identical: YES
|
|
34
|
+
|
|
35
|
+
ARM DIR INTEGRITY — sha256/16 of each SKILL.md frontmatter vs the real .claude/skills
|
|
36
|
+
A0 37 skills · unintended frontmatter diffs: none
|
|
37
|
+
A1 37 skills · unintended frontmatter diffs: none
|
|
38
|
+
A2 37 skills · unintended frontmatter diffs: none
|
|
39
|
+
A3 37 skills · unintended frontmatter diffs: none
|
|
40
|
+
A4 37 skills · unintended frontmatter diffs: none
|
|
41
|
+
A5 37 skills · unintended frontmatter diffs: none
|
|
42
|
+
A6 37 skills · unintended frontmatter diffs: none
|
|
43
|
+
|
|
44
|
+
ROW BY ROW — parent (8 prompts) vs this file's A0 (8 prompts)
|
|
45
|
+
cell parent A0 Δ prompt
|
|
46
|
+
AH 0/3 1/3 +1 grade the writing craft in this draft and name the off
|
|
47
|
+
AH 3/3 3/3 0 run the blind multi-grader panel over the prose clarit
|
|
48
|
+
AH 0/3 3/3 +3 score the title, the abstract and the intro architectu
|
|
49
|
+
AH 0/3 0/3 0 grade how well this reads, hedge stacking included, an
|
|
50
|
+
SH 0/3 0/3 0 the abstract reads like a wall of jargon
|
|
51
|
+
SH 0/3 2/3 +2 the intro architecture is fine but the prose clarity i
|
|
52
|
+
SH 0/3 2/3 +2 there is hedge stacking everywhere and the point never
|
|
53
|
+
SH 2/3 2/3 0 the writing does not read well even though the draft i
|
|
54
|
+
5/24 13/24 +8 TOTAL
|
|
55
|
+
|
|
56
|
+
3 of 8 prompts moved by ≥2 of 3 trials. Spread across many prompts ⇒ a global shift
|
|
57
|
+
(session, load, model routing). Concentrated in one or two ⇒ something prompt-specific.
|
|
58
|
+
|
|
59
|
+
SETUPDIFF COMPLETE. No tokens spent.
|