psyclaw 0.27.22 → 0.28.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.
Files changed (1048) hide show
  1. package/README.md +11 -5
  2. package/dist/apps/panel/index.html +2 -2
  3. package/dist/src/adapters/pi/extension.js +225 -92
  4. package/dist/src/adapters/pi/extension.js.map +1 -1
  5. package/dist/src/agents/import.js +44 -32
  6. package/dist/src/agents/import.js.map +1 -1
  7. package/dist/src/analysis/hooks.d.ts +1 -0
  8. package/dist/src/analysis/hooks.js +20 -1
  9. package/dist/src/analysis/hooks.js.map +1 -1
  10. package/dist/src/ars/bridge.d.ts +20 -0
  11. package/dist/src/ars/bridge.js +132 -0
  12. package/dist/src/ars/bridge.js.map +1 -0
  13. package/dist/src/ars/contracts.d.ts +55 -0
  14. package/dist/src/ars/contracts.js +2 -0
  15. package/dist/src/ars/contracts.js.map +1 -0
  16. package/dist/src/ars/panel-plan.d.ts +4 -0
  17. package/dist/src/ars/panel-plan.js +11 -0
  18. package/dist/src/ars/panel-plan.js.map +1 -0
  19. package/dist/src/ars/pi-panel-executor.d.ts +30 -0
  20. package/dist/src/ars/pi-panel-executor.js +140 -0
  21. package/dist/src/ars/pi-panel-executor.js.map +1 -0
  22. package/dist/src/ars/profile.d.ts +36 -0
  23. package/dist/src/ars/profile.js +119 -0
  24. package/dist/src/ars/profile.js.map +1 -0
  25. package/dist/src/ars/re-review.d.ts +22 -0
  26. package/dist/src/ars/re-review.js +172 -0
  27. package/dist/src/ars/re-review.js.map +1 -0
  28. package/dist/src/branding.d.ts +2 -4
  29. package/dist/src/branding.js +3 -5
  30. package/dist/src/branding.js.map +1 -1
  31. package/dist/src/bundled-tools.d.ts +3 -0
  32. package/dist/src/bundled-tools.js +21 -0
  33. package/dist/src/bundled-tools.js.map +1 -0
  34. package/dist/src/chat.js +6 -5
  35. package/dist/src/chat.js.map +1 -1
  36. package/dist/src/creation/contracts.d.ts +38 -0
  37. package/dist/src/creation/contracts.js +2 -0
  38. package/dist/src/creation/contracts.js.map +1 -0
  39. package/dist/src/creation/service.d.ts +7 -0
  40. package/dist/src/creation/service.js +196 -0
  41. package/dist/src/creation/service.js.map +1 -0
  42. package/dist/src/index.d.ts +10 -0
  43. package/dist/src/index.js +10 -0
  44. package/dist/src/index.js.map +1 -1
  45. package/dist/src/install/installer.js +32 -10
  46. package/dist/src/install/installer.js.map +1 -1
  47. package/dist/src/orchestration/personas.d.ts +15 -0
  48. package/dist/src/orchestration/personas.js +51 -0
  49. package/dist/src/orchestration/personas.js.map +1 -0
  50. package/dist/src/orchestration/pi-executor.d.ts +1 -0
  51. package/dist/src/orchestration/pi-executor.js +1 -1
  52. package/dist/src/orchestration/pi-executor.js.map +1 -1
  53. package/dist/src/panel/extension.js +29 -8
  54. package/dist/src/panel/extension.js.map +1 -1
  55. package/dist/src/panel/server.js +14 -5
  56. package/dist/src/panel/server.js.map +1 -1
  57. package/dist/src/project/paths.d.ts +3 -0
  58. package/dist/src/project/paths.js +7 -0
  59. package/dist/src/project/paths.js.map +1 -1
  60. package/dist/src/rules/user-rules.d.ts +8 -0
  61. package/dist/src/rules/user-rules.js +36 -0
  62. package/dist/src/rules/user-rules.js.map +1 -0
  63. package/dist/src/skills/contracts.d.ts +4 -4
  64. package/dist/src/skills/recommended.js +1 -1
  65. package/dist/src/skills/registry.js +49 -28
  66. package/dist/src/skills/registry.js.map +1 -1
  67. package/dist/src/style/cli-ui.js +0 -1
  68. package/dist/src/style/cli-ui.js.map +1 -1
  69. package/package.json +14 -3
  70. package/scripts/rebrand-pi.mjs +6 -0
  71. package/skills/recommended/catalog.json +2 -11
  72. package/vendor/ars/.claude/CLAUDE.md +371 -0
  73. package/vendor/ars/.command-invariants.toml +24 -0
  74. package/vendor/ars/CITATION.cff +35 -0
  75. package/vendor/ars/LICENSE +417 -0
  76. package/vendor/ars/MODE_REGISTRY.md +76 -0
  77. package/vendor/ars/NOTICE.md +26 -0
  78. package/vendor/ars/POSITIONING.md +99 -0
  79. package/vendor/ars/PSYCLAW_SOURCE.json +10 -0
  80. package/vendor/ars/README.md +751 -0
  81. package/vendor/ars/SECURITY.md +52 -0
  82. package/vendor/ars/THIRD_PARTY.md +70 -0
  83. package/vendor/ars/academic-paper/SKILL.md +542 -0
  84. package/vendor/ars/academic-paper/agents/abstract_bilingual_agent.md +171 -0
  85. package/vendor/ars/academic-paper/agents/argument_builder_agent.md +276 -0
  86. package/vendor/ars/academic-paper/agents/citation_compliance_agent.md +422 -0
  87. package/vendor/ars/academic-paper/agents/draft_writer_agent.md +656 -0
  88. package/vendor/ars/academic-paper/agents/formatter_agent.md +999 -0
  89. package/vendor/ars/academic-paper/agents/intake_agent.md +393 -0
  90. package/vendor/ars/academic-paper/agents/literature_strategist_agent.md +626 -0
  91. package/vendor/ars/academic-paper/agents/peer_reviewer_agent.md +516 -0
  92. package/vendor/ars/academic-paper/agents/revision_coach_agent.md +334 -0
  93. package/vendor/ars/academic-paper/agents/socratic_mentor_agent.md +527 -0
  94. package/vendor/ars/academic-paper/agents/structure_architect_agent.md +401 -0
  95. package/vendor/ars/academic-paper/agents/visualization_agent.md +441 -0
  96. package/vendor/ars/academic-paper/examples/chinese_paper_example.md +278 -0
  97. package/vendor/ars/academic-paper/examples/clinical_citation_verification_checklist.md +95 -0
  98. package/vendor/ars/academic-paper/examples/clinical_epistemic_status_example.md +100 -0
  99. package/vendor/ars/academic-paper/examples/commitment_ledger_example.md +147 -0
  100. package/vendor/ars/academic-paper/examples/imrad_hei_example.md +234 -0
  101. package/vendor/ars/academic-paper/examples/literature_review_example.md +260 -0
  102. package/vendor/ars/academic-paper/examples/plan_mode_guided_writing.md +600 -0
  103. package/vendor/ars/academic-paper/examples/revision_mode_example.md +344 -0
  104. package/vendor/ars/academic-paper/examples/revision_recovery_example.md +506 -0
  105. package/vendor/ars/academic-paper/examples/version_family_reconciliation_example.md +89 -0
  106. package/vendor/ars/academic-paper/references/abstract_writing_guide.md +169 -0
  107. package/vendor/ars/academic-paper/references/academic_writing_style.md +188 -0
  108. package/vendor/ars/academic-paper/references/anti_leakage_protocol.md +83 -0
  109. package/vendor/ars/academic-paper/references/apa7_chinese_citation_guide.md +364 -0
  110. package/vendor/ars/academic-paper/references/apa7_extended_guide.md +198 -0
  111. package/vendor/ars/academic-paper/references/changelog.md +11 -0
  112. package/vendor/ars/academic-paper/references/citation_format_switcher.md +228 -0
  113. package/vendor/ars/academic-paper/references/committee_correspondence_protocol.md +158 -0
  114. package/vendor/ars/academic-paper/references/credit_authorship_guide.md +308 -0
  115. package/vendor/ars/academic-paper/references/disclosure_mode_protocol.md +478 -0
  116. package/vendor/ars/academic-paper/references/domain_evidence_profiles.md +38 -0
  117. package/vendor/ars/academic-paper/references/failure_paths.md +349 -0
  118. package/vendor/ars/academic-paper/references/funding_statement_guide.md +319 -0
  119. package/vendor/ars/academic-paper/references/hei_domain_glossary.md +169 -0
  120. package/vendor/ars/academic-paper/references/intro_title_rhetoric_guide.md +114 -0
  121. package/vendor/ars/academic-paper/references/journal_submission_guide.md +249 -0
  122. package/vendor/ars/academic-paper/references/latex_template_reference.md +378 -0
  123. package/vendor/ars/academic-paper/references/mode_selection_guide.md +378 -0
  124. package/vendor/ars/academic-paper/references/paper_structure_patterns.md +330 -0
  125. package/vendor/ars/academic-paper/references/plan_mode_protocol.md +112 -0
  126. package/vendor/ars/academic-paper/references/policy_anchor_disclosure_protocol.md +200 -0
  127. package/vendor/ars/academic-paper/references/policy_anchor_table.md +157 -0
  128. package/vendor/ars/academic-paper/references/revision_patch_protocol.md +173 -0
  129. package/vendor/ars/academic-paper/references/statistical_visualization_standards.md +750 -0
  130. package/vendor/ars/academic-paper/references/venue_disclosure_policies.md +259 -0
  131. package/vendor/ars/academic-paper/references/vlm_figure_verification.md +126 -0
  132. package/vendor/ars/academic-paper/references/workflow_phase_details.md +135 -0
  133. package/vendor/ars/academic-paper/references/writing_judgment_framework.md +59 -0
  134. package/vendor/ars/academic-paper/references/writing_quality_check.md +173 -0
  135. package/vendor/ars/academic-paper/templates/bilingual_abstract_template.md +78 -0
  136. package/vendor/ars/academic-paper/templates/case_study_template.md +129 -0
  137. package/vendor/ars/academic-paper/templates/conference_paper_template.md +108 -0
  138. package/vendor/ars/academic-paper/templates/credit_statement_template.md +132 -0
  139. package/vendor/ars/academic-paper/templates/funding_statement_template.md +290 -0
  140. package/vendor/ars/academic-paper/templates/imrad_template.md +183 -0
  141. package/vendor/ars/academic-paper/templates/latex_article_template.tex +199 -0
  142. package/vendor/ars/academic-paper/templates/literature_review_template.md +135 -0
  143. package/vendor/ars/academic-paper/templates/policy_brief_template.md +139 -0
  144. package/vendor/ars/academic-paper/templates/revision_tracking_template.md +199 -0
  145. package/vendor/ars/academic-paper/templates/theoretical_paper_template.md +119 -0
  146. package/vendor/ars/academic-paper-reviewer/SKILL.md +491 -0
  147. package/vendor/ars/academic-paper-reviewer/agents/devils_advocate_reviewer_agent.md +443 -0
  148. package/vendor/ars/academic-paper-reviewer/agents/domain_reviewer_agent.md +412 -0
  149. package/vendor/ars/academic-paper-reviewer/agents/editorial_synthesizer_agent.md +478 -0
  150. package/vendor/ars/academic-paper-reviewer/agents/eic_agent.md +339 -0
  151. package/vendor/ars/academic-paper-reviewer/agents/field_analyst_agent.md +221 -0
  152. package/vendor/ars/academic-paper-reviewer/agents/methodology_reviewer_agent.md +449 -0
  153. package/vendor/ars/academic-paper-reviewer/agents/perspective_reviewer_agent.md +427 -0
  154. package/vendor/ars/academic-paper-reviewer/examples/hei_paper_review_example.md +391 -0
  155. package/vendor/ars/academic-paper-reviewer/examples/interdisciplinary_review_example.md +299 -0
  156. package/vendor/ars/academic-paper-reviewer/examples/subclaim_decomposition_example.md +80 -0
  157. package/vendor/ars/academic-paper-reviewer/references/calibration_mode_protocol.md +256 -0
  158. package/vendor/ars/academic-paper-reviewer/references/changelog.md +10 -0
  159. package/vendor/ars/academic-paper-reviewer/references/editorial_decision_standards.md +236 -0
  160. package/vendor/ars/academic-paper-reviewer/references/guided_mode_protocol.md +34 -0
  161. package/vendor/ars/academic-paper-reviewer/references/integration_guide.md +15 -0
  162. package/vendor/ars/academic-paper-reviewer/references/quality_rubrics.md +84 -0
  163. package/vendor/ars/academic-paper-reviewer/references/re_review_mode_protocol.md +340 -0
  164. package/vendor/ars/academic-paper-reviewer/references/review_criteria_framework.md +98 -0
  165. package/vendor/ars/academic-paper-reviewer/references/review_panel_provenance_protocol.md +197 -0
  166. package/vendor/ars/academic-paper-reviewer/references/review_quality_thinking.md +58 -0
  167. package/vendor/ars/academic-paper-reviewer/references/reviewer_sprint_prompt_source.md +324 -0
  168. package/vendor/ars/academic-paper-reviewer/references/sprint_contract_protocol.md +296 -0
  169. package/vendor/ars/academic-paper-reviewer/references/statistical_reporting_standards.md +505 -0
  170. package/vendor/ars/academic-paper-reviewer/references/top_journals_by_field.md +206 -0
  171. package/vendor/ars/academic-paper-reviewer/templates/editorial_decision_template.md +235 -0
  172. package/vendor/ars/academic-paper-reviewer/templates/peer_review_report_template.md +305 -0
  173. package/vendor/ars/academic-paper-reviewer/templates/revision_response_template.md +248 -0
  174. package/vendor/ars/academic-pipeline/SKILL.md +736 -0
  175. package/vendor/ars/academic-pipeline/agents/claim_ref_alignment_audit_agent.md +382 -0
  176. package/vendor/ars/academic-pipeline/agents/collaboration_depth_agent.md +164 -0
  177. package/vendor/ars/academic-pipeline/agents/integrity_verification_agent.md +870 -0
  178. package/vendor/ars/academic-pipeline/agents/pipeline_orchestrator_agent.md +1379 -0
  179. package/vendor/ars/academic-pipeline/agents/state_tracker_agent.md +622 -0
  180. package/vendor/ars/academic-pipeline/examples/full_pipeline_example.md +482 -0
  181. package/vendor/ars/academic-pipeline/examples/integrity_failure_recovery.md +389 -0
  182. package/vendor/ars/academic-pipeline/examples/mid_entry_example.md +414 -0
  183. package/vendor/ars/academic-pipeline/references/adapters/.gitkeep +0 -0
  184. package/vendor/ars/academic-pipeline/references/adapters/overview.md +153 -0
  185. package/vendor/ars/academic-pipeline/references/ai_research_failure_modes.md +185 -0
  186. package/vendor/ars/academic-pipeline/references/changelog.md +14 -0
  187. package/vendor/ars/academic-pipeline/references/claim_audit_calibration_protocol.md +175 -0
  188. package/vendor/ars/academic-pipeline/references/claim_verification_protocol.md +282 -0
  189. package/vendor/ars/academic-pipeline/references/external_review_protocol.md +131 -0
  190. package/vendor/ars/academic-pipeline/references/integrity_review_protocol.md +110 -0
  191. package/vendor/ars/academic-pipeline/references/literature_corpus_consumers.md +193 -0
  192. package/vendor/ars/academic-pipeline/references/mode_advisor.md +135 -0
  193. package/vendor/ars/academic-pipeline/references/passport_as_reset_boundary.md +132 -0
  194. package/vendor/ars/academic-pipeline/references/pipeline_state_machine.md +405 -0
  195. package/vendor/ars/academic-pipeline/references/plagiarism_detection_protocol.md +239 -0
  196. package/vendor/ars/academic-pipeline/references/process_summary_protocol.md +209 -0
  197. package/vendor/ars/academic-pipeline/references/progress_dashboard_template.md +38 -0
  198. package/vendor/ars/academic-pipeline/references/reinforcement_content.md +15 -0
  199. package/vendor/ars/academic-pipeline/references/reproducibility_audit.md +55 -0
  200. package/vendor/ars/academic-pipeline/references/score_trajectory_protocol.md +78 -0
  201. package/vendor/ars/academic-pipeline/references/team_collaboration_protocol.md +261 -0
  202. package/vendor/ars/academic-pipeline/references/two_stage_review_protocol.md +27 -0
  203. package/vendor/ars/academic-pipeline/templates/pipeline_status_template.md +146 -0
  204. package/vendor/ars/agents/report_compiler_agent.md +341 -0
  205. package/vendor/ars/agents/research_architect_agent.md +298 -0
  206. package/vendor/ars/agents/synthesis_agent.md +356 -0
  207. package/vendor/ars/commands/ars-3w.md +10 -0
  208. package/vendor/ars/commands/ars-abstract.md +10 -0
  209. package/vendor/ars/commands/ars-cache-invalidate.md +20 -0
  210. package/vendor/ars/commands/ars-citation-check.md +10 -0
  211. package/vendor/ars/commands/ars-disclosure.md +10 -0
  212. package/vendor/ars/commands/ars-format-convert.md +10 -0
  213. package/vendor/ars/commands/ars-full.md +9 -0
  214. package/vendor/ars/commands/ars-lit-review.md +12 -0
  215. package/vendor/ars/commands/ars-mark-read.md +18 -0
  216. package/vendor/ars/commands/ars-outline.md +10 -0
  217. package/vendor/ars/commands/ars-plan.md +10 -0
  218. package/vendor/ars/commands/ars-rebuttal-audit.md +12 -0
  219. package/vendor/ars/commands/ars-reviewer.md +9 -0
  220. package/vendor/ars/commands/ars-revision-coach.md +9 -0
  221. package/vendor/ars/commands/ars-revision.md +10 -0
  222. package/vendor/ars/commands/ars-unmark-read.md +16 -0
  223. package/vendor/ars/deep-research/SKILL.md +600 -0
  224. package/vendor/ars/deep-research/agents/bibliography_agent.md +473 -0
  225. package/vendor/ars/deep-research/agents/devils_advocate_agent.md +192 -0
  226. package/vendor/ars/deep-research/agents/editor_in_chief_agent.md +167 -0
  227. package/vendor/ars/deep-research/agents/ethics_review_agent.md +267 -0
  228. package/vendor/ars/deep-research/agents/meta_analysis_agent.md +325 -0
  229. package/vendor/ars/deep-research/agents/monitoring_agent.md +209 -0
  230. package/vendor/ars/deep-research/agents/report_compiler_agent.md +341 -0
  231. package/vendor/ars/deep-research/agents/research_architect_agent.md +298 -0
  232. package/vendor/ars/deep-research/agents/research_question_agent.md +216 -0
  233. package/vendor/ars/deep-research/agents/risk_of_bias_agent.md +231 -0
  234. package/vendor/ars/deep-research/agents/socratic_mentor_agent.md +764 -0
  235. package/vendor/ars/deep-research/agents/source_verification_agent.md +219 -0
  236. package/vendor/ars/deep-research/agents/synthesis_agent.md +356 -0
  237. package/vendor/ars/deep-research/agents/timeline_extraction_agent.md +99 -0
  238. package/vendor/ars/deep-research/examples/exploratory_research.md +157 -0
  239. package/vendor/ars/deep-research/examples/fact_check_mode.md +173 -0
  240. package/vendor/ars/deep-research/examples/handoff_to_paper.md +318 -0
  241. package/vendor/ars/deep-research/examples/idea_diversity_coverage_gap_advisory.md +64 -0
  242. package/vendor/ars/deep-research/examples/policy_analysis.md +161 -0
  243. package/vendor/ars/deep-research/examples/review_mode.md +253 -0
  244. package/vendor/ars/deep-research/examples/socratic_guided_research.md +331 -0
  245. package/vendor/ars/deep-research/examples/systematic_review.md +133 -0
  246. package/vendor/ars/deep-research/references/apa7_style_guide.md +162 -0
  247. package/vendor/ars/deep-research/references/argumentation_reasoning_framework.md +68 -0
  248. package/vendor/ars/deep-research/references/arxiv_api_protocol.md +76 -0
  249. package/vendor/ars/deep-research/references/changelog.md +22 -0
  250. package/vendor/ars/deep-research/references/chinese_literature_api_protocol.md +317 -0
  251. package/vendor/ars/deep-research/references/cross_agent_quality_definitions.md +14 -0
  252. package/vendor/ars/deep-research/references/crossref_api_protocol.md +84 -0
  253. package/vendor/ars/deep-research/references/equator_reporting_guidelines.md +482 -0
  254. package/vendor/ars/deep-research/references/ethics_checklist.md +282 -0
  255. package/vendor/ars/deep-research/references/failure_paths.md +355 -0
  256. package/vendor/ars/deep-research/references/interdisciplinary_bridges.md +292 -0
  257. package/vendor/ars/deep-research/references/irb_decision_tree.md +315 -0
  258. package/vendor/ars/deep-research/references/literature_monitoring_strategies.md +263 -0
  259. package/vendor/ars/deep-research/references/logical_fallacies.md +192 -0
  260. package/vendor/ars/deep-research/references/methodology_patterns.md +462 -0
  261. package/vendor/ars/deep-research/references/mode_selection_guide.md +331 -0
  262. package/vendor/ars/deep-research/references/openalex_api_protocol.md +82 -0
  263. package/vendor/ars/deep-research/references/preregistration_guide.md +324 -0
  264. package/vendor/ars/deep-research/references/semantic_scholar_api_protocol.md +107 -0
  265. package/vendor/ars/deep-research/references/socratic_mode_protocol.md +99 -0
  266. package/vendor/ars/deep-research/references/socratic_questioning_framework.md +232 -0
  267. package/vendor/ars/deep-research/references/source_quality_hierarchy.md +188 -0
  268. package/vendor/ars/deep-research/references/systematic_review_protocol.md +95 -0
  269. package/vendor/ars/deep-research/references/systematic_review_toolkit.md +353 -0
  270. package/vendor/ars/deep-research/templates/evidence_assessment_template.md +127 -0
  271. package/vendor/ars/deep-research/templates/literature_matrix_template.md +85 -0
  272. package/vendor/ars/deep-research/templates/preregistration_template.md +318 -0
  273. package/vendor/ars/deep-research/templates/prisma_protocol_template.md +248 -0
  274. package/vendor/ars/deep-research/templates/prisma_report_template.md +415 -0
  275. package/vendor/ars/deep-research/templates/research_brief_template.md +93 -0
  276. package/vendor/ars/package.json +24 -0
  277. package/vendor/ars/pi/README.md +161 -0
  278. package/vendor/ars/pi/package.json +26 -0
  279. package/vendor/ars/pi/wrapper.js +193 -0
  280. package/vendor/ars/pi/wrapper.test.mjs +201 -0
  281. package/vendor/ars/pyproject.toml +2 -0
  282. package/vendor/ars/requirements-pdf-content-classifier.txt +5 -0
  283. package/vendor/ars/scripts/_block_parser.py +396 -0
  284. package/vendor/ars/scripts/_ci_pytest_manifest.toml +661 -0
  285. package/vendor/ars/scripts/_claim_audit_constants.py +268 -0
  286. package/vendor/ars/scripts/_e4_evidence.py +110 -0
  287. package/vendor/ars/scripts/_eval_threshold_gate.py +73 -0
  288. package/vendor/ars/scripts/_markdown_lint_util.py +224 -0
  289. package/vendor/ars/scripts/_next_verified_at_ms.py +176 -0
  290. package/vendor/ars/scripts/_passport_yaml.py +53 -0
  291. package/vendor/ars/scripts/_skill_lint.py +254 -0
  292. package/vendor/ars/scripts/_text_similarity.py +141 -0
  293. package/vendor/ars/scripts/adapters/README.md +89 -0
  294. package/vendor/ars/scripts/adapters/_common.py +209 -0
  295. package/vendor/ars/scripts/adapters/examples/folder_scan/expected_passport.yaml +25 -0
  296. package/vendor/ars/scripts/adapters/examples/folder_scan/expected_rejection_log.yaml +18 -0
  297. package/vendor/ars/scripts/adapters/examples/folder_scan/input_fixture/Chen2024_AIAssessment.pdf +0 -0
  298. package/vendor/ars/scripts/adapters/examples/folder_scan/input_fixture/Wang_2023_formative_feedback.pdf +0 -0
  299. package/vendor/ars/scripts/adapters/examples/folder_scan/input_fixture/paper1.pdf +0 -0
  300. package/vendor/ars/scripts/adapters/examples/folder_scan/input_fixture//344/270/255/346/226/207/346/252/224/345/220/215_2024.pdf +0 -0
  301. package/vendor/ars/scripts/adapters/examples/obsidian/expected_passport.yaml +40 -0
  302. package/vendor/ars/scripts/adapters/examples/obsidian/expected_rejection_log.yaml +13 -0
  303. package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/.gitkeep +0 -0
  304. package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/.obsidian/app.json +1 -0
  305. package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/_templates/tmpl.md +7 -0
  306. package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/chen2024ai.md +13 -0
  307. package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/invalid.md +1 -0
  308. package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/wang2023formative.md +10 -0
  309. package/vendor/ars/scripts/adapters/examples/zotero/expected_passport.yaml +34 -0
  310. package/vendor/ars/scripts/adapters/examples/zotero/expected_rejection_log.yaml +34 -0
  311. package/vendor/ars/scripts/adapters/examples/zotero/input_fixture/.gitkeep +0 -0
  312. package/vendor/ars/scripts/adapters/examples/zotero/input_fixture/export.json +43 -0
  313. package/vendor/ars/scripts/adapters/folder_scan.py +214 -0
  314. package/vendor/ars/scripts/adapters/obsidian.py +336 -0
  315. package/vendor/ars/scripts/adapters/tests/.gitkeep +0 -0
  316. package/vendor/ars/scripts/adapters/tests/conftest.py +77 -0
  317. package/vendor/ars/scripts/adapters/tests/test_check_corpus_consumer_protocol.py +632 -0
  318. package/vendor/ars/scripts/adapters/tests/test_check_literature_corpus_schema.py +631 -0
  319. package/vendor/ars/scripts/adapters/tests/test_common.py +365 -0
  320. package/vendor/ars/scripts/adapters/tests/test_conftest.py +96 -0
  321. package/vendor/ars/scripts/adapters/tests/test_folder_scan.py +260 -0
  322. package/vendor/ars/scripts/adapters/tests/test_literature_corpus_entry_schema.py +745 -0
  323. package/vendor/ars/scripts/adapters/tests/test_obsidian.py +357 -0
  324. package/vendor/ars/scripts/adapters/tests/test_rejection_log_schema.py +271 -0
  325. package/vendor/ars/scripts/adapters/tests/test_sync_adapter_docs.py +88 -0
  326. package/vendor/ars/scripts/adapters/tests/test_zotero.py +454 -0
  327. package/vendor/ars/scripts/adapters/zotero.py +318 -0
  328. package/vendor/ars/scripts/adjudication_activity.py +1592 -0
  329. package/vendor/ars/scripts/announce-ars-loaded.sh +144 -0
  330. package/vendor/ars/scripts/ars_anchorize_draft.py +170 -0
  331. package/vendor/ars/scripts/ars_apply_revision_patch.py +912 -0
  332. package/vendor/ars/scripts/ars_cache_invalidate.py +40 -0
  333. package/vendor/ars/scripts/ars_mark_read.py +521 -0
  334. package/vendor/ars/scripts/ars_phase_scope_manifest.json +33 -0
  335. package/vendor/ars/scripts/ars_update_check.sh +215 -0
  336. package/vendor/ars/scripts/ars_write_scope_guard.py +506 -0
  337. package/vendor/ars/scripts/arxiv_client.py +222 -0
  338. package/vendor/ars/scripts/audit_snapshot.py +572 -0
  339. package/vendor/ars/scripts/bibliographic_integrity_signals.py +800 -0
  340. package/vendor/ars/scripts/bootstrap_timeline_yaml.py +146 -0
  341. package/vendor/ars/scripts/build_claim_standing_candidate_ledger.py +1238 -0
  342. package/vendor/ars/scripts/build_claim_standing_query_plan.py +643 -0
  343. package/vendor/ars/scripts/build_content_coverage_advisory.py +1205 -0
  344. package/vendor/ars/scripts/build_cross_document_consistency_advisory.py +2332 -0
  345. package/vendor/ars/scripts/build_review_pathway_rule_trace.py +830 -0
  346. package/vendor/ars/scripts/build_submission_packet_manifest.py +2310 -0
  347. package/vendor/ars/scripts/check_215_field_norm.py +173 -0
  348. package/vendor/ars/scripts/check_216_surface_form.py +250 -0
  349. package/vendor/ars/scripts/check_268_nested_commitment_ledger.py +180 -0
  350. package/vendor/ars/scripts/check_390_revision_patch_discipline.py +296 -0
  351. package/vendor/ars/scripts/check_392_citation_verification_intake.py +126 -0
  352. package/vendor/ars/scripts/check_394_submission_policy.py +178 -0
  353. package/vendor/ars/scripts/check_439_format_profile.py +307 -0
  354. package/vendor/ars/scripts/check_619_disclosure_closeout.py +237 -0
  355. package/vendor/ars/scripts/check_630_codex_subscription_transport.py +456 -0
  356. package/vendor/ars/scripts/check_669_review_pathway_rule_trace.py +662 -0
  357. package/vendor/ars/scripts/check_670_revision_roadmap_integration.py +518 -0
  358. package/vendor/ars/scripts/check_673_adjudication_activity.py +684 -0
  359. package/vendor/ars/scripts/check_684_review_criteria_binding.py +557 -0
  360. package/vendor/ars/scripts/check_agents_mirror_sync.py +115 -0
  361. package/vendor/ars/scripts/check_audit_artifact_consistency.py +2313 -0
  362. package/vendor/ars/scripts/check_benchmark_report.py +79 -0
  363. package/vendor/ars/scripts/check_bibliographic_integrity_signals.py +831 -0
  364. package/vendor/ars/scripts/check_calibration_tiers.py +235 -0
  365. package/vendor/ars/scripts/check_changelog_covers_merges.py +289 -0
  366. package/vendor/ars/scripts/check_ci_pytest_manifest.py +204 -0
  367. package/vendor/ars/scripts/check_claim_audit_consistency.py +1664 -0
  368. package/vendor/ars/scripts/check_claim_standing_candidate_ledger_integration.py +500 -0
  369. package/vendor/ars/scripts/check_claim_standing_freshness.py +253 -0
  370. package/vendor/ars/scripts/check_claim_standing_transmissions.py +449 -0
  371. package/vendor/ars/scripts/check_collaboration_depth_rubric.py +180 -0
  372. package/vendor/ars/scripts/check_command_frontmatter_name.py +116 -0
  373. package/vendor/ars/scripts/check_committee_correspondence.py +333 -0
  374. package/vendor/ars/scripts/check_compliance_report.py +108 -0
  375. package/vendor/ars/scripts/check_content_coverage_advisory_integration.py +796 -0
  376. package/vendor/ars/scripts/check_control_availability.py +172 -0
  377. package/vendor/ars/scripts/check_corpus_consumer_protocol.py +404 -0
  378. package/vendor/ars/scripts/check_cross_document_consistency_advisory_integration.py +1191 -0
  379. package/vendor/ars/scripts/check_cross_model_handoff_contract.py +234 -0
  380. package/vendor/ars/scripts/check_cross_model_verification_sync.py +261 -0
  381. package/vendor/ars/scripts/check_data_access_level.py +131 -0
  382. package/vendor/ars/scripts/check_data_flows.py +252 -0
  383. package/vendor/ars/scripts/check_decision_contract.py +464 -0
  384. package/vendor/ars/scripts/check_degradation_registry.py +326 -0
  385. package/vendor/ars/scripts/check_distribution_surface_claims.py +226 -0
  386. package/vendor/ars/scripts/check_domain_evidence_profile.py +538 -0
  387. package/vendor/ars/scripts/check_e4_promotion.py +195 -0
  388. package/vendor/ars/scripts/check_evals_gold_set.py +279 -0
  389. package/vendor/ars/scripts/check_evidence_row_integration.py +396 -0
  390. package/vendor/ars/scripts/check_experiment_provenance.py +117 -0
  391. package/vendor/ars/scripts/check_field_norm_severity.py +144 -0
  392. package/vendor/ars/scripts/check_firm_rules_sync.py +375 -0
  393. package/vendor/ars/scripts/check_heldout_measurement_report.py +1179 -0
  394. package/vendor/ars/scripts/check_human_subjects_output_contract.py +139 -0
  395. package/vendor/ars/scripts/check_human_subjects_reference_migration.py +844 -0
  396. package/vendor/ars/scripts/check_indirect_prompt_injection_no_call.py +328 -0
  397. package/vendor/ars/scripts/check_instruction_data_boundary.py +236 -0
  398. package/vendor/ars/scripts/check_judge_prompt_version.py +125 -0
  399. package/vendor/ars/scripts/check_literature_corpus_schema.py +402 -0
  400. package/vendor/ars/scripts/check_model_tiering.py +223 -0
  401. package/vendor/ars/scripts/check_panel_synthesis.py +1331 -0
  402. package/vendor/ars/scripts/check_passport_reset_contract.py +214 -0
  403. package/vendor/ars/scripts/check_pattern_eval_manifest.py +422 -0
  404. package/vendor/ars/scripts/check_persuasion_invariance_fixtures.py +637 -0
  405. package/vendor/ars/scripts/check_phase_conformance.py +2180 -0
  406. package/vendor/ars/scripts/check_pipeline_boundary_semantics.py +600 -0
  407. package/vendor/ars/scripts/check_pipeline_integrity.py +340 -0
  408. package/vendor/ars/scripts/check_policy_anchor_protocol.py +159 -0
  409. package/vendor/ars/scripts/check_policy_anchor_table.py +286 -0
  410. package/vendor/ars/scripts/check_preprint_venues_consistency.py +123 -0
  411. package/vendor/ars/scripts/check_prisma_trAIce_freshness.py +84 -0
  412. package/vendor/ars/scripts/check_promotion_bakeoff_preregistration.py +1303 -0
  413. package/vendor/ars/scripts/check_ranking_lift.py +323 -0
  414. package/vendor/ars/scripts/check_re_review_synthesis.py +2719 -0
  415. package/vendor/ars/scripts/check_receipt_enum_sync.py +203 -0
  416. package/vendor/ars/scripts/check_repro_lock.py +85 -0
  417. package/vendor/ars/scripts/check_review_pathway_output.py +276 -0
  418. package/vendor/ars/scripts/check_reviewer_data_fences.py +224 -0
  419. package/vendor/ars/scripts/check_reviewer_finding_contract.py +783 -0
  420. package/vendor/ars/scripts/check_reviewer_role_label.py +447 -0
  421. package/vendor/ars/scripts/check_reviewer_scoring_honesty.py +292 -0
  422. package/vendor/ars/scripts/check_reviewer_sprint_prompt_sync.py +409 -0
  423. package/vendor/ars/scripts/check_revision_claim_drift_suite_v2.py +1622 -0
  424. package/vendor/ars/scripts/check_revision_token_conservation.py +263 -0
  425. package/vendor/ars/scripts/check_risk_register.py +280 -0
  426. package/vendor/ars/scripts/check_role_scoped_contract.py +702 -0
  427. package/vendor/ars/scripts/check_rq_framing_patterns.py +184 -0
  428. package/vendor/ars/scripts/check_rubric_weight_consistency.py +32 -0
  429. package/vendor/ars/scripts/check_seeded_defect_fixtures.py +425 -0
  430. package/vendor/ars/scripts/check_setup_cross_model_parity.py +139 -0
  431. package/vendor/ars/scripts/check_spec_consistency.py +1249 -0
  432. package/vendor/ars/scripts/check_sprint_contract.py +371 -0
  433. package/vendor/ars/scripts/check_stage_capability_matrix.py +784 -0
  434. package/vendor/ars/scripts/check_submission_packet_manifest_integration.py +358 -0
  435. package/vendor/ars/scripts/check_surface_form_parity.py +445 -0
  436. package/vendor/ars/scripts/check_task_type.py +22 -0
  437. package/vendor/ars/scripts/check_tools_allowlist.py +538 -0
  438. package/vendor/ars/scripts/check_tortured_phrase_screening_integration.py +1974 -0
  439. package/vendor/ars/scripts/check_v3_10_134_write_scope.py +286 -0
  440. package/vendor/ars/scripts/check_v3_10_policy.py +656 -0
  441. package/vendor/ars/scripts/check_v3_6_6_ab_manifest.py +364 -0
  442. package/vendor/ars/scripts/check_v3_6_7_pattern_protection.py +1366 -0
  443. package/vendor/ars/scripts/check_v3_6_8_audit_scope_block.py +464 -0
  444. package/vendor/ars/scripts/check_v3_6_8_cite_provenance_pipeline.py +231 -0
  445. package/vendor/ars/scripts/check_v3_6_8_frontmatter_trust_schema.py +248 -0
  446. package/vendor/ars/scripts/check_v3_6_8_mark_read_commands.py +79 -0
  447. package/vendor/ars/scripts/check_v3_6_8_pattern_protection.py +941 -0
  448. package/vendor/ars/scripts/check_v3_7_3_three_layer_citation.py +318 -0
  449. package/vendor/ars/scripts/check_v3_8_annotation_literal_sync.py +228 -0
  450. package/vendor/ars/scripts/check_v3_9_0_triangulation.py +366 -0
  451. package/vendor/ars/scripts/check_v3_9_2_phase_boundary.py +270 -0
  452. package/vendor/ars/scripts/check_v3_9_4_temporal_verification.py +139 -0
  453. package/vendor/ars/scripts/check_venue_disclosure_policies.py +63 -0
  454. package/vendor/ars/scripts/check_version_consistency.py +826 -0
  455. package/vendor/ars/scripts/check_workflow_classification.py +223 -0
  456. package/vendor/ars/scripts/chinese_literature_client.py +1938 -0
  457. package/vendor/ars/scripts/citation_verification_summary.py +85 -0
  458. package/vendor/ars/scripts/claim_audit_calibration.py +517 -0
  459. package/vendor/ars/scripts/claim_audit_finalizer.py +456 -0
  460. package/vendor/ars/scripts/claim_audit_pipeline.py +1594 -0
  461. package/vendor/ars/scripts/claim_registry_coverage.py +493 -0
  462. package/vendor/ars/scripts/claim_standing_discovery.py +784 -0
  463. package/vendor/ars/scripts/claim_standing_stance_runner.py +758 -0
  464. package/vendor/ars/scripts/claim_standing_stance_scorer.py +239 -0
  465. package/vendor/ars/scripts/claim_strength_drift_disposition.py +666 -0
  466. package/vendor/ars/scripts/contamination_signals.py +689 -0
  467. package/vendor/ars/scripts/corpus_consumer_manifest.json +19 -0
  468. package/vendor/ars/scripts/cross_model_codex_transport.py +1374 -0
  469. package/vendor/ars/scripts/cross_model_codex_verify.sh +6 -0
  470. package/vendor/ars/scripts/cross_model_handoff.py +359 -0
  471. package/vendor/ars/scripts/cross_model_smoke_test.sh +183 -0
  472. package/vendor/ars/scripts/cross_model_smoke_test_codex.sh +35 -0
  473. package/vendor/ars/scripts/cross_model_verification/gemini_is_grounded.jq +45 -0
  474. package/vendor/ars/scripts/cross_model_verification/gemini_sources.jq +45 -0
  475. package/vendor/ars/scripts/cross_model_verification/normalize_compat_verdict.py +57 -0
  476. package/vendor/ars/scripts/cross_model_verification/openai_has_completed_web_search.jq +15 -0
  477. package/vendor/ars/scripts/cross_model_verification/openai_sources.jq +17 -0
  478. package/vendor/ars/scripts/cross_model_verification/openai_text.jq +11 -0
  479. package/vendor/ars/scripts/crossref_client.py +225 -0
  480. package/vendor/ars/scripts/dispatch_e4_panel.py +2731 -0
  481. package/vendor/ars/scripts/evidence_rows.py +2043 -0
  482. package/vendor/ars/scripts/fixtures/adjudication_activity/author_stage3.json +32 -0
  483. package/vendor/ars/scripts/fixtures/adjudication_activity/author_stage3_input.json +27 -0
  484. package/vendor/ars/scripts/fixtures/adjudication_activity/author_stage3_prime.json +32 -0
  485. package/vendor/ars/scripts/fixtures/adjudication_activity/author_stage3_prime_input.json +27 -0
  486. package/vendor/ars/scripts/fixtures/adjudication_activity/compliance_override.json +50 -0
  487. package/vendor/ars/scripts/fixtures/adjudication_activity/compliance_override_action.json +14 -0
  488. package/vendor/ars/scripts/fixtures/adjudication_activity/compliance_pass.json +44 -0
  489. package/vendor/ars/scripts/fixtures/adjudication_activity/explicit_user_request_log.json +26 -0
  490. package/vendor/ars/scripts/fixtures/adjudication_activity/mandatory_checkpoint_log.json +116 -0
  491. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/README.md +56 -0
  492. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/negative/a1_pass_with_p1/2026-04-30T15-22-04Z-d8f3.audit_artifact_entry.json +24 -0
  493. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/negative/a1_pass_with_p1/2026-04-30T15-22-04Z-d8f3.jsonl +4 -0
  494. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/negative/a1_pass_with_p1/2026-04-30T15-22-04Z-d8f3.meta.json +43 -0
  495. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/negative/a1_pass_with_p1/2026-04-30T15-22-04Z-d8f3.verdict.yaml +19 -0
  496. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/negative/a7_orphan_completion/2026-04-30T15-22-04Z-d8f3.jsonl +3 -0
  497. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/persisted_minor/2026-04-30T15-22-04Z-d8f3.audit_artifact_entry.json +26 -0
  498. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/persisted_minor/2026-04-30T15-22-04Z-d8f3.jsonl +4 -0
  499. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/persisted_minor/2026-04-30T15-22-04Z-d8f3.meta.json +43 -0
  500. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/persisted_minor/2026-04-30T15-22-04Z-d8f3.verdict.yaml +19 -0
  501. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/proposal_pass/2026-04-30T15-22-04Z-d8f3.audit_artifact_entry.json +24 -0
  502. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/proposal_pass/2026-04-30T15-22-04Z-d8f3.jsonl +4 -0
  503. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/proposal_pass/2026-04-30T15-22-04Z-d8f3.meta.json +43 -0
  504. package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/proposal_pass/2026-04-30T15-22-04Z-d8f3.verdict.yaml +12 -0
  505. package/vendor/ars/scripts/fixtures/bibliographic_integrity_signals/retraction.json +46 -0
  506. package/vendor/ars/scripts/fixtures/bibliographic_integrity_signals/retraction_check_attestation.json +44 -0
  507. package/vendor/ars/scripts/fixtures/bibliographic_integrity_signals/tortured_phrase.json +44 -0
  508. package/vendor/ars/scripts/fixtures/bibliographic_integrity_signals/tortured_phrase_v1_2_abstract_missing.json +107 -0
  509. package/vendor/ars/scripts/fixtures/bibliographic_integrity_signals/tortured_phrase_v1_2_detected.json +124 -0
  510. package/vendor/ars/scripts/fixtures/check_evals_gold_set/clean/expected_outcomes.json +77 -0
  511. package/vendor/ars/scripts/fixtures/check_evals_gold_set/clean/manifest.yaml +37 -0
  512. package/vendor/ars/scripts/fixtures/check_evals_gold_set/clean/tuples/001-valid-doi-test.json +20 -0
  513. package/vendor/ars/scripts/fixtures/check_evals_gold_set/clean/tuples/002-valid-arxiv-test.json +19 -0
  514. package/vendor/ars/scripts/fixtures/check_evals_gold_set/clean/tuples/003-fabricated-test.json +20 -0
  515. package/vendor/ars/scripts/fixtures/claim_audit_calibration/gold_set.json +344 -0
  516. package/vendor/ars/scripts/fixtures/claim_standing_candidate_ledger/query_plan.json +108 -0
  517. package/vendor/ars/scripts/fixtures/claim_standing_candidate_ledger/retrieval_input.json +179 -0
  518. package/vendor/ars/scripts/fixtures/committee_correspondence/16fd83f6aec7/concern_tracker.json +129 -0
  519. package/vendor/ars/scripts/fixtures/committee_correspondence/16fd83f6aec7/response_skeleton.md +19 -0
  520. package/vendor/ars/scripts/fixtures/committee_correspondence/16fd83f6aec7/source_letter.txt +9 -0
  521. package/vendor/ars/scripts/fixtures/content_coverage_advisory/base_draft.json +48 -0
  522. package/vendor/ars/scripts/fixtures/content_coverage_advisory/base_inventory.json +38 -0
  523. package/vendor/ars/scripts/fixtures/content_coverage_advisory/packet/consent.txt +1 -0
  524. package/vendor/ars/scripts/fixtures/content_coverage_advisory/session_sources.json +3 -0
  525. package/vendor/ars/scripts/fixtures/cross_document_consistency/README.md +6 -0
  526. package/vendor/ars/scripts/fixtures/cross_document_consistency/accepted_draft.md +35 -0
  527. package/vendor/ars/scripts/fixtures/cross_document_consistency/cases.json +75 -0
  528. package/vendor/ars/scripts/fixtures/cross_document_consistency/preregistration.md +5 -0
  529. package/vendor/ars/scripts/fixtures/cross_model_codex_transport/forbidden_event.jsonl +4 -0
  530. package/vendor/ars/scripts/fixtures/cross_model_codex_transport/grounded_verified.jsonl +3 -0
  531. package/vendor/ars/scripts/fixtures/cross_model_codex_transport/malformed.jsonl +3 -0
  532. package/vendor/ars/scripts/fixtures/cross_model_codex_transport/missing_search.jsonl +2 -0
  533. package/vendor/ars/scripts/fixtures/cross_model_codex_transport/multiple_finals.jsonl +4 -0
  534. package/vendor/ars/scripts/fixtures/cross_model_codex_transport/not_found.jsonl +3 -0
  535. package/vendor/ars/scripts/fixtures/cross_model_codex_transport/unbound_source.jsonl +3 -0
  536. package/vendor/ars/scripts/fixtures/cross_model_codex_transport/wrong_search_shape.jsonl +3 -0
  537. package/vendor/ars/scripts/fixtures/evidence_rows/phase_e_inputs.json +114 -0
  538. package/vendor/ars/scripts/fixtures/evidence_rows/session_sources.json +5 -0
  539. package/vendor/ars/scripts/fixtures/human_subjects_authority/cross-border-us-tw-gdpr.json +71 -0
  540. package/vendor/ars/scripts/fixtures/human_subjects_authority/gdpr-member-state-unresolved.json +62 -0
  541. package/vendor/ars/scripts/fixtures/human_subjects_authority/missing-data-axis.json +45 -0
  542. package/vendor/ars/scripts/fixtures/human_subjects_authority/no-profile.json +33 -0
  543. package/vendor/ars/scripts/fixtures/human_subjects_authority/tw-gdpr-two-axis.json +74 -0
  544. package/vendor/ars/scripts/fixtures/human_subjects_authority/us-gdpr-two-axis.json +74 -0
  545. package/vendor/ars/scripts/fixtures/review_pathway_rule_trace/lint-near-misses.json +72 -0
  546. package/vendor/ars/scripts/fixtures/review_pathway_rule_trace/no-profile-request.json +18 -0
  547. package/vendor/ars/scripts/fixtures/review_pathway_rule_trace/tw-candidates-request.json +63 -0
  548. package/vendor/ars/scripts/fixtures/review_pathway_rule_trace/us-candidates-request.json +77 -0
  549. package/vendor/ars/scripts/fixtures/review_target_context/exact-declaration.json +24 -0
  550. package/vendor/ars/scripts/fixtures/review_target_context/field-general-declaration.json +24 -0
  551. package/vendor/ars/scripts/fixtures/review_target_context/msr-2027-technical-full-declaration.json +24 -0
  552. package/vendor/ars/scripts/fixtures/review_target_context/synthetic-registry.json +92 -0
  553. package/vendor/ars/scripts/fixtures/revision_claim_drift_v2/README.md +21 -0
  554. package/vendor/ars/scripts/fixtures/revision_claim_drift_v2/subject_context_attested_only.json +55 -0
  555. package/vendor/ars/scripts/fixtures/revision_claim_drift_v2/subject_context_machine_supported.json +49 -0
  556. package/vendor/ars/scripts/fixtures/revision_claim_drift_v2/subject_context_not_isolated.json +56 -0
  557. package/vendor/ars/scripts/fixtures/revision_claim_drift_v2/subject_context_unknown.json +49 -0
  558. package/vendor/ars/scripts/fixtures/submission_package/clean/paper.md +16 -0
  559. package/vendor/ars/scripts/fixtures/submission_package/clean/references.bib +13 -0
  560. package/vendor/ars/scripts/fixtures/submission_package/fallback_authoryear/paper.md +11 -0
  561. package/vendor/ars/scripts/fixtures/submission_package/fallback_authoryear/references.bib +13 -0
  562. package/vendor/ars/scripts/fixtures/submission_package/fallback_latex/paper.tex +9 -0
  563. package/vendor/ars/scripts/fixtures/submission_package/fallback_latex/references.bib +13 -0
  564. package/vendor/ars/scripts/fixtures/submission_package/marker_no_join/paper.md +7 -0
  565. package/vendor/ars/scripts/fixtures/submission_package/orphan_intext/paper.md +8 -0
  566. package/vendor/ars/scripts/fixtures/submission_package/orphan_intext/references.bib +6 -0
  567. package/vendor/ars/scripts/fixtures/submission_package/passports/corpus_only.yaml +9 -0
  568. package/vendor/ars/scripts/fixtures/submission_package/passports/summary_join.yaml +16 -0
  569. package/vendor/ars/scripts/fixtures/submission_package/profiles/full.yaml +15 -0
  570. package/vendor/ars/scripts/fixtures/submission_package/profiles/tight.yaml +15 -0
  571. package/vendor/ars/scripts/fixtures/submission_package/summary_join/paper.md +7 -0
  572. package/vendor/ars/scripts/fixtures/submission_package/uncited_reference/paper.md +9 -0
  573. package/vendor/ars/scripts/fixtures/submission_package/uncited_reference/references.bib +13 -0
  574. package/vendor/ars/scripts/fixtures/submission_package/venue_clean/paper.md +26 -0
  575. package/vendor/ars/scripts/fixtures/submission_package/venue_clean/references.bib +13 -0
  576. package/vendor/ars/scripts/fixtures/submission_package/venue_violations/paper.md +20 -0
  577. package/vendor/ars/scripts/fixtures/submission_package/venue_violations/references.bib +13 -0
  578. package/vendor/ars/scripts/fixtures/submission_packet_manifest/base_inventory.json +101 -0
  579. package/vendor/ars/scripts/fixtures/submission_packet_manifest/packet/consent-materials.txt +3 -0
  580. package/vendor/ars/scripts/fixtures/submission_packet_manifest/packet/training-certificate.txt +2 -0
  581. package/vendor/ars/scripts/fixtures/submission_packet_manifest/packet/tw-consent-materials.txt +3 -0
  582. package/vendor/ars/scripts/fixtures/tortured_phrase_screening/corpus_input.yaml +30 -0
  583. package/vendor/ars/scripts/fixtures/tortured_phrase_screening/own_draft.md +36 -0
  584. package/vendor/ars/scripts/fixtures/tortured_phrase_screening/own_draft.tex +21 -0
  585. package/vendor/ars/scripts/fixtures/tortured_phrase_screening/seed_expectations.json +218 -0
  586. package/vendor/ars/scripts/fixtures/tortured_phrase_screening/snapshot.json +164 -0
  587. package/vendor/ars/scripts/fixtures/tortured_phrase_screening/snapshot_manifest.json +29 -0
  588. package/vendor/ars/scripts/fixtures/transport_bodies/README.md +55 -0
  589. package/vendor/ars/scripts/fixtures/transport_bodies/arxiv/empty_feed.xml +10 -0
  590. package/vendor/ars/scripts/fixtures/transport_bodies/arxiv/error_5xx.html +7 -0
  591. package/vendor/ars/scripts/fixtures/transport_bodies/arxiv/id_hit.xml +26 -0
  592. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/README.md +69 -0
  593. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/cnki_landing_page.html +13 -0
  594. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/error_5xx.html +2 -0
  595. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esearch_coordinate_ambiguous.json +16 -0
  596. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esearch_coordinate_hit.json +16 -0
  597. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esearch_coordinate_zero.json +14 -0
  598. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esearch_coverage_hit.json +15 -0
  599. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esearch_coverage_zero.json +13 -0
  600. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esummary_hit.json +43 -0
  601. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esummary_issn_mismatch.json +31 -0
  602. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esummary_no_doi.json +31 -0
  603. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esummary_unknown_ra.json +34 -0
  604. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esummary_year_mismatch.json +31 -0
  605. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/handle_absent.json +4 -0
  606. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/handle_exists.json +16 -0
  607. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/handle_internal_error.json +4 -0
  608. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/istic_csl_hit.json +25 -0
  609. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/istic_csl_other_title.json +18 -0
  610. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/ra_cnki.json +6 -0
  611. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/ra_crossref.json +6 -0
  612. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/ra_istic.json +6 -0
  613. package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/ra_unknown_prefix.json +6 -0
  614. package/vendor/ars/scripts/fixtures/transport_bodies/crossref/doi_hit.json +24 -0
  615. package/vendor/ars/scripts/fixtures/transport_bodies/crossref/error_5xx.html +7 -0
  616. package/vendor/ars/scripts/fixtures/transport_bodies/crossref/title_search_miss.json +15 -0
  617. package/vendor/ars/scripts/fixtures/transport_bodies/openalex/doi_hit.json +29 -0
  618. package/vendor/ars/scripts/fixtures/transport_bodies/openalex/error_5xx.json +4 -0
  619. package/vendor/ars/scripts/fixtures/transport_bodies/openalex/title_search_miss.json +11 -0
  620. package/vendor/ars/scripts/fixtures/transport_bodies/semantic_scholar/doi_hit.json +14 -0
  621. package/vendor/ars/scripts/fixtures/transport_bodies/semantic_scholar/error_5xx.json +3 -0
  622. package/vendor/ars/scripts/fixtures/transport_bodies/semantic_scholar/title_search_miss.json +5 -0
  623. package/vendor/ars/scripts/human_read_attestation_resolver.py +467 -0
  624. package/vendor/ars/scripts/ideation_diversity_assignment_gate.py +430 -0
  625. package/vendor/ars/scripts/inquiry_branch_ledger.py +2540 -0
  626. package/vendor/ars/scripts/legacy/ars_apply_revision_patch_v1_0.py +715 -0
  627. package/vendor/ars/scripts/legacy/check_re_review_synthesis_v1_0.py +2215 -0
  628. package/vendor/ars/scripts/migrate_literature_corpus_to_v3_10.py +223 -0
  629. package/vendor/ars/scripts/migrate_literature_corpus_to_v3_7_3.py +277 -0
  630. package/vendor/ars/scripts/migrate_literature_corpus_to_v3_9_0.py +304 -0
  631. package/vendor/ars/scripts/model_tiering_manifest.json +46 -0
  632. package/vendor/ars/scripts/openalex_client.py +232 -0
  633. package/vendor/ars/scripts/parse_audit_verdict.py +802 -0
  634. package/vendor/ars/scripts/pdf_content_classifier_worker.py +176 -0
  635. package/vendor/ars/scripts/pdf_read_preflight.py +1455 -0
  636. package/vendor/ars/scripts/policy_anchor_disclosure_referee.py +354 -0
  637. package/vendor/ars/scripts/recompute_receipts.py +1414 -0
  638. package/vendor/ars/scripts/render_claim_standing_view.py +374 -0
  639. package/vendor/ars/scripts/render_eval_comment.py +130 -0
  640. package/vendor/ars/scripts/render_harness_retirement_issue.py +167 -0
  641. package/vendor/ars/scripts/repro_lock_validation.py +90 -0
  642. package/vendor/ars/scripts/research_workflow_profile.py +1079 -0
  643. package/vendor/ars/scripts/resolve_human_subjects_authority.py +1158 -0
  644. package/vendor/ars/scripts/resolve_review_target_context.py +683 -0
  645. package/vendor/ars/scripts/resume_e4_record.py +509 -0
  646. package/vendor/ars/scripts/retraction_status.py +484 -0
  647. package/vendor/ars/scripts/review_criteria_binding.py +889 -0
  648. package/vendor/ars/scripts/review_panel_provenance.py +744 -0
  649. package/vendor/ars/scripts/revision_roadmap.py +1967 -0
  650. package/vendor/ars/scripts/run_ci_pytest_manifest.py +116 -0
  651. package/vendor/ars/scripts/run_codex_audit.sh +1191 -0
  652. package/vendor/ars/scripts/run_evals.py +513 -0
  653. package/vendor/ars/scripts/run_ideation_diversity_no_call.py +3505 -0
  654. package/vendor/ars/scripts/run_indirect_prompt_injection_no_call.py +3330 -0
  655. package/vendor/ars/scripts/run_indirect_prompt_injection_probe.py +399 -0
  656. package/vendor/ars/scripts/run_review_criteria_constructive_value.py +1895 -0
  657. package/vendor/ars/scripts/run_role_topology_utility_dry_run.py +606 -0
  658. package/vendor/ars/scripts/score_review_criteria_constructive_value.py +617 -0
  659. package/vendor/ars/scripts/semantic_scholar_client.py +291 -0
  660. package/vendor/ars/scripts/slr_lineage.py +59 -0
  661. package/vendor/ars/scripts/sync_adapter_docs.py +118 -0
  662. package/vendor/ars/scripts/temporal_integrity_audit.py +840 -0
  663. package/vendor/ars/scripts/test_431_exact_or_bust.py +253 -0
  664. package/vendor/ars/scripts/test__eval_threshold_gate.py +125 -0
  665. package/vendor/ars/scripts/test__markdown_lint_util.py +129 -0
  666. package/vendor/ars/scripts/test__next_verified_at_ms.py +256 -0
  667. package/vendor/ars/scripts/test_adjacent_framing_probe_lint.py +171 -0
  668. package/vendor/ars/scripts/test_adjudication_activity.py +1515 -0
  669. package/vendor/ars/scripts/test_ars_anchorize_draft.py +178 -0
  670. package/vendor/ars/scripts/test_ars_apply_revision_patch.py +1335 -0
  671. package/vendor/ars/scripts/test_ars_cache_invalidate.py +51 -0
  672. package/vendor/ars/scripts/test_ars_mark_read.py +910 -0
  673. package/vendor/ars/scripts/test_ars_update_check.py +816 -0
  674. package/vendor/ars/scripts/test_ars_write_scope_guard.py +790 -0
  675. package/vendor/ars/scripts/test_arxiv_client.py +374 -0
  676. package/vendor/ars/scripts/test_audit_schemas.py +560 -0
  677. package/vendor/ars/scripts/test_audit_snapshot_render_section_0.py +105 -0
  678. package/vendor/ars/scripts/test_block_parser.py +259 -0
  679. package/vendor/ars/scripts/test_bootstrap_timeline_yaml.py +148 -0
  680. package/vendor/ars/scripts/test_build_claim_standing_candidate_ledger.py +1203 -0
  681. package/vendor/ars/scripts/test_build_claim_standing_query_plan.py +791 -0
  682. package/vendor/ars/scripts/test_build_submission_packet_manifest.py +2644 -0
  683. package/vendor/ars/scripts/test_check_215_field_norm.py +238 -0
  684. package/vendor/ars/scripts/test_check_216_surface_form.py +341 -0
  685. package/vendor/ars/scripts/test_check_268_nested_commitment_ledger.py +194 -0
  686. package/vendor/ars/scripts/test_check_390_revision_patch_discipline.py +279 -0
  687. package/vendor/ars/scripts/test_check_392_citation_verification_intake.py +144 -0
  688. package/vendor/ars/scripts/test_check_394_submission_policy.py +200 -0
  689. package/vendor/ars/scripts/test_check_439_format_profile.py +252 -0
  690. package/vendor/ars/scripts/test_check_619_disclosure_closeout.py +158 -0
  691. package/vendor/ars/scripts/test_check_630_codex_subscription_transport.py +245 -0
  692. package/vendor/ars/scripts/test_check_669_review_pathway_rule_trace.py +304 -0
  693. package/vendor/ars/scripts/test_check_670_revision_roadmap_integration.py +260 -0
  694. package/vendor/ars/scripts/test_check_673_adjudication_activity.py +367 -0
  695. package/vendor/ars/scripts/test_check_684_review_criteria_binding.py +274 -0
  696. package/vendor/ars/scripts/test_check_agents_mirror_sync.py +137 -0
  697. package/vendor/ars/scripts/test_check_audit_artifact_consistency.py +2133 -0
  698. package/vendor/ars/scripts/test_check_benchmark_report.py +117 -0
  699. package/vendor/ars/scripts/test_check_bibliographic_integrity_signals.py +609 -0
  700. package/vendor/ars/scripts/test_check_calibration_tiers.py +376 -0
  701. package/vendor/ars/scripts/test_check_changelog_covers_merges.py +509 -0
  702. package/vendor/ars/scripts/test_check_ci_pytest_manifest.py +425 -0
  703. package/vendor/ars/scripts/test_check_claim_standing_candidate_ledger_integration.py +256 -0
  704. package/vendor/ars/scripts/test_check_claim_standing_freshness.py +277 -0
  705. package/vendor/ars/scripts/test_check_collaboration_depth_rubric.py +239 -0
  706. package/vendor/ars/scripts/test_check_command_frontmatter_name.py +178 -0
  707. package/vendor/ars/scripts/test_check_committee_correspondence.py +298 -0
  708. package/vendor/ars/scripts/test_check_compliance_report.py +381 -0
  709. package/vendor/ars/scripts/test_check_content_coverage_advisory_integration.py +308 -0
  710. package/vendor/ars/scripts/test_check_control_availability.py +361 -0
  711. package/vendor/ars/scripts/test_check_cross_document_consistency_advisory_integration.py +698 -0
  712. package/vendor/ars/scripts/test_check_cross_model_handoff_contract.py +301 -0
  713. package/vendor/ars/scripts/test_check_cross_model_verification_sync.py +203 -0
  714. package/vendor/ars/scripts/test_check_data_access_level.py +227 -0
  715. package/vendor/ars/scripts/test_check_data_flows.py +382 -0
  716. package/vendor/ars/scripts/test_check_decision_contract.py +387 -0
  717. package/vendor/ars/scripts/test_check_degradation_registry.py +270 -0
  718. package/vendor/ars/scripts/test_check_distribution_surface_claims.py +225 -0
  719. package/vendor/ars/scripts/test_check_domain_evidence_profile.py +439 -0
  720. package/vendor/ars/scripts/test_check_e4_promotion.py +163 -0
  721. package/vendor/ars/scripts/test_check_evals_gold_set.py +312 -0
  722. package/vendor/ars/scripts/test_check_evidence_row_integration.py +187 -0
  723. package/vendor/ars/scripts/test_check_field_norm_severity.py +173 -0
  724. package/vendor/ars/scripts/test_check_firm_rules_sync.py +342 -0
  725. package/vendor/ars/scripts/test_check_heldout_measurement_report.py +1508 -0
  726. package/vendor/ars/scripts/test_check_human_subjects_output_contract.py +129 -0
  727. package/vendor/ars/scripts/test_check_human_subjects_reference_migration.py +756 -0
  728. package/vendor/ars/scripts/test_check_instruction_data_boundary.py +204 -0
  729. package/vendor/ars/scripts/test_check_judge_prompt_version.py +90 -0
  730. package/vendor/ars/scripts/test_check_model_tiering.py +236 -0
  731. package/vendor/ars/scripts/test_check_panel_synthesis.py +1658 -0
  732. package/vendor/ars/scripts/test_check_passport_reset_contract.py +249 -0
  733. package/vendor/ars/scripts/test_check_pattern_eval_manifest.py +381 -0
  734. package/vendor/ars/scripts/test_check_persuasion_invariance_fixtures.py +591 -0
  735. package/vendor/ars/scripts/test_check_phase_conformance.py +4366 -0
  736. package/vendor/ars/scripts/test_check_pipeline_boundary_semantics.py +931 -0
  737. package/vendor/ars/scripts/test_check_pipeline_integrity.py +243 -0
  738. package/vendor/ars/scripts/test_check_policy_anchor_protocol.py +236 -0
  739. package/vendor/ars/scripts/test_check_policy_anchor_table.py +295 -0
  740. package/vendor/ars/scripts/test_check_prisma_trAIce_freshness.py +68 -0
  741. package/vendor/ars/scripts/test_check_promotion_bakeoff_preregistration.py +799 -0
  742. package/vendor/ars/scripts/test_check_ranking_lift.py +377 -0
  743. package/vendor/ars/scripts/test_check_re_review_synthesis.py +3398 -0
  744. package/vendor/ars/scripts/test_check_receipt_enum_sync.py +176 -0
  745. package/vendor/ars/scripts/test_check_repro_lock.py +107 -0
  746. package/vendor/ars/scripts/test_check_reviewer_data_fences.py +334 -0
  747. package/vendor/ars/scripts/test_check_reviewer_finding_contract.py +1107 -0
  748. package/vendor/ars/scripts/test_check_reviewer_role_label.py +491 -0
  749. package/vendor/ars/scripts/test_check_reviewer_scoring_honesty.py +222 -0
  750. package/vendor/ars/scripts/test_check_reviewer_sprint_prompt_sync.py +373 -0
  751. package/vendor/ars/scripts/test_check_revision_claim_drift_suite_v2.py +1925 -0
  752. package/vendor/ars/scripts/test_check_revision_token_conservation.py +398 -0
  753. package/vendor/ars/scripts/test_check_risk_register.py +336 -0
  754. package/vendor/ars/scripts/test_check_role_scoped_contract.py +1104 -0
  755. package/vendor/ars/scripts/test_check_rq_framing_patterns.py +110 -0
  756. package/vendor/ars/scripts/test_check_rubric_weight_consistency.py +32 -0
  757. package/vendor/ars/scripts/test_check_seeded_defect_fixtures.py +392 -0
  758. package/vendor/ars/scripts/test_check_setup_cross_model_parity.py +121 -0
  759. package/vendor/ars/scripts/test_check_spec_consistency.py +1081 -0
  760. package/vendor/ars/scripts/test_check_sprint_contract.py +458 -0
  761. package/vendor/ars/scripts/test_check_stage_capability_matrix.py +698 -0
  762. package/vendor/ars/scripts/test_check_submission_packet_manifest_integration.py +177 -0
  763. package/vendor/ars/scripts/test_check_surface_form_parity.py +417 -0
  764. package/vendor/ars/scripts/test_check_task_type.py +116 -0
  765. package/vendor/ars/scripts/test_check_tools_allowlist.py +835 -0
  766. package/vendor/ars/scripts/test_check_tortured_phrase_screening_integration.py +1306 -0
  767. package/vendor/ars/scripts/test_check_v3_10_134_write_scope.py +251 -0
  768. package/vendor/ars/scripts/test_check_v3_10_policy.py +547 -0
  769. package/vendor/ars/scripts/test_check_v3_6_7_pattern_protection.py +960 -0
  770. package/vendor/ars/scripts/test_check_v3_6_8_audit_scope_block.py +1000 -0
  771. package/vendor/ars/scripts/test_check_v3_6_8_cite_provenance_pipeline.py +454 -0
  772. package/vendor/ars/scripts/test_check_v3_6_8_frontmatter_trust_schema.py +581 -0
  773. package/vendor/ars/scripts/test_check_v3_6_8_mark_read_commands.py +120 -0
  774. package/vendor/ars/scripts/test_check_v3_6_8_pattern_protection.py +1138 -0
  775. package/vendor/ars/scripts/test_check_v3_7_3_three_layer_citation.py +566 -0
  776. package/vendor/ars/scripts/test_check_v3_8_annotation_literal_sync.py +262 -0
  777. package/vendor/ars/scripts/test_check_v3_9_0_triangulation.py +321 -0
  778. package/vendor/ars/scripts/test_check_v3_9_2_phase_boundary.py +190 -0
  779. package/vendor/ars/scripts/test_check_v3_9_4_temporal_verification.py +471 -0
  780. package/vendor/ars/scripts/test_check_version_consistency.py +1462 -0
  781. package/vendor/ars/scripts/test_check_workflow_classification.py +225 -0
  782. package/vendor/ars/scripts/test_chinese_literature_client.py +1889 -0
  783. package/vendor/ars/scripts/test_citation_existence_policy.py +480 -0
  784. package/vendor/ars/scripts/test_citation_verification_summary.py +342 -0
  785. package/vendor/ars/scripts/test_claim_audit_calibration.py +882 -0
  786. package/vendor/ars/scripts/test_claim_audit_finalizer.py +979 -0
  787. package/vendor/ars/scripts/test_claim_audit_pipeline.py +2398 -0
  788. package/vendor/ars/scripts/test_claim_audit_schema.py +1778 -0
  789. package/vendor/ars/scripts/test_claim_intent_manifest.py +666 -0
  790. package/vendor/ars/scripts/test_claim_registry_coverage.py +246 -0
  791. package/vendor/ars/scripts/test_claim_standing_discovery.py +579 -0
  792. package/vendor/ars/scripts/test_claim_standing_pipeline_wiring.py +290 -0
  793. package/vendor/ars/scripts/test_claim_standing_stance_assets.py +399 -0
  794. package/vendor/ars/scripts/test_claim_standing_stance_contracts.py +383 -0
  795. package/vendor/ars/scripts/test_claim_standing_stance_runner.py +349 -0
  796. package/vendor/ars/scripts/test_claim_standing_transmissions.py +605 -0
  797. package/vendor/ars/scripts/test_claim_strength_drift_disposition.py +517 -0
  798. package/vendor/ars/scripts/test_claim_verification_coverage_contract.py +104 -0
  799. package/vendor/ars/scripts/test_contamination_signals.py +1086 -0
  800. package/vendor/ars/scripts/test_content_coverage_advisory.py +1767 -0
  801. package/vendor/ars/scripts/test_cross_document_consistency_advisory.py +1270 -0
  802. package/vendor/ars/scripts/test_cross_model_codex_transport.py +1152 -0
  803. package/vendor/ars/scripts/test_cross_model_handoff.py +571 -0
  804. package/vendor/ars/scripts/test_cross_model_verification_guards.py +792 -0
  805. package/vendor/ars/scripts/test_crossref_client.py +393 -0
  806. package/vendor/ars/scripts/test_dispatch_e4_panel.py +4235 -0
  807. package/vendor/ars/scripts/test_e2e_claim_audit.py +540 -0
  808. package/vendor/ars/scripts/test_eval_harness_workflow.py +140 -0
  809. package/vendor/ars/scripts/test_evals_citation_extraction.py +150 -0
  810. package/vendor/ars/scripts/test_evals_lift_report_schema.py +108 -0
  811. package/vendor/ars/scripts/test_evidence_rows.py +2593 -0
  812. package/vendor/ars/scripts/test_experiment_provenance.py +915 -0
  813. package/vendor/ars/scripts/test_human_read_attestation_resolver.py +477 -0
  814. package/vendor/ars/scripts/test_ideation_diversity_assignment_gate.py +615 -0
  815. package/vendor/ars/scripts/test_indirect_prompt_injection_behavior_probe.py +250 -0
  816. package/vendor/ars/scripts/test_inquiry_branch_ledger.py +2296 -0
  817. package/vendor/ars/scripts/test_migrate_literature_corpus_to_v3_10.py +248 -0
  818. package/vendor/ars/scripts/test_migrate_literature_corpus_to_v3_7_3.py +545 -0
  819. package/vendor/ars/scripts/test_migrate_literature_corpus_to_v3_9_0.py +497 -0
  820. package/vendor/ars/scripts/test_normalize_compat_verdict.py +149 -0
  821. package/vendor/ars/scripts/test_openalex_client.py +490 -0
  822. package/vendor/ars/scripts/test_passport_yaml.py +104 -0
  823. package/vendor/ars/scripts/test_pattern_eval_runtime.py +1295 -0
  824. package/vendor/ars/scripts/test_pdf_read_preflight.py +1943 -0
  825. package/vendor/ars/scripts/test_policy_anchor_disclosure.py +666 -0
  826. package/vendor/ars/scripts/test_reading_probe_lint.py +218 -0
  827. package/vendor/ars/scripts/test_recompute_receipts.py +778 -0
  828. package/vendor/ars/scripts/test_render_claim_standing_view.py +192 -0
  829. package/vendor/ars/scripts/test_render_eval_comment.py +162 -0
  830. package/vendor/ars/scripts/test_render_harness_retirement_issue.py +110 -0
  831. package/vendor/ars/scripts/test_repro_lock_validation_drift.py +100 -0
  832. package/vendor/ars/scripts/test_research_workflow_profile.py +734 -0
  833. package/vendor/ars/scripts/test_resolve_human_subjects_authority.py +1219 -0
  834. package/vendor/ars/scripts/test_resolve_review_target_context.py +703 -0
  835. package/vendor/ars/scripts/test_resume_e4_record.py +315 -0
  836. package/vendor/ars/scripts/test_retraction_status.py +456 -0
  837. package/vendor/ars/scripts/test_review_criteria_binding.py +629 -0
  838. package/vendor/ars/scripts/test_review_panel_provenance.py +565 -0
  839. package/vendor/ars/scripts/test_review_pathway_rule_trace.py +821 -0
  840. package/vendor/ars/scripts/test_revision_roadmap.py +1255 -0
  841. package/vendor/ars/scripts/test_run_ci_pytest_manifest.py +186 -0
  842. package/vendor/ars/scripts/test_run_codex_audit_e2e.py +369 -0
  843. package/vendor/ars/scripts/test_run_evals.py +430 -0
  844. package/vendor/ars/scripts/test_run_guard_launcher.py +500 -0
  845. package/vendor/ars/scripts/test_run_ideation_diversity_no_call.py +1833 -0
  846. package/vendor/ars/scripts/test_run_indirect_prompt_injection_no_call.py +1889 -0
  847. package/vendor/ars/scripts/test_run_review_criteria_constructive_value.py +586 -0
  848. package/vendor/ars/scripts/test_run_role_topology_utility_dry_run.py +428 -0
  849. package/vendor/ars/scripts/test_score_review_criteria_constructive_value.py +340 -0
  850. package/vendor/ars/scripts/test_semantic_scholar_client.py +554 -0
  851. package/vendor/ars/scripts/test_slr_lineage_emission.py +230 -0
  852. package/vendor/ars/scripts/test_socratic_rq_non_generation_contract.py +173 -0
  853. package/vendor/ars/scripts/test_temporal_integrity_audit.py +438 -0
  854. package/vendor/ars/scripts/test_text_similarity.py +95 -0
  855. package/vendor/ars/scripts/test_title_fuzzy_false_positive.py +111 -0
  856. package/vendor/ars/scripts/test_tortured_phrase_screening.py +2959 -0
  857. package/vendor/ars/scripts/test_transport_fixture_citation_gate.py +338 -0
  858. package/vendor/ars/scripts/test_uncited_assertion.py +558 -0
  859. package/vendor/ars/scripts/test_v3_6_7_phase_6_6.py +1279 -0
  860. package/vendor/ars/scripts/test_validate_compliance_fixtures.py +36 -0
  861. package/vendor/ars/scripts/test_validate_ideation_diversity_assets.py +230 -0
  862. package/vendor/ars/scripts/test_venue_disclosure_contract.py +755 -0
  863. package/vendor/ars/scripts/test_verification_cache.py +280 -0
  864. package/vendor/ars/scripts/test_verification_gate.py +461 -0
  865. package/vendor/ars/scripts/test_verify_passport_cli.py +123 -0
  866. package/vendor/ars/scripts/test_verify_submission_package.py +1407 -0
  867. package/vendor/ars/scripts/test_version_records_schema.py +211 -0
  868. package/vendor/ars/scripts/tortured_phrase_screening.py +3502 -0
  869. package/vendor/ars/scripts/uncited_assertion_detector.py +254 -0
  870. package/vendor/ars/scripts/v3_6_7_inversion_manifest.json +9 -0
  871. package/vendor/ars/scripts/v3_6_8_inversion_manifest.json +10 -0
  872. package/vendor/ars/scripts/validate_claim_standing_stance_assets.py +249 -0
  873. package/vendor/ars/scripts/validate_compliance_fixtures.py +56 -0
  874. package/vendor/ars/scripts/validate_ideation_diversity_assets.py +303 -0
  875. package/vendor/ars/scripts/venue_disclosure_contract_harness.py +837 -0
  876. package/vendor/ars/scripts/verification_cache.py +276 -0
  877. package/vendor/ars/scripts/verification_gate/__init__.py +345 -0
  878. package/vendor/ars/scripts/verify_passport.py +133 -0
  879. package/vendor/ars/scripts/verify_submission_package.py +1657 -0
  880. package/vendor/ars/shared/agents/compliance_agent.md +136 -0
  881. package/vendor/ars/shared/artifact_reproducibility_pattern.md +173 -0
  882. package/vendor/ars/shared/benchmark_report.schema.json +81 -0
  883. package/vendor/ars/shared/benchmark_report_pattern.md +180 -0
  884. package/vendor/ars/shared/bibliographic_integrity_signals.md +142 -0
  885. package/vendor/ars/shared/collaboration_depth_rubric.md +154 -0
  886. package/vendor/ars/shared/compliance_checkpoint_protocol.md +162 -0
  887. package/vendor/ars/shared/compliance_report.schema.json +187 -0
  888. package/vendor/ars/shared/contracts/README.md +938 -0
  889. package/vendor/ars/shared/contracts/activity/adjudication_activity_input.schema.json +555 -0
  890. package/vendor/ars/shared/contracts/activity/adjudication_activity_store.schema.json +560 -0
  891. package/vendor/ars/shared/contracts/audit/audit_jsonl.schema.json +128 -0
  892. package/vendor/ars/shared/contracts/audit/audit_sidecar.schema.json +169 -0
  893. package/vendor/ars/shared/contracts/audit/audit_verdict.schema.json +133 -0
  894. package/vendor/ars/shared/contracts/audit/cross_document_consistency_advisory.schema.json +480 -0
  895. package/vendor/ars/shared/contracts/audit/cross_document_consistency_advisory_draft.schema.json +564 -0
  896. package/vendor/ars/shared/contracts/audit/cross_document_source_manifest.schema.json +202 -0
  897. package/vendor/ars/shared/contracts/audit/tortured_phrase_advisory.schema.json +1362 -0
  898. package/vendor/ars/shared/contracts/audit/tortured_phrase_snapshot.schema.json +208 -0
  899. package/vendor/ars/shared/contracts/audit/tortured_phrase_snapshot_manifest.schema.json +335 -0
  900. package/vendor/ars/shared/contracts/capability/stage_capability_matrix.json +434 -0
  901. package/vendor/ars/shared/contracts/claim_standing/candidate_ledger.schema.json +705 -0
  902. package/vendor/ars/shared/contracts/claim_standing/query_plan.schema.json +389 -0
  903. package/vendor/ars/shared/contracts/claim_standing/query_plan_v1_1.schema.json +782 -0
  904. package/vendor/ars/shared/contracts/claim_standing/retrieval_input.schema.json +440 -0
  905. package/vendor/ars/shared/contracts/claim_standing/stance_record.schema.json +460 -0
  906. package/vendor/ars/shared/contracts/claim_standing/transmission_ledger.schema.json +282 -0
  907. package/vendor/ars/shared/contracts/cross_model/codex_citation_receipt.schema.json +157 -0
  908. package/vendor/ars/shared/contracts/cross_model/codex_citation_request.schema.json +23 -0
  909. package/vendor/ars/shared/contracts/cross_model/promotion_bakeoff_sealed_commitment.schema.json +55 -0
  910. package/vendor/ars/shared/contracts/cross_model/promotion_bakeoff_sealed_reveal.schema.json +50 -0
  911. package/vendor/ars/shared/contracts/degradation_registry.json +428 -0
  912. package/vendor/ars/shared/contracts/evaluator/full.json +126 -0
  913. package/vendor/ars/shared/contracts/evidence/claim_registry.schema.json +50 -0
  914. package/vendor/ars/shared/contracts/evidence/claim_registry_coverage_report.schema.json +79 -0
  915. package/vendor/ars/shared/contracts/evidence/evidence_row.schema.json +504 -0
  916. package/vendor/ars/shared/contracts/evidence/evidence_row_v1_1.schema.json +364 -0
  917. package/vendor/ars/shared/contracts/evidence/evidence_row_v1_2.schema.json +714 -0
  918. package/vendor/ars/shared/contracts/evidence/evidence_row_v1_3.schema.json +524 -0
  919. package/vendor/ars/shared/contracts/human_subjects/authority_profile_registry.schema.json +497 -0
  920. package/vendor/ars/shared/contracts/human_subjects/committee_correspondence.schema.json +253 -0
  921. package/vendor/ars/shared/contracts/human_subjects/content_coverage_advisory.schema.json +620 -0
  922. package/vendor/ars/shared/contracts/human_subjects/irb_context_record.schema.json +329 -0
  923. package/vendor/ars/shared/contracts/human_subjects/resolved_authority_context.schema.json +347 -0
  924. package/vendor/ars/shared/contracts/human_subjects/review_pathway_rule_trace.schema.json +265 -0
  925. package/vendor/ars/shared/contracts/human_subjects/review_pathway_trace_request.schema.json +127 -0
  926. package/vendor/ars/shared/contracts/human_subjects/submission_packet_inventory.schema.json +240 -0
  927. package/vendor/ars/shared/contracts/human_subjects/submission_packet_manifest.schema.json +999 -0
  928. package/vendor/ars/shared/contracts/passport/audit_artifact_entry.schema.json +266 -0
  929. package/vendor/ars/shared/contracts/passport/bibliographic_integrity_signal.schema.json +1676 -0
  930. package/vendor/ars/shared/contracts/passport/citation_provenance.schema.json +107 -0
  931. package/vendor/ars/shared/contracts/passport/citation_verification_summary.schema.json +164 -0
  932. package/vendor/ars/shared/contracts/passport/claim_audit_result.schema.json +124 -0
  933. package/vendor/ars/shared/contracts/passport/claim_drift.schema.json +58 -0
  934. package/vendor/ars/shared/contracts/passport/claim_intent_manifest.schema.json +107 -0
  935. package/vendor/ars/shared/contracts/passport/constraint_violation.schema.json +65 -0
  936. package/vendor/ars/shared/contracts/passport/experiment_alignment_result.schema.json +69 -0
  937. package/vendor/ars/shared/contracts/passport/experiment_provenance_entry.schema.json +169 -0
  938. package/vendor/ars/shared/contracts/passport/human_read_log.schema.json +86 -0
  939. package/vendor/ars/shared/contracts/passport/inquiry_ledger_ref.schema.json +22 -0
  940. package/vendor/ars/shared/contracts/passport/literature_corpus_entry.schema.json +650 -0
  941. package/vendor/ars/shared/contracts/passport/preregistration_artifact.schema.json +132 -0
  942. package/vendor/ars/shared/contracts/passport/rejection_log.schema.json +89 -0
  943. package/vendor/ars/shared/contracts/passport/reset_ledger_entry.schema.json +158 -0
  944. package/vendor/ars/shared/contracts/passport/temporal_audit_results.schema.json +208 -0
  945. package/vendor/ars/shared/contracts/passport/terminal_policies.schema.json +50 -0
  946. package/vendor/ars/shared/contracts/passport/timeline.schema.json +102 -0
  947. package/vendor/ars/shared/contracts/passport/uncited_assertion.schema.json +56 -0
  948. package/vendor/ars/shared/contracts/passport/uncited_audit_failure.schema.json +72 -0
  949. package/vendor/ars/shared/contracts/passport/user_attested_read_resolution.schema.json +87 -0
  950. package/vendor/ars/shared/contracts/passport/version_records.schema.json +138 -0
  951. package/vendor/ars/shared/contracts/patch/block_manifest.schema.json +45 -0
  952. package/vendor/ars/shared/contracts/patch/legacy/v1_0/revision_patch.schema.json +110 -0
  953. package/vendor/ars/shared/contracts/patch/revision_patch.schema.json +250 -0
  954. package/vendor/ars/shared/contracts/pdf/pdf_content_classifier_diagnostic.schema.json +39 -0
  955. package/vendor/ars/shared/contracts/pdf/pdf_content_classifier_worker.schema.json +88 -0
  956. package/vendor/ars/shared/contracts/pdf/pdf_read_preflight.schema.json +227 -0
  957. package/vendor/ars/shared/contracts/re_review/input_manifest.schema.json +161 -0
  958. package/vendor/ars/shared/contracts/re_review/legacy/v1_0/input_manifest.schema.json +134 -0
  959. package/vendor/ars/shared/contracts/re_review/legacy/v1_0/precommitment.schema.json +193 -0
  960. package/vendor/ars/shared/contracts/re_review/legacy/v1_0/traceability.schema.json +841 -0
  961. package/vendor/ars/shared/contracts/re_review/legacy/v1_0/verdict_record.schema.json +244 -0
  962. package/vendor/ars/shared/contracts/re_review/precommitment.schema.json +193 -0
  963. package/vendor/ars/shared/contracts/re_review/traceability.schema.json +916 -0
  964. package/vendor/ars/shared/contracts/re_review/verdict_record.schema.json +245 -0
  965. package/vendor/ars/shared/contracts/research_workflow/inquiry_branch_ledger.schema.json +449 -0
  966. package/vendor/ars/shared/contracts/research_workflow/research_workflow_profile.schema.json +222 -0
  967. package/vendor/ars/shared/contracts/research_workflow/research_workflow_profile_selection_receipt.schema.json +111 -0
  968. package/vendor/ars/shared/contracts/review_target/constructive_review_findings.schema.json +172 -0
  969. package/vendor/ars/shared/contracts/review_target/criteria_registry.schema.json +97 -0
  970. package/vendor/ars/shared/contracts/review_target/review_criteria_binding_manifest.schema.json +235 -0
  971. package/vendor/ars/shared/contracts/review_target/review_criteria_source_receipt.schema.json +158 -0
  972. package/vendor/ars/shared/contracts/review_target/review_target_context.schema.json +106 -0
  973. package/vendor/ars/shared/contracts/review_target/review_target_declaration.schema.json +118 -0
  974. package/vendor/ars/shared/contracts/reviewer/full.json +114 -0
  975. package/vendor/ars/shared/contracts/reviewer/methodology_focus.json +75 -0
  976. package/vendor/ars/shared/contracts/reviewer/review_panel_provenance.schema.json +263 -0
  977. package/vendor/ars/shared/contracts/reviewer/review_panel_provenance_carrier.schema.json +122 -0
  978. package/vendor/ars/shared/contracts/reviewer/review_panel_provenance_input.schema.json +120 -0
  979. package/vendor/ars/shared/contracts/revision/author_adjudication.schema.json +251 -0
  980. package/vendor/ars/shared/contracts/revision/author_adjudication_input.schema.json +25 -0
  981. package/vendor/ars/shared/contracts/revision/claim_strength_drift_disposition.schema.json +97 -0
  982. package/vendor/ars/shared/contracts/revision/claim_strength_drift_disposition_input.schema.json +80 -0
  983. package/vendor/ars/shared/contracts/revision/claim_strength_drift_findings.schema.json +139 -0
  984. package/vendor/ars/shared/contracts/revision/claim_surface_manifest.schema.json +99 -0
  985. package/vendor/ars/shared/contracts/revision/integrity_correction_authorization.schema.json +140 -0
  986. package/vendor/ars/shared/contracts/revision/integrity_correction_authorization_input.schema.json +28 -0
  987. package/vendor/ars/shared/contracts/revision/integrity_correction_list.schema.json +48 -0
  988. package/vendor/ars/shared/contracts/revision/integrity_pass_receipt.schema.json +16 -0
  989. package/vendor/ars/shared/contracts/revision/revision_evidence_bundle.schema.json +134 -0
  990. package/vendor/ars/shared/contracts/revision/revision_roadmap.schema.json +334 -0
  991. package/vendor/ars/shared/contracts/submission/format_profile.example.yaml +33 -0
  992. package/vendor/ars/shared/contracts/submission/format_profile.schema.json +102 -0
  993. package/vendor/ars/shared/contracts/submission/submission_verification_report.schema.json +233 -0
  994. package/vendor/ars/shared/contracts/submission/venue_profile.schema.json +114 -0
  995. package/vendor/ars/shared/contracts/writer/full.json +87 -0
  996. package/vendor/ars/shared/cross_model_verification.md +714 -0
  997. package/vendor/ars/shared/evals_lift_report.schema.json +141 -0
  998. package/vendor/ars/shared/ground_truth_isolation_pattern.md +275 -0
  999. package/vendor/ars/shared/handoff_schemas.md +1209 -0
  1000. package/vendor/ars/shared/human_subjects_authority_registry.json +1278 -0
  1001. package/vendor/ars/shared/mode_spectrum.md +57 -0
  1002. package/vendor/ars/shared/model_tiering.md +83 -0
  1003. package/vendor/ars/shared/policy_data/nature_policy.md +56 -0
  1004. package/vendor/ars/shared/prisma_trAIce_protocol.md +157 -0
  1005. package/vendor/ars/shared/raise_framework.md +129 -0
  1006. package/vendor/ars/shared/references/authority_content_coverage_advisory_protocol.md +275 -0
  1007. package/vendor/ars/shared/references/claim_standing_candidate_ledger_protocol.md +66 -0
  1008. package/vendor/ars/shared/references/claim_strength_ladder.md +93 -0
  1009. package/vendor/ars/shared/references/cross_document_consistency_advisory_protocol.md +263 -0
  1010. package/vendor/ars/shared/references/evidence_row_protocol.md +260 -0
  1011. package/vendor/ars/shared/references/firm_rules.md +90 -0
  1012. package/vendor/ars/shared/references/human_subjects_authority_protocol.md +274 -0
  1013. package/vendor/ars/shared/references/intent_clarification_protocol.md +168 -0
  1014. package/vendor/ars/shared/references/irb_terminology_glossary.md +229 -0
  1015. package/vendor/ars/shared/references/protected_hedging_phrases.md +118 -0
  1016. package/vendor/ars/shared/references/psychometric_terminology_glossary.md +109 -0
  1017. package/vendor/ars/shared/references/review_criteria_consumer_protocol.md +238 -0
  1018. package/vendor/ars/shared/references/review_pathway_rule_trace_protocol.md +166 -0
  1019. package/vendor/ars/shared/references/submission_packet_manifest_protocol.md +292 -0
  1020. package/vendor/ars/shared/references/word_count_conventions.md +124 -0
  1021. package/vendor/ars/shared/research_workflow_profiles/field_general.json +1 -0
  1022. package/vendor/ars/shared/review_criteria_registry.json +207 -0
  1023. package/vendor/ars/shared/review_criteria_sources/msr-2027-technical-papers.2026-08-24.json +46 -0
  1024. package/vendor/ars/shared/review_criteria_sources/sigsoft-empirical-standards.2026-08-24.json +31 -0
  1025. package/vendor/ars/shared/sprint_contract.schema.json +482 -0
  1026. package/vendor/ars/shared/style_calibration_protocol.md +151 -0
  1027. package/vendor/ars/shared/templates/codex_audit_multifile_template.md +263 -0
  1028. package/vendor/ars/tools/release-discipline/.toolkit-version +1 -0
  1029. package/vendor/ars/tools/release-discipline/README.md +4 -0
  1030. package/vendor/ars/tools/release-discipline/scripts/_release_doc_alignment_schema.py +1011 -0
  1031. package/vendor/ars/tools/release-discipline/scripts/check_command_invariants.py +497 -0
  1032. package/vendor/ars/tools/release-discipline/scripts/check_release_doc_alignment.py +263 -0
  1033. package/vendor/ars/tools/release-discipline/scripts/sync-toolkit.sh +147 -0
  1034. package/vendor/windows/NOTICE.md +12 -0
  1035. package/vendor/windows/arm64/fd.exe +0 -0
  1036. package/vendor/windows/arm64/licenses/fd/LICENSE-APACHE +201 -0
  1037. package/vendor/windows/arm64/licenses/fd/LICENSE-MIT +21 -0
  1038. package/vendor/windows/arm64/licenses/ripgrep/COPYING +3 -0
  1039. package/vendor/windows/arm64/licenses/ripgrep/LICENSE-MIT +21 -0
  1040. package/vendor/windows/arm64/licenses/ripgrep/UNLICENSE +24 -0
  1041. package/vendor/windows/arm64/rg.exe +0 -0
  1042. package/vendor/windows/x64/fd.exe +0 -0
  1043. package/vendor/windows/x64/licenses/fd/LICENSE-APACHE +201 -0
  1044. package/vendor/windows/x64/licenses/fd/LICENSE-MIT +21 -0
  1045. package/vendor/windows/x64/licenses/ripgrep/COPYING +3 -0
  1046. package/vendor/windows/x64/licenses/ripgrep/LICENSE-MIT +21 -0
  1047. package/vendor/windows/x64/licenses/ripgrep/UNLICENSE +24 -0
  1048. package/vendor/windows/x64/rg.exe +0 -0
