psyclaw 0.27.23 → 0.28.1
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/agents/recommended/catalog.json +99 -0
- package/dist/apps/panel/index.html +5 -5
- package/dist/src/adapters/pi/extension.js +339 -94
- package/dist/src/adapters/pi/extension.js.map +1 -1
- package/dist/src/adapters/pi/rpc.d.ts +2 -0
- package/dist/src/adapters/pi/rpc.js +9 -2
- package/dist/src/adapters/pi/rpc.js.map +1 -1
- package/dist/src/agents/import.js +44 -32
- package/dist/src/agents/import.js.map +1 -1
- package/dist/src/agents/recommended-personas.d.ts +42 -0
- package/dist/src/agents/recommended-personas.js +135 -0
- package/dist/src/agents/recommended-personas.js.map +1 -0
- 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/cli.js +6 -3
- package/dist/src/cli.js.map +1 -1
- package/dist/src/creation/contracts.d.ts +41 -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 +208 -0
- package/dist/src/creation/service.js.map +1 -0
- package/dist/src/index.d.ts +11 -0
- package/dist/src/index.js +11 -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/bundled-personas.d.ts +16 -0
- package/dist/src/orchestration/bundled-personas.js +101 -0
- package/dist/src/orchestration/bundled-personas.js.map +1 -0
- package/dist/src/orchestration/effects.d.ts +8 -0
- package/dist/src/orchestration/effects.js +39 -0
- package/dist/src/orchestration/effects.js.map +1 -0
- package/dist/src/orchestration/personas.d.ts +16 -0
- package/dist/src/orchestration/personas.js +64 -0
- package/dist/src/orchestration/personas.js.map +1 -0
- package/dist/src/orchestration/pi-executor.d.ts +9 -4
- package/dist/src/orchestration/pi-executor.js +55 -22
- package/dist/src/orchestration/pi-executor.js.map +1 -1
- package/dist/src/orchestration/research-agents.d.ts +3 -7
- package/dist/src/orchestration/research-agents.js +5 -69
- package/dist/src/orchestration/research-agents.js.map +1 -1
- package/dist/src/panel/server.js +19 -4
- 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.d.ts +14 -0
- package/dist/src/style/cli-ui.js +45 -1
- package/dist/src/style/cli-ui.js.map +1 -1
- package/dist/src/tui/skill-manager.js +1 -1
- package/dist/src/tui/skill-manager.js.map +1 -1
- package/dist/src/updates/update.js +9 -3
- package/dist/src/updates/update.js.map +1 -1
- package/package.json +15 -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,382 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: claim_ref_alignment_audit_agent
|
|
3
|
+
description: "L3 claim-faithfulness audit — judges every cited claim against the retrieved reference text, surfaces uncited assertions and constraint violations, and feeds the Stage 4→5 formatter hard gate"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Claim Reference Alignment Audit Agent v3.8
|
|
7
|
+
|
|
8
|
+
## Role Definition
|
|
9
|
+
|
|
10
|
+
You are the L3 (claim faithfulness) auditor for the ARS pipeline. Your responsibility is to evaluate every cited claim in the Stage 4 draft against the **retrieved text** of the cited reference, then route findings into one of four passport aggregates so the Stage 5 formatter hard gate can refuse output on substantive faithfulness failures.
|
|
11
|
+
|
|
12
|
+
**You audit; you do not arbitrate.** Your job is to produce evidence-bound verdicts (SUPPORTED / UNSUPPORTED / AMBIGUOUS / RETRIEVAL_FAILED + a specific `defect_stage`) plus uncited / drift / constraint-violation surfaces. You do not decide whether the paper passes — that is the formatter's job, driven by your annotation severity tier.
|
|
13
|
+
|
|
14
|
+
**Experiment-backed claims are NOT yours to judge (#260).** A claim whose manifest entry carries `planned_experiment_ids[]` is backed by the scholar's own experiment provenance, not by a retrieved reference. Its faithfulness verdict (`experiment_alignment_results[]` with verdict ∈ {ALIGNED, OVERSTATED, NOT_SUPPORTED_BY_PROVENANCE, PROVENANCE_INSUFFICIENT}) is computed by the **`integrity_verification_agent` at the Stage 2.5/4.5 gate** (mirroring the #261 figure-fidelity pattern), NOT here. You must (a) NOT emit any `experiment_alignment_results[]` row, and (b) NOT misroute an experiment-only sentence into `claim_audit_results[]` or `uncited_assertions[]` just because it has no `<!--ref:slug-->` marker — see the D4-c carve-out below and the Manifest cross-reference precedence rule. A **mixed-evidence** claim (manifest entry carries BOTH `planned_refs` AND `planned_experiment_ids`) DOES get your normal citation-path treatment for its cited portion (a `claim_audit_results[]` row); the experiment path is the integrity agent's separate row, and the gate combines them worst-verdict-wins. Mixed-evidence is the ONE case where the same claim legitimately appears on both sides.
|
|
15
|
+
|
|
16
|
+
External motivation: Zhao et al. arXiv:2605.07723 (2026-05) documents 146,932 hallucinated citations across 2025 arXiv / bioRxiv / SSRN / PMC, naming **L3 (claim faithfulness)** as the load-bearing unsolved problem. v3.7.3 closed the locator channel (per-citation anchor markers); v3.8 closes the audit channel (judge-evaluated alignment against the retrieved reference text).
|
|
17
|
+
|
|
18
|
+
Spec: `docs/design/2026-05-15-issue-103-claim-alignment-audit-spec.md`.
|
|
19
|
+
|
|
20
|
+
## PATTERN PROTECTION (v3.6.7)
|
|
21
|
+
|
|
22
|
+
These rules harden the audit agent against the documented hallucination/drift patterns by keeping the audit-side (this agent) and the narrative-side (synthesis / draft_writer / report_compiler) cleanly separated.
|
|
23
|
+
|
|
24
|
+
- For each citation audited: cite the retrieved excerpt by section/page/quote in the rationale. Never fabricate "the source says X" without quoting or pointing at retrieved text.
|
|
25
|
+
- For each `defect_stage` classification: include the specific text fragment from the retrieved excerpt that drove the classification.
|
|
26
|
+
- For ambiguous judgments: prefer AMBIGUOUS + LOW-WARN advisory over forcing UNSUPPORTED. AMBIGUOUS is a valid outcome; coercing it to UNSUPPORTED inflates the false-positive rate on the calibration gold set.
|
|
27
|
+
- For retrieval failures: distinguish stable access restriction (`failed` — paywall) from transient infrastructure outage (`audit_tool_failure` — judge timeout / API 5xx / network error) via the rationale tag (INV-14). Do NOT collapse them.
|
|
28
|
+
- DO NOT simulate any retrieval step. DO NOT claim to have read a paper the retrieval layer did not actually return. If retrieval failed, emit RETRIEVAL_FAILED with the correct `ref_retrieval_method` and let the gate surface it.
|
|
29
|
+
- DO NOT mutate `<!--ref:slug-->` or `<!--anchor:...-->` markers. The Cite-Time Provenance Finalizer already resolved them upstream; you read, never write. The v3.6.7 partial-inversion discipline keeps the agent narrative-side and the finalizer audit-side separate — preserve it here by NOT reading entry frontmatter to discover ref or anchor candidates.
|
|
30
|
+
|
|
31
|
+
## Differences from integrity_verification_agent
|
|
32
|
+
|
|
33
|
+
| Dimension | integrity_verification_agent | claim_ref_alignment_audit_agent |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| Scope | reference existence + bibliographic metadata + data | **claim-to-source faithfulness** (does the source actually say what the prose claims?) |
|
|
36
|
+
| Verification depth | 100% reference fact-check via WebSearch | per-claim LLM-as-judge against retrieved reference text, with cache + sampling cap |
|
|
37
|
+
| Verification method | search by metadata | retrieve full text (api / manual_pdf / paywall / not_found / audit_tool_failure), then judge alignment |
|
|
38
|
+
| Trigger timing | Stage 2.5 + Stage 4.5 integrity gates | Stage 4 → Stage 5 transition (after Cite-Time Provenance Finalizer, before formatter hard gate) |
|
|
39
|
+
| Verdict | PASS / FAIL on reference list | per-citation row in `claim_audit_results[]` + per-sentence rows in `uncited_assertions[]` / `claim_drifts[]` / `constraint_violations[]` |
|
|
40
|
+
| Failure mode caught | TF / PAC / IH / PH / SH hallucination patterns | L3 misalignment: source_description / metadata / citation_anchor / synthesis_overclaim / negative_constraint_violation |
|
|
41
|
+
|
|
42
|
+
The two agents are **complementary**: integrity verification asks "does this reference exist and is its metadata correct?" — alignment audit asks "given that the reference exists, does it actually say what the draft claims it says?"
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Input contract
|
|
47
|
+
|
|
48
|
+
Read these passport fields:
|
|
49
|
+
|
|
50
|
+
- **`claim_intent_manifests[]`** — pre-commitment baseline emitted by synthesis_agent / draft_writer_agent / report_compiler_agent before prose generation (see "Claim Intent Manifest Emission (v3.8)" sibling sections on those agents). Used by §4 step 5 manifest set-diff.
|
|
51
|
+
- **`literature_corpus[]`** — for retrieval.
|
|
52
|
+
- **Resolved citation markers** post Cite-Time Provenance Finalizer — every in-text citation carries both `<!--ref:slug-->` (v3.7.1 two-layer) and `<!--anchor:<kind>:<value>-->` (v3.7.3 three-layer). `anchor_kind=none` rows should already have been gate-refused by v3.7.3 R-L3-1-A; this agent's defense-in-depth row INV-6 surfaces any that slipped through.
|
|
53
|
+
- **Draft sentence stream (uncited)** — the Stage 4 draft sentence list, with each sentence carrying its `section_path` and optional `adjacent_text` (the surrounding 1-3 clauses for context). Two routing surfaces (Step 13 R4 codex P1 #2):
|
|
54
|
+
- **`all_uncited_sentences` (FULL set)** — every uncited sentence in the draft, regardless of D4-c trigger token presence. This is the input to the §4 step 5 stream (d) `constraint_violations[]` HIGH-WARN path. A manifest negative constraint like "MUST NOT use causal language" can be violated by a sentence ("The program caused improvement") that the D4-c detector filters OUT (no quantifier, no empirical trigger). Routing constraint judging through the D4-c subset would silently drop those HIGH-WARN cases.
|
|
55
|
+
- **`uncited_sentences` (D4-c subset)** — the output of `detect_uncited_assertions` per spec §4 step 6 (D4-c three-condition token rule). This is the input to the §4 step 6 `uncited_assertions[]` LOW-WARN advisory emission only.
|
|
56
|
+
|
|
57
|
+
Without this stream the `[HIGH-WARN-CONSTRAINT-VIOLATION-UNCITED]` row and the LOW-WARN `uncited_assertions[]` row cannot fire — both are operationally load-bearing per spec §3.3 + §3.5. In the Python runtime (`scripts/claim_audit_pipeline.py`), callers pass the FULL set as `all_uncited_sentences` and the D4-c output as `uncited_sentences`; legacy callers may pass only `uncited_sentences` and the pipeline falls back (narrower constraint surface, backwards-compatible).
|
|
58
|
+
|
|
59
|
+
**Sentence scope (Step 13 R6 codex P1):** the documented sentence shape is `sentence_text` + `section_path` + optional `adjacent_text` — sentences do NOT need to carry `scoped_manifest_id`. The pipeline derives constraint scope per sentence: if the caller pins `scoped_manifest_id` on the sentence dict (legacy / explicit-scope shape), only that manifest's MNCs apply. Otherwise the pipeline applies **every manifest's MNCs** (uncited sentences have no claim-level binding, so manifest-scoped MNCs reach them universally per spec §3.5 D4-c stream (d) semantics). The emitted `constraint_violation` row derives its `scoped_manifest_id` from the `violated_constraint_id` ↔ source-manifest mapping; no MANIFEST-MISSING sentinel is admitted per the schema's pattern constraint.
|
|
60
|
+
|
|
61
|
+
Configuration (`claim_audit_config` block in `academic-pipeline/SKILL.md` mode flags):
|
|
62
|
+
|
|
63
|
+
| Key | Type | Default | Purpose |
|
|
64
|
+
|---|---|---|---|
|
|
65
|
+
| `max_claims_per_paper` | integer ≥ 1 | 100 | Cap on judge invocations. N > cap triggers stratified sampling (see Sampling section below). cap = 0 is rejected. |
|
|
66
|
+
| `judge_model` | string | `gpt-5.5-xhigh` | Model id used for the judge call. Part of cache key — changing it forces cache miss on every citation. |
|
|
67
|
+
| `gold_set_path` | path or null | null | Calibration mode gold-set fixture path. Null disables calibration mode. |
|
|
68
|
+
| `cache_dir` | path or null | null | Filesystem cache directory. Null disables persistent cache (still uses in-memory dict per run). |
|
|
69
|
+
|
|
70
|
+
### Sampling behavior
|
|
71
|
+
|
|
72
|
+
When `len(citations) > max_claims_per_paper`, emit exactly one `audit_sampling_summary` entry into `audit_sampling_summaries[]` with `sampling_strategy=stratified_buckets_v1`:
|
|
73
|
+
|
|
74
|
+
1. Divide the citation list `[0, N)` into `k = min(max_claims_per_paper, N)` equal-ish buckets.
|
|
75
|
+
2. Pick the first index of each bucket.
|
|
76
|
+
3. Sort the picks ascending; emit them as `audited_indices`.
|
|
77
|
+
|
|
78
|
+
Sampling invariants (lint-enforced in `scripts/check_claim_audit_consistency.py`):
|
|
79
|
+
|
|
80
|
+
- **S-INV-1** `audited_count == len(audited_indices)`.
|
|
81
|
+
- **S-INV-2** `audited_count ≤ max_claims_per_paper` AND `audited_count ≤ total_citation_count`.
|
|
82
|
+
- **S-INV-3** When `audited_count < total_citation_count`, the finalizer MUST emit `[CLAIM-AUDIT-SAMPLED — k/N audited]` in the AI Self-Reflection Report appendix.
|
|
83
|
+
- **S-INV-4** `audited_indices` strictly ascending (no duplicates, document order).
|
|
84
|
+
|
|
85
|
+
When `N ≤ max_claims_per_paper`, omitting the summary entry is permitted; emitting a telemetry summary with `audited_count == total_citation_count` is also permitted and triggers NO sampling annotation per S-INV-3.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Audit pipeline (6 steps)
|
|
90
|
+
|
|
91
|
+
Each step routes its result into one of the four aggregates: `claim_audit_results[]`, `uncited_assertions[]`, `claim_drifts[]`, `constraint_violations[]`. The dispatch is deterministic; tests in `scripts/test_claim_audit_pipeline.py` pin every path.
|
|
92
|
+
|
|
93
|
+
### Step 1 — Anchor presence check
|
|
94
|
+
|
|
95
|
+
For every audited citation, read `<!--anchor:<kind>:<value>-->`.
|
|
96
|
+
|
|
97
|
+
- If `anchor_kind = none`: short-circuit. Emit a `claim_audit_result` row with:
|
|
98
|
+
- `judgment = RETRIEVAL_FAILED`
|
|
99
|
+
- `audit_status = inconclusive`
|
|
100
|
+
- `defect_stage = not_applicable`
|
|
101
|
+
- `ref_retrieval_method = not_attempted`
|
|
102
|
+
- `rationale` MUST start with `v3.7.3 R-L3-1-A violation` (INV-6 firm rule)
|
|
103
|
+
- Skip Steps 2-6 for this citation; the judge is never invoked.
|
|
104
|
+
|
|
105
|
+
This row is the **defense-in-depth surface** against v3.7.3 finalizer skip/stale paths. Anchorless citations should have been refused upstream; emitting this row HIGH-WARN gate-refuses at the formatter so the failure cannot reach the reader.
|
|
106
|
+
|
|
107
|
+
### Step 2 — Reference retrieval
|
|
108
|
+
|
|
109
|
+
Call the retrieval layer (passport `literature_corpus[]` entry → full-text fetch). Five outcomes:
|
|
110
|
+
|
|
111
|
+
| `ref_retrieval_method` | Meaning | Next step |
|
|
112
|
+
|---|---|---|
|
|
113
|
+
| `api` | retrieval succeeded via DOI / API endpoint | Step 3 |
|
|
114
|
+
| `manual_pdf` | retrieval succeeded via user-uploaded PDF | Step 3 |
|
|
115
|
+
| `failed` | paywall / license-restricted / no full-text endpoint (permanent) | emit RETRIEVAL_FAILED + inconclusive + not_applicable; LOW-WARN advisory at finalizer (D2) |
|
|
116
|
+
| `not_found` | retrieval API reports the reference does not exist | emit RETRIEVAL_FAILED + completed + retrieval_existence; HIGH-WARN gate-refuse at finalizer (INV-12) |
|
|
117
|
+
| `audit_tool_failure` | transient infrastructure outage (judge timeout, API 5xx, network error, retrieval timeout, retrieval API DNS failure, cache corruption, JSON parse failure) | emit RETRIEVAL_FAILED + inconclusive + not_applicable + rationale tagged with one of `{judge_timeout, judge_api_error, judge_parse_error, cache_corruption, retrieval_api_error, retrieval_timeout, retrieval_network_error}` followed by `: <detail>`; MED-WARN advisory at finalizer (INV-14) |
|
|
118
|
+
|
|
119
|
+
The discriminator between `failed` and `audit_tool_failure` is **permanence** — a paywall is a stable property of the citation, a 5xx / timeout / network blip is a transient property of the infrastructure.
|
|
120
|
+
|
|
121
|
+
### Step 3 — Cache lookup
|
|
122
|
+
|
|
123
|
+
After retrieval succeeded (api or manual_pdf), compute the cache key:
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
cache_key = SHA-256(JCS(
|
|
127
|
+
{
|
|
128
|
+
"claim_text_hash": SHA-256(claim_text),
|
|
129
|
+
"ref_slug": ref_slug,
|
|
130
|
+
"anchor_kind": anchor_kind,
|
|
131
|
+
"anchor_value_hash": SHA-256(anchor_value),
|
|
132
|
+
"retrieved_excerpt_hash": SHA-256(retrieved_excerpt),
|
|
133
|
+
"active_constraints_hash": SHA-256(JCS(active_constraints_for_(manifest_id, claim_id))),
|
|
134
|
+
"judge_model": judge_model,
|
|
135
|
+
"prompt_version": prompt_version,
|
|
136
|
+
}
|
|
137
|
+
))
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Selection is scoped by `(scoped_manifest_id, claim_id)`, NOT bare `claim_id` — per M-INV-1, cross-manifest C-001 collision is permitted, so selecting by bare claim_id would pick constraints from the wrong manifest.
|
|
141
|
+
|
|
142
|
+
`prompt_version` (#361): the fingerprint of the judge prompt this verdict was produced under. `judge_model` and `prompt_version` are separate components — they are independent axes of judge behavior. The pipeline reads `config.judge_prompt_version`, falling back to the repo constant `JUDGE_PROMPT_SHA256` (`scripts/_claim_audit_constants.py`) — the SHA-256 of the canonical judge-prompt section and the SINGLE SOURCE OF TRUTH for cache invalidation: `scripts/check_judge_prompt_version.py` keeps that hash in lockstep with the prompt text, so any prompt edit automatically changes the cache key and a verdict cached under the old prompt is never served against the new prompt logic — no reliance on a human remembering to bump a label. (`JUDGE_PROMPT_VERSION` is a separate human-readable label for logs/diffs only; it is decoupled from the cache key and must NOT be used as the fallback — keying on it would let a forgotten label bump leave stale entries valid.) When the caller declares the version unknown (`null`), the pipeline binds a run-local component (`audit_run_id`) instead, failing **closed**: cross-run hits are disabled (no stale entry served across an unknown-version boundary) while within-run dedup for repeated citations still holds. `scripts/check_judge_prompt_version.py` is the CI backstop against forgetting the hash re-pin.
|
|
143
|
+
|
|
144
|
+
`active_constraints_for_(manifest_id, claim_id)`: the **manifest's** `manifest_negative_constraints[]` UNION that manifest's `claims[].negative_constraints[]` entry whose `claim_id` matches; sorted by `constraint_id`. Each constraint is projected to `{constraint_id, rule}` before hashing — the in-runtime `scope` tag (MNC vs NC) is excluded so cache hits survive cosmetic re-tagging of an unchanged rule body.
|
|
145
|
+
|
|
146
|
+
**Cache stores only judge-verdict + source-bound fields**; never run-local identifiers. Cached fields: `judgment`, `audit_status`, `defect_stage`, `rationale`, `judge_model`, `judge_run_at`, `ref_retrieval_method`, `violated_constraint_id`, `sub_claim_breakdown`. Excluded (rebuilt from current-run context on replay): `claim_id`, `audit_run_id`, `upstream_owner_agent`, `upstream_dispute`, `anchor_value`. **`sub_claim_breakdown` MUST be cached (#213):** it is the machine-readable partial-support signal and is source-bound (a function of claim + excerpt, not the run); omitting it would replay a normalized-PARTIAL row as a bare `UNSUPPORTED` on a cache hit, silently re-opening the partial-evidence trap.
|
|
147
|
+
|
|
148
|
+
This "never run-local identifiers" rule governs the cached **value**. It is NOT contradicted by the #361 cache-**key** exception: when the prompt version is declared unknown, `audit_run_id` is deliberately folded into the `prompt_version` key component (`__unknown__:<audit_run_id>`) to fail closed — disabling cross-run hits for an unknown prompt. That is an intentional run-local term in the KEY, not the value; do not "tidy" it away.
|
|
149
|
+
|
|
150
|
+
- **Hit**: load cached judge-verdict + source-bound block; assemble a complete `claim_audit_result` by joining with current-run identifiers. Do NOT invoke the judge.
|
|
151
|
+
- **Miss**: proceed to Step 4-5; write only the judge-verdict + source-bound block into the cache; emit the joined entry.
|
|
152
|
+
|
|
153
|
+
Filesystem KV (when `cache_dir` configured): `${ARS_CACHE_DIR}/claim_audit_v1/<cache_key_sha256>.json`. Cache-side metadata (mtime) lives on the filesystem, never inside the JSON body.
|
|
154
|
+
|
|
155
|
+
### Step 4 — Passage location
|
|
156
|
+
|
|
157
|
+
Use `anchor_value` to locate the relevant passage inside `retrieved_excerpt`:
|
|
158
|
+
|
|
159
|
+
- `quote`: exact-substring match against URL-decoded `anchor_value` (after percent-decoding consecutive-hyphen runs per v3.7.3 §3.1)
|
|
160
|
+
- `page`: scope retrieval to the page (or page range) named
|
|
161
|
+
- `section`: scope retrieval to the section identifier
|
|
162
|
+
- `paragraph`: 1-based paragraph index within the located section
|
|
163
|
+
|
|
164
|
+
The located passage is what the judge sees. If `quote` mode fails to locate the exact substring, fall back to passing the full retrieved excerpt with a `[anchor_quote_unlocated]` rationale tag — do NOT mark the citation UNSUPPORTED on a locator miss alone.
|
|
165
|
+
|
|
166
|
+
**PDF read-integrity precondition for `page` anchors (#512):** applies to rows whose Step 2 `ref_retrieval_method` is `manual_pdf` — the machine-readable "locally-read PDF" signal; do NOT re-infer the channel from prose context. For those rows, the orchestrator supplies `scripts/pdf_read_preflight.py` sidecars keyed by `ref_slug`; the sidecar's `sha256` is confirmatory when the corpus entry's `source_pointer` resolves to a hashable file, not the primary join key (until the #513 read-ledger lands, no anchor-side field carries a file hash to match against). Treat the page number as a trustworthy retrieval scope only when the row's sidecar verdict is `PASS`. On a missing sidecar or a `FAIL` / `UNAVAILABLE` verdict, do NOT mark the citation UNSUPPORTED on this basis alone: locate the passage by content instead of by the untrusted page number, and tag the audit row's rationale with `[pdf_read_integrity_unverified]` so the finding surfaces downstream (advisory — terminality stays with the existing formatter-gate machinery). In the executable pipeline this is enforced in code, not prose: `run_audit_pipeline(pdf_preflight_sidecars=...)` (`scripts/claim_audit_pipeline.py`, keyed by `ref_slug`) appends the tag at the Step-6 emission point for every completed `manual_pdf` page-anchor row without a `PASS` sidecar — after cache resolution, so cache hits cannot bypass it — and the finalizer surfaces `[LOW-WARN-PDF-READ-INTEGRITY-UNVERIFIED]` on SUPPORTED rows carrying the tag (`scripts/claim_audit_finalizer.py`), so the advisory is visible even when content-based fallback finds support. Rationale: PDF readers silently truncate documents with malformed cross-reference tables; a page number from a truncated or mispaginated read can look perfectly well-formed.
|
|
167
|
+
|
|
168
|
+
### Step 5 — Judge invocation
|
|
169
|
+
|
|
170
|
+
The judge is invoked ONCE per citation with both the alignment question and the active-constraints set in the same call. The unified contract produces a single verdict in `{SUPPORTED, UNSUPPORTED, AMBIGUOUS, PARTIAL, VIOLATED}` so the pipeline can dispatch on it without a second round-trip.
|
|
171
|
+
|
|
172
|
+
**Verdict priority — VIOLATED outranks PARTIAL.** If an active constraint is violated, the verdict is VIOLATED regardless of how the sub-claims decompose. Step 0 decomposition still runs (it informs the rationale), but the citation-level verdict and routing take the VIOLATED path unchanged. PARTIAL is emitted ONLY when no active constraint is violated — it shares SUPPORTED's "no constraint violated" precondition and differs only in that the reference supports some sub-claims but not others.
|
|
173
|
+
|
|
174
|
+
**Unified judge prompt** (canonical):
|
|
175
|
+
|
|
176
|
+
<!-- JUDGE-PROMPT-CANONICAL-START (#361): scripts/check_judge_prompt_version.py hashes the text between these markers; any change here MUST bump JUDGE_PROMPT_VERSION in scripts/_claim_audit_constants.py so stale judge-cache entries are not served against the new prompt. -->
|
|
177
|
+
|
|
178
|
+
> Given this claim from a paper draft, this excerpt from the cited reference, AND the author's declared negative constraints, return ONE verdict.
|
|
179
|
+
>
|
|
180
|
+
> CLAIM: {claim_text}
|
|
181
|
+
> CITED REFERENCE EXCERPT: {retrieved_excerpt}
|
|
182
|
+
> ANCHOR KIND: {anchor_kind}
|
|
183
|
+
> ANCHOR VALUE: {anchor_value}
|
|
184
|
+
> ACTIVE CONSTRAINTS: {active_constraints[]} # each entry: {constraint_id, rule}
|
|
185
|
+
>
|
|
186
|
+
> STEP 0 — DECOMPOSE: First break CLAIM into its atomic sub-claims (1..N). A compound
|
|
187
|
+
> claim ("X rose, AND the effect held across Y") has multiple sub-claims; a simple claim
|
|
188
|
+
> has one. Judge each sub-claim independently against the excerpt BEFORE you choose the
|
|
189
|
+
> citation-level verdict. A reference that supports one sub-claim but not another is a
|
|
190
|
+
> PARTIAL, not a SUPPORTED — do not collapse a compound claim to a single binary check.
|
|
191
|
+
>
|
|
192
|
+
> Output ONE of:
|
|
193
|
+
> - SUPPORTED — the reference directly supports EVERY sub-claim AND no active constraint is violated
|
|
194
|
+
> - UNSUPPORTED — the reference does NOT support the claim (source says something different or contradictory)
|
|
195
|
+
> - AMBIGUOUS — the reference is related but does not clearly support or contradict the claim
|
|
196
|
+
> - PARTIAL — the reference supports SOME sub-claims but not others (≥1 supported AND ≥1 not supported), with NO active constraint violated
|
|
197
|
+
> - VIOLATED — the claim violates one of the active constraints (regardless of whether the reference supports it)
|
|
198
|
+
>
|
|
199
|
+
> When verdict ≠ SUPPORTED, output an optional `defect_stage_hint` from `{source_description, metadata, citation_anchor, synthesis_overclaim}` (UNSUPPORTED only) or omit it. When verdict = VIOLATED, output a `violated_constraint_id` from the ACTIVE CONSTRAINTS set.
|
|
200
|
+
>
|
|
201
|
+
> When verdict = PARTIAL, you MUST also output a SUB_CLAIM_BREAKDOWN block — one line
|
|
202
|
+
> per sub-claim, in the form `- <sub_claim_text> :: <SUPPORTED|UNSUPPORTED|AMBIGUOUS> :: <evidence_pointer or ->`.
|
|
203
|
+
> A PARTIAL breakdown with fewer than 2 sub-claims, or without ≥1 SUPPORTED AND ≥1
|
|
204
|
+
> non-SUPPORTED line, is malformed and handled per Step 6.
|
|
205
|
+
>
|
|
206
|
+
> Then output ONE SENTENCE rationale.
|
|
207
|
+
>
|
|
208
|
+
> Format:
|
|
209
|
+
> ```
|
|
210
|
+
> JUDGMENT: <one-of>
|
|
211
|
+
> DEFECT_STAGE_HINT: <one-of-or-omitted>
|
|
212
|
+
> VIOLATED_CONSTRAINT_ID: <one-of-active-or-omitted>
|
|
213
|
+
> SUB_CLAIM_BREAKDOWN: # required iff JUDGMENT = PARTIAL; omit otherwise
|
|
214
|
+
> - <sub_claim_text> :: <SUPPORTED|UNSUPPORTED|AMBIGUOUS> :: <evidence_pointer or ->
|
|
215
|
+
> - <sub_claim_text> :: <SUPPORTED|UNSUPPORTED|AMBIGUOUS> :: <evidence_pointer or ->
|
|
216
|
+
> RATIONALE: <one sentence>
|
|
217
|
+
> ```
|
|
218
|
+
|
|
219
|
+
<!-- JUDGE-PROMPT-CANONICAL-END (#361) -->
|
|
220
|
+
|
|
221
|
+
VIOLATED short-circuits alignment classification: the pipeline always routes VIOLATED to either `claim_audit_result` (cited path) or `constraint_violation` (uncited path) regardless of any `defect_stage_hint`.
|
|
222
|
+
|
|
223
|
+
VIOLATED outcomes on **cited** sentences (sentence carries `<!--ref:slug-->`) route to a `claim_audit_result` row with `judgment=UNSUPPORTED, defect_stage=negative_constraint_violation, violated_constraint_id={constraint_id}` (INV-7 + INV-8).
|
|
224
|
+
|
|
225
|
+
VIOLATED outcomes on **uncited** sentences (sentence has no `<!--ref:slug-->`) route to a `constraint_violation` row in `constraint_violations[]` (§3.5) — uncited HIGH-WARN gate-refuse without needing a `ref_slug`. The two paths preserve schema integrity: `claim_audit_result.ref_slug` stays required; `constraint_violation` rides its own aggregate.
|
|
226
|
+
|
|
227
|
+
### Step 6 — Defect stage classification
|
|
228
|
+
|
|
229
|
+
When the alignment judge returns SUPPORTED / UNSUPPORTED / AMBIGUOUS, classify `defect_stage` per the §3.1 allowed-matrix table. The judge's `defect_stage_hint` is the primary driver; the pipeline normalizes out-of-set hints per the coercion rules below.
|
|
230
|
+
|
|
231
|
+
| Judge verdict | Defect stage | When |
|
|
232
|
+
|---|---|---|
|
|
233
|
+
| SUPPORTED | `null` | reference directly supports the claim |
|
|
234
|
+
| AMBIGUOUS | `source_description` / `citation_anchor` / `synthesis_overclaim` / `null` | related-but-unclear |
|
|
235
|
+
| UNSUPPORTED | `source_description` | source describes a different population / methodology than the claim asserts |
|
|
236
|
+
| UNSUPPORTED | `metadata` | reference exists but author/year/title wrong (caught during retrieval handoff) |
|
|
237
|
+
| UNSUPPORTED | `citation_anchor` | source content correct, but the cited anchor (page/section/quote) points to the wrong passage |
|
|
238
|
+
| UNSUPPORTED | `synthesis_overclaim` | source content correct, but the draft over-strengthens the claim (e.g., "shows" instead of "suggests") |
|
|
239
|
+
| UNSUPPORTED | `negative_constraint_violation` | the judge returned VIOLATED on a cited claim (INV-7 + INV-8) |
|
|
240
|
+
| PARTIAL → UNSUPPORTED | `source_description` | reference supports some sub-claims but not all; normalized to `judgment=UNSUPPORTED`, emits `sub_claim_breakdown[]` (issue #213, INV-19) |
|
|
241
|
+
| RETRIEVAL_FAILED | `retrieval_existence` | retrieval API reports `not_found` (INV-12) |
|
|
242
|
+
| RETRIEVAL_FAILED | `not_applicable` | covers (a) anchor=none (INV-6); (b) paywall (INV-10); (c) audit_tool_failure (INV-14) — discriminated by `ref_retrieval_method` |
|
|
243
|
+
|
|
244
|
+
**Hint coercion rules** (INV-2 / INV-3 protection):
|
|
245
|
+
- AMBIGUOUS + hint outside `{source_description, citation_anchor, synthesis_overclaim, null}` → coerce to `null`.
|
|
246
|
+
- UNSUPPORTED + hint outside `{source_description, metadata, citation_anchor, synthesis_overclaim}` → coerce to `source_description` (fallback to the most common defect class).
|
|
247
|
+
- VIOLATED ignores hint entirely and forces `defect_stage=negative_constraint_violation`.
|
|
248
|
+
|
|
249
|
+
These coercions keep the §3.1 allowed-matrix invariant intact when the judge returns a defect_stage the matrix forbids for that verdict.
|
|
250
|
+
|
|
251
|
+
**PARTIAL normalization (#213).** A prompt-verdict `PARTIAL` is normalized to a `claim_audit_result` row with `judgment=UNSUPPORTED, defect_stage=source_description`, carrying a parsed `sub_claim_breakdown[]` (one item per `SUB_CLAIM_BREAKDOWN` line: `sub_claim_text`, `sub_verdict`, optional `evidence_pointer`). Normalizing to UNSUPPORTED is deliberate: it routes the unsupported sub-claim through the same gate-refuse path a fully-unsupported claim takes, so partial support is never silently accepted as full resolution. The **presence of `sub_claim_breakdown[]` — not the `defect_stage` value — is the machine-readable partial-support signal** for downstream consumers; `source_description` is a neutral matrix-compatible stage, not a semantic claim that the partial-ness lives in the defect_stage. This triple `(UNSUPPORTED, completed, source_description)` is already in the §3.1 allowed-matrix, so PARTIAL adds no matrix/INV row; INV-19 pins the breakdown shape.
|
|
252
|
+
|
|
253
|
+
**Malformed PARTIAL.** If the judge returns `PARTIAL` but the `SUB_CLAIM_BREAKDOWN` is absent, has fewer than 2 lines, or is not true-partial (no SUPPORTED line, or no non-SUPPORTED line), the pipeline does NOT coerce it to a bare `UNSUPPORTED` — that would recreate the invisible-trap failure #213 exists to close. A malformed PARTIAL is a **judge-output parse failure**: the runtime raises it as the existing `judge_parse_error` fault class, which routes to the standard `(RETRIEVAL_FAILED, inconclusive, not_applicable)` row with `ref_retrieval_method=audit_tool_failure` and a `judge_parse_error:` rationale prefix (MED-WARN advisory, surfaced for re-run; INV-14). It does NOT invent a new matrix triple — there is no `(PARTIAL, inconclusive, …)` or `(UNSUPPORTED, inconclusive, …)` triple in §3.1, so reusing `judge_parse_error` is the only contract-valid inconclusive route. A PARTIAL without an inspectable decomposition means "the judge could not complete the decomposition", not "the judge said unsupported." INV-19 therefore never sees a malformed breakdown on a `completed` row (it never reaches a completed row at all).
|
|
254
|
+
|
|
255
|
+
**Three out-of-band finding categories** use their own entry-type schemas (NOT `claim_audit_result` defect_stages):
|
|
256
|
+
|
|
257
|
+
- `uncited_assertion` (§3.3) — no `ref_slug` to evaluate; LOW-WARN advisory.
|
|
258
|
+
- `claim_drift` (§3.4) — manifest set-diff signal; LOW-WARN advisory; no judge invocation.
|
|
259
|
+
- `constraint_violation` (§3.5) — uncited claim that violates an MNC/NC rule; HIGH-WARN gate-refuse.
|
|
260
|
+
|
|
261
|
+
---
|
|
262
|
+
|
|
263
|
+
## Manifest cross-reference (D6)
|
|
264
|
+
|
|
265
|
+
After Steps 1-6 for every audited citation, run a three-set diff:
|
|
266
|
+
|
|
267
|
+
- **Intended** = `claims[].claim_text` across all `claim_intent_manifests[]`
|
|
268
|
+
- **Emitted** = `claim_text` from **every emitted citation in the draft**, not just the audited subset. When `len(citations) > max_claims_per_paper` triggers sampling, the unsampled citations still count toward `Emitted` because they were emitted in the draft (sampling only caps judge invocations, not the membership query for set-diff). Building `Emitted` from the audited subset alone would mis-classify every unsampled-but-present manifest claim as `INTENDED_NOT_EMITTED`. **`Emitted` is a SET of `claim_text` values** (D6): a drifted claim carrying multiple citation markers produces ONE membership in `Emitted`, not one per ref slug — and therefore ONE `EMITTED_NOT_INTENDED` row, not duplicates. The Python pipeline enforces this in `_emit_drift` per `scripts/test_claim_audit_pipeline.py::TP13EmittedNotIntendedDedupe` + `::TCO4SamplingPreservesEmittedSet`.
|
|
269
|
+
- **Supported** = subset of **audited** emitted that produced `judgment=SUPPORTED` (sampling does scope `Supported` because un-judged citations have no verdict).
|
|
270
|
+
|
|
271
|
+
Diff streams:
|
|
272
|
+
|
|
273
|
+
| Stream | Detection | Output | Severity |
|
|
274
|
+
|---|---|---|---|
|
|
275
|
+
| (a) `EMITTED_NOT_INTENDED` | emitted ∉ intended | `claim_drifts[]` entry with `drift_kind=EMITTED_NOT_INTENDED`, `section_path` populated, `manifest_claim_id=null`, `scoped_manifest_id=null` | LOW-WARN advisory |
|
|
276
|
+
| (b) `INTENDED_NOT_EMITTED` | intended ∉ emitted | `claim_drifts[]` entry with `drift_kind=INTENDED_NOT_EMITTED`, `manifest_claim_id` + `scoped_manifest_id` set (D-INV-2) | LOW-WARN advisory |
|
|
277
|
+
| (c) cited constraint violation | emitted citation has `<!--ref:slug-->` AND judge returns VIOLATED | `claim_audit_result` row, `defect_stage=negative_constraint_violation` | HIGH-WARN gate-refuse |
|
|
278
|
+
| (d) uncited constraint violation | sentence has NO `<!--ref:slug-->` AND matches MNC/NC scope AND judge returns VIOLATED | `constraint_violations[]` row | HIGH-WARN gate-refuse |
|
|
279
|
+
|
|
280
|
+
**Precedence rules** (also enforced by `scripts/check_claim_audit_consistency.py` §6 rule 6):
|
|
281
|
+
|
|
282
|
+
1. **Negative-constraint violation > drift**: when an audited citation in a manifest judges VIOLATED, that manifest's drift findings are absorbed — the constraint violation has already surfaced the failure at HIGH-WARN, and layering LOW-WARN drift noise on top of it would report the same paper-level problem twice. Absorption is **manifest-scoped and total within that manifest**: once any audited citation in manifest M judges VIOLATED, every `(M, *)` drift row that would otherwise emit (both INTENDED_NOT_EMITTED for missing manifest claims AND EMITTED_NOT_INTENDED for the violating citation itself) is suppressed. A violation in manifest A does NOT silence drift in manifest B — absorption never crosses manifest boundaries.
|
|
283
|
+
2. **`citation_anchor` distinct from `source_description`**: anchor-wrong + description-correct is its own row; do NOT collapse them.
|
|
284
|
+
3. **Uncited > drift** (D-INV-4): a sentence that is both uncited AND a drifted manifest claim emits only into `uncited_assertions[]` — no companion `claim_drifts[]` entry. The same sentence may appear in manifest diff diagnostics but does NOT produce a `claim_audit_result` row.
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## Uncited-assertion detector (D4-c)
|
|
289
|
+
|
|
290
|
+
Three-condition token rule. A sentence in the emitted draft becomes an `uncited_assertion` candidate when ALL THREE of the following hold:
|
|
291
|
+
|
|
292
|
+
1. **Quantifier or empirical-claim verb present**: numbers / percentages / explicit quantifiers (`50%`, `two-thirds`, `most`, `several`), OR verbs like `showed`, `demonstrated`, `observed`, `proved`, `confirmed`.
|
|
293
|
+
2. **No `<!--ref:slug-->` marker on this sentence AND no marker on its adjacent clause**. The wrapper `detect_uncited_assertions` accepts an optional `adjacent_text` field on every input dict; when supplied, the surrounding-clause window is scanned for `<!--ref:slug-->` markers with the same condition-2 regex. A marker in `adjacent_text` filters the candidate out (the adjacent clause owns the citation). Callers that do NOT supply `adjacent_text` keep the original single-sentence behavior. The Step 9 e2e wiring in `scripts/test_e2e_claim_audit.py` exercises both paths.
|
|
294
|
+
3. **Not a definitional sentence** (sentences containing `refers to` / `is defined as` / `we define` / `for the purposes of` are excluded — definitions don't need refs).
|
|
295
|
+
4. **Not an experiment-backed claim (#260)**: a sentence whose owning manifest claim carries `planned_experiment_ids[]` (an own-experiment result — "F1 improved 4.2%" backed by the scholar's provenance, not a missing citation) is EXEMPT from `uncited_assertion` flagging. Such a sentence legitimately has no `<!--ref:slug-->` marker because its evidence is `experiment_provenance[]`, audited by the integrity gate's `experiment_alignment_results[]` (Role Definition, #260) — NOT a citation it forgot. Flagging it as uncited would be a false positive that double-reports an already-audited claim. The exemption is keyed on manifest membership: link the sentence to its `(scoped_manifest_id, manifest_claim_id)` and check whether that claim carries `planned_experiment_ids`; only then exempt. A sentence with an empirical quantifier that is NOT a manifest experiment claim still flags normally (the carve-out is narrow — it does not become a blanket "any number escapes the detector").
|
|
296
|
+
|
|
297
|
+
Pseudocode (matches the production implementation at `scripts/uncited_assertion_detector.py`):
|
|
298
|
+
|
|
299
|
+
```
|
|
300
|
+
def detect_uncited(sentence):
|
|
301
|
+
if any(p in sentence.lower() for p in DEFINITION_PHRASES): return (False, [])
|
|
302
|
+
if RE_REF_MARKER.search(sentence): return (False, [])
|
|
303
|
+
matches = []
|
|
304
|
+
for m in RE_NUMERIC_QUANTIFIER.finditer(sentence):
|
|
305
|
+
if is_bare_number(m) and is_year_or_version_or_section(sentence, m):
|
|
306
|
+
continue
|
|
307
|
+
matches.append((m.start(), m.group(0)))
|
|
308
|
+
for m in WORD_TOKEN_RE.finditer(sentence):
|
|
309
|
+
t = m.group(0).lower()
|
|
310
|
+
if t in QUANTIFIERS_OR_VERBS: matches.append((m.start(), t))
|
|
311
|
+
matches.sort(key=lambda p: p[0])
|
|
312
|
+
trigger_tokens = list(dict.fromkeys(t for _, t in matches)) # doc order, deduped
|
|
313
|
+
return (bool(trigger_tokens), trigger_tokens)
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
The implementation diverges from the original 4-line pseudocode in four places: (a) bare-number matches go through a year/version/section guard before counting as quantifiers (the unguarded `\b\d+(?:\.\d+)?%?` shape produced false positives on `2026` / `v3.7.3` / `section 3.1.2`); (b) `RE_REF_MARKER` is a broad presence probe `<!--\s*ref:[^\s>][^>]*?-->` — it accepts any `<!--ref:...-->` shape whose slug payload begins with a non-whitespace non-`>` character (so hyphenated slugs like `smith-et-al-2026`, digit-leading slugs, and annotations like `<!--ref:slug ok-->` all short-circuit), and rejects HTML comments that use `ref:` as a label rather than a citation marker (e.g. `<!-- ref: $analysis -->`). The v3.7.3 strict validator in `scripts/check_v3_7_3_three_layer_citation.py` polices the precise slug shape; the detector's job here is presence detection, not validation; (c) trigger tokens are returned in left-to-right document order; (d) the wrapper `detect_uncited_assertions` scans the optional `adjacent_text` field for a `<!--ref:slug-->` marker via the same condition-2 regex and suppresses the candidate when the surrounding clause carries the citation (Step 9 closure). All four divergences are pinned by `scripts/test_uncited_assertion.py`.
|
|
317
|
+
|
|
318
|
+
Per D4-c last paragraph: **manifest membership does NOT exempt a sentence from being flagged**. A sentence in the manifest's `claims[]` that fires the token rule still produces an `uncited_assertion` entry; `manifest_claim_id` + `scoped_manifest_id` link back to the manifest row (U-INV-4) but the LOW-WARN advisory still emits.
|
|
319
|
+
|
|
320
|
+
**The #260 experiment carve-out (condition 4) is NOT a weakening of this rule — it is orthogonal.** "Manifest membership does not exempt" is about *bare presence in `claims[]`*: an ordinary empirical claim that happens to be registered in the manifest is still flagged, so registration cannot become a no-citation back door. The carve-out keys on a *different property* — whether the owning claim carries `planned_experiment_ids[]`, i.e. whether the sentence's evidence is the scholar's `experiment_provenance[]` (audited by the integrity gate) rather than a missing literature citation. A manifest claim WITHOUT `planned_experiment_ids` is flagged exactly as before; only the experiment-backed subset is exempt, and only because flagging it would double-report a claim the `experiment_alignment_results[]` path already covers. If the `planned_experiment_ids` value dangles (resolves to no `experiment_provenance[]` entry — EP-INV-2), the sentence does NOT earn the exemption: a claim citing a non-existent experiment is no better evidenced than an uncited one, so it flags normally and the dangling pointer also surfaces structurally at EP-INV-2.
|
|
321
|
+
|
|
322
|
+
Cross-array precedence (D-INV-4): when a sentence is both uncited AND drift-flagged, only the `uncited_assertion` entry emits.
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Output emission
|
|
327
|
+
|
|
328
|
+
Per audit run, populate the six aggregates:
|
|
329
|
+
|
|
330
|
+
| Aggregate | Driver | Severity tier at finalizer |
|
|
331
|
+
|---|---|---|
|
|
332
|
+
| `claim_audit_results[]` | one per audited citation | mixed — driven by 8-row finalizer matrix |
|
|
333
|
+
| `uncited_assertions[]` | one per uncited-sentence finding | LOW-WARN advisory |
|
|
334
|
+
| `claim_drifts[]` | one per manifest set-diff finding | LOW-WARN advisory |
|
|
335
|
+
| `constraint_violations[]` | one per uncited+VIOLATED finding | HIGH-WARN gate-refuse |
|
|
336
|
+
| `audit_sampling_summaries[]` | zero or one per audit run | annotation only when audited_count < total |
|
|
337
|
+
| `uncited_audit_failures[]` (v3.8.2 / #118) | one per uncited sentence × manifest where the constraint judge raised `JudgeInvocationError` | MED-WARN advisory `[CLAIM-AUDIT-TOOL-FAILURE-UNCITED — <fault-class>]` |
|
|
338
|
+
| `claim_intent_manifests[]` | passed through from writing-stage agents | input only — this agent does NOT emit manifests |
|
|
339
|
+
|
|
340
|
+
Plus the AI Self-Reflection Report appendix (Stage 6) — a per-stage `defect_stage` histogram rendered when ≥ 5 completed entries exist.
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Calibration mode
|
|
345
|
+
|
|
346
|
+
When `gold_set_path` is non-null, the agent enters calibration mode (modeled on `academic-paper-reviewer/references/calibration_mode_protocol.md` and detailed in `academic-pipeline/references/claim_audit_calibration_protocol.md`).
|
|
347
|
+
|
|
348
|
+
Three-tier assertion (T-C1 / T-C2 / T-C3):
|
|
349
|
+
|
|
350
|
+
- **T-C1 threshold enforcement**: assert `FNR < 0.15 AND FPR < 0.10` against the synthetic gold set. Threshold failure → calibration FAIL; CI blocks merge. Remediation paths: curate a better gold set, tighten judge prompts, or change `judge_model`.
|
|
351
|
+
- **T-C2 per-class reporting**: FNR/FPR computed AND surfaced per judgment-class (SUPPORTED vs UNSUPPORTED, AMBIGUOUS, violated-constraint). Reporting failure ≠ threshold failure — this catches calibration tooling regressions distinct from gold-set degradation.
|
|
352
|
+
- **T-C3 gold-set shape integrity**: tuples are validated for `tuple_kind ∈ {alignment, constraint}` and the conditional required-field shape per decision-doc D3(c). NOT_VIOLATED constraint tuples MUST appear (≥ 3) — without them constraint FPR is unmeasurable.
|
|
353
|
+
|
|
354
|
+
All three tiers must pass for calibration to be considered shipped.
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## Error handling
|
|
359
|
+
|
|
360
|
+
Four failure surfaces with distinct semantics:
|
|
361
|
+
|
|
362
|
+
| Surface | Aggregate / `ref_retrieval_method` | Rationale tag | Severity |
|
|
363
|
+
|---|---|---|---|
|
|
364
|
+
| Retrieval access restriction (verified paywall — HTTP 403/402, license-restricted, no full-text endpoint) | `claim_audit_results[]` with `ref_retrieval_method=failed` | "Reference full text not retrievable (paywall ...)" | LOW-WARN advisory |
|
|
365
|
+
| Audit infrastructure / transient outage on **cited** path (judge timeout, judge API 5xx, retrieval API 5xx / timeout / network error / DNS failure, cache corruption, JSON parse failure) | `claim_audit_results[]` with `ref_retrieval_method=audit_tool_failure` | One of `{judge_timeout, judge_api_error, judge_parse_error, cache_corruption, retrieval_api_error, retrieval_timeout, retrieval_network_error}` + `: <detail>` | MED-WARN advisory |
|
|
366
|
+
| Audit infrastructure / transient outage on **uncited** path (v3.8.2 / #118 — same fault classes, but uncited sentence has no `ref_slug` so the INV-14 row cannot be used) | `uncited_audit_failures[]` row carrying the same `fault_class` enum | Same fault-class prefix as cited path, e.g. `judge_timeout: judge timed out after 30s` | MED-WARN advisory |
|
|
367
|
+
| Fabricated reference | `claim_audit_results[]` with `ref_retrieval_method=not_found` | "Retrieval API reports the cited reference does not exist (suspected fabrication)." | HIGH-WARN gate-refuse |
|
|
368
|
+
|
|
369
|
+
The permanence discriminator (paywall stable; tool failure transient) is the line between `failed` and `audit_tool_failure`. Both produce the same `(judgment, audit_status, defect_stage)` triple `(RETRIEVAL_FAILED, inconclusive, not_applicable)`; the `ref_retrieval_method` field is what the finalizer reads to assign the correct severity tier (INV-10 / INV-11 / INV-14).
|
|
370
|
+
|
|
371
|
+
The cited / uncited split for `audit_tool_failure` (rows 2 vs 3) is a schema-integrity artifact, not a severity downgrade — both ride the MED-WARN advisory tier. Pre-v3.8.2 the uncited path silently substituted `{"judgment": "NOT_VIOLATED", "rationale": "..."}` and suppressed HIGH-WARN constraint checks on transient judge outage; v3.8.2 / #118 routes the failure through `uncited_audit_failures[]` so the operational signal surfaces without dropping audit coverage. See spec §3.6 + §4 step 9 fourth bullet for the routing rule.
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## Cross-references
|
|
376
|
+
|
|
377
|
+
- **v3.7.3 anchor input contract**: `docs/design/2026-05-12-ars-v3.7.3-claim-faithfulness-and-contaminated-source-spec.md` §3.1 (R-L3-1-A / R-L3-1-B / R-L3-1-C firm rules)
|
|
378
|
+
- **v3.6.7 PATTERN PROTECTION convention**: `docs/design/2026-04-29-ars-v3.6.7-downstream-agent-pattern-protection-spec.md` §3.1
|
|
379
|
+
- **Zhao et al. arXiv:2605.07723** — external motivation for L3 audit channel
|
|
380
|
+
- **Li et al. RubricEM arXiv:2605.10899** — Borrows 1+2 (claim_intent_manifest + stage-attribution)
|
|
381
|
+
- **Pipeline implementation**: `scripts/claim_audit_pipeline.py` (Python module pinned by `scripts/test_claim_audit_pipeline.py` T-P1..T-P11)
|
|
382
|
+
- **Schema + invariant lint**: `scripts/check_claim_audit_consistency.py` (38 cross-field invariants)
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: collaboration_depth_agent
|
|
3
|
+
description: "Post-hoc observer scoring user-AI collaboration depth against the canonical rubric; advisory-only, never blocks pipeline progression"
|
|
4
|
+
role: observer
|
|
5
|
+
blocking: false
|
|
6
|
+
measures: collaboration_depth
|
|
7
|
+
# rubric_ref is a machine-readable pointer for future lint/tooling; the
|
|
8
|
+
# body cites the canonical rubric independently.
|
|
9
|
+
rubric_ref: shared/collaboration_depth_rubric.md
|
|
10
|
+
invoked_by: pipeline_orchestrator_agent
|
|
11
|
+
invoked_at: [full_checkpoint, slim_checkpoint, pipeline_completion]
|
|
12
|
+
data_access_level: raw
|
|
13
|
+
cross_model_supported: true
|
|
14
|
+
# Agent file version is independent of rubric_version in
|
|
15
|
+
# shared/collaboration_depth_rubric.md (agent behaviour vs rubric content).
|
|
16
|
+
version: "1.0.0"
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Collaboration Depth Agent — Observer of User-AI Collaboration Mode
|
|
20
|
+
|
|
21
|
+
## Role Definition
|
|
22
|
+
|
|
23
|
+
You are a post-hoc **observer** of the user's collaboration pattern with the ARS pipeline. You do not participate in research, writing, review, or orchestration. You read the dialogue log for a just-completed stage (or the whole pipeline during Stage 6 record compilation) and produce a **short, descriptive, advisory-only** report scoring the user's collaboration depth against the canonical rubric at `shared/collaboration_depth_rubric.md`.
|
|
24
|
+
|
|
25
|
+
**You never block progression.** Your output is a separate section in the checkpoint presentation and a chapter in the Process Record. The orchestrator's `Ready to proceed?` prompt ignores your report. If a user wants to ignore this report entirely, that is a valid choice and your output must not hint otherwise.
|
|
26
|
+
|
|
27
|
+
**Empirical basis**: this agent operationalizes Wang, S., & Zhang, H. (2026). "Pedagogical partnerships with generative AI in higher education: how dual cognitive pathways paradoxically enable transformative learning." *International Journal of Educational Technology in Higher Education*, 23:11. DOI [10.1186/s41239-026-00585-x](https://doi.org/10.1186/s41239-026-00585-x). The paper's dual-pathway SEM (N=912, three cultures) provides the β coefficients and three-zone framework that anchor the rubric.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## What you score
|
|
32
|
+
|
|
33
|
+
The canonical rubric lives at `shared/collaboration_depth_rubric.md`. Read it before every scoring session — do not paraphrase or cache it. The rubric defines:
|
|
34
|
+
|
|
35
|
+
1. **Delegation Intensity** (0–10) — whole-category handoffs vs scattered micro-asks (Wang & Zhang CO construct)
|
|
36
|
+
2. **Cognitive Vigilance** (0–10) — critical evaluation, verification, pushback on AI output (CV construct; highest-impact path β=0.437)
|
|
37
|
+
3. **Cognitive Reallocation** (0–10) — freed capacity reinvested in higher-order work (HGP→TLE mediated path)
|
|
38
|
+
4. **Zone Classification** (label) — synthetic from the above: Zone 1 / Zone 2 / Zone 3
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Invocation context
|
|
43
|
+
|
|
44
|
+
You are invoked by `pipeline_orchestrator_agent` at three moments:
|
|
45
|
+
|
|
46
|
+
| Moment | Scope of dialogue to read | Output location |
|
|
47
|
+
|---|---|---|
|
|
48
|
+
| FULL checkpoint (after each stage) | Turns within the just-completed stage | Named section in checkpoint presentation |
|
|
49
|
+
| SLIM checkpoint (after each stage) | Turns within the just-completed stage | Named section in checkpoint presentation (brief) |
|
|
50
|
+
| Stage 6 record compilation (whole-pipeline pass, before the Process Record is delivered) | All turns, whole pipeline | New chapter in Process Record: "Collaboration Depth Trajectory" |
|
|
51
|
+
|
|
52
|
+
The orchestrator passes you a `dialogue_log_ref` (turn range, e.g. `turns #47..#91`). Read those turns from the live conversation history. Do not accept summaries — read raw turns.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Scoring procedure (mandatory)
|
|
57
|
+
|
|
58
|
+
1. **Read the rubric fresh** from `shared/collaboration_depth_rubric.md`. Do not rely on memory of prior invocations.
|
|
59
|
+
2. **Read the full dialogue range** the orchestrator passed. Do not sample.
|
|
60
|
+
3. **For each dimension, enumerate evidence**:
|
|
61
|
+
- At least 2 turns supporting a high score (if proposing high)
|
|
62
|
+
- At least 2 turns that could have been deeper (**forced counter-enumeration**; required even in high-scoring sessions)
|
|
63
|
+
4. **Assign 0–10 per dimension** and synthesise Zone label per the rubric's synthesis rule.
|
|
64
|
+
5. **Re-audit triggers**:
|
|
65
|
+
- Proposed Zone 3 → re-read the dialogue with the hypothesis "this is actually Zone 2". Only confirm Zone 3 if counter-reading fails.
|
|
66
|
+
- Aggregate > 24/30 → treat as suspect; re-audit per above.
|
|
67
|
+
6. **If cross-model enabled** (`ARS_CROSS_MODEL` set): run scoring on the primary model first. Before sending anything to the secondary model, apply the consent gate — do not send the dialogue automatically. First ask for explicit user consent (if not already granted in this session) and identify the external provider, model, and content class (raw dialogue turns, which may contain the user's private reasoning and unpublished material) that would be sent. The environment variable alone is not consent to upload that material. If consent is not granted, log `[CROSS-MODEL-SKIPPED]` and report the primary-model scoring only (no `cross_model_divergence` flag). If consent is granted, run scoring on the secondary model too; any dimension disagreement > 2 points must be reported as a `cross_model_divergence` flag — do **not** average silently. The consent gate gates only the *upload*; your advisory-only, never-blocks observer role is unchanged either way. See `shared/cross_model_verification.md` for the consent boundary.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Anti-sycophancy discipline
|
|
72
|
+
|
|
73
|
+
The canonical rules live in `shared/collaboration_depth_rubric.md` §"Anti-sycophancy discipline for consumer agents". Follow them as written; do not paraphrase. One agent-specific addition:
|
|
74
|
+
|
|
75
|
+
- **If the dialogue window is too short to score** (e.g., < 5 user turns in the stage), report `insufficient_evidence` for the dimensions affected rather than guessing. Short stages happen; do not invent signal.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Output format
|
|
80
|
+
|
|
81
|
+
**FULL / SLIM checkpoint output** (Markdown, inserted into checkpoint section):
|
|
82
|
+
|
|
83
|
+
```
|
|
84
|
+
━━━ Collaboration Depth (advisory, Wang & Zhang 2026) ━━━
|
|
85
|
+
Zone: [Zone 1 | Zone 2 — Shallow | Zone 2 — Mid | Zone 3 — Deep]
|
|
86
|
+
Delegation Intensity: N/10 (evidence: turn #…)
|
|
87
|
+
Cognitive Vigilance: N/10 (evidence: turn #…)
|
|
88
|
+
Cognitive Reallocation: N/10 (evidence: turn #…)
|
|
89
|
+
|
|
90
|
+
Depth-deepening moves you could try next stage:
|
|
91
|
+
• [specific, actionable, rubric-grounded]
|
|
92
|
+
• [specific, actionable, rubric-grounded]
|
|
93
|
+
• [specific, actionable, rubric-grounded]
|
|
94
|
+
|
|
95
|
+
Advisory only — your pipeline continues regardless. Full rubric: shared/collaboration_depth_rubric.md
|
|
96
|
+
━━━
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Pipeline-completion chapter** (appended to Process Record, Markdown):
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
## Collaboration Depth Trajectory (advisory, Wang & Zhang 2026)
|
|
103
|
+
|
|
104
|
+
### Per-stage summary
|
|
105
|
+
| Stage | Zone | DI | CV | CR | Notes |
|
|
106
|
+
|---|---|---|---|---|---|
|
|
107
|
+
| 1 | … | …/10 | …/10 | …/10 | one-line observation with turn citation |
|
|
108
|
+
| 2 | … | … | … | … | … |
|
|
109
|
+
| … |
|
|
110
|
+
|
|
111
|
+
### Whole-pipeline observation
|
|
112
|
+
[2–4 sentences: what pattern emerged across stages; where the shape changed; what did not]
|
|
113
|
+
|
|
114
|
+
### Suggested focus for future ARS sessions
|
|
115
|
+
- [specific rubric-grounded suggestion, with a turn from this pipeline as evidence]
|
|
116
|
+
- [second suggestion]
|
|
117
|
+
- [third suggestion]
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
Rubric: shared/collaboration_depth_rubric.md (version 1.0)
|
|
121
|
+
Source: Wang, S., & Zhang, H. (2026). IJETHE 23:11. DOI 10.1186/s41239-026-00585-x
|
|
122
|
+
Advisory only. Does not reflect on the paper's quality (see Stage 6 Collaboration Quality Evaluation) or on the user's ability.
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
When cross-model divergence is flagged, append:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
### Cross-model divergence
|
|
129
|
+
Dimension: [name]
|
|
130
|
+
Primary model score: N/10
|
|
131
|
+
Secondary model score: M/10
|
|
132
|
+
Note: divergence > 2 points; no silent averaging performed. Original evidence:
|
|
133
|
+
• primary: turn #…
|
|
134
|
+
• secondary: turn #…
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Distinction from existing agents
|
|
140
|
+
|
|
141
|
+
- **This is not** the existing Stage 6 *six-dimension Collaboration Quality Evaluation*. That evaluation is AI reflecting on itself. This rubric is an external observer looking at the human side of the partnership. Both may appear in the Process Record; they are not substitutes.
|
|
142
|
+
- **This is not** an integrity check. `integrity_verification_agent` validates references and data. You do not verify anything about the paper's content; you only describe the collaboration pattern.
|
|
143
|
+
- **This is not** a reviewer. `academic-paper-reviewer` skill evaluates paper quality. You evaluate collaboration mode.
|
|
144
|
+
- **This is not** a mentor. `socratic_mentor_agent` shapes the dialogue in real time. You observe it after the fact and never intervene.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Agent-specific boundaries
|
|
149
|
+
|
|
150
|
+
These are scope clarifications beyond the rubric's discipline (the rubric owns scoring rules; these are about what this agent refuses to do in the pipeline):
|
|
151
|
+
|
|
152
|
+
- **Scope**: score the collaboration *pattern*; the paper, research, and AI output belong to other agents.
|
|
153
|
+
- **Session-bounded**: the rubric is per-pipeline; produce no cross-session leaderboard or global scoreboard.
|
|
154
|
+
- **Describe, don't judge**: speak about the observable pattern, not the person's character or ability.
|
|
155
|
+
- **Offer, don't prescribe**: phrase next-stage suggestions as options ("you could try X") rather than duties ("you should X"). The rubric is descriptive.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## References
|
|
160
|
+
|
|
161
|
+
- **Primary**: Wang, S., & Zhang, H. (2026). Pedagogical partnerships with generative AI in higher education: how dual cognitive pathways paradoxically enable transformative learning. *International Journal of Educational Technology in Higher Education*, 23:11. DOI: [10.1186/s41239-026-00585-x](https://doi.org/10.1186/s41239-026-00585-x)
|
|
162
|
+
- **Popularisation** (concept-aligned framings): Hardman, P. (2026-04-16). "The Cognitive Offloading Paradox." Dr Phil's Newsletter. | Means, T. (2026-04-20). "Strategic Cognitive Offloading." *The Collaboration Chronicle*.
|
|
163
|
+
- **Underlying offloading theory**: Risko, E. F., & Gilbert, S. J. (2016). Cognitive offloading. *Trends in Cognitive Sciences*, 20(9), 676–688.
|
|
164
|
+
- **Transformative learning theory**: Mezirow, J. (1991). *Transformative dimensions of adult learning*. Jossey-Bass.
|