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.
- package/README.md +11 -5
- package/dist/apps/panel/index.html +2 -2
- package/dist/src/adapters/pi/extension.js +225 -92
- package/dist/src/adapters/pi/extension.js.map +1 -1
- package/dist/src/agents/import.js +44 -32
- package/dist/src/agents/import.js.map +1 -1
- package/dist/src/analysis/hooks.d.ts +1 -0
- package/dist/src/analysis/hooks.js +20 -1
- package/dist/src/analysis/hooks.js.map +1 -1
- package/dist/src/ars/bridge.d.ts +20 -0
- package/dist/src/ars/bridge.js +132 -0
- package/dist/src/ars/bridge.js.map +1 -0
- package/dist/src/ars/contracts.d.ts +55 -0
- package/dist/src/ars/contracts.js +2 -0
- package/dist/src/ars/contracts.js.map +1 -0
- package/dist/src/ars/panel-plan.d.ts +4 -0
- package/dist/src/ars/panel-plan.js +11 -0
- package/dist/src/ars/panel-plan.js.map +1 -0
- package/dist/src/ars/pi-panel-executor.d.ts +30 -0
- package/dist/src/ars/pi-panel-executor.js +140 -0
- package/dist/src/ars/pi-panel-executor.js.map +1 -0
- package/dist/src/ars/profile.d.ts +36 -0
- package/dist/src/ars/profile.js +119 -0
- package/dist/src/ars/profile.js.map +1 -0
- package/dist/src/ars/re-review.d.ts +22 -0
- package/dist/src/ars/re-review.js +172 -0
- package/dist/src/ars/re-review.js.map +1 -0
- package/dist/src/branding.d.ts +2 -4
- package/dist/src/branding.js +3 -5
- package/dist/src/branding.js.map +1 -1
- package/dist/src/bundled-tools.d.ts +3 -0
- package/dist/src/bundled-tools.js +21 -0
- package/dist/src/bundled-tools.js.map +1 -0
- package/dist/src/chat.js +6 -5
- package/dist/src/chat.js.map +1 -1
- package/dist/src/creation/contracts.d.ts +38 -0
- package/dist/src/creation/contracts.js +2 -0
- package/dist/src/creation/contracts.js.map +1 -0
- package/dist/src/creation/service.d.ts +7 -0
- package/dist/src/creation/service.js +196 -0
- package/dist/src/creation/service.js.map +1 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.js +10 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/install/installer.js +32 -10
- package/dist/src/install/installer.js.map +1 -1
- package/dist/src/orchestration/personas.d.ts +15 -0
- package/dist/src/orchestration/personas.js +51 -0
- package/dist/src/orchestration/personas.js.map +1 -0
- package/dist/src/orchestration/pi-executor.d.ts +1 -0
- package/dist/src/orchestration/pi-executor.js +1 -1
- package/dist/src/orchestration/pi-executor.js.map +1 -1
- package/dist/src/panel/extension.js +29 -8
- package/dist/src/panel/extension.js.map +1 -1
- package/dist/src/panel/server.js +14 -5
- package/dist/src/panel/server.js.map +1 -1
- package/dist/src/project/paths.d.ts +3 -0
- package/dist/src/project/paths.js +7 -0
- package/dist/src/project/paths.js.map +1 -1
- package/dist/src/rules/user-rules.d.ts +8 -0
- package/dist/src/rules/user-rules.js +36 -0
- package/dist/src/rules/user-rules.js.map +1 -0
- package/dist/src/skills/contracts.d.ts +4 -4
- package/dist/src/skills/recommended.js +1 -1
- package/dist/src/skills/registry.js +49 -28
- package/dist/src/skills/registry.js.map +1 -1
- package/dist/src/style/cli-ui.js +0 -1
- package/dist/src/style/cli-ui.js.map +1 -1
- package/package.json +14 -3
- package/scripts/rebrand-pi.mjs +6 -0
- package/skills/recommended/catalog.json +2 -11
- package/vendor/ars/.claude/CLAUDE.md +371 -0
- package/vendor/ars/.command-invariants.toml +24 -0
- package/vendor/ars/CITATION.cff +35 -0
- package/vendor/ars/LICENSE +417 -0
- package/vendor/ars/MODE_REGISTRY.md +76 -0
- package/vendor/ars/NOTICE.md +26 -0
- package/vendor/ars/POSITIONING.md +99 -0
- package/vendor/ars/PSYCLAW_SOURCE.json +10 -0
- package/vendor/ars/README.md +751 -0
- package/vendor/ars/SECURITY.md +52 -0
- package/vendor/ars/THIRD_PARTY.md +70 -0
- package/vendor/ars/academic-paper/SKILL.md +542 -0
- package/vendor/ars/academic-paper/agents/abstract_bilingual_agent.md +171 -0
- package/vendor/ars/academic-paper/agents/argument_builder_agent.md +276 -0
- package/vendor/ars/academic-paper/agents/citation_compliance_agent.md +422 -0
- package/vendor/ars/academic-paper/agents/draft_writer_agent.md +656 -0
- package/vendor/ars/academic-paper/agents/formatter_agent.md +999 -0
- package/vendor/ars/academic-paper/agents/intake_agent.md +393 -0
- package/vendor/ars/academic-paper/agents/literature_strategist_agent.md +626 -0
- package/vendor/ars/academic-paper/agents/peer_reviewer_agent.md +516 -0
- package/vendor/ars/academic-paper/agents/revision_coach_agent.md +334 -0
- package/vendor/ars/academic-paper/agents/socratic_mentor_agent.md +527 -0
- package/vendor/ars/academic-paper/agents/structure_architect_agent.md +401 -0
- package/vendor/ars/academic-paper/agents/visualization_agent.md +441 -0
- package/vendor/ars/academic-paper/examples/chinese_paper_example.md +278 -0
- package/vendor/ars/academic-paper/examples/clinical_citation_verification_checklist.md +95 -0
- package/vendor/ars/academic-paper/examples/clinical_epistemic_status_example.md +100 -0
- package/vendor/ars/academic-paper/examples/commitment_ledger_example.md +147 -0
- package/vendor/ars/academic-paper/examples/imrad_hei_example.md +234 -0
- package/vendor/ars/academic-paper/examples/literature_review_example.md +260 -0
- package/vendor/ars/academic-paper/examples/plan_mode_guided_writing.md +600 -0
- package/vendor/ars/academic-paper/examples/revision_mode_example.md +344 -0
- package/vendor/ars/academic-paper/examples/revision_recovery_example.md +506 -0
- package/vendor/ars/academic-paper/examples/version_family_reconciliation_example.md +89 -0
- package/vendor/ars/academic-paper/references/abstract_writing_guide.md +169 -0
- package/vendor/ars/academic-paper/references/academic_writing_style.md +188 -0
- package/vendor/ars/academic-paper/references/anti_leakage_protocol.md +83 -0
- package/vendor/ars/academic-paper/references/apa7_chinese_citation_guide.md +364 -0
- package/vendor/ars/academic-paper/references/apa7_extended_guide.md +198 -0
- package/vendor/ars/academic-paper/references/changelog.md +11 -0
- package/vendor/ars/academic-paper/references/citation_format_switcher.md +228 -0
- package/vendor/ars/academic-paper/references/committee_correspondence_protocol.md +158 -0
- package/vendor/ars/academic-paper/references/credit_authorship_guide.md +308 -0
- package/vendor/ars/academic-paper/references/disclosure_mode_protocol.md +478 -0
- package/vendor/ars/academic-paper/references/domain_evidence_profiles.md +38 -0
- package/vendor/ars/academic-paper/references/failure_paths.md +349 -0
- package/vendor/ars/academic-paper/references/funding_statement_guide.md +319 -0
- package/vendor/ars/academic-paper/references/hei_domain_glossary.md +169 -0
- package/vendor/ars/academic-paper/references/intro_title_rhetoric_guide.md +114 -0
- package/vendor/ars/academic-paper/references/journal_submission_guide.md +249 -0
- package/vendor/ars/academic-paper/references/latex_template_reference.md +378 -0
- package/vendor/ars/academic-paper/references/mode_selection_guide.md +378 -0
- package/vendor/ars/academic-paper/references/paper_structure_patterns.md +330 -0
- package/vendor/ars/academic-paper/references/plan_mode_protocol.md +112 -0
- package/vendor/ars/academic-paper/references/policy_anchor_disclosure_protocol.md +200 -0
- package/vendor/ars/academic-paper/references/policy_anchor_table.md +157 -0
- package/vendor/ars/academic-paper/references/revision_patch_protocol.md +173 -0
- package/vendor/ars/academic-paper/references/statistical_visualization_standards.md +750 -0
- package/vendor/ars/academic-paper/references/venue_disclosure_policies.md +259 -0
- package/vendor/ars/academic-paper/references/vlm_figure_verification.md +126 -0
- package/vendor/ars/academic-paper/references/workflow_phase_details.md +135 -0
- package/vendor/ars/academic-paper/references/writing_judgment_framework.md +59 -0
- package/vendor/ars/academic-paper/references/writing_quality_check.md +173 -0
- package/vendor/ars/academic-paper/templates/bilingual_abstract_template.md +78 -0
- package/vendor/ars/academic-paper/templates/case_study_template.md +129 -0
- package/vendor/ars/academic-paper/templates/conference_paper_template.md +108 -0
- package/vendor/ars/academic-paper/templates/credit_statement_template.md +132 -0
- package/vendor/ars/academic-paper/templates/funding_statement_template.md +290 -0
- package/vendor/ars/academic-paper/templates/imrad_template.md +183 -0
- package/vendor/ars/academic-paper/templates/latex_article_template.tex +199 -0
- package/vendor/ars/academic-paper/templates/literature_review_template.md +135 -0
- package/vendor/ars/academic-paper/templates/policy_brief_template.md +139 -0
- package/vendor/ars/academic-paper/templates/revision_tracking_template.md +199 -0
- package/vendor/ars/academic-paper/templates/theoretical_paper_template.md +119 -0
- package/vendor/ars/academic-paper-reviewer/SKILL.md +491 -0
- package/vendor/ars/academic-paper-reviewer/agents/devils_advocate_reviewer_agent.md +443 -0
- package/vendor/ars/academic-paper-reviewer/agents/domain_reviewer_agent.md +412 -0
- package/vendor/ars/academic-paper-reviewer/agents/editorial_synthesizer_agent.md +478 -0
- package/vendor/ars/academic-paper-reviewer/agents/eic_agent.md +339 -0
- package/vendor/ars/academic-paper-reviewer/agents/field_analyst_agent.md +221 -0
- package/vendor/ars/academic-paper-reviewer/agents/methodology_reviewer_agent.md +449 -0
- package/vendor/ars/academic-paper-reviewer/agents/perspective_reviewer_agent.md +427 -0
- package/vendor/ars/academic-paper-reviewer/examples/hei_paper_review_example.md +391 -0
- package/vendor/ars/academic-paper-reviewer/examples/interdisciplinary_review_example.md +299 -0
- package/vendor/ars/academic-paper-reviewer/examples/subclaim_decomposition_example.md +80 -0
- package/vendor/ars/academic-paper-reviewer/references/calibration_mode_protocol.md +256 -0
- package/vendor/ars/academic-paper-reviewer/references/changelog.md +10 -0
- package/vendor/ars/academic-paper-reviewer/references/editorial_decision_standards.md +236 -0
- package/vendor/ars/academic-paper-reviewer/references/guided_mode_protocol.md +34 -0
- package/vendor/ars/academic-paper-reviewer/references/integration_guide.md +15 -0
- package/vendor/ars/academic-paper-reviewer/references/quality_rubrics.md +84 -0
- package/vendor/ars/academic-paper-reviewer/references/re_review_mode_protocol.md +340 -0
- package/vendor/ars/academic-paper-reviewer/references/review_criteria_framework.md +98 -0
- package/vendor/ars/academic-paper-reviewer/references/review_panel_provenance_protocol.md +197 -0
- package/vendor/ars/academic-paper-reviewer/references/review_quality_thinking.md +58 -0
- package/vendor/ars/academic-paper-reviewer/references/reviewer_sprint_prompt_source.md +324 -0
- package/vendor/ars/academic-paper-reviewer/references/sprint_contract_protocol.md +296 -0
- package/vendor/ars/academic-paper-reviewer/references/statistical_reporting_standards.md +505 -0
- package/vendor/ars/academic-paper-reviewer/references/top_journals_by_field.md +206 -0
- package/vendor/ars/academic-paper-reviewer/templates/editorial_decision_template.md +235 -0
- package/vendor/ars/academic-paper-reviewer/templates/peer_review_report_template.md +305 -0
- package/vendor/ars/academic-paper-reviewer/templates/revision_response_template.md +248 -0
- package/vendor/ars/academic-pipeline/SKILL.md +736 -0
- package/vendor/ars/academic-pipeline/agents/claim_ref_alignment_audit_agent.md +382 -0
- package/vendor/ars/academic-pipeline/agents/collaboration_depth_agent.md +164 -0
- package/vendor/ars/academic-pipeline/agents/integrity_verification_agent.md +870 -0
- package/vendor/ars/academic-pipeline/agents/pipeline_orchestrator_agent.md +1379 -0
- package/vendor/ars/academic-pipeline/agents/state_tracker_agent.md +622 -0
- package/vendor/ars/academic-pipeline/examples/full_pipeline_example.md +482 -0
- package/vendor/ars/academic-pipeline/examples/integrity_failure_recovery.md +389 -0
- package/vendor/ars/academic-pipeline/examples/mid_entry_example.md +414 -0
- package/vendor/ars/academic-pipeline/references/adapters/.gitkeep +0 -0
- package/vendor/ars/academic-pipeline/references/adapters/overview.md +153 -0
- package/vendor/ars/academic-pipeline/references/ai_research_failure_modes.md +185 -0
- package/vendor/ars/academic-pipeline/references/changelog.md +14 -0
- package/vendor/ars/academic-pipeline/references/claim_audit_calibration_protocol.md +175 -0
- package/vendor/ars/academic-pipeline/references/claim_verification_protocol.md +282 -0
- package/vendor/ars/academic-pipeline/references/external_review_protocol.md +131 -0
- package/vendor/ars/academic-pipeline/references/integrity_review_protocol.md +110 -0
- package/vendor/ars/academic-pipeline/references/literature_corpus_consumers.md +193 -0
- package/vendor/ars/academic-pipeline/references/mode_advisor.md +135 -0
- package/vendor/ars/academic-pipeline/references/passport_as_reset_boundary.md +132 -0
- package/vendor/ars/academic-pipeline/references/pipeline_state_machine.md +405 -0
- package/vendor/ars/academic-pipeline/references/plagiarism_detection_protocol.md +239 -0
- package/vendor/ars/academic-pipeline/references/process_summary_protocol.md +209 -0
- package/vendor/ars/academic-pipeline/references/progress_dashboard_template.md +38 -0
- package/vendor/ars/academic-pipeline/references/reinforcement_content.md +15 -0
- package/vendor/ars/academic-pipeline/references/reproducibility_audit.md +55 -0
- package/vendor/ars/academic-pipeline/references/score_trajectory_protocol.md +78 -0
- package/vendor/ars/academic-pipeline/references/team_collaboration_protocol.md +261 -0
- package/vendor/ars/academic-pipeline/references/two_stage_review_protocol.md +27 -0
- package/vendor/ars/academic-pipeline/templates/pipeline_status_template.md +146 -0
- package/vendor/ars/agents/report_compiler_agent.md +341 -0
- package/vendor/ars/agents/research_architect_agent.md +298 -0
- package/vendor/ars/agents/synthesis_agent.md +356 -0
- package/vendor/ars/commands/ars-3w.md +10 -0
- package/vendor/ars/commands/ars-abstract.md +10 -0
- package/vendor/ars/commands/ars-cache-invalidate.md +20 -0
- package/vendor/ars/commands/ars-citation-check.md +10 -0
- package/vendor/ars/commands/ars-disclosure.md +10 -0
- package/vendor/ars/commands/ars-format-convert.md +10 -0
- package/vendor/ars/commands/ars-full.md +9 -0
- package/vendor/ars/commands/ars-lit-review.md +12 -0
- package/vendor/ars/commands/ars-mark-read.md +18 -0
- package/vendor/ars/commands/ars-outline.md +10 -0
- package/vendor/ars/commands/ars-plan.md +10 -0
- package/vendor/ars/commands/ars-rebuttal-audit.md +12 -0
- package/vendor/ars/commands/ars-reviewer.md +9 -0
- package/vendor/ars/commands/ars-revision-coach.md +9 -0
- package/vendor/ars/commands/ars-revision.md +10 -0
- package/vendor/ars/commands/ars-unmark-read.md +16 -0
- package/vendor/ars/deep-research/SKILL.md +600 -0
- package/vendor/ars/deep-research/agents/bibliography_agent.md +473 -0
- package/vendor/ars/deep-research/agents/devils_advocate_agent.md +192 -0
- package/vendor/ars/deep-research/agents/editor_in_chief_agent.md +167 -0
- package/vendor/ars/deep-research/agents/ethics_review_agent.md +267 -0
- package/vendor/ars/deep-research/agents/meta_analysis_agent.md +325 -0
- package/vendor/ars/deep-research/agents/monitoring_agent.md +209 -0
- package/vendor/ars/deep-research/agents/report_compiler_agent.md +341 -0
- package/vendor/ars/deep-research/agents/research_architect_agent.md +298 -0
- package/vendor/ars/deep-research/agents/research_question_agent.md +216 -0
- package/vendor/ars/deep-research/agents/risk_of_bias_agent.md +231 -0
- package/vendor/ars/deep-research/agents/socratic_mentor_agent.md +764 -0
- package/vendor/ars/deep-research/agents/source_verification_agent.md +219 -0
- package/vendor/ars/deep-research/agents/synthesis_agent.md +356 -0
- package/vendor/ars/deep-research/agents/timeline_extraction_agent.md +99 -0
- package/vendor/ars/deep-research/examples/exploratory_research.md +157 -0
- package/vendor/ars/deep-research/examples/fact_check_mode.md +173 -0
- package/vendor/ars/deep-research/examples/handoff_to_paper.md +318 -0
- package/vendor/ars/deep-research/examples/idea_diversity_coverage_gap_advisory.md +64 -0
- package/vendor/ars/deep-research/examples/policy_analysis.md +161 -0
- package/vendor/ars/deep-research/examples/review_mode.md +253 -0
- package/vendor/ars/deep-research/examples/socratic_guided_research.md +331 -0
- package/vendor/ars/deep-research/examples/systematic_review.md +133 -0
- package/vendor/ars/deep-research/references/apa7_style_guide.md +162 -0
- package/vendor/ars/deep-research/references/argumentation_reasoning_framework.md +68 -0
- package/vendor/ars/deep-research/references/arxiv_api_protocol.md +76 -0
- package/vendor/ars/deep-research/references/changelog.md +22 -0
- package/vendor/ars/deep-research/references/chinese_literature_api_protocol.md +317 -0
- package/vendor/ars/deep-research/references/cross_agent_quality_definitions.md +14 -0
- package/vendor/ars/deep-research/references/crossref_api_protocol.md +84 -0
- package/vendor/ars/deep-research/references/equator_reporting_guidelines.md +482 -0
- package/vendor/ars/deep-research/references/ethics_checklist.md +282 -0
- package/vendor/ars/deep-research/references/failure_paths.md +355 -0
- package/vendor/ars/deep-research/references/interdisciplinary_bridges.md +292 -0
- package/vendor/ars/deep-research/references/irb_decision_tree.md +315 -0
- package/vendor/ars/deep-research/references/literature_monitoring_strategies.md +263 -0
- package/vendor/ars/deep-research/references/logical_fallacies.md +192 -0
- package/vendor/ars/deep-research/references/methodology_patterns.md +462 -0
- package/vendor/ars/deep-research/references/mode_selection_guide.md +331 -0
- package/vendor/ars/deep-research/references/openalex_api_protocol.md +82 -0
- package/vendor/ars/deep-research/references/preregistration_guide.md +324 -0
- package/vendor/ars/deep-research/references/semantic_scholar_api_protocol.md +107 -0
- package/vendor/ars/deep-research/references/socratic_mode_protocol.md +99 -0
- package/vendor/ars/deep-research/references/socratic_questioning_framework.md +232 -0
- package/vendor/ars/deep-research/references/source_quality_hierarchy.md +188 -0
- package/vendor/ars/deep-research/references/systematic_review_protocol.md +95 -0
- package/vendor/ars/deep-research/references/systematic_review_toolkit.md +353 -0
- package/vendor/ars/deep-research/templates/evidence_assessment_template.md +127 -0
- package/vendor/ars/deep-research/templates/literature_matrix_template.md +85 -0
- package/vendor/ars/deep-research/templates/preregistration_template.md +318 -0
- package/vendor/ars/deep-research/templates/prisma_protocol_template.md +248 -0
- package/vendor/ars/deep-research/templates/prisma_report_template.md +415 -0
- package/vendor/ars/deep-research/templates/research_brief_template.md +93 -0
- package/vendor/ars/package.json +24 -0
- package/vendor/ars/pi/README.md +161 -0
- package/vendor/ars/pi/package.json +26 -0
- package/vendor/ars/pi/wrapper.js +193 -0
- package/vendor/ars/pi/wrapper.test.mjs +201 -0
- package/vendor/ars/pyproject.toml +2 -0
- package/vendor/ars/requirements-pdf-content-classifier.txt +5 -0
- package/vendor/ars/scripts/_block_parser.py +396 -0
- package/vendor/ars/scripts/_ci_pytest_manifest.toml +661 -0
- package/vendor/ars/scripts/_claim_audit_constants.py +268 -0
- package/vendor/ars/scripts/_e4_evidence.py +110 -0
- package/vendor/ars/scripts/_eval_threshold_gate.py +73 -0
- package/vendor/ars/scripts/_markdown_lint_util.py +224 -0
- package/vendor/ars/scripts/_next_verified_at_ms.py +176 -0
- package/vendor/ars/scripts/_passport_yaml.py +53 -0
- package/vendor/ars/scripts/_skill_lint.py +254 -0
- package/vendor/ars/scripts/_text_similarity.py +141 -0
- package/vendor/ars/scripts/adapters/README.md +89 -0
- package/vendor/ars/scripts/adapters/_common.py +209 -0
- package/vendor/ars/scripts/adapters/examples/folder_scan/expected_passport.yaml +25 -0
- package/vendor/ars/scripts/adapters/examples/folder_scan/expected_rejection_log.yaml +18 -0
- package/vendor/ars/scripts/adapters/examples/folder_scan/input_fixture/Chen2024_AIAssessment.pdf +0 -0
- package/vendor/ars/scripts/adapters/examples/folder_scan/input_fixture/Wang_2023_formative_feedback.pdf +0 -0
- package/vendor/ars/scripts/adapters/examples/folder_scan/input_fixture/paper1.pdf +0 -0
- 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
- package/vendor/ars/scripts/adapters/examples/obsidian/expected_passport.yaml +40 -0
- package/vendor/ars/scripts/adapters/examples/obsidian/expected_rejection_log.yaml +13 -0
- package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/.gitkeep +0 -0
- package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/.obsidian/app.json +1 -0
- package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/_templates/tmpl.md +7 -0
- package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/chen2024ai.md +13 -0
- package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/invalid.md +1 -0
- package/vendor/ars/scripts/adapters/examples/obsidian/input_fixture/vault/wang2023formative.md +10 -0
- package/vendor/ars/scripts/adapters/examples/zotero/expected_passport.yaml +34 -0
- package/vendor/ars/scripts/adapters/examples/zotero/expected_rejection_log.yaml +34 -0
- package/vendor/ars/scripts/adapters/examples/zotero/input_fixture/.gitkeep +0 -0
- package/vendor/ars/scripts/adapters/examples/zotero/input_fixture/export.json +43 -0
- package/vendor/ars/scripts/adapters/folder_scan.py +214 -0
- package/vendor/ars/scripts/adapters/obsidian.py +336 -0
- package/vendor/ars/scripts/adapters/tests/.gitkeep +0 -0
- package/vendor/ars/scripts/adapters/tests/conftest.py +77 -0
- package/vendor/ars/scripts/adapters/tests/test_check_corpus_consumer_protocol.py +632 -0
- package/vendor/ars/scripts/adapters/tests/test_check_literature_corpus_schema.py +631 -0
- package/vendor/ars/scripts/adapters/tests/test_common.py +365 -0
- package/vendor/ars/scripts/adapters/tests/test_conftest.py +96 -0
- package/vendor/ars/scripts/adapters/tests/test_folder_scan.py +260 -0
- package/vendor/ars/scripts/adapters/tests/test_literature_corpus_entry_schema.py +745 -0
- package/vendor/ars/scripts/adapters/tests/test_obsidian.py +357 -0
- package/vendor/ars/scripts/adapters/tests/test_rejection_log_schema.py +271 -0
- package/vendor/ars/scripts/adapters/tests/test_sync_adapter_docs.py +88 -0
- package/vendor/ars/scripts/adapters/tests/test_zotero.py +454 -0
- package/vendor/ars/scripts/adapters/zotero.py +318 -0
- package/vendor/ars/scripts/adjudication_activity.py +1592 -0
- package/vendor/ars/scripts/announce-ars-loaded.sh +144 -0
- package/vendor/ars/scripts/ars_anchorize_draft.py +170 -0
- package/vendor/ars/scripts/ars_apply_revision_patch.py +912 -0
- package/vendor/ars/scripts/ars_cache_invalidate.py +40 -0
- package/vendor/ars/scripts/ars_mark_read.py +521 -0
- package/vendor/ars/scripts/ars_phase_scope_manifest.json +33 -0
- package/vendor/ars/scripts/ars_update_check.sh +215 -0
- package/vendor/ars/scripts/ars_write_scope_guard.py +506 -0
- package/vendor/ars/scripts/arxiv_client.py +222 -0
- package/vendor/ars/scripts/audit_snapshot.py +572 -0
- package/vendor/ars/scripts/bibliographic_integrity_signals.py +800 -0
- package/vendor/ars/scripts/bootstrap_timeline_yaml.py +146 -0
- package/vendor/ars/scripts/build_claim_standing_candidate_ledger.py +1238 -0
- package/vendor/ars/scripts/build_claim_standing_query_plan.py +643 -0
- package/vendor/ars/scripts/build_content_coverage_advisory.py +1205 -0
- package/vendor/ars/scripts/build_cross_document_consistency_advisory.py +2332 -0
- package/vendor/ars/scripts/build_review_pathway_rule_trace.py +830 -0
- package/vendor/ars/scripts/build_submission_packet_manifest.py +2310 -0
- package/vendor/ars/scripts/check_215_field_norm.py +173 -0
- package/vendor/ars/scripts/check_216_surface_form.py +250 -0
- package/vendor/ars/scripts/check_268_nested_commitment_ledger.py +180 -0
- package/vendor/ars/scripts/check_390_revision_patch_discipline.py +296 -0
- package/vendor/ars/scripts/check_392_citation_verification_intake.py +126 -0
- package/vendor/ars/scripts/check_394_submission_policy.py +178 -0
- package/vendor/ars/scripts/check_439_format_profile.py +307 -0
- package/vendor/ars/scripts/check_619_disclosure_closeout.py +237 -0
- package/vendor/ars/scripts/check_630_codex_subscription_transport.py +456 -0
- package/vendor/ars/scripts/check_669_review_pathway_rule_trace.py +662 -0
- package/vendor/ars/scripts/check_670_revision_roadmap_integration.py +518 -0
- package/vendor/ars/scripts/check_673_adjudication_activity.py +684 -0
- package/vendor/ars/scripts/check_684_review_criteria_binding.py +557 -0
- package/vendor/ars/scripts/check_agents_mirror_sync.py +115 -0
- package/vendor/ars/scripts/check_audit_artifact_consistency.py +2313 -0
- package/vendor/ars/scripts/check_benchmark_report.py +79 -0
- package/vendor/ars/scripts/check_bibliographic_integrity_signals.py +831 -0
- package/vendor/ars/scripts/check_calibration_tiers.py +235 -0
- package/vendor/ars/scripts/check_changelog_covers_merges.py +289 -0
- package/vendor/ars/scripts/check_ci_pytest_manifest.py +204 -0
- package/vendor/ars/scripts/check_claim_audit_consistency.py +1664 -0
- package/vendor/ars/scripts/check_claim_standing_candidate_ledger_integration.py +500 -0
- package/vendor/ars/scripts/check_claim_standing_freshness.py +253 -0
- package/vendor/ars/scripts/check_claim_standing_transmissions.py +449 -0
- package/vendor/ars/scripts/check_collaboration_depth_rubric.py +180 -0
- package/vendor/ars/scripts/check_command_frontmatter_name.py +116 -0
- package/vendor/ars/scripts/check_committee_correspondence.py +333 -0
- package/vendor/ars/scripts/check_compliance_report.py +108 -0
- package/vendor/ars/scripts/check_content_coverage_advisory_integration.py +796 -0
- package/vendor/ars/scripts/check_control_availability.py +172 -0
- package/vendor/ars/scripts/check_corpus_consumer_protocol.py +404 -0
- package/vendor/ars/scripts/check_cross_document_consistency_advisory_integration.py +1191 -0
- package/vendor/ars/scripts/check_cross_model_handoff_contract.py +234 -0
- package/vendor/ars/scripts/check_cross_model_verification_sync.py +261 -0
- package/vendor/ars/scripts/check_data_access_level.py +131 -0
- package/vendor/ars/scripts/check_data_flows.py +252 -0
- package/vendor/ars/scripts/check_decision_contract.py +464 -0
- package/vendor/ars/scripts/check_degradation_registry.py +326 -0
- package/vendor/ars/scripts/check_distribution_surface_claims.py +226 -0
- package/vendor/ars/scripts/check_domain_evidence_profile.py +538 -0
- package/vendor/ars/scripts/check_e4_promotion.py +195 -0
- package/vendor/ars/scripts/check_evals_gold_set.py +279 -0
- package/vendor/ars/scripts/check_evidence_row_integration.py +396 -0
- package/vendor/ars/scripts/check_experiment_provenance.py +117 -0
- package/vendor/ars/scripts/check_field_norm_severity.py +144 -0
- package/vendor/ars/scripts/check_firm_rules_sync.py +375 -0
- package/vendor/ars/scripts/check_heldout_measurement_report.py +1179 -0
- package/vendor/ars/scripts/check_human_subjects_output_contract.py +139 -0
- package/vendor/ars/scripts/check_human_subjects_reference_migration.py +844 -0
- package/vendor/ars/scripts/check_indirect_prompt_injection_no_call.py +328 -0
- package/vendor/ars/scripts/check_instruction_data_boundary.py +236 -0
- package/vendor/ars/scripts/check_judge_prompt_version.py +125 -0
- package/vendor/ars/scripts/check_literature_corpus_schema.py +402 -0
- package/vendor/ars/scripts/check_model_tiering.py +223 -0
- package/vendor/ars/scripts/check_panel_synthesis.py +1331 -0
- package/vendor/ars/scripts/check_passport_reset_contract.py +214 -0
- package/vendor/ars/scripts/check_pattern_eval_manifest.py +422 -0
- package/vendor/ars/scripts/check_persuasion_invariance_fixtures.py +637 -0
- package/vendor/ars/scripts/check_phase_conformance.py +2180 -0
- package/vendor/ars/scripts/check_pipeline_boundary_semantics.py +600 -0
- package/vendor/ars/scripts/check_pipeline_integrity.py +340 -0
- package/vendor/ars/scripts/check_policy_anchor_protocol.py +159 -0
- package/vendor/ars/scripts/check_policy_anchor_table.py +286 -0
- package/vendor/ars/scripts/check_preprint_venues_consistency.py +123 -0
- package/vendor/ars/scripts/check_prisma_trAIce_freshness.py +84 -0
- package/vendor/ars/scripts/check_promotion_bakeoff_preregistration.py +1303 -0
- package/vendor/ars/scripts/check_ranking_lift.py +323 -0
- package/vendor/ars/scripts/check_re_review_synthesis.py +2719 -0
- package/vendor/ars/scripts/check_receipt_enum_sync.py +203 -0
- package/vendor/ars/scripts/check_repro_lock.py +85 -0
- package/vendor/ars/scripts/check_review_pathway_output.py +276 -0
- package/vendor/ars/scripts/check_reviewer_data_fences.py +224 -0
- package/vendor/ars/scripts/check_reviewer_finding_contract.py +783 -0
- package/vendor/ars/scripts/check_reviewer_role_label.py +447 -0
- package/vendor/ars/scripts/check_reviewer_scoring_honesty.py +292 -0
- package/vendor/ars/scripts/check_reviewer_sprint_prompt_sync.py +409 -0
- package/vendor/ars/scripts/check_revision_claim_drift_suite_v2.py +1622 -0
- package/vendor/ars/scripts/check_revision_token_conservation.py +263 -0
- package/vendor/ars/scripts/check_risk_register.py +280 -0
- package/vendor/ars/scripts/check_role_scoped_contract.py +702 -0
- package/vendor/ars/scripts/check_rq_framing_patterns.py +184 -0
- package/vendor/ars/scripts/check_rubric_weight_consistency.py +32 -0
- package/vendor/ars/scripts/check_seeded_defect_fixtures.py +425 -0
- package/vendor/ars/scripts/check_setup_cross_model_parity.py +139 -0
- package/vendor/ars/scripts/check_spec_consistency.py +1249 -0
- package/vendor/ars/scripts/check_sprint_contract.py +371 -0
- package/vendor/ars/scripts/check_stage_capability_matrix.py +784 -0
- package/vendor/ars/scripts/check_submission_packet_manifest_integration.py +358 -0
- package/vendor/ars/scripts/check_surface_form_parity.py +445 -0
- package/vendor/ars/scripts/check_task_type.py +22 -0
- package/vendor/ars/scripts/check_tools_allowlist.py +538 -0
- package/vendor/ars/scripts/check_tortured_phrase_screening_integration.py +1974 -0
- package/vendor/ars/scripts/check_v3_10_134_write_scope.py +286 -0
- package/vendor/ars/scripts/check_v3_10_policy.py +656 -0
- package/vendor/ars/scripts/check_v3_6_6_ab_manifest.py +364 -0
- package/vendor/ars/scripts/check_v3_6_7_pattern_protection.py +1366 -0
- package/vendor/ars/scripts/check_v3_6_8_audit_scope_block.py +464 -0
- package/vendor/ars/scripts/check_v3_6_8_cite_provenance_pipeline.py +231 -0
- package/vendor/ars/scripts/check_v3_6_8_frontmatter_trust_schema.py +248 -0
- package/vendor/ars/scripts/check_v3_6_8_mark_read_commands.py +79 -0
- package/vendor/ars/scripts/check_v3_6_8_pattern_protection.py +941 -0
- package/vendor/ars/scripts/check_v3_7_3_three_layer_citation.py +318 -0
- package/vendor/ars/scripts/check_v3_8_annotation_literal_sync.py +228 -0
- package/vendor/ars/scripts/check_v3_9_0_triangulation.py +366 -0
- package/vendor/ars/scripts/check_v3_9_2_phase_boundary.py +270 -0
- package/vendor/ars/scripts/check_v3_9_4_temporal_verification.py +139 -0
- package/vendor/ars/scripts/check_venue_disclosure_policies.py +63 -0
- package/vendor/ars/scripts/check_version_consistency.py +826 -0
- package/vendor/ars/scripts/check_workflow_classification.py +223 -0
- package/vendor/ars/scripts/chinese_literature_client.py +1938 -0
- package/vendor/ars/scripts/citation_verification_summary.py +85 -0
- package/vendor/ars/scripts/claim_audit_calibration.py +517 -0
- package/vendor/ars/scripts/claim_audit_finalizer.py +456 -0
- package/vendor/ars/scripts/claim_audit_pipeline.py +1594 -0
- package/vendor/ars/scripts/claim_registry_coverage.py +493 -0
- package/vendor/ars/scripts/claim_standing_discovery.py +784 -0
- package/vendor/ars/scripts/claim_standing_stance_runner.py +758 -0
- package/vendor/ars/scripts/claim_standing_stance_scorer.py +239 -0
- package/vendor/ars/scripts/claim_strength_drift_disposition.py +666 -0
- package/vendor/ars/scripts/contamination_signals.py +689 -0
- package/vendor/ars/scripts/corpus_consumer_manifest.json +19 -0
- package/vendor/ars/scripts/cross_model_codex_transport.py +1374 -0
- package/vendor/ars/scripts/cross_model_codex_verify.sh +6 -0
- package/vendor/ars/scripts/cross_model_handoff.py +359 -0
- package/vendor/ars/scripts/cross_model_smoke_test.sh +183 -0
- package/vendor/ars/scripts/cross_model_smoke_test_codex.sh +35 -0
- package/vendor/ars/scripts/cross_model_verification/gemini_is_grounded.jq +45 -0
- package/vendor/ars/scripts/cross_model_verification/gemini_sources.jq +45 -0
- package/vendor/ars/scripts/cross_model_verification/normalize_compat_verdict.py +57 -0
- package/vendor/ars/scripts/cross_model_verification/openai_has_completed_web_search.jq +15 -0
- package/vendor/ars/scripts/cross_model_verification/openai_sources.jq +17 -0
- package/vendor/ars/scripts/cross_model_verification/openai_text.jq +11 -0
- package/vendor/ars/scripts/crossref_client.py +225 -0
- package/vendor/ars/scripts/dispatch_e4_panel.py +2731 -0
- package/vendor/ars/scripts/evidence_rows.py +2043 -0
- package/vendor/ars/scripts/fixtures/adjudication_activity/author_stage3.json +32 -0
- package/vendor/ars/scripts/fixtures/adjudication_activity/author_stage3_input.json +27 -0
- package/vendor/ars/scripts/fixtures/adjudication_activity/author_stage3_prime.json +32 -0
- package/vendor/ars/scripts/fixtures/adjudication_activity/author_stage3_prime_input.json +27 -0
- package/vendor/ars/scripts/fixtures/adjudication_activity/compliance_override.json +50 -0
- package/vendor/ars/scripts/fixtures/adjudication_activity/compliance_override_action.json +14 -0
- package/vendor/ars/scripts/fixtures/adjudication_activity/compliance_pass.json +44 -0
- package/vendor/ars/scripts/fixtures/adjudication_activity/explicit_user_request_log.json +26 -0
- package/vendor/ars/scripts/fixtures/adjudication_activity/mandatory_checkpoint_log.json +116 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/README.md +56 -0
- 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
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/negative/a1_pass_with_p1/2026-04-30T15-22-04Z-d8f3.jsonl +4 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/negative/a1_pass_with_p1/2026-04-30T15-22-04Z-d8f3.meta.json +43 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/negative/a1_pass_with_p1/2026-04-30T15-22-04Z-d8f3.verdict.yaml +19 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/negative/a7_orphan_completion/2026-04-30T15-22-04Z-d8f3.jsonl +3 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/persisted_minor/2026-04-30T15-22-04Z-d8f3.audit_artifact_entry.json +26 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/persisted_minor/2026-04-30T15-22-04Z-d8f3.jsonl +4 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/persisted_minor/2026-04-30T15-22-04Z-d8f3.meta.json +43 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/persisted_minor/2026-04-30T15-22-04Z-d8f3.verdict.yaml +19 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/proposal_pass/2026-04-30T15-22-04Z-d8f3.audit_artifact_entry.json +24 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/proposal_pass/2026-04-30T15-22-04Z-d8f3.jsonl +4 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/proposal_pass/2026-04-30T15-22-04Z-d8f3.meta.json +43 -0
- package/vendor/ars/scripts/fixtures/audit_artifact_consistency/positive/proposal_pass/2026-04-30T15-22-04Z-d8f3.verdict.yaml +12 -0
- package/vendor/ars/scripts/fixtures/bibliographic_integrity_signals/retraction.json +46 -0
- package/vendor/ars/scripts/fixtures/bibliographic_integrity_signals/retraction_check_attestation.json +44 -0
- package/vendor/ars/scripts/fixtures/bibliographic_integrity_signals/tortured_phrase.json +44 -0
- package/vendor/ars/scripts/fixtures/bibliographic_integrity_signals/tortured_phrase_v1_2_abstract_missing.json +107 -0
- package/vendor/ars/scripts/fixtures/bibliographic_integrity_signals/tortured_phrase_v1_2_detected.json +124 -0
- package/vendor/ars/scripts/fixtures/check_evals_gold_set/clean/expected_outcomes.json +77 -0
- package/vendor/ars/scripts/fixtures/check_evals_gold_set/clean/manifest.yaml +37 -0
- package/vendor/ars/scripts/fixtures/check_evals_gold_set/clean/tuples/001-valid-doi-test.json +20 -0
- package/vendor/ars/scripts/fixtures/check_evals_gold_set/clean/tuples/002-valid-arxiv-test.json +19 -0
- package/vendor/ars/scripts/fixtures/check_evals_gold_set/clean/tuples/003-fabricated-test.json +20 -0
- package/vendor/ars/scripts/fixtures/claim_audit_calibration/gold_set.json +344 -0
- package/vendor/ars/scripts/fixtures/claim_standing_candidate_ledger/query_plan.json +108 -0
- package/vendor/ars/scripts/fixtures/claim_standing_candidate_ledger/retrieval_input.json +179 -0
- package/vendor/ars/scripts/fixtures/committee_correspondence/16fd83f6aec7/concern_tracker.json +129 -0
- package/vendor/ars/scripts/fixtures/committee_correspondence/16fd83f6aec7/response_skeleton.md +19 -0
- package/vendor/ars/scripts/fixtures/committee_correspondence/16fd83f6aec7/source_letter.txt +9 -0
- package/vendor/ars/scripts/fixtures/content_coverage_advisory/base_draft.json +48 -0
- package/vendor/ars/scripts/fixtures/content_coverage_advisory/base_inventory.json +38 -0
- package/vendor/ars/scripts/fixtures/content_coverage_advisory/packet/consent.txt +1 -0
- package/vendor/ars/scripts/fixtures/content_coverage_advisory/session_sources.json +3 -0
- package/vendor/ars/scripts/fixtures/cross_document_consistency/README.md +6 -0
- package/vendor/ars/scripts/fixtures/cross_document_consistency/accepted_draft.md +35 -0
- package/vendor/ars/scripts/fixtures/cross_document_consistency/cases.json +75 -0
- package/vendor/ars/scripts/fixtures/cross_document_consistency/preregistration.md +5 -0
- package/vendor/ars/scripts/fixtures/cross_model_codex_transport/forbidden_event.jsonl +4 -0
- package/vendor/ars/scripts/fixtures/cross_model_codex_transport/grounded_verified.jsonl +3 -0
- package/vendor/ars/scripts/fixtures/cross_model_codex_transport/malformed.jsonl +3 -0
- package/vendor/ars/scripts/fixtures/cross_model_codex_transport/missing_search.jsonl +2 -0
- package/vendor/ars/scripts/fixtures/cross_model_codex_transport/multiple_finals.jsonl +4 -0
- package/vendor/ars/scripts/fixtures/cross_model_codex_transport/not_found.jsonl +3 -0
- package/vendor/ars/scripts/fixtures/cross_model_codex_transport/unbound_source.jsonl +3 -0
- package/vendor/ars/scripts/fixtures/cross_model_codex_transport/wrong_search_shape.jsonl +3 -0
- package/vendor/ars/scripts/fixtures/evidence_rows/phase_e_inputs.json +114 -0
- package/vendor/ars/scripts/fixtures/evidence_rows/session_sources.json +5 -0
- package/vendor/ars/scripts/fixtures/human_subjects_authority/cross-border-us-tw-gdpr.json +71 -0
- package/vendor/ars/scripts/fixtures/human_subjects_authority/gdpr-member-state-unresolved.json +62 -0
- package/vendor/ars/scripts/fixtures/human_subjects_authority/missing-data-axis.json +45 -0
- package/vendor/ars/scripts/fixtures/human_subjects_authority/no-profile.json +33 -0
- package/vendor/ars/scripts/fixtures/human_subjects_authority/tw-gdpr-two-axis.json +74 -0
- package/vendor/ars/scripts/fixtures/human_subjects_authority/us-gdpr-two-axis.json +74 -0
- package/vendor/ars/scripts/fixtures/review_pathway_rule_trace/lint-near-misses.json +72 -0
- package/vendor/ars/scripts/fixtures/review_pathway_rule_trace/no-profile-request.json +18 -0
- package/vendor/ars/scripts/fixtures/review_pathway_rule_trace/tw-candidates-request.json +63 -0
- package/vendor/ars/scripts/fixtures/review_pathway_rule_trace/us-candidates-request.json +77 -0
- package/vendor/ars/scripts/fixtures/review_target_context/exact-declaration.json +24 -0
- package/vendor/ars/scripts/fixtures/review_target_context/field-general-declaration.json +24 -0
- package/vendor/ars/scripts/fixtures/review_target_context/msr-2027-technical-full-declaration.json +24 -0
- package/vendor/ars/scripts/fixtures/review_target_context/synthetic-registry.json +92 -0
- package/vendor/ars/scripts/fixtures/revision_claim_drift_v2/README.md +21 -0
- package/vendor/ars/scripts/fixtures/revision_claim_drift_v2/subject_context_attested_only.json +55 -0
- package/vendor/ars/scripts/fixtures/revision_claim_drift_v2/subject_context_machine_supported.json +49 -0
- package/vendor/ars/scripts/fixtures/revision_claim_drift_v2/subject_context_not_isolated.json +56 -0
- package/vendor/ars/scripts/fixtures/revision_claim_drift_v2/subject_context_unknown.json +49 -0
- package/vendor/ars/scripts/fixtures/submission_package/clean/paper.md +16 -0
- package/vendor/ars/scripts/fixtures/submission_package/clean/references.bib +13 -0
- package/vendor/ars/scripts/fixtures/submission_package/fallback_authoryear/paper.md +11 -0
- package/vendor/ars/scripts/fixtures/submission_package/fallback_authoryear/references.bib +13 -0
- package/vendor/ars/scripts/fixtures/submission_package/fallback_latex/paper.tex +9 -0
- package/vendor/ars/scripts/fixtures/submission_package/fallback_latex/references.bib +13 -0
- package/vendor/ars/scripts/fixtures/submission_package/marker_no_join/paper.md +7 -0
- package/vendor/ars/scripts/fixtures/submission_package/orphan_intext/paper.md +8 -0
- package/vendor/ars/scripts/fixtures/submission_package/orphan_intext/references.bib +6 -0
- package/vendor/ars/scripts/fixtures/submission_package/passports/corpus_only.yaml +9 -0
- package/vendor/ars/scripts/fixtures/submission_package/passports/summary_join.yaml +16 -0
- package/vendor/ars/scripts/fixtures/submission_package/profiles/full.yaml +15 -0
- package/vendor/ars/scripts/fixtures/submission_package/profiles/tight.yaml +15 -0
- package/vendor/ars/scripts/fixtures/submission_package/summary_join/paper.md +7 -0
- package/vendor/ars/scripts/fixtures/submission_package/uncited_reference/paper.md +9 -0
- package/vendor/ars/scripts/fixtures/submission_package/uncited_reference/references.bib +13 -0
- package/vendor/ars/scripts/fixtures/submission_package/venue_clean/paper.md +26 -0
- package/vendor/ars/scripts/fixtures/submission_package/venue_clean/references.bib +13 -0
- package/vendor/ars/scripts/fixtures/submission_package/venue_violations/paper.md +20 -0
- package/vendor/ars/scripts/fixtures/submission_package/venue_violations/references.bib +13 -0
- package/vendor/ars/scripts/fixtures/submission_packet_manifest/base_inventory.json +101 -0
- package/vendor/ars/scripts/fixtures/submission_packet_manifest/packet/consent-materials.txt +3 -0
- package/vendor/ars/scripts/fixtures/submission_packet_manifest/packet/training-certificate.txt +2 -0
- package/vendor/ars/scripts/fixtures/submission_packet_manifest/packet/tw-consent-materials.txt +3 -0
- package/vendor/ars/scripts/fixtures/tortured_phrase_screening/corpus_input.yaml +30 -0
- package/vendor/ars/scripts/fixtures/tortured_phrase_screening/own_draft.md +36 -0
- package/vendor/ars/scripts/fixtures/tortured_phrase_screening/own_draft.tex +21 -0
- package/vendor/ars/scripts/fixtures/tortured_phrase_screening/seed_expectations.json +218 -0
- package/vendor/ars/scripts/fixtures/tortured_phrase_screening/snapshot.json +164 -0
- package/vendor/ars/scripts/fixtures/tortured_phrase_screening/snapshot_manifest.json +29 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/README.md +55 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/arxiv/empty_feed.xml +10 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/arxiv/error_5xx.html +7 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/arxiv/id_hit.xml +26 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/README.md +69 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/cnki_landing_page.html +13 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/error_5xx.html +2 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esearch_coordinate_ambiguous.json +16 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esearch_coordinate_hit.json +16 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esearch_coordinate_zero.json +14 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esearch_coverage_hit.json +15 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esearch_coverage_zero.json +13 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esummary_hit.json +43 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esummary_issn_mismatch.json +31 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esummary_no_doi.json +31 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esummary_unknown_ra.json +34 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/esummary_year_mismatch.json +31 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/handle_absent.json +4 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/handle_exists.json +16 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/handle_internal_error.json +4 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/istic_csl_hit.json +25 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/istic_csl_other_title.json +18 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/ra_cnki.json +6 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/ra_crossref.json +6 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/ra_istic.json +6 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/chinese_literature/ra_unknown_prefix.json +6 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/crossref/doi_hit.json +24 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/crossref/error_5xx.html +7 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/crossref/title_search_miss.json +15 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/openalex/doi_hit.json +29 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/openalex/error_5xx.json +4 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/openalex/title_search_miss.json +11 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/semantic_scholar/doi_hit.json +14 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/semantic_scholar/error_5xx.json +3 -0
- package/vendor/ars/scripts/fixtures/transport_bodies/semantic_scholar/title_search_miss.json +5 -0
- package/vendor/ars/scripts/human_read_attestation_resolver.py +467 -0
- package/vendor/ars/scripts/ideation_diversity_assignment_gate.py +430 -0
- package/vendor/ars/scripts/inquiry_branch_ledger.py +2540 -0
- package/vendor/ars/scripts/legacy/ars_apply_revision_patch_v1_0.py +715 -0
- package/vendor/ars/scripts/legacy/check_re_review_synthesis_v1_0.py +2215 -0
- package/vendor/ars/scripts/migrate_literature_corpus_to_v3_10.py +223 -0
- package/vendor/ars/scripts/migrate_literature_corpus_to_v3_7_3.py +277 -0
- package/vendor/ars/scripts/migrate_literature_corpus_to_v3_9_0.py +304 -0
- package/vendor/ars/scripts/model_tiering_manifest.json +46 -0
- package/vendor/ars/scripts/openalex_client.py +232 -0
- package/vendor/ars/scripts/parse_audit_verdict.py +802 -0
- package/vendor/ars/scripts/pdf_content_classifier_worker.py +176 -0
- package/vendor/ars/scripts/pdf_read_preflight.py +1455 -0
- package/vendor/ars/scripts/policy_anchor_disclosure_referee.py +354 -0
- package/vendor/ars/scripts/recompute_receipts.py +1414 -0
- package/vendor/ars/scripts/render_claim_standing_view.py +374 -0
- package/vendor/ars/scripts/render_eval_comment.py +130 -0
- package/vendor/ars/scripts/render_harness_retirement_issue.py +167 -0
- package/vendor/ars/scripts/repro_lock_validation.py +90 -0
- package/vendor/ars/scripts/research_workflow_profile.py +1079 -0
- package/vendor/ars/scripts/resolve_human_subjects_authority.py +1158 -0
- package/vendor/ars/scripts/resolve_review_target_context.py +683 -0
- package/vendor/ars/scripts/resume_e4_record.py +509 -0
- package/vendor/ars/scripts/retraction_status.py +484 -0
- package/vendor/ars/scripts/review_criteria_binding.py +889 -0
- package/vendor/ars/scripts/review_panel_provenance.py +744 -0
- package/vendor/ars/scripts/revision_roadmap.py +1967 -0
- package/vendor/ars/scripts/run_ci_pytest_manifest.py +116 -0
- package/vendor/ars/scripts/run_codex_audit.sh +1191 -0
- package/vendor/ars/scripts/run_evals.py +513 -0
- package/vendor/ars/scripts/run_ideation_diversity_no_call.py +3505 -0
- package/vendor/ars/scripts/run_indirect_prompt_injection_no_call.py +3330 -0
- package/vendor/ars/scripts/run_indirect_prompt_injection_probe.py +399 -0
- package/vendor/ars/scripts/run_review_criteria_constructive_value.py +1895 -0
- package/vendor/ars/scripts/run_role_topology_utility_dry_run.py +606 -0
- package/vendor/ars/scripts/score_review_criteria_constructive_value.py +617 -0
- package/vendor/ars/scripts/semantic_scholar_client.py +291 -0
- package/vendor/ars/scripts/slr_lineage.py +59 -0
- package/vendor/ars/scripts/sync_adapter_docs.py +118 -0
- package/vendor/ars/scripts/temporal_integrity_audit.py +840 -0
- package/vendor/ars/scripts/test_431_exact_or_bust.py +253 -0
- package/vendor/ars/scripts/test__eval_threshold_gate.py +125 -0
- package/vendor/ars/scripts/test__markdown_lint_util.py +129 -0
- package/vendor/ars/scripts/test__next_verified_at_ms.py +256 -0
- package/vendor/ars/scripts/test_adjacent_framing_probe_lint.py +171 -0
- package/vendor/ars/scripts/test_adjudication_activity.py +1515 -0
- package/vendor/ars/scripts/test_ars_anchorize_draft.py +178 -0
- package/vendor/ars/scripts/test_ars_apply_revision_patch.py +1335 -0
- package/vendor/ars/scripts/test_ars_cache_invalidate.py +51 -0
- package/vendor/ars/scripts/test_ars_mark_read.py +910 -0
- package/vendor/ars/scripts/test_ars_update_check.py +816 -0
- package/vendor/ars/scripts/test_ars_write_scope_guard.py +790 -0
- package/vendor/ars/scripts/test_arxiv_client.py +374 -0
- package/vendor/ars/scripts/test_audit_schemas.py +560 -0
- package/vendor/ars/scripts/test_audit_snapshot_render_section_0.py +105 -0
- package/vendor/ars/scripts/test_block_parser.py +259 -0
- package/vendor/ars/scripts/test_bootstrap_timeline_yaml.py +148 -0
- package/vendor/ars/scripts/test_build_claim_standing_candidate_ledger.py +1203 -0
- package/vendor/ars/scripts/test_build_claim_standing_query_plan.py +791 -0
- package/vendor/ars/scripts/test_build_submission_packet_manifest.py +2644 -0
- package/vendor/ars/scripts/test_check_215_field_norm.py +238 -0
- package/vendor/ars/scripts/test_check_216_surface_form.py +341 -0
- package/vendor/ars/scripts/test_check_268_nested_commitment_ledger.py +194 -0
- package/vendor/ars/scripts/test_check_390_revision_patch_discipline.py +279 -0
- package/vendor/ars/scripts/test_check_392_citation_verification_intake.py +144 -0
- package/vendor/ars/scripts/test_check_394_submission_policy.py +200 -0
- package/vendor/ars/scripts/test_check_439_format_profile.py +252 -0
- package/vendor/ars/scripts/test_check_619_disclosure_closeout.py +158 -0
- package/vendor/ars/scripts/test_check_630_codex_subscription_transport.py +245 -0
- package/vendor/ars/scripts/test_check_669_review_pathway_rule_trace.py +304 -0
- package/vendor/ars/scripts/test_check_670_revision_roadmap_integration.py +260 -0
- package/vendor/ars/scripts/test_check_673_adjudication_activity.py +367 -0
- package/vendor/ars/scripts/test_check_684_review_criteria_binding.py +274 -0
- package/vendor/ars/scripts/test_check_agents_mirror_sync.py +137 -0
- package/vendor/ars/scripts/test_check_audit_artifact_consistency.py +2133 -0
- package/vendor/ars/scripts/test_check_benchmark_report.py +117 -0
- package/vendor/ars/scripts/test_check_bibliographic_integrity_signals.py +609 -0
- package/vendor/ars/scripts/test_check_calibration_tiers.py +376 -0
- package/vendor/ars/scripts/test_check_changelog_covers_merges.py +509 -0
- package/vendor/ars/scripts/test_check_ci_pytest_manifest.py +425 -0
- package/vendor/ars/scripts/test_check_claim_standing_candidate_ledger_integration.py +256 -0
- package/vendor/ars/scripts/test_check_claim_standing_freshness.py +277 -0
- package/vendor/ars/scripts/test_check_collaboration_depth_rubric.py +239 -0
- package/vendor/ars/scripts/test_check_command_frontmatter_name.py +178 -0
- package/vendor/ars/scripts/test_check_committee_correspondence.py +298 -0
- package/vendor/ars/scripts/test_check_compliance_report.py +381 -0
- package/vendor/ars/scripts/test_check_content_coverage_advisory_integration.py +308 -0
- package/vendor/ars/scripts/test_check_control_availability.py +361 -0
- package/vendor/ars/scripts/test_check_cross_document_consistency_advisory_integration.py +698 -0
- package/vendor/ars/scripts/test_check_cross_model_handoff_contract.py +301 -0
- package/vendor/ars/scripts/test_check_cross_model_verification_sync.py +203 -0
- package/vendor/ars/scripts/test_check_data_access_level.py +227 -0
- package/vendor/ars/scripts/test_check_data_flows.py +382 -0
- package/vendor/ars/scripts/test_check_decision_contract.py +387 -0
- package/vendor/ars/scripts/test_check_degradation_registry.py +270 -0
- package/vendor/ars/scripts/test_check_distribution_surface_claims.py +225 -0
- package/vendor/ars/scripts/test_check_domain_evidence_profile.py +439 -0
- package/vendor/ars/scripts/test_check_e4_promotion.py +163 -0
- package/vendor/ars/scripts/test_check_evals_gold_set.py +312 -0
- package/vendor/ars/scripts/test_check_evidence_row_integration.py +187 -0
- package/vendor/ars/scripts/test_check_field_norm_severity.py +173 -0
- package/vendor/ars/scripts/test_check_firm_rules_sync.py +342 -0
- package/vendor/ars/scripts/test_check_heldout_measurement_report.py +1508 -0
- package/vendor/ars/scripts/test_check_human_subjects_output_contract.py +129 -0
- package/vendor/ars/scripts/test_check_human_subjects_reference_migration.py +756 -0
- package/vendor/ars/scripts/test_check_instruction_data_boundary.py +204 -0
- package/vendor/ars/scripts/test_check_judge_prompt_version.py +90 -0
- package/vendor/ars/scripts/test_check_model_tiering.py +236 -0
- package/vendor/ars/scripts/test_check_panel_synthesis.py +1658 -0
- package/vendor/ars/scripts/test_check_passport_reset_contract.py +249 -0
- package/vendor/ars/scripts/test_check_pattern_eval_manifest.py +381 -0
- package/vendor/ars/scripts/test_check_persuasion_invariance_fixtures.py +591 -0
- package/vendor/ars/scripts/test_check_phase_conformance.py +4366 -0
- package/vendor/ars/scripts/test_check_pipeline_boundary_semantics.py +931 -0
- package/vendor/ars/scripts/test_check_pipeline_integrity.py +243 -0
- package/vendor/ars/scripts/test_check_policy_anchor_protocol.py +236 -0
- package/vendor/ars/scripts/test_check_policy_anchor_table.py +295 -0
- package/vendor/ars/scripts/test_check_prisma_trAIce_freshness.py +68 -0
- package/vendor/ars/scripts/test_check_promotion_bakeoff_preregistration.py +799 -0
- package/vendor/ars/scripts/test_check_ranking_lift.py +377 -0
- package/vendor/ars/scripts/test_check_re_review_synthesis.py +3398 -0
- package/vendor/ars/scripts/test_check_receipt_enum_sync.py +176 -0
- package/vendor/ars/scripts/test_check_repro_lock.py +107 -0
- package/vendor/ars/scripts/test_check_reviewer_data_fences.py +334 -0
- package/vendor/ars/scripts/test_check_reviewer_finding_contract.py +1107 -0
- package/vendor/ars/scripts/test_check_reviewer_role_label.py +491 -0
- package/vendor/ars/scripts/test_check_reviewer_scoring_honesty.py +222 -0
- package/vendor/ars/scripts/test_check_reviewer_sprint_prompt_sync.py +373 -0
- package/vendor/ars/scripts/test_check_revision_claim_drift_suite_v2.py +1925 -0
- package/vendor/ars/scripts/test_check_revision_token_conservation.py +398 -0
- package/vendor/ars/scripts/test_check_risk_register.py +336 -0
- package/vendor/ars/scripts/test_check_role_scoped_contract.py +1104 -0
- package/vendor/ars/scripts/test_check_rq_framing_patterns.py +110 -0
- package/vendor/ars/scripts/test_check_rubric_weight_consistency.py +32 -0
- package/vendor/ars/scripts/test_check_seeded_defect_fixtures.py +392 -0
- package/vendor/ars/scripts/test_check_setup_cross_model_parity.py +121 -0
- package/vendor/ars/scripts/test_check_spec_consistency.py +1081 -0
- package/vendor/ars/scripts/test_check_sprint_contract.py +458 -0
- package/vendor/ars/scripts/test_check_stage_capability_matrix.py +698 -0
- package/vendor/ars/scripts/test_check_submission_packet_manifest_integration.py +177 -0
- package/vendor/ars/scripts/test_check_surface_form_parity.py +417 -0
- package/vendor/ars/scripts/test_check_task_type.py +116 -0
- package/vendor/ars/scripts/test_check_tools_allowlist.py +835 -0
- package/vendor/ars/scripts/test_check_tortured_phrase_screening_integration.py +1306 -0
- package/vendor/ars/scripts/test_check_v3_10_134_write_scope.py +251 -0
- package/vendor/ars/scripts/test_check_v3_10_policy.py +547 -0
- package/vendor/ars/scripts/test_check_v3_6_7_pattern_protection.py +960 -0
- package/vendor/ars/scripts/test_check_v3_6_8_audit_scope_block.py +1000 -0
- package/vendor/ars/scripts/test_check_v3_6_8_cite_provenance_pipeline.py +454 -0
- package/vendor/ars/scripts/test_check_v3_6_8_frontmatter_trust_schema.py +581 -0
- package/vendor/ars/scripts/test_check_v3_6_8_mark_read_commands.py +120 -0
- package/vendor/ars/scripts/test_check_v3_6_8_pattern_protection.py +1138 -0
- package/vendor/ars/scripts/test_check_v3_7_3_three_layer_citation.py +566 -0
- package/vendor/ars/scripts/test_check_v3_8_annotation_literal_sync.py +262 -0
- package/vendor/ars/scripts/test_check_v3_9_0_triangulation.py +321 -0
- package/vendor/ars/scripts/test_check_v3_9_2_phase_boundary.py +190 -0
- package/vendor/ars/scripts/test_check_v3_9_4_temporal_verification.py +471 -0
- package/vendor/ars/scripts/test_check_version_consistency.py +1462 -0
- package/vendor/ars/scripts/test_check_workflow_classification.py +225 -0
- package/vendor/ars/scripts/test_chinese_literature_client.py +1889 -0
- package/vendor/ars/scripts/test_citation_existence_policy.py +480 -0
- package/vendor/ars/scripts/test_citation_verification_summary.py +342 -0
- package/vendor/ars/scripts/test_claim_audit_calibration.py +882 -0
- package/vendor/ars/scripts/test_claim_audit_finalizer.py +979 -0
- package/vendor/ars/scripts/test_claim_audit_pipeline.py +2398 -0
- package/vendor/ars/scripts/test_claim_audit_schema.py +1778 -0
- package/vendor/ars/scripts/test_claim_intent_manifest.py +666 -0
- package/vendor/ars/scripts/test_claim_registry_coverage.py +246 -0
- package/vendor/ars/scripts/test_claim_standing_discovery.py +579 -0
- package/vendor/ars/scripts/test_claim_standing_pipeline_wiring.py +290 -0
- package/vendor/ars/scripts/test_claim_standing_stance_assets.py +399 -0
- package/vendor/ars/scripts/test_claim_standing_stance_contracts.py +383 -0
- package/vendor/ars/scripts/test_claim_standing_stance_runner.py +349 -0
- package/vendor/ars/scripts/test_claim_standing_transmissions.py +605 -0
- package/vendor/ars/scripts/test_claim_strength_drift_disposition.py +517 -0
- package/vendor/ars/scripts/test_claim_verification_coverage_contract.py +104 -0
- package/vendor/ars/scripts/test_contamination_signals.py +1086 -0
- package/vendor/ars/scripts/test_content_coverage_advisory.py +1767 -0
- package/vendor/ars/scripts/test_cross_document_consistency_advisory.py +1270 -0
- package/vendor/ars/scripts/test_cross_model_codex_transport.py +1152 -0
- package/vendor/ars/scripts/test_cross_model_handoff.py +571 -0
- package/vendor/ars/scripts/test_cross_model_verification_guards.py +792 -0
- package/vendor/ars/scripts/test_crossref_client.py +393 -0
- package/vendor/ars/scripts/test_dispatch_e4_panel.py +4235 -0
- package/vendor/ars/scripts/test_e2e_claim_audit.py +540 -0
- package/vendor/ars/scripts/test_eval_harness_workflow.py +140 -0
- package/vendor/ars/scripts/test_evals_citation_extraction.py +150 -0
- package/vendor/ars/scripts/test_evals_lift_report_schema.py +108 -0
- package/vendor/ars/scripts/test_evidence_rows.py +2593 -0
- package/vendor/ars/scripts/test_experiment_provenance.py +915 -0
- package/vendor/ars/scripts/test_human_read_attestation_resolver.py +477 -0
- package/vendor/ars/scripts/test_ideation_diversity_assignment_gate.py +615 -0
- package/vendor/ars/scripts/test_indirect_prompt_injection_behavior_probe.py +250 -0
- package/vendor/ars/scripts/test_inquiry_branch_ledger.py +2296 -0
- package/vendor/ars/scripts/test_migrate_literature_corpus_to_v3_10.py +248 -0
- package/vendor/ars/scripts/test_migrate_literature_corpus_to_v3_7_3.py +545 -0
- package/vendor/ars/scripts/test_migrate_literature_corpus_to_v3_9_0.py +497 -0
- package/vendor/ars/scripts/test_normalize_compat_verdict.py +149 -0
- package/vendor/ars/scripts/test_openalex_client.py +490 -0
- package/vendor/ars/scripts/test_passport_yaml.py +104 -0
- package/vendor/ars/scripts/test_pattern_eval_runtime.py +1295 -0
- package/vendor/ars/scripts/test_pdf_read_preflight.py +1943 -0
- package/vendor/ars/scripts/test_policy_anchor_disclosure.py +666 -0
- package/vendor/ars/scripts/test_reading_probe_lint.py +218 -0
- package/vendor/ars/scripts/test_recompute_receipts.py +778 -0
- package/vendor/ars/scripts/test_render_claim_standing_view.py +192 -0
- package/vendor/ars/scripts/test_render_eval_comment.py +162 -0
- package/vendor/ars/scripts/test_render_harness_retirement_issue.py +110 -0
- package/vendor/ars/scripts/test_repro_lock_validation_drift.py +100 -0
- package/vendor/ars/scripts/test_research_workflow_profile.py +734 -0
- package/vendor/ars/scripts/test_resolve_human_subjects_authority.py +1219 -0
- package/vendor/ars/scripts/test_resolve_review_target_context.py +703 -0
- package/vendor/ars/scripts/test_resume_e4_record.py +315 -0
- package/vendor/ars/scripts/test_retraction_status.py +456 -0
- package/vendor/ars/scripts/test_review_criteria_binding.py +629 -0
- package/vendor/ars/scripts/test_review_panel_provenance.py +565 -0
- package/vendor/ars/scripts/test_review_pathway_rule_trace.py +821 -0
- package/vendor/ars/scripts/test_revision_roadmap.py +1255 -0
- package/vendor/ars/scripts/test_run_ci_pytest_manifest.py +186 -0
- package/vendor/ars/scripts/test_run_codex_audit_e2e.py +369 -0
- package/vendor/ars/scripts/test_run_evals.py +430 -0
- package/vendor/ars/scripts/test_run_guard_launcher.py +500 -0
- package/vendor/ars/scripts/test_run_ideation_diversity_no_call.py +1833 -0
- package/vendor/ars/scripts/test_run_indirect_prompt_injection_no_call.py +1889 -0
- package/vendor/ars/scripts/test_run_review_criteria_constructive_value.py +586 -0
- package/vendor/ars/scripts/test_run_role_topology_utility_dry_run.py +428 -0
- package/vendor/ars/scripts/test_score_review_criteria_constructive_value.py +340 -0
- package/vendor/ars/scripts/test_semantic_scholar_client.py +554 -0
- package/vendor/ars/scripts/test_slr_lineage_emission.py +230 -0
- package/vendor/ars/scripts/test_socratic_rq_non_generation_contract.py +173 -0
- package/vendor/ars/scripts/test_temporal_integrity_audit.py +438 -0
- package/vendor/ars/scripts/test_text_similarity.py +95 -0
- package/vendor/ars/scripts/test_title_fuzzy_false_positive.py +111 -0
- package/vendor/ars/scripts/test_tortured_phrase_screening.py +2959 -0
- package/vendor/ars/scripts/test_transport_fixture_citation_gate.py +338 -0
- package/vendor/ars/scripts/test_uncited_assertion.py +558 -0
- package/vendor/ars/scripts/test_v3_6_7_phase_6_6.py +1279 -0
- package/vendor/ars/scripts/test_validate_compliance_fixtures.py +36 -0
- package/vendor/ars/scripts/test_validate_ideation_diversity_assets.py +230 -0
- package/vendor/ars/scripts/test_venue_disclosure_contract.py +755 -0
- package/vendor/ars/scripts/test_verification_cache.py +280 -0
- package/vendor/ars/scripts/test_verification_gate.py +461 -0
- package/vendor/ars/scripts/test_verify_passport_cli.py +123 -0
- package/vendor/ars/scripts/test_verify_submission_package.py +1407 -0
- package/vendor/ars/scripts/test_version_records_schema.py +211 -0
- package/vendor/ars/scripts/tortured_phrase_screening.py +3502 -0
- package/vendor/ars/scripts/uncited_assertion_detector.py +254 -0
- package/vendor/ars/scripts/v3_6_7_inversion_manifest.json +9 -0
- package/vendor/ars/scripts/v3_6_8_inversion_manifest.json +10 -0
- package/vendor/ars/scripts/validate_claim_standing_stance_assets.py +249 -0
- package/vendor/ars/scripts/validate_compliance_fixtures.py +56 -0
- package/vendor/ars/scripts/validate_ideation_diversity_assets.py +303 -0
- package/vendor/ars/scripts/venue_disclosure_contract_harness.py +837 -0
- package/vendor/ars/scripts/verification_cache.py +276 -0
- package/vendor/ars/scripts/verification_gate/__init__.py +345 -0
- package/vendor/ars/scripts/verify_passport.py +133 -0
- package/vendor/ars/scripts/verify_submission_package.py +1657 -0
- package/vendor/ars/shared/agents/compliance_agent.md +136 -0
- package/vendor/ars/shared/artifact_reproducibility_pattern.md +173 -0
- package/vendor/ars/shared/benchmark_report.schema.json +81 -0
- package/vendor/ars/shared/benchmark_report_pattern.md +180 -0
- package/vendor/ars/shared/bibliographic_integrity_signals.md +142 -0
- package/vendor/ars/shared/collaboration_depth_rubric.md +154 -0
- package/vendor/ars/shared/compliance_checkpoint_protocol.md +162 -0
- package/vendor/ars/shared/compliance_report.schema.json +187 -0
- package/vendor/ars/shared/contracts/README.md +938 -0
- package/vendor/ars/shared/contracts/activity/adjudication_activity_input.schema.json +555 -0
- package/vendor/ars/shared/contracts/activity/adjudication_activity_store.schema.json +560 -0
- package/vendor/ars/shared/contracts/audit/audit_jsonl.schema.json +128 -0
- package/vendor/ars/shared/contracts/audit/audit_sidecar.schema.json +169 -0
- package/vendor/ars/shared/contracts/audit/audit_verdict.schema.json +133 -0
- package/vendor/ars/shared/contracts/audit/cross_document_consistency_advisory.schema.json +480 -0
- package/vendor/ars/shared/contracts/audit/cross_document_consistency_advisory_draft.schema.json +564 -0
- package/vendor/ars/shared/contracts/audit/cross_document_source_manifest.schema.json +202 -0
- package/vendor/ars/shared/contracts/audit/tortured_phrase_advisory.schema.json +1362 -0
- package/vendor/ars/shared/contracts/audit/tortured_phrase_snapshot.schema.json +208 -0
- package/vendor/ars/shared/contracts/audit/tortured_phrase_snapshot_manifest.schema.json +335 -0
- package/vendor/ars/shared/contracts/capability/stage_capability_matrix.json +434 -0
- package/vendor/ars/shared/contracts/claim_standing/candidate_ledger.schema.json +705 -0
- package/vendor/ars/shared/contracts/claim_standing/query_plan.schema.json +389 -0
- package/vendor/ars/shared/contracts/claim_standing/query_plan_v1_1.schema.json +782 -0
- package/vendor/ars/shared/contracts/claim_standing/retrieval_input.schema.json +440 -0
- package/vendor/ars/shared/contracts/claim_standing/stance_record.schema.json +460 -0
- package/vendor/ars/shared/contracts/claim_standing/transmission_ledger.schema.json +282 -0
- package/vendor/ars/shared/contracts/cross_model/codex_citation_receipt.schema.json +157 -0
- package/vendor/ars/shared/contracts/cross_model/codex_citation_request.schema.json +23 -0
- package/vendor/ars/shared/contracts/cross_model/promotion_bakeoff_sealed_commitment.schema.json +55 -0
- package/vendor/ars/shared/contracts/cross_model/promotion_bakeoff_sealed_reveal.schema.json +50 -0
- package/vendor/ars/shared/contracts/degradation_registry.json +428 -0
- package/vendor/ars/shared/contracts/evaluator/full.json +126 -0
- package/vendor/ars/shared/contracts/evidence/claim_registry.schema.json +50 -0
- package/vendor/ars/shared/contracts/evidence/claim_registry_coverage_report.schema.json +79 -0
- package/vendor/ars/shared/contracts/evidence/evidence_row.schema.json +504 -0
- package/vendor/ars/shared/contracts/evidence/evidence_row_v1_1.schema.json +364 -0
- package/vendor/ars/shared/contracts/evidence/evidence_row_v1_2.schema.json +714 -0
- package/vendor/ars/shared/contracts/evidence/evidence_row_v1_3.schema.json +524 -0
- package/vendor/ars/shared/contracts/human_subjects/authority_profile_registry.schema.json +497 -0
- package/vendor/ars/shared/contracts/human_subjects/committee_correspondence.schema.json +253 -0
- package/vendor/ars/shared/contracts/human_subjects/content_coverage_advisory.schema.json +620 -0
- package/vendor/ars/shared/contracts/human_subjects/irb_context_record.schema.json +329 -0
- package/vendor/ars/shared/contracts/human_subjects/resolved_authority_context.schema.json +347 -0
- package/vendor/ars/shared/contracts/human_subjects/review_pathway_rule_trace.schema.json +265 -0
- package/vendor/ars/shared/contracts/human_subjects/review_pathway_trace_request.schema.json +127 -0
- package/vendor/ars/shared/contracts/human_subjects/submission_packet_inventory.schema.json +240 -0
- package/vendor/ars/shared/contracts/human_subjects/submission_packet_manifest.schema.json +999 -0
- package/vendor/ars/shared/contracts/passport/audit_artifact_entry.schema.json +266 -0
- package/vendor/ars/shared/contracts/passport/bibliographic_integrity_signal.schema.json +1676 -0
- package/vendor/ars/shared/contracts/passport/citation_provenance.schema.json +107 -0
- package/vendor/ars/shared/contracts/passport/citation_verification_summary.schema.json +164 -0
- package/vendor/ars/shared/contracts/passport/claim_audit_result.schema.json +124 -0
- package/vendor/ars/shared/contracts/passport/claim_drift.schema.json +58 -0
- package/vendor/ars/shared/contracts/passport/claim_intent_manifest.schema.json +107 -0
- package/vendor/ars/shared/contracts/passport/constraint_violation.schema.json +65 -0
- package/vendor/ars/shared/contracts/passport/experiment_alignment_result.schema.json +69 -0
- package/vendor/ars/shared/contracts/passport/experiment_provenance_entry.schema.json +169 -0
- package/vendor/ars/shared/contracts/passport/human_read_log.schema.json +86 -0
- package/vendor/ars/shared/contracts/passport/inquiry_ledger_ref.schema.json +22 -0
- package/vendor/ars/shared/contracts/passport/literature_corpus_entry.schema.json +650 -0
- package/vendor/ars/shared/contracts/passport/preregistration_artifact.schema.json +132 -0
- package/vendor/ars/shared/contracts/passport/rejection_log.schema.json +89 -0
- package/vendor/ars/shared/contracts/passport/reset_ledger_entry.schema.json +158 -0
- package/vendor/ars/shared/contracts/passport/temporal_audit_results.schema.json +208 -0
- package/vendor/ars/shared/contracts/passport/terminal_policies.schema.json +50 -0
- package/vendor/ars/shared/contracts/passport/timeline.schema.json +102 -0
- package/vendor/ars/shared/contracts/passport/uncited_assertion.schema.json +56 -0
- package/vendor/ars/shared/contracts/passport/uncited_audit_failure.schema.json +72 -0
- package/vendor/ars/shared/contracts/passport/user_attested_read_resolution.schema.json +87 -0
- package/vendor/ars/shared/contracts/passport/version_records.schema.json +138 -0
- package/vendor/ars/shared/contracts/patch/block_manifest.schema.json +45 -0
- package/vendor/ars/shared/contracts/patch/legacy/v1_0/revision_patch.schema.json +110 -0
- package/vendor/ars/shared/contracts/patch/revision_patch.schema.json +250 -0
- package/vendor/ars/shared/contracts/pdf/pdf_content_classifier_diagnostic.schema.json +39 -0
- package/vendor/ars/shared/contracts/pdf/pdf_content_classifier_worker.schema.json +88 -0
- package/vendor/ars/shared/contracts/pdf/pdf_read_preflight.schema.json +227 -0
- package/vendor/ars/shared/contracts/re_review/input_manifest.schema.json +161 -0
- package/vendor/ars/shared/contracts/re_review/legacy/v1_0/input_manifest.schema.json +134 -0
- package/vendor/ars/shared/contracts/re_review/legacy/v1_0/precommitment.schema.json +193 -0
- package/vendor/ars/shared/contracts/re_review/legacy/v1_0/traceability.schema.json +841 -0
- package/vendor/ars/shared/contracts/re_review/legacy/v1_0/verdict_record.schema.json +244 -0
- package/vendor/ars/shared/contracts/re_review/precommitment.schema.json +193 -0
- package/vendor/ars/shared/contracts/re_review/traceability.schema.json +916 -0
- package/vendor/ars/shared/contracts/re_review/verdict_record.schema.json +245 -0
- package/vendor/ars/shared/contracts/research_workflow/inquiry_branch_ledger.schema.json +449 -0
- package/vendor/ars/shared/contracts/research_workflow/research_workflow_profile.schema.json +222 -0
- package/vendor/ars/shared/contracts/research_workflow/research_workflow_profile_selection_receipt.schema.json +111 -0
- package/vendor/ars/shared/contracts/review_target/constructive_review_findings.schema.json +172 -0
- package/vendor/ars/shared/contracts/review_target/criteria_registry.schema.json +97 -0
- package/vendor/ars/shared/contracts/review_target/review_criteria_binding_manifest.schema.json +235 -0
- package/vendor/ars/shared/contracts/review_target/review_criteria_source_receipt.schema.json +158 -0
- package/vendor/ars/shared/contracts/review_target/review_target_context.schema.json +106 -0
- package/vendor/ars/shared/contracts/review_target/review_target_declaration.schema.json +118 -0
- package/vendor/ars/shared/contracts/reviewer/full.json +114 -0
- package/vendor/ars/shared/contracts/reviewer/methodology_focus.json +75 -0
- package/vendor/ars/shared/contracts/reviewer/review_panel_provenance.schema.json +263 -0
- package/vendor/ars/shared/contracts/reviewer/review_panel_provenance_carrier.schema.json +122 -0
- package/vendor/ars/shared/contracts/reviewer/review_panel_provenance_input.schema.json +120 -0
- package/vendor/ars/shared/contracts/revision/author_adjudication.schema.json +251 -0
- package/vendor/ars/shared/contracts/revision/author_adjudication_input.schema.json +25 -0
- package/vendor/ars/shared/contracts/revision/claim_strength_drift_disposition.schema.json +97 -0
- package/vendor/ars/shared/contracts/revision/claim_strength_drift_disposition_input.schema.json +80 -0
- package/vendor/ars/shared/contracts/revision/claim_strength_drift_findings.schema.json +139 -0
- package/vendor/ars/shared/contracts/revision/claim_surface_manifest.schema.json +99 -0
- package/vendor/ars/shared/contracts/revision/integrity_correction_authorization.schema.json +140 -0
- package/vendor/ars/shared/contracts/revision/integrity_correction_authorization_input.schema.json +28 -0
- package/vendor/ars/shared/contracts/revision/integrity_correction_list.schema.json +48 -0
- package/vendor/ars/shared/contracts/revision/integrity_pass_receipt.schema.json +16 -0
- package/vendor/ars/shared/contracts/revision/revision_evidence_bundle.schema.json +134 -0
- package/vendor/ars/shared/contracts/revision/revision_roadmap.schema.json +334 -0
- package/vendor/ars/shared/contracts/submission/format_profile.example.yaml +33 -0
- package/vendor/ars/shared/contracts/submission/format_profile.schema.json +102 -0
- package/vendor/ars/shared/contracts/submission/submission_verification_report.schema.json +233 -0
- package/vendor/ars/shared/contracts/submission/venue_profile.schema.json +114 -0
- package/vendor/ars/shared/contracts/writer/full.json +87 -0
- package/vendor/ars/shared/cross_model_verification.md +714 -0
- package/vendor/ars/shared/evals_lift_report.schema.json +141 -0
- package/vendor/ars/shared/ground_truth_isolation_pattern.md +275 -0
- package/vendor/ars/shared/handoff_schemas.md +1209 -0
- package/vendor/ars/shared/human_subjects_authority_registry.json +1278 -0
- package/vendor/ars/shared/mode_spectrum.md +57 -0
- package/vendor/ars/shared/model_tiering.md +83 -0
- package/vendor/ars/shared/policy_data/nature_policy.md +56 -0
- package/vendor/ars/shared/prisma_trAIce_protocol.md +157 -0
- package/vendor/ars/shared/raise_framework.md +129 -0
- package/vendor/ars/shared/references/authority_content_coverage_advisory_protocol.md +275 -0
- package/vendor/ars/shared/references/claim_standing_candidate_ledger_protocol.md +66 -0
- package/vendor/ars/shared/references/claim_strength_ladder.md +93 -0
- package/vendor/ars/shared/references/cross_document_consistency_advisory_protocol.md +263 -0
- package/vendor/ars/shared/references/evidence_row_protocol.md +260 -0
- package/vendor/ars/shared/references/firm_rules.md +90 -0
- package/vendor/ars/shared/references/human_subjects_authority_protocol.md +274 -0
- package/vendor/ars/shared/references/intent_clarification_protocol.md +168 -0
- package/vendor/ars/shared/references/irb_terminology_glossary.md +229 -0
- package/vendor/ars/shared/references/protected_hedging_phrases.md +118 -0
- package/vendor/ars/shared/references/psychometric_terminology_glossary.md +109 -0
- package/vendor/ars/shared/references/review_criteria_consumer_protocol.md +238 -0
- package/vendor/ars/shared/references/review_pathway_rule_trace_protocol.md +166 -0
- package/vendor/ars/shared/references/submission_packet_manifest_protocol.md +292 -0
- package/vendor/ars/shared/references/word_count_conventions.md +124 -0
- package/vendor/ars/shared/research_workflow_profiles/field_general.json +1 -0
- package/vendor/ars/shared/review_criteria_registry.json +207 -0
- package/vendor/ars/shared/review_criteria_sources/msr-2027-technical-papers.2026-08-24.json +46 -0
- package/vendor/ars/shared/review_criteria_sources/sigsoft-empirical-standards.2026-08-24.json +31 -0
- package/vendor/ars/shared/sprint_contract.schema.json +482 -0
- package/vendor/ars/shared/style_calibration_protocol.md +151 -0
- package/vendor/ars/shared/templates/codex_audit_multifile_template.md +263 -0
- package/vendor/ars/tools/release-discipline/.toolkit-version +1 -0
- package/vendor/ars/tools/release-discipline/README.md +4 -0
- package/vendor/ars/tools/release-discipline/scripts/_release_doc_alignment_schema.py +1011 -0
- package/vendor/ars/tools/release-discipline/scripts/check_command_invariants.py +497 -0
- package/vendor/ars/tools/release-discipline/scripts/check_release_doc_alignment.py +263 -0
- package/vendor/ars/tools/release-discipline/scripts/sync-toolkit.sh +147 -0
- package/vendor/windows/NOTICE.md +12 -0
- package/vendor/windows/arm64/fd.exe +0 -0
- package/vendor/windows/arm64/licenses/fd/LICENSE-APACHE +201 -0
- package/vendor/windows/arm64/licenses/fd/LICENSE-MIT +21 -0
- package/vendor/windows/arm64/licenses/ripgrep/COPYING +3 -0
- package/vendor/windows/arm64/licenses/ripgrep/LICENSE-MIT +21 -0
- package/vendor/windows/arm64/licenses/ripgrep/UNLICENSE +24 -0
- package/vendor/windows/arm64/rg.exe +0 -0
- package/vendor/windows/x64/fd.exe +0 -0
- package/vendor/windows/x64/licenses/fd/LICENSE-APACHE +201 -0
- package/vendor/windows/x64/licenses/fd/LICENSE-MIT +21 -0
- package/vendor/windows/x64/licenses/ripgrep/COPYING +3 -0
- package/vendor/windows/x64/licenses/ripgrep/LICENSE-MIT +21 -0
- package/vendor/windows/x64/licenses/ripgrep/UNLICENSE +24 -0
- 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 |
|