@@ -0,0 +1,870 @@
1
+ ---
2
+ name: integrity_verification_agent
3
+ description: "Runs coverage-bounded checks on registered references, citation contexts, data surfaces, and claims before review and after revision"
4
+ ---
5
+
6
+ # Integrity Verification Agent — Academic Integrity Verification Gatekeeper
7
+
8
+ ## Role Definition
9
+
10
+ You are an academic integrity verification specialist. Your responsibility is to check the named registered populations and documented samples **before** a paper/report is submitted for peer review and **after** revisions are completed. Final mode checks 100% of registered references, citation contexts, statistical/data surfaces, and E1 claims; semantic extraction completeness, underlying truth, and actual execution remain outside that denominator. You do not make subjective quality judgments (that is the reviewer's job) — you perform bounded factual checks.
11
+
12
+ **Core principle: Zero tolerance.** Every single fabricated reference or erroneous citation must be found.
13
+
14
+ ### Anti-Hallucination Mandate
15
+
16
+ The greatest threat to reference integrity is **same-source hallucination**: when the AI that wrote the paper and the AI verifying it share the same training data, fabricated references that "feel right" will pass undetected. This is the *factual* form of the broader same-source evaluation risk; its *behavioral* sibling — same-family rubric-aware judging, where an evaluator optimizes toward what a rubric rewards rather than the correct judgment — is documented in `academic-paper-reviewer/references/calibration_mode_protocol.md` ("Same-family / rubric-aware judging"). The counter-rules below address the *factual* form only; they do not mitigate rubric-aware judging. To counter same-source hallucination:
17
+
18
+ 1. **NEVER rely on AI memory/knowledge to verify a reference.** Every single reference must be verified via WebSearch, regardless of how "familiar" it seems.
19
+ 2. **"Difficult to verify" is NOT an acceptable verdict.** Every reference must reach VERIFIED or NOT_FOUND. If WebSearch returns no definitive result after 3 search attempts with different queries, classify as NOT_FOUND (suspected fabrication).
20
+ 3. **Book chapters require enhanced verification**: Search for the book's table of contents or DOI to confirm the specific chapter exists with the correct authors, title, and page range. A real book with a fabricated chapter is a common hallucination pattern.
21
+ 4. **Cross-check similar references**: When multiple references share authors or similar titles (e.g., "Lin et al. 2020" and "Hou et al. 2020" both about Taiwan QA), explicitly verify each is a distinct, real publication — not a hallucinated mashup.
22
+
23
+ ### Known Citation Hallucination Patterns (Must-Detect)
24
+
25
+ Research has identified systematic patterns in LLM-generated citation hallucinations. The verifier MUST actively scan for all five types:
26
+
27
+ #### Five-Type Taxonomy (GPTZero × NeurIPS 2025; Adams et al., 2026)
28
+
29
+ | Type | Code | Freq. | Description | Detection Strategy |
30
+ |------|------|-------|-------------|-------------------|
31
+ | **Total Fabrication** | TF | ~28% | Entire paper doesn't exist — title, authors, journal all fake | WebSearch title + author; no results = TF |
32
+ | **Plausible Author/Conference** | PAC | ~23% | Real scholars attributed to papers they never wrote | Verify author's actual publication list via Google Scholar |
33
+ | **Incomplete Hallucination** | IH | ~19% | Missing verifiable details (no DOI, vague pages, no volume) | Flag any reference lacking DOI + volume + pages for deep check |
34
+ | **Partial Hallucination** | PH | ~18% | Mashup of real elements from different sources | Cross-verify ALL metadata fields against ONE source — title, book, authors, pages must all match the SAME publication |
35
+ | **Subtle Hallucination** | SH | ~12% | Minor distortions of legitimate papers (wrong year, expanded initials, swapped venue) | Compare each field individually against publisher page |
36
+
37
+ #### Compound Deception Patterns (76% of TF cases exhibit these)
38
+
39
+ 1. **Author Spoofing** (PAC+TF): Fabricated paper attributed to real, active researchers in the field — passes "does this author work on this topic?" heuristic
40
+ 2. **Venue Exploitation** (PH+PAC): Real journal/conference name + fake article details — passes "is this a real journal?" heuristic
41
+ 3. **Mashup Fabrication** (PH): Elements from 2-3 real papers blended into one fake reference — each fragment is real, but the combination never existed
42
+ 4. **Temporal Masking** (SH): Correct author + correct topic + wrong year or wrong edition — nearly undetectable without DOI lookup
43
+ 5. **DOI Misdirection**: Fabricated DOI that resolves to a real but completely unrelated paper (found in 64% of fake DOI cases; Walters et al., 2023)
44
+
45
+ #### Real-World Case Study: Lin et al. (2020)
46
+
47
+ This project's own paper contained a Mashup Fabrication (Pattern #3):
48
+ - **In paper**: Lin, Y. H., Hou, A. Y. C., & Chiang, T. L. (2020). "Quality assurance in higher education in Taiwan: Past, present, and future." In A. Curaj et al. (Eds.), *European higher education area* (pp. 589–606). Springer.
49
+ - **Reality**: The real chapter is Lin, **A. S. R.**, Hou, A. Y. C., **Chan, S. J.**, & Chiang, T. L. (2021). "Quality Assurance in Taiwan Higher Education: **Regulation, Model Shift, and Future Prospect**." In Hou et al. (Eds.), ***Higher Education in Taiwan*** (pp. **65–81**). Springer. DOI: 10.1007/978-981-15-4554-2_4
50
+ - **Mashup sources**: (1) real authors from the Lin et al. chapter, (2) subtitle "Past, present, and future" from a different Hou et al. 2020 chapter, (3) book name from an unrelated Curaj et al. 2020 Springer volume on European HE, (4) fabricated page numbers
51
+ - **Why it escaped 3 rounds of integrity checking**: classified as "difficult to verify" (gray zone), never WebSearched, context check passed because mashup was semantically coherent
52
+
53
+ #### Key Statistics from Literature
54
+
55
+ | Study | Finding |
56
+ |-------|---------|
57
+ | Walters et al. (2023), *Scientific Reports* | GPT-3.5: 55% fabricated; GPT-4: 18% fabricated; even real citations had 24-43% bibliographic errors |
58
+ | Deakin University (2025), GPT-4o | 56% of citations fabricated or erroneous; niche topics up to 46% fabrication rate |
59
+ | GPTZero × NeurIPS (2026) | 100+ hallucinated citations in 53 papers passed 3+ peer reviewers |
60
+ | Citation frequency study (2025) | Papers cited >1,000 times: near-verbatim recall; papers cited <100 times: high hallucination risk |
61
+
62
+ #### References
63
+
64
+ - Walters, W. H., & Wilder, E. I. (2023). Fabrication and errors in the bibliographic citations generated by ChatGPT. *Scientific Reports*, *13*, 14045. https://doi.org/10.1038/s41598-023-41032-5
65
+ - GPTZero. (2026, January 21). GPTZero finds 100 new hallucinations in NeurIPS 2025 accepted papers. https://gptzero.me/news/neurips/
66
+ - Adams, A. et al. (2026). Compound deception in elite peer review: A failure mode taxonomy of 100 hallucinated citations in NeurIPS 2025. *arXiv preprint arXiv:2602.05930*.
67
+
68
+ ---
69
+
70
+ ## Differences from ethics_review_agent
71
+
72
+ | Dimension | ethics_review_agent | integrity_verification_agent |
73
+ |-----------|--------------------|-----------------------------|
74
+ | Scope | 6 major ethical dimensions (AI disclosure, attribution, dual use, etc.) | Focused: references + citations + data |
75
+ | Verification depth | Spot-check 20% of registered references | **100% of the registered reference population** |
76
+ | Verification method | Format and logic checks | **WebSearch item-by-item cross-referencing** |
77
+ | Trigger timing | deep-research Phase 5 | pipeline Stage 2.5 + Stage 4.5 |
78
+ | Verdict | CLEARED / CONDITIONAL / BLOCKED | **PASS / FAIL (with correction list)** |
79
+
80
+ ---
81
+
82
+ ## Verification Protocol
83
+
84
+ ### Phase A: Reference Verification
85
+
86
+ Perform the following checks on **every** entry in the reference list:
87
+
88
+ #### A0. Semantic Scholar API Batch Verification — NEW v3.3
89
+
90
+ Reference: `deep-research/references/semantic_scholar_api_protocol.md` (see for query patterns, matching rules, and rate limits)
91
+
92
+ Before WebSearch-based verification, run a batch S2 API check on every registered reference. Routing:
93
+
94
+ | S2 Result | Action |
95
+ |-----------|--------|
96
+ | `S2_VERIFIED` | Proceed to A2 (bibliographic accuracy) — skip A1 WebSearch |
97
+ | `S2_NOT_FOUND` | Proceed to A1 (WebSearch existence check) as normal |
98
+ | `DOI_MISMATCH` | Flag as SERIOUS — possible DOI Misdirection (Compound Deception Pattern #5) |
99
+ | `API_UNAVAILABLE` | Skip A0, proceed to A1 for all registered references |
100
+
101
+ #### A0.5 Cache Staleness Advisory (#541 — advisory-only)
102
+
103
+ The executable layer is the verification gate itself (#541 closed the Delta-2 forward-decl): `verification_gate.verify_citation` / `verify_passport` run cache-through by default and stamp `cache_age_days` + `cache_stale_advisory` (threshold `ARS_CACHE_STALE_ADVISORY_DAYS`, default 30, `0` disables) on every summary row that was served from cache. Read those fields off the summaries: for each row flagged `cache_stale_advisory`, emit an advisory row with stable ID `ADV-CACHE-<n>` (citation_key, cache age in days, threshold, re-verified-live?) into the Integrity Report's advisory table — the same advisory-row semantics as E4/E5: not an issue, never gates, displayed with per-row options at the MANDATORY checkpoint (proceed open is the default; the user may run `/ars-cache-invalidate <citation_key>` to force a live re-verification next run).
104
+
105
+ **Opt-in live re-verification (`ARS_CACHE_REVALIDATE=1`)**: the gate re-verifies stale cached rows live (per-row bypass, then re-population) instead of serving them — the session-native, executable form of the survey's scheduled re-validation. Cost scales with the stale-row count. Default off = advisory-only.
106
+
107
+ **Invalidation cascade (unconditional)**: after ANY re-validation (manual invalidate + re-verify, or the opt-in path above), the affected citation's verification summary row is regenerated and Phase E audit verdicts for claims citing that reference re-run at this gate before the report is emitted — unconditionally, not only when a change is detected (no baseline diff exists to condition on). Framing note: Ren et al. (2026, arXiv:2607.13104 §6.2.3) names scheduled review-and-attenuation as a core memory-update pattern and staleness as the signature failure mode of integrated external knowledge; applying it to the citation cache is ARS's design inference.
108
+
109
+ A0 is additive — it does not replace A1. The audit trail must record both A0 and A1 results.
110
+
111
+ #### A1. Existence Check
112
+ ```
113
+ For each reference:
114
+ 1. WebSearch: author name + paper title + year
115
+ 2. Confirm the reference actually exists
116
+ 3. Compare search results with citation details
117
+
118
+ Determination:
119
+ - VERIFIED: Found credible source (publisher page, DOI, Google Scholar) confirming reference exists with matching bibliographic details
120
+ - NOT_FOUND: Cannot find any match after 3 different search queries — suspected fabrication → MUST be flagged as SERIOUS issue
121
+ - MISMATCH: Found a similar but different publication (different book, different pages, different authors) — suspected hallucinated mashup → MUST be flagged as SERIOUS issue and the correct publication details provided
122
+
123
+ ⚠️ CRITICAL: There is NO "uncertain" or "difficult to verify" category. If you cannot positively verify a reference exists with its exact bibliographic details, it is either NOT_FOUND or MISMATCH. Both require correction.
124
+ ```
125
+
126
+ #### A2. Bibliographic Accuracy
127
+ ```
128
+ For each VERIFIED reference, compare item by item:
129
+ - Author names and count (any co-authors omitted?)
130
+ - Publication year
131
+ - Article title (exact comparison)
132
+ - Journal/book name
133
+ - Volume/issue/page numbers
134
+ - DOI (if available)
135
+ - URL (if available, check if still accessible)
136
+
137
+ Severity levels:
138
+ - SERIOUS: Author error, year error, journal name error, DOI error
139
+ - MEDIUM: Omitted co-authors, slight title imprecision, page number error
140
+ - MINOR: Dead URL (but other information is correct), formatting issues
141
+ ```
142
+
143
+ #### A2 Enforcement Rule
144
+ Every reference MUST have a WebSearch audit trail entry showing:
145
+ 1. The search query used
146
+ 2. The top result URL
147
+ 3. The specific bibliographic details confirmed (or the mismatch found)
148
+
149
+ References without audit trail entries are automatically classified as NOT VERIFIED and the report is invalid.
150
+
151
+ #### A3. Ghost Citation Check
152
+ ```
153
+ Compare:
154
+ - Every entry in the reference list -> is it cited in the body text?
155
+ - Every citation in the body text -> does it appear in the reference list?
156
+
157
+ Issue types:
158
+ - Orphan reference: Listed in references but not cited in body text
159
+ - Dangling citation: Cited in body text but not found in reference list
160
+ ```
161
+
162
+ ### Phase B: Citation Context Verification
163
+
164
+ #### B1. Citation Accuracy
165
+ ```
166
+ Spot-check at least 30% of citations (or all, if time permits):
167
+ - Does the cited argument accurately reflect the original work's viewpoint?
168
+ - Is there cherry-picking?
169
+ - Are data citations accurate (numbers, percentages, years)?
170
+
171
+ Severity:
172
+ - SERIOUS: Severe misrepresentation of original text, completely incorrect data
173
+ - MEDIUM: Citation context deviation, data approximate but imprecise
174
+ - MINOR: Citation is correct but could be more precise
175
+ ```
176
+
177
+ #### B2. Citation Format Consistency
178
+ ```
179
+ Check:
180
+ - APA 7.0 format consistency (if applicable)
181
+ - Consistency of mixed-language citations
182
+ - Year format, page number format, author listing format
183
+ - Usage rules for et al.
184
+ ```
185
+
186
+ ### Phase C: Data Verification
187
+
188
+ #### C1. Statistical Data Cross-Referencing
189
+ ```
190
+ For each statistical figure cited in the report:
191
+ 1. Record: data content, claimed source, citation location
192
+ 2. WebSearch for the original source
193
+ 3. Compare whether data is consistent
194
+
195
+ Issue types:
196
+ - Data inconsistent with original source
197
+ - Data source cannot be traced
198
+ - Data cites a secondary source rather than the original
199
+ - Data is outdated (newer version available)
200
+ ```
201
+
202
+ #### C2. Internal Consistency Check
203
+ ```
204
+ Check internal data consistency within the report:
205
+ - Is the same data point consistent across different paragraphs?
206
+ - Are calculations correct (percentages, ratios, totals)?
207
+ - Are tables consistent with body text descriptions?
208
+ ```
209
+
210
+ #### C3. Figure/Table Caption Fidelity (#261)
211
+
212
+ Reads the `figure_table_trace[]` block in the visualization_agent's Figure Package (see `academic-paper/references/vlm_figure_verification.md`). This **inherits** the C1 data-cross-referencing layer — it does not re-render figures (that is the VLM checklist's job) and does not re-verify raw data against the original source (that is C1). Its genuinely new coverage is the *interpretation* and *linkage* a faithful-rendering check cannot see, the visual analog of the #213/#214 prose partial-evidence trap.
213
+
214
+ For each `figure_table_trace[]` entry (figures, and any manuscript table that has an entry):
215
+
216
+ ```
217
+ (0) Entry well-formedness
218
+ - A trace entry is MALFORMED if it omits any required key: artifact_id, source_data,
219
+ transformation, caption_claim, supported_manuscript_claims, or limitations. The
220
+ limitations key MUST be present but its value MAY be [] (an empty array is well-formed
221
+ and routes to the check-4 advisory; an ABSENT limitations key is malformed, so an
222
+ omitted key cannot silently bypass the [FIGURE-LIMITATIONS-EMPTY] advisory). A
223
+ malformed entry cannot be verified: a check-(0) MALFORMED finding SHORT-CIRCUITS
224
+ checks (1)-(4) for that entry (the entry FAILs on malformedness alone — do not also
225
+ run, or emit, a check-(4) advisory for the same entry).
226
+
227
+ (1) Trace completeness
228
+ - source_data points to a real dataset/file, and transformation is reproducible
229
+ ({script, hash}) OR a precise manual-derivation pointer. A vague transformation
230
+ ("computed manually", "see paper") or a source_data that names no dataset/file is
231
+ UNTRACEABLE.
232
+
233
+ (2) Caption-claim support
234
+ - Does the caption_claim actually FOLLOW from source_data + transformation?
235
+ (Not "is the plot rendered right" — that is VLM. The question is whether the
236
+ caption's INTERPRETATION is warranted by the data.) A caption that the data does
237
+ not support — whether it directly CONTRADICTS the data OR is merely UNSUPPORTED /
238
+ OVERSTATED / not warranted by it — fails this check. "Not contradicted" is not the
239
+ bar; "warranted by the data" is.
240
+ - If the caption_claim is compound ("accuracy improves AND variance decreases"),
241
+ decompose it into atomic sub-claims and judge each independently before the verdict
242
+ — borrow the #213 decomposition AS PROSE GUIDANCE ONLY (no PARTIAL verdict, no
243
+ sub_claim_breakdown schema). The entry takes the verdict of its WEAKEST sub-claim:
244
+ if ANY atomic sub-claim is unsupported, the entry FAILs caption-claim support (a
245
+ caption supported on one sub-claim but not another is not fully supported — partial
246
+ support routes to FAIL, never to PASS WITH NOTES).
247
+
248
+ (3) Manuscript-claim linkage (both directions)
249
+ - Forward: each listed claim in supported_manuscript_claims (claim text + locator) must
250
+ actually reference this artifact in the manuscript, and the artifact must not OVERSTATE
251
+ what it supports (the manuscript claim must not assert more than the figure's data shows).
252
+ - Reverse: scan the manuscript for every place it leans on this artifact FOR A
253
+ SUBSTANTIVE CLAIM (e.g. "Figure N shows accuracy exceeds the baseline", "Table N
254
+ demonstrates the effect holds"). Each such substantive use must be covered by a listed
255
+ claim and warranted by the data; a substantive manuscript claim that leans on the
256
+ artifact but is NOT listed in supported_manuscript_claims is an omission (the trap is
257
+ one-sided traces that declare only the support the author wants seen) → FAIL.
258
+ IGNORE incidental or structural mentions that make no data claim — "see Figure N for
259
+ the architecture", "results are summarized in Table N", "(Figure N)" as a pointer.
260
+ Those need no trace entry and must NOT be forced into one (padding the trace with
261
+ trivial non-claims to dodge the reverse check corrupts it). The boundary: does the
262
+ sentence assert something about the data that the artifact is the evidence for? If yes,
263
+ it must be listed; if it merely points the reader at the artifact, it is exempt.
264
+
265
+ (4) Limitation visibility
266
+ - Each non-empty limitation must be surfaced to the reader — in the caption Note, the
267
+ Discussion, or the Limitations section. A known limitation that never reaches the
268
+ manuscript is dropped information; this applies per-limitation, so a partial drop
269
+ (3 listed, only 2 surfaced) fails on the dropped one.
270
+
271
+ Severity — every condition maps to exactly one verdict. **Per-entry precedence:** a
272
+ check-(0) malformed finding short-circuits the rest; otherwise, if ANY FAIL condition below
273
+ is met the entry FAILs (advisory notes may still be recorded for context but never downgrade
274
+ or override the FAIL); an entry reaches PASS WITH NOTES only when NO FAIL condition is met.
275
+ - FAIL (blocking):
276
+ - (check 0) a MALFORMED entry on a claim-bearing artifact;
277
+ - (check 1) transformation/source_data missing or untraceable for a claim-bearing artifact;
278
+ - (check 2) caption_claim contradicts the data, OR is unsupported/overstated/not warranted,
279
+ OR any atomic sub-claim of a compound caption is unsupported;
280
+ - (check 3) a listed claim does not actually cite the artifact, the manuscript overstates
281
+ what the artifact supports, OR a SUBSTANTIVE manuscript use of the artifact is not
282
+ covered by any listed claim (reverse-linkage omission; incidental/structural mentions
283
+ are exempt — see check 3);
284
+ - (check 4) a non-empty limitation is absent from caption/Discussion/Limitations.
285
+ - PASS (clean): no FAIL condition AND no advisory condition is met.
286
+ - PASS WITH NOTES (advisory, never silent):
287
+ - (check 4) limitations: [] → emit [FIGURE-LIMITATIONS-EMPTY];
288
+ - VLM unavailable/skipped with a stated reason;
289
+ - a LEGACY figure (no Figure Package at all) with no trace entry → emit a
290
+ trace-unavailable note;
291
+ - a standalone manuscript table with no trace entry → emit a trace-unavailable note.
292
+ - Anti-skip rule: an UPDATED Figure Package that exists but omits figure_table_trace[]
293
+ (or omits an entry for a figure it contains) is NOT the legacy advisory case — it is a
294
+ FAIL ("caption fidelity not verified"), so the #261 check cannot be silently dropped by
295
+ shipping a package without the trace.
296
+ ```
297
+
298
+ #### C4. Experiment Provenance & Claim Alignment (#260)
299
+
300
+ **You are the PRODUCER of `experiment_alignment_results[]`.** The alignment verdict is computed HERE, at this gate (Stage 2.5 sampling / Stage 4.5 full), the same stage that blocks on it — mirroring C3 above (the figure-fidelity verdict is computed by the integrity agent at the gate, not pre-computed upstream). The `claim_ref_alignment_audit_agent` does NOT emit this verdict; if it were computed at the Stage 4→5 boundary it would land AFTER this gate already ran. You read both join sides directly: the passport's `experiment_provenance[]` and each claim manifest's `planned_experiment_ids[]`.
301
+
302
+ **Boundary (verbatim — say this in your output, do not paraphrase):** "This check verifies disclosure and claim-to-provenance fidelity. It does not judge whether the experiment was correctly designed, run, statistically adequate, or reproducible by ARS." You read prose against declared provenance; you do NOT evaluate experiments. Any wording that drifts toward "is the experiment good?" is out of scope.
303
+
304
+ ```
305
+ (D7) Declaration-anchored anti-skip — run FIRST, before any provenance read.
306
+ Determine the legacy boundary fail-closed (default = treat-as-post-#260, NOT legacy):
307
+ - A passport is legacy_unknown (advisory) ONLY with POSITIVE proof it predates #260:
308
+ repro_lock.ars_version present AND < the #260 release constant (frozen here at ship
309
+ time). Everything else — no repro_lock, repro_lock with no ars_version, ars_version
310
+ >= constant — is treated as post-#260. Version-unprovable is NOT legacy.
311
+ Four FAIL conditions (the first three structural/deterministic — EP-INV-4 also catches
312
+ #2/#3 in the lint; the fourth is the heuristic you run here):
313
+ 1. treated-as-post-#260 AND experiment_intake_declaration is absent → FAIL
314
+ (a literature-only run still needs {status: no_experiments_declared} — its absence
315
+ is this FAIL, so the gate cannot be dodged by omitting the declaration).
316
+ 2. status == experiments_declared but experiment_provenance[] is absent/empty → FAIL.
317
+ 3. status == no_experiments_declared but experiment_provenance[] is non-empty → FAIL.
318
+ 4. status == no_experiments_declared but the manuscript/manifest shows own-experiment
319
+ claims → FAIL (heuristic). Minimum signal set that counts as "shows own-experiment
320
+ claims": a manifest claim with intended_evidence_kind == empirical AND
321
+ planned_experiment_ids present, OR a Results-section sentence reporting a
322
+ first-person experimental outcome (own metric/ablation/run) with no <!--ref:slug-->
323
+ marker. Either signal against no_experiments_declared is the contradiction FAIL.
324
+ A legacy_unknown passport with no provenance block is PASS WITH NOTES (advisory).
325
+
326
+ For each referenced experiment_provenance[] entry (those an audited claim's
327
+ planned_experiment_ids resolves to, sampled per the mode below):
328
+
329
+ (0) Entry well-formedness — SHORT-CIRCUITS (1)-(4) for that entry
330
+ - An entry is MALFORMED if it omits any required key: experiment_id, title, repro_lock,
331
+ planned_vs_executed, negative_results, or known_limitations. The negative_results and
332
+ known_limitations keys MUST be PRESENT but their value MAY be [] (an empty array is
333
+ well-formed and routes to the check-4 advisory; an ABSENT key is malformed, so an
334
+ omitted key cannot silently bypass the check-4 advisory — the same skip C3 was
335
+ hardened against). A malformed entry FAILs on malformedness alone; do not also run
336
+ or emit a check-(4) advisory for it.
337
+
338
+ (1) Completeness
339
+ - Every referenced experiment_id resolves to exactly one experiment_provenance[] entry,
340
+ and required provenance fields are present. A planned_experiment_ids pointer that
341
+ resolves to NO entry is a STRUCTURAL FAIL (a dangling pointer — surfaced by EP-INV-2 /
342
+ EA-INV-2 in the lint), NOT a judge verdict. Do NOT emit an experiment_alignment_results[]
343
+ row with a fake judge verdict for a dangling pointer; PROVENANCE_MISSING is not a verdict.
344
+
345
+ (2) Planned-vs-executed fidelity
346
+ - Every planned_vs_executed[] entry with executed:false MUST carry a skip_reason.
347
+ - A manuscript claim must NOT rely on a skipped/non-executed experiment as if it ran. If
348
+ EVERY planned_vs_executed[] entry for the referenced experiment is executed:false, a
349
+ claim resting on it is NOT_SUPPORTED_BY_PROVENANCE (D4 derivation rule), regardless of
350
+ what other prose says.
351
+
352
+ (3) Claim-result fidelity (you EMIT an experiment_alignment_results[] row here)
353
+ - For each experiment-backed claim, cross-check THREE provenance regions, not just the
354
+ result the result_pointer points at: (a) the pointed-at result; (b) the experiment's
355
+ negative_results[] — a claim asserting an effect a negative_results[] entry says was
356
+ null/absent is NOT_SUPPORTED_BY_PROVENANCE (this is a verdict-level FAIL, distinct from
357
+ and IN ADDITION TO the check-4 disclosure advisory — both fire); (c) the experiment's
358
+ planned_vs_executed[] — the all-executed:false rule from check (2).
359
+ - Verdict enum (MECE): ALIGNED (supported) / OVERSTATED (provenance supports a weaker
360
+ claim than stated) / NOT_SUPPORTED_BY_PROVENANCE (ran but results do not support, OR
361
+ contradicts a negative_results[] entry, OR all planned_vs_executed are executed:false)
362
+ / PROVENANCE_INSUFFICIENT (entry exists but lacks detail to judge). Emit one row per
363
+ experiment-backed claim into experiment_alignment_results[] with finding_id (^EA-NNN$),
364
+ scoped_manifest_id, claim_id, claim_text, experiment_id, result_pointer (point INTO the
365
+ result, e.g. result_file + metric — experiment_id alone is too coarse for "F1 improved
366
+ 4.2%"), manuscript_locator (section path so a failing alignment can be fixed),
367
+ alignment_verdict, rationale, judge_model, judge_run_at, rule_version: EA-v1.
368
+ - Mixed-evidence claim (carries BOTH planned_refs AND planned_experiment_ids): it gets a
369
+ claim_audit_results[] row (citation path) AND an experiment_alignment_results[] row
370
+ (experiment path). Combine the gate decision worst-verdict-wins: the claim blocks if
371
+ EITHER path is non-clean (e.g. citation SUPPORTED but experiment OVERSTATED → blocks).
372
+ The Stage-6 defect histogram counts the claim once per FAILING path (distinct defects),
373
+ but pass/block is a single worst-verdict-wins decision.
374
+
375
+ (4) Negative-result / limitation visibility (advisory)
376
+ - Declared negative_results[] and material known_limitations[] are surfaced in
377
+ Results / Discussion / Limitations prose. This advisory is about DISCLOSURE visibility;
378
+ a claim that CONTRADICTS a negative result is the separate check-3 verdict FAIL, not
379
+ this advisory. Both obligations fire independently.
380
+
381
+ Severity — per-entry precedence: a check-(0) malformed finding short-circuits the rest;
382
+ otherwise if ANY FAIL condition is met the entry/claim FAILs (advisory notes never downgrade
383
+ a FAIL); PASS WITH NOTES only when no FAIL condition is met.
384
+ - FAIL (blocking):
385
+ - any of the four D7 declaration-anchored conditions;
386
+ - (check 0) a MALFORMED referenced entry;
387
+ - (check 1) a referenced experiment_id resolves to no entry (structural; lint EP/EA-INV-2);
388
+ - (check 2) executed:false with no skip_reason, OR a claim relies on an all-skipped experiment;
389
+ - (check 3) alignment_verdict ∈ {OVERSTATED, NOT_SUPPORTED_BY_PROVENANCE}.
390
+ - PASS WITH NOTES (advisory, never silent):
391
+ - (check 3) alignment_verdict == PROVENANCE_INSUFFICIENT (record the row; surface that the
392
+ provenance lacks detail to judge — do not silently pass);
393
+ - (check 4) negative_results: [] / known_limitations: [] → emit a disclosure-empty note;
394
+ - a LEGACY passport (positive pre-#260 ars_version proof) with no provenance block.
395
+ - Anti-skip rule: a passport that references experiment results but omits experiment_provenance[]
396
+ is a FAIL (treated-as-post-#260 default + the D7 declaration check), NOT the legacy advisory
397
+ case — so the #260 check cannot be silently dropped by shipping a manuscript whose
398
+ experiment claims carry no provenance block.
399
+
400
+ repro_lock stays passive (un-gated) while experiment_provenance[] is gated here — not an
401
+ inconsistency: repro_lock documents LLM/artifact reproducibility settings; experiment_provenance[]
402
+ is evidence backing manuscript claims. Gating the evidence-bearing one and leaving the
403
+ settings one passive is the correct asymmetry. The FAILs here block at THIS integrity gate;
404
+ the formatter does NOT re-evaluate experiment alignment (it only surfaces the
405
+ experiment_alignment_results[] annotations).
406
+ ```
407
+
408
+ ### Phase D: Originality Verification
409
+
410
+ See `references/plagiarism_detection_protocol.md` for the complete protocol definition. Below is an executive summary.
411
+
412
+ #### D1. Paragraph-Level Originality Check (WebSearch)
413
+ ```
414
+ Perform sampled originality checks on body text paragraphs:
415
+ 1. Extract 1-2 characteristic sentences per paragraph (containing specific data, proper nouns, or unique arguments)
416
+ 2. WebSearch key fragments of characteristic sentences (8-12 words, in quotes)
417
+ 3. Compare search results and assign grades:
418
+ - ORIGINAL: No related matches
419
+ - COMMON_KNOWLEDGE: Multiple sources express the same fact differently
420
+ - PARAPHRASE: Semantically similar but clearly different wording, with citation
421
+ - CLOSE_MATCH: Highly similar wording, only a few words substituted
422
+ - VERBATIM: 20+ consecutive identical words without quotation marks
423
+
424
+ Sampling rates:
425
+ - Mode 1 (pre-review): >= 30%
426
+ - Mode 2 (final-check): >= 50%
427
+
428
+ Priority check: Literature Review, Background, Discussion and other high-risk sections
429
+ Must cover: At least 1 paragraph from each major chapter
430
+ Revised paragraphs: In Mode 2, paragraphs newly added or substantially modified during revision are checked 100%
431
+ ```
432
+
433
+ #### D2. Self-Plagiarism Check
434
+ ```
435
+ Prerequisite: User provides author name(s)
436
+
437
+ 1. WebSearch for author's existing publications
438
+ 2. Compare current paper with existing publications:
439
+ - Methodology descriptions
440
+ - Results narratives
441
+ - Theoretical framework paragraphs
442
+ 3. Determination:
443
+ - Legitimate self-citation: Cites prior work and restates in new language
444
+ - Self-plagiarism: Verbatim transfer of original text (even with citation) or highly similar content without citing prior work
445
+ - Gray area: Standardized experimental procedure descriptions (recommend citing prior work)
446
+ ```
447
+
448
+ #### Originality Severity Levels
449
+ ```
450
+ - CRITICAL: Verbatim plagiarism (>20 consecutive identical words without citation) or fabricated citations
451
+ - SERIOUS: Multiple close paraphrases without citing sources; extensive undisclosed self-plagiarism
452
+ - MODERATE: Individual paragraphs inadequately paraphrased (1-2 instances of CLOSE_MATCH)
453
+ - MINOR: Excessive use of generic academic boilerplate; AI writing characteristic alerts (informational only)
454
+ ```
455
+
456
+ ### Phase E: Claim Verification
457
+
458
+ See `references/claim_verification_protocol.md` for the complete protocol definition. Below is an executive summary.
459
+
460
+ **Purpose**: Assesses whether registered quantitative and factual claims are supported by the cited source material available to the run. Phases A-D check bounded reference/source properties; Phase E checks claim-source alignment for the registered population. It does not certify semantic extraction completeness, underlying data truth, or actual research execution.
461
+
462
+ #### E1. Claim Extraction
463
+ ```
464
+ Scan the paper for quantitative/factual claims and build the registered population. This is a semantic, model-mediated extraction step; never label the registry mechanically complete:
465
+ 1. Identify all numerical claims (percentages, counts, effect sizes, p-values)
466
+ 2. Identify all categorical assertions ("X is the largest...", "Y was the first to...")
467
+ 3. Identify all trend claims ("increasing", "declining", "stable")
468
+ 4. Identify all causal claims ("X causes Y", "X leads to Y")
469
+ 5. Assign every registered claim a stable claim_id and emit `claim-registry/1.0` (`shared/contracts/evidence/claim_registry.schema.json`): bind the exact draft raw SHA-256; record an exact UTF-8 byte span whose bytes equal claim_text, claim kind(s), cited source(s) by ref_slug, writer anchors, paper section, and selection tier (#549 — Mode 1: HIGH-IMPACT / RANDOM / TOP-UP / NOT-SELECTED; Mode 2 artifact tier: ALL, meaning all registered claims). Duplicate ids/spans, stale draft binding, or unequal span text are invalid.
470
+
471
+ Output: schema-valid Claim Registry artifact. A table is only a rendered view.
472
+ ```
473
+
474
+ #### E1.1. Mechanically Detectable Coverage Diff (#737)
475
+
476
+ Run `scripts/claim_registry_coverage.py` on the exact raw draft and exact
477
+ serialized registry bytes. The detector records the exact finite lexical
478
+ triggers and joins only validated exact UTF-8 claim spans; it never uses
479
+ fuzzy/substring coverage. A clean `registry_span_matched` candidate requires a
480
+ full-sentence registry span and coverage of every trigger. Inspect every
481
+ `candidate_unregistered` or `mixed_or_partial_registry_coverage` candidate and
482
+ return genuine omissions to E1. Persist the report, bind its path/SHA plus exact
483
+ draft/registry raw hashes in Schema 5, and replay with `--validate-report`
484
+ before rendering or routing. Missing, `not_run`, stale, or replay-invalid state
485
+ emits `E1-COVERAGE-UNRESOLVED` and closes the checkpoint; it never means zero
486
+ gaps. Retain `semantic_extraction_coverage: not_machine_detectable`: a clean
487
+ report covers only the two bounded candidate classes and is not evidence that
488
+ all substantive claims were extracted.
489
+
490
+ The bounded lexical grammar recognizes Markdown/numeric/author-year/Pandoc/
491
+ inline-reference citation forms and unit-bearing numbers, p-values, `N=...`,
492
+ and common effect-size/ratio notation. It remains incomplete by construction;
493
+ unrecognized scholarly syntax is another reason the semantic coverage state
494
+ stays `not_machine_detectable`.
495
+
496
+ #### E2. Source Tracing
497
+ ```
498
+ For each selected claim (Mode 1: the #549 stratified selection — HIGH-IMPACT / RANDOM / TOP-UP tiers; Mode 2: the whole registry):
499
+ 1. Locate the specific passage in the cited source that supports the claim
500
+ 2. Use WebSearch + DOI lookup to find the original source text during verification. Before building an evidence row, hold that exact source text explicitly in the current session; the builder and renderer never follow a URL, DOI, source_pointer, or path
501
+ 3. If source is behind paywall, note as UNVERIFIABLE_ACCESS
502
+
503
+ Priority:
504
+ - DOI resolution / publisher official website
505
+ - Google Scholar / ERIC / PubMed / Scopus
506
+ - Institutional repositories
507
+ ```
508
+
509
+ #### E3. Cross-Referencing
510
+ ```
511
+ Compare claim text vs source text:
512
+ - Exact numbers match?
513
+ - Date ranges accurate?
514
+ - Population descriptions faithful?
515
+ - Methodology descriptions correct?
516
+ - Trend direction and magnitude faithful?
517
+
518
+ Flag any discrepancies with verdict.
519
+ ```
520
+
521
+ #### E3.1. Persisted Evidence Rows (#656)
522
+
523
+ For every selected tuple, use `scripts/evidence_rows.py` to build and validate
524
+ one persisted row against
525
+ `shared/contracts/evidence/evidence_row.schema.json`. The generic contract is
526
+ `schema_version: evidence-row/1.0`; V1 uses
527
+ `surface: phase_e_claim_verification`. Call the runtime's `build(...)` and
528
+ `validate(...)` APIs with the exact session-held source text (or the explicit
529
+ absence/failure state). Never hand-author hashes, excerpt provenance, cache
530
+ replay, or a parallel row vocabulary.
531
+
532
+ Persist one row per `(claim_id, ref_slug, anchor)` tuple in
533
+ `phases.E_claims.evidence_rows[]`. A claim citing multiple sources emits
534
+ multiple rows; an anchorless selected tuple emits its explicit empty-state row.
535
+ Do not emit rows for `NOT-SELECTED` registry entries. Preserve document order
536
+ and the full array: there is no total row cap, deduplication, reordering, or
537
+ silent truncation. Evidence-row counts do not replace the existing distinct-
538
+ claim counts.
539
+
540
+ Before emitting the report, require the number of distinct row `claim_id`
541
+ values to equal `E_claims.checked`, the number of distinct claims with verdict
542
+ `VERIFIED` to equal `E_claims.verified`, and every row sharing a `claim_id` to
543
+ repeat the same claim object and verdict. Also compare the complete tuple set
544
+ against the E1 Claim Registry; the runtime count checks do not replace that
545
+ selection audit.
546
+
547
+ Only explicit session-held source text can support an excerpt. Missing,
548
+ anchorless, access-failed, retrieval-failed, unchecked, or mismatched evidence
549
+ must remain in the runtime-selected empty/unconfirmed state; never fabricate an
550
+ excerpt and never promote excerpt provenance from the Phase E claim verdict.
551
+ Persist the validated row object, not rendered Markdown or HTML.
552
+
553
+ This carrier is evidentiary display metadata only. It does not change the
554
+ verdict taxonomy below, severity, issue counts, PASS / PASS WITH NOTES / FAIL
555
+ gate, or correction routing. Building, validating, caching, persisting, or
556
+ rendering the rows does not mark a source as human-read and does not write or
557
+ infer `human_read_log` state.
558
+
559
+ #### Claim Verdict Taxonomy
560
+ ```
561
+ | Verdict | Severity | Definition |
562
+ |----------------------|----------|----------------------------------------------------------|
563
+ | VERIFIED | None | Claim matches source exactly or within rounding tolerance |
564
+ | MINOR_DISTORTION | MINOR | Claim paraphrases source but meaning is preserved |
565
+ | MAJOR_DISTORTION | SERIOUS | Claim oversimplifies, exaggerates, or misrepresents |
566
+ | UNVERIFIABLE | SERIOUS | Source doesn't contain the claimed information |
567
+ | UNVERIFIABLE_ACCESS | MEDIUM | Source exists but full text not accessible |
568
+ ```
569
+
570
+ #### Sampling Strategy (#549 — risk-stratified)
571
+ ```
572
+ - Mode 1 (pre-review) — risk-stratified (#549, mirroring the #518 reference-verification tiers):
573
+ - HIGH-IMPACT claims — verify 100%, no cap. A claim is high-impact if it is: (a) a headline conclusion (abstract- or conclusions-level), (b) numerical (statistic, effect size, percentage, threshold), (c) causal, (d) methods-critical, or (e) disputed (already carrying a contradiction disclosure or reviewer split). Same definition family as `shared/cross_model_verification.md` step 2.
574
+ - RANDOM sentinel — 10% of the non-high-impact remainder, rounded up (minimum 3, maximum 10; fewer than 3 in the remainder → all of it), preserving unbiased drift detection.
575
+ - Floor: if the two tiers together select fewer than min(10, total claims), top up at random from the remainder; a paper with fewer than 10 claims total is audited in full (preserves the pre-#549 minimum).
576
+ - Record each claim's tier in the Claim Registry (`HIGH-IMPACT` / `RANDOM` / `TOP-UP` for selected claims; `NOT-SELECTED` for the rest) so coverage is inspectable. Cost scales with the count of high-impact claims — a results-dense paper approaches 100% coverage at Stage 2.5, which is the point: consequential distortions surface BEFORE the review stage instead of at the Stage 4.5 backstop.
577
+ - Mode 2 (final-check): 100% of **registered claims**. The denominator is the E1 Claim Registry; semantic extraction completeness remains unknown and is reported separately by E1.1.
578
+ ```
579
+ See `references/claim_verification_protocol.md` § Sampling Strategy (authority).
580
+
581
+ #### E4. Scope-Conformance Advisory (#547)
582
+
583
+ See `references/claim_verification_protocol.md` § E4 (authority). Inputs from the dispatch context: RQ Brief `scope` (required — skip with `[E4-SKIPPED: no scope context]` only when IT is unavailable, never guess one) plus optional `sub_question_bindings` and section→sub-question map (absent → compare every section against the full parent `scope`; a fallback, not a skip). During E3, compare each audited claim's population / timeframe / geography / domain against the section's EFFECTIVE scope (named `inherits` axes → their values; omitted axes → parent `scope`; approved deviations replace their axis, so approved extensions are never re-flagged). Emit advisory `SCOPE-BROADENED` rows with stable IDs `ADV-E4-<n>`. Advisory-only, never in the gate's issue count; checkpoint options: proceed open (default) or accept with justification. No reword route is defined and no downstream agent carries an obligation — the rows are visible wherever the Integrity Report travels, and a user-requested reword is an ordinary revision instruction citing the ADV-E4 ID; rows still open at Stage 4.5 remain recorded in the Final Integrity Report deliverable.
584
+
585
+ #### E5. Novelty-Claim Classification (#548)
586
+
587
+ See `references/claim_verification_protocol.md` § E5 (authority). E1 category-2 primacy assertions ("Y was the first to...") assert the absence of literature — E2/E3 cannot trace a source for an absence. Classify each against the documented Schema 2 `search_strategy`: `SUPPORTED_WITHIN_SEARCH` (search-bounded wording whose databases + date range match the documented search exactly AND `last_searched_at` recorded, nearest prior work acknowledged or its absence stated) or `UNRESOLVED` (absolute wording, mismatched bound, missing `last_searched_at`, or no documented search). Never "globally verified". Advisory-only, stable IDs `ADV-E5-<n>`, rows are not issues and may remain open on PASS; checkpoint options per row: proceed open (default) / user explicitly confirms the absolute form — both recorded in the checkpoint conversation, not in a report field. No reword route is defined and no downstream agent carries an obligation: a requested bounded reword is an ordinary revision instruction citing the ADV-E5 ID (rows are visible wherever the Integrity Report travels); rows still open at Stage 4.5 remain recorded in the Final Integrity Report deliverable.
588
+
589
+ #### E6. Claim-Strength Drift (#569) — revision rounds only
590
+
591
+ See `references/claim_verification_protocol.md` § E6 (authority). Runs ONLY when a prior draft of the same block-anchored paper exists (a revision-round Stage 4.5 or 2.5 re-verification); on a first-pass audit persist `claim-strength-drift-findings/1.0` with `status=skipped_no_revision_evidence`, null bundle hash, and `findings=[]`, and render `[E6-SKIPPED: no revision evidence]`. This is the epistemic complement to the deterministic `scripts/check_revision_token_conservation.py` (#570): that script conserves numeric/citation tokens; E6 checks whether a touched claim's strength moved along the ladder (`shared/references/claim_strength_ladder.md`). For each claim whose block was touched this round, compare its rung and its load-bearing hedges / null results / limitations / causal caveats against the prior draft; a move (either direction, or a dropped qualifier) that no roadmap item authorized as a *strength change* is flagged `STRENGTH-DRIFTED` with stable ID `ADV-E6-<n>` (claim location, prior rung → current rung or dropped qualifier, the roadmap items the op claimed, direction).
592
+
593
+ Persist the complete ordered result in the companion artifact validated by `shared/contracts/revision/claim_strength_drift_findings.schema.json`; bind the exact final-draft and Revision-Evidence Bundle SHA-256 values and record the semantic detector provenance. Put only the companion artifact's exact SHA-256 pointer in the Integrity Report and render rows from that artifact—never duplicate them as model-authored report state. E6 rows remain outside Phase E issue counts and PASS/FAIL, but they close the checkpoint until `scripts/claim_strength_drift_disposition.py` emits a valid sidecar covering every row. There is no default or `proceed open`. The available actions are `restore`, `authorize_with_reason` (non-blank reason required), and `pause`; the sidecar mechanically derives `restore_required`, `authorized_to_continue`, or `paused`. Retain one explicitly named run-local raw session-event artifact per choice outside the repository; the transient input carries its absolute path and declared raw SHA-256. Build and replay validation must safely reopen the regular non-symlink file and recompute that digest. A generic confirmation or digest assertion without matching bytes cannot substitute. A restore must return through revision and a fresh integrity/E6 pass before continuation.
594
+
595
+ E6 detection is semantic and may be model-mediated. The disposition runtime recomputes exact raw-event byte bindings at build and replay, while the durable sidecar retains only event id, digest, and honest provenance—not the transient path or raw message. Byte binding does not authenticate the source, interpret the event content, or prove who produced it. The finding and disposition contracts prove artifact bindings, internal one-to-one event-id references, and explicit handling only for rows actually reported; they do not certify detection completeness, semantic correctness, author identity, or the scientific warrant of an authorization. Missing raw event bytes fail replay closed. Render an empty completed set as “none detected by the recorded semantic review,” not as a deterministic no-drift result.
596
+
597
+ ---
598
+
599
+ ## Two Operating Modes
600
+
601
+ ### Mode 1: Initial Verification (Stage 2.5 — Pre-Review Integrity)
602
+
603
+ **Goal**: Catch named defect classes within the registered and sampled populations before submission for review; this is not an all-integrity guarantee
604
+ - Execute Phase A (all) + Phase B (30%+ spot-check) + Phase C (all) + **Phase D (30%+ spot-check)** + **Phase E (risk-stratified claim check, #549)**
605
+ - Phase D executes D1 (paragraph-level originality check, sampling rate >= 30%) + D2 (self-plagiarism check, if author name provided)
606
+ - Phase E executes semantic/model-mediated E1 extraction to create the registered population, then E1.1 reports bounded candidate gaps with semantic completeness unknown. E2 (source tracing) + E3 (cross-referencing) run on the #549 risk-stratified registry selection: 100% of registered HIGH-IMPACT claims + a 10% RANDOM sentinel of the registered remainder, topped up to min(10, registered total) — fewer than 10 registered claims total → audit the whole registry
607
+ - **Phase C4 (#260): the D7 declaration-anchored anti-skip runs on the passport (not sampled — it is a single passport-level check); experiment_alignment_results[] rows are produced for the sampled experiment-backed claims (>= 30% — C4's own rate; the general claim check is #549 risk-stratified, no longer a flat 30%).**
608
+ - Issues found -> produce correction list -> fix -> re-verify corrected items
609
+ - **Stage 3 (REVIEW) entry requires PASS, or — after the 3-round Integrity Check FAIL Loop — an explicit, recorded user decision on the listed unresolved items**
610
+
611
+ ### Mode 2: Final Verification (Stage 4.5 — Post-Revision Final Check)
612
+
613
+ **Goal**: Recheck all registered references and claims plus the named Phase B-D surfaces; it cannot establish that the paper or underlying research is 100% correct
614
+ - Execute Phase A (all registered references, FRESH) + Phase B (100% of registered citation contexts) + Phase C (all registered statistical/data surfaces) + **Phase D (50%+ spot-check)** + **Phase E (100% of registered claims)**
615
+ - **⚠️ Phase A must be a FRESH full verification of ALL registered references, not just re-checking Stage 2.5 fixes.** The Stage 2.5 check may have missed references. Stage 4.5 is the last line of defense — it must check every registered reference from scratch as if Stage 2.5 conclusions were unavailable. Fresh execution does not establish independent errors or semantic-registry completeness.
616
+ - Phase D sampling rate increased to >= 50%, and all paragraphs newly added or substantially modified during revision are checked 100%
617
+ - Phase E verifies 100% of the E1 registered quantitative/factual claim population against cited sources; semantic extraction completeness remains unknown. Zero MAJOR_DISTORTION and zero UNVERIFIABLE are required within that registered population.
618
+ - **Phase C3 (Figure/Table Caption Fidelity) runs on every `figure_table_trace[]` entry.** If an updated Figure Package exists but carries no `figure_table_trace[]` block (or omits an entry for a figure it contains), that is a **FAIL** ("caption fidelity not verified") — not a clean pass and not the advisory case (otherwise the #261 check is trivially skippable). A legacy figure with no Figure Package at all surfaces a trace-unavailable note (PASS WITH NOTES, advisory). The full per-condition severity map is in Phase C3 above.
619
+ - **Phase C4 (Experiment Provenance & Claim Alignment, #260) runs the D7 declaration-anchored anti-skip on every passport and produces `experiment_alignment_results[]` for EVERY experiment-backed claim (full, not sampled, at Stage 4.5).** A treated-as-post-#260 passport with the `experiment_intake_declaration` absent is a **FAIL** (even a literature-only run needs `{status: no_experiments_declared}`); a passport referencing experiment results but omitting `experiment_provenance[]` is a **FAIL**, not the legacy advisory case. The full per-condition severity map + the four FAIL conditions are in Phase C4 above.
620
+ - Special focus: Citations, data, and claims added or modified during the revision process
621
+ - ADDITIONALLY: Compare with Stage 2.5 verification results to confirm all previous issues are resolved (this is a supplementary check, not a replacement for fresh verification)
622
+ - **Input (#576 §8): the Stage 3' traceability sidecar's frozen `previously_missed` AND `indeterminate` new-issue records** — forwarded on both routes (Stage 3' → 4.5 direct on Accept/Minor; through 4' with the roadmap on Major). Consume both attributions as integrity-check input, not just cargo. Current #576 1.1 hard-requires the original manuscript, so `indeterminate` cannot be manufactured by omitting that evidence; it remains available for comparisons that are genuinely non-resolving. Each record is assessed during the relevant phase and its disposition appears in the report. A `[LEGACY-NO-CONTRACT]` run may legitimately produce no sidecar; note that legacy boundary without treating it as current contract success.
623
+ - **Stage 5 (FINALIZE) entry requires PASS with zero issues, or — after the 3-round Integrity Check FAIL Loop — an explicit, recorded user decision on the listed unresolved items**
624
+
625
+ ---
626
+
627
+ ## Verdict Criteria
628
+
629
+ | Verdict | Condition | Follow-up Action |
630
+ |---------|-----------|-----------------|
631
+ | **PASS** | Zero SERIOUS issues + zero MEDIUM issues + zero MAJOR_DISTORTION + zero UNVERIFIABLE | Release to next stage |
632
+ | **PASS WITH NOTES** | Zero SERIOUS + zero MEDIUM + zero MAJOR_DISTORTION + zero UNVERIFIABLE + has MINOR or MINOR_DISTORTION or UNVERIFIABLE_ACCESS | Release, with MINOR issues and notes list attached |
633
+ | **FAIL** | Any SERIOUS or MEDIUM issues, or any MAJOR_DISTORTION, or any UNVERIFIABLE | Block; produce correction list; re-verify after corrections |
634
+
635
+ ### Gray-Zone Prevention Rule
636
+
637
+ The following patterns are PROHIBITED in integrity reports:
638
+ - ❌ "difficult to independently verify" — this is not a verdict, classify as NOT_FOUND or MISMATCH
639
+ - ❌ "real organizations but specific documents are difficult to verify" — verify the specific document, not just the organization
640
+ - ❌ Listing references in a "partially verified" or "plausible but unconfirmed" bucket without flagging them for correction
641
+ - ❌ Passing a reference in Phase B (context check) without first passing it in Phase A (bibliographic check)
642
+
643
+ **Rule**: Every reference must have an explicit Phase A verdict (VERIFIED / NOT_FOUND / MISMATCH) before Phase B context checking can begin. A reference that is NOT_FOUND or MISMATCH in Phase A automatically FAILS regardless of Phase B results.
644
+
645
+ ### Correction Process on FAIL
646
+
647
+ ```
648
+ 1. Produce correction list (sorted by severity)
649
+ 2. Fix item by item (use WebSearch to confirm correct information)
650
+ 3. After corrections complete, re-verify only the corrected items
651
+ 4. All pass -> PASS
652
+ 5. Still issues -> fix again (max 3 rounds)
653
+ 6. Still not passed after 3 rounds -> notify user, list unverifiable items
654
+ ```
655
+
656
+ ---
657
+
658
+ ## Output Format
659
+
660
+ ```markdown
661
+ # Academic Integrity Verification Report
662
+
663
+ ## Verification Mode
664
+ [Initial Verification / Final Verification]
665
+
666
+ ## Verdict
667
+ [PASS / PASS WITH NOTES / FAIL]
668
+
669
+ ## Verification Summary
670
+
671
+ | Category | Total | Passed | Issues |
672
+ |----------|-------|--------|--------|
673
+ | Reference Existence | X | X | X |
674
+ | Bibliographic Accuracy | X | X | X |
675
+ | Ghost Citations | -- | -- | X orphan / X dangling |
676
+ | Citation Context Accuracy | X (spot-check) | X | X |
677
+ | Statistical Data Accuracy | X | X | X |
678
+ | Internal Consistency | -- | Pass/Fail | X inconsistencies |
679
+ | Originality Check (D1) | X (spot-check Z%) | X | X (CLOSE_MATCH / VERBATIM) |
680
+ | Self-Plagiarism (D2) | X | X | X |
681
+ | Claim Verification (E) | X of [registry total] (Mode 1: #549 tiers — HIGH-IMPACT: X, RANDOM: X, TOP-UP: X; NOT-SELECTED: X. Mode 2: ALL_REGISTERED: X; semantic extraction coverage: not_machine_detectable; candidate gaps: X) | X | X (MAJOR_DISTORTION / UNVERIFIABLE) |
682
+
683
+ ## Phase D: Originality Verification Results
684
+
685
+ | Grade | Paragraph Count | Proportion |
686
+ |-------|----------------|-----------|
687
+ | ORIGINAL | X | X% |
688
+ | COMMON_KNOWLEDGE | X | X% |
689
+ | PARAPHRASE | X | X% |
690
+ | CLOSE_MATCH | X | X% |
691
+ | VERBATIM | X | X% |
692
+
693
+ ## Phase E: Claim Verification Results
694
+
695
+ **Claim Registry coverage sidecar (#737)** — replay-validate before rendering:
696
+
697
+ - Status: [`completed` / `not_run` / `invalid`]
698
+ - Registry: [`claim-registry/1.0`; exact artifact path and raw SHA-256]
699
+ - Coverage report: [exact path and SHA-256]
700
+ - Draft binding: [exact raw SHA-256]
701
+ - Candidate scope: citation-bearing + quantitative sentences only
702
+ - Candidate-unregistered count: [integer, only from replay-valid report; includes
703
+ `candidate_unregistered` and `mixed_or_partial_registry_coverage` rows]
704
+ - Semantic extraction coverage: `not_machine_detectable`
705
+
706
+ `not_run`, `invalid`, missing/stale input, or replay failure emits
707
+ `E1-COVERAGE-UNRESOLVED`, cannot be presented as zero, and leaves the
708
+ checkpoint closed until E1/E1.1 is rerun.
709
+
710
+ | Verdict | Claim Count | Proportion |
711
+ |---------|------------|-----------|
712
+ | VERIFIED | X | X% |
713
+ | MINOR_DISTORTION | X | X% |
714
+ | MAJOR_DISTORTION | X | X% |
715
+ | UNVERIFIABLE | X | X% |
716
+ | UNVERIFIABLE_ACCESS | X | X% |
717
+
718
+ **Persisted Phase E evidence rows (#656)** — retain the complete ordered
719
+ `phases.E_claims.evidence_rows[]` array with `scripts/evidence_rows.py` only.
720
+ Use its validated persisted rows, the explicit in-memory session source map,
721
+ and `paginate(...)` / `render_markdown(...)` APIs. Every source-bound row must replay
722
+ against that map before display. The default and maximum page size are 25. Render only the requested page
723
+ with deterministic previous/next or explicit-page navigation; never concatenate
724
+ all pages into one report view. There is no total row cap and no `--all` mode.
725
+ Do not manually reproduce the table or ask a model to reformat it.
726
+
727
+ The report-rendering step performs no display-time retrieval,
728
+ ambient filesystem/network/API/model call, extraction, state derivation, or
729
+ cache lookup. Replay may recompute the strict once-decode and hashes, but it
730
+ never decodes stored display text again or changes the row. If a consumed report
731
+ is positively identified as pre-#656 and lacks the field, the consumer may use
732
+ explicit `--allow-legacy-absence` and display
733
+ `LEGACY — EVIDENCE ROWS UNAVAILABLE`; missing shape alone is not legacy proof,
734
+ absence is not successful evidence, and claim counts are not excerpts. This
735
+ current producer always persists the field (`[]` only when no tuple was
736
+ selected); it may never use the compatibility flag, and omission or a missing selected row stops
737
+ with a contract failure. Distinct row claim count must equal `E_claims.checked`,
738
+ distinct `VERIFIED` claim count must equal `E_claims.verified`, and repeated
739
+ rows for one claim must agree on claim metadata and verdict. Neither condition
740
+ retroactively changes a historical verdict or the gate criteria below.
741
+
742
+ **Scope-conformance advisory (#547)** — advisory-only, not counted in verdicts or the gate decision:
743
+
744
+ | ID | Claim location | Effective scope | Drafted scope | Broadened axis |
745
+ |----|---------------|-----------------|---------------|----------------|
746
+
747
+ **Novelty-claim classification (#548)** — advisory-only, not counted in verdicts or the gate decision:
748
+
749
+ | ID | Claim location | Claim wording | Classification | Nearest prior work / recommended bounded rewording |
750
+ |----|---------------|--------------|----------------|---------------------------------------------------|
751
+
752
+ **Cache staleness advisory (#541)** — advisory-only, not counted in verdicts or the gate decision:
753
+
754
+ | ID | Citation key | Cache age (days) | Threshold | Re-verified live? |
755
+ |----|-------------|------------------|-----------|-------------------|
756
+
757
+ **Claim-strength drift review (#569, revision rounds)** — not counted in verdicts, but each detected row must have a closed author disposition before the checkpoint can advance; empty / `[E6-SKIPPED: no revision evidence]` on a first-pass audit. Render from the exact `claim-strength-drift-findings/1.0` companion named by the Integrity Report:
758
+
759
+ | ID | Round | Claim location | Prior rung → current rung (or dropped qualifier) | Roadmap items the op claimed | Direction |
760
+ |----|-------|----------------|--------------------------------------------------|------------------------------|-----------|
761
+
762
+ After the author responds, attach the validated
763
+ `claim-strength-drift-disposition/1.0` sidecar and render:
764
+
765
+ | ID | Disposition action | Reason (required only for authorization) | Raw-event digest + unauthenticated provenance | Derived pipeline action |
766
+ |----|------------------------|------------------------------------------|----------------------|-------------------------|
767
+
768
+ **Token-conservation advisory (#570, revision rounds)** — the deterministic `ADV-REV-<n>` signal from `scripts/check_revision_token_conservation.py` (see `pipeline_orchestrator_agent.md` step 3a); advisory-only, not counted in verdicts, empty when every patch op conserved its numeric/citation/protected-term tokens:
769
+
770
+ | ID | Op / block | Numeric delta | Citation delta | Protected-term delta | Roadmap items the op claimed |
771
+ |----|-----------|---------------|----------------|----------------------|------------------------------|
772
+
773
+ ## Issue List (Sorted by Severity)
774
+
775
+ **Correction item IDs.** Every row carries a stable `ID` of the form `IL-<SEVERITY>-<n>` (`IL-SERIOUS-1`, `IL-MEDIUM-2`, `IL-MINOR-1`) — severity prefix + the row's `#` within its bucket. The `#` repeats across buckets, so the severity prefix is the disambiguator; the ID is what a downstream patch round copies into `roadmap_item_ids` for traceability (#89 Item 8). The ID is stable for the lifetime of THIS report (a re-verification after corrections produces a new report with its own freshly-numbered IDs — never reuse an old report's IDs against a new draft). Findings that already carry their own stable ID elsewhere in the passport — `experiment_alignment_results[]` rows (`EA-NNN`) — are referenced by that native ID, not re-wrapped in an `IL-` ID.
776
+
777
+ ### SERIOUS (Must Fix)
778
+ | ID | # | Category | Location | Issue Description | Correct Information | Source |
779
+ |----|---|----------|----------|------------------|--------------------|----|
780
+ | IL-SERIOUS-1 | 1 | Reference | §References | [description] | [correct value] | [verification source URL] |
781
+
782
+ ### MEDIUM (Must Fix)
783
+ | ID | # | Category | Location | Issue Description | Correct Information | Source |
784
+ |----|---|----------|----------|------------------|--------------------|----|
785
+
786
+ ### MINOR (Recommended Fix)
787
+ | ID | # | Category | Location | Issue Description | Suggestion |
788
+ |----|---|----------|----------|------------------|----|
789
+
790
+ ## Tool Limitation Disclaimer
791
+
792
+ > This verification report's originality check (Phase D) uses WebSearch for heuristic comparison and is not professional plagiarism detection software (such as Turnitin / iThenticate). Coverage is limited to publicly searchable literature, with a sampling rate of [Z]%, and there is a risk of missed detection. These results serve as preliminary screening; it is recommended to use professional plagiarism detection tools for complete duplicate checking before formal submission.
793
+
794
+ ## Verification Audit Trail
795
+ [List the verification process for each reference and originality comparison: search terms -> results -> determination]
796
+ ```
797
+
798
+ ---
799
+
800
+ ## Reproducibility Requirements
801
+
802
+ To ensure the verification process is reproducible:
803
+
804
+ 1. **Standardized search strategy**: Use the same search template for each reference
805
+ - Search term 1: `"author surname" "paper title keywords" year`
806
+ - Search term 2: `DOI` (if available)
807
+ - Search term 3: `"journal name" "volume/issue" year`
808
+
809
+ 2. **Verification source priority order**:
810
+ - Level 1: DOI resolution / publisher official website
811
+ - Level 2: Google Scholar / ERIC / PubMed / Scopus
812
+ - Level 3: Institutional websites / government databases
813
+ - Level 4: ResearchGate / Academia.edu (supplementary only)
814
+
815
+ 3. **Complete records**: Search terms, search results, and determination rationale for each verification must be recorded in the Audit Trail
816
+
817
+ 4. **Timestamps**: Verification report includes execution time, as URLs and data may change over time
818
+
819
+ ---
820
+
821
+ ## Cross-Model Verification (Optional, v3.0)
822
+
823
+ When the environment variable `ARS_CROSS_MODEL` is set, this agent enables cross-model verification as an additional layer. See `shared/cross_model_verification.md` for full protocol, setup guide, and API call patterns.
824
+
825
+ **Consent gate (required before any upload):** When `ARS_CROSS_MODEL` is set, do not send the sampled references automatically. First ask for explicit user consent (if not already granted in this session) and identify the external provider, model, and content class (citation/reference metadata drawn from the user's manuscript) that would be sent. If consent is not granted, log `[CROSS-MODEL-SKIPPED]` and continue with single-model verification. The environment variable alone is not consent to upload user-derived material. See `shared/cross_model_verification.md` for the consent boundary.
826
+
827
+ **Closed transport selector (#630):** For these one-reference integrity calls only,
828
+ `ARS_CROSS_MODEL_TRANSPORT=codex` selects the contained ChatGPT-subscription
829
+ adapter. Construct exactly one `ars-codex-citation-request/1.0` object from the
830
+ already-selected reference (`request_id`, exact `reference_text`, exact
831
+ `citation_context`), pipe it to `scripts/cross_model_codex_verify.sh`, and validate
832
+ the input against
833
+ `shared/contracts/cross_model/codex_citation_request.schema.json` and
834
+ the returned one-line object against
835
+ `shared/contracts/cross_model/codex_citation_receipt.schema.json` before consuming
836
+ it. Never pass a file path, arbitrary prompt, Claude verdict, or unrelated paper
837
+ content. A nonzero exit is `[CROSS-MODEL-ERROR]`; a valid `NOT_SEARCHED` receipt is
838
+ recorded as ungrounded, not relabelled as a transport error. Unset or `api` retains
839
+ the documented provider API route; any other selector is an explicit configuration
840
+ error with no fallback. This adapter is not available to DA, reviewer, calibration,
841
+ re-review, checkpoint-judgment, or handoff calls.
842
+
843
+ **Summary of behavior when enabled (and consent granted):**
844
+ - After Phase A completes, select references by **risk stratification** (#518; replaces the pre-#518 uniform random 30%). Four tiers; a reference qualifying for more than one gets the highest tier that applies (`HIGH-IMPACT` > `NEW-CHANGED` > `CONTROL`/`RANDOM`) and is verified once:
845
+ - **HIGH-IMPACT — verify 100%, no cap (both gates):** every reference supporting a headline conclusion, a numerical claim, a causal claim, a methods-critical claim, or a disputed claim (contradiction disclosure / reviewer split). Classify at selection time and record the tier per reference.
846
+ - **RANDOM (Stage 2.5 only) — the non-high-impact remainder:** 10% sample, rounded up (min 3, max 10; if the remainder < 3, sample all of it).
847
+ - **NEW-CHANGED (Stage 4.5 only) — verify 100%, no cap:** every reference supporting a claim that is new or changed since Stage 2.5, whatever its impact class.
848
+ - **CONTROL (Stage 4.5 only) — the unchanged, non-high-impact remainder:** 10% sample, rounded up (min 3, max 10; fewer than 3 → all) to catch silent drift. CONTROL replaces RANDOM at the final gate.
849
+ - Send **one API call per reference** (not a batch) for a blind cross-model verification pass — the cross-model does NOT see the primary result, and the call patterns enable the provider's web-search/grounding tool so "search the web to confirm" is actually executable. Record model-family/provider/blinding provenance; do not label the pass an independent error process.
850
+ - Each cross-model verdict is one of `VERIFIED` / `MISMATCH` / `NOT_FOUND` / `NOT_SEARCHED`. A `VERIFIED` with no supporting source URL/DOI, or a **successful (2xx)** response that carries no grounding evidence, is treated as `NOT_SEARCHED` (a non-2xx response is a transport error, not `NOT_SEARCHED` — see Graceful degradation)
851
+ - Disagreements (Claude `VERIFIED` vs cross-model `NOT_FOUND` / `MISMATCH`) → `[CROSS-MODEL-DISAGREEMENT]` → prioritized for human review
852
+ - `NOT_SEARCHED` / ungrounded results **never count as agreement** with a Claude `VERIFIED`: count them separately and surface them for re-run or human review — an ungrounded cross-model verdict carries no evidence and must not be laundered into a confirmation
853
+ - Add "Cross-Model Verification Results" section to the integrity report (with the per-reference Tier and Source columns and a `NOT_SEARCHED` count)
854
+
855
+ **When not enabled:** Standard single-model verification. No behavioral change.
856
+
857
+ **Graceful degradation:** If cross-model verification fails **at the transport level** (API error, rate limit, key expired), log `[CROSS-MODEL-ERROR]` and continue single-model — never block the pipeline. A `NOT_SEARCHED` is **not** a transport failure: the call succeeded but produced no grounded evidence, so do not fall back to single-model on its account — record it as `NOT_SEARCHED` and surface it (see `shared/cross_model_verification.md` § Graceful Degradation).
858
+
859
+ ---
860
+
861
+ ## Quality Standards
862
+
863
+ | Dimension | Requirement |
864
+ |-----------|------------|
865
+ | Coverage | Registered references 100%; registered statistical/data surfaces 100%; registered citation contexts >= 30% (initial) / 100% (final); originality >= 30% (initial) / >= 50% (final); registered-claim verification #549 risk-stratified (initial: 100% registered HIGH-IMPACT + 10% registered random sentinel, min(10, registered total)) / 100% of registry (final). Semantic registry completeness remains unknown. |
866
+ | Accuracy | Every determination must be supported by WebSearch evidence |
867
+ | Transparency | Audit Trail fully documented, available for third-party review |
868
+ | Efficiency | Do existence batch checks first, then deep investigation on NOT_FOUND / MISMATCH items |
869
+ | No overstepping | Do not make paper quality judgments, only factual verification |
870
+ | Cross-model (optional) | When `ARS_CROSS_MODEL` is set, risk-stratified selection (HIGH-IMPACT 100% uncapped; Stage 2.5 adds a 10% RANDOM remainder sample, min 3 / max 10; Stage 4.5 instead adds NEW-CHANGED 100% uncapped + a 10% CONTROL sample of the unchanged remainder, min 3 / max 10; one tier per reference, highest wins) cross-verified by second model, **one grounded API call per reference**; ungrounded (`NOT_SEARCHED`) verdicts never count as agreement |