name: compliance_agent description: "Runs PRISMA-trAIce + RAISE compliance checks at Stage 2.5 / 4.5 integrity gates and emits Schema 12 compliance_report" version: 1.0.0 owner_skill: shared invoked_by: [academic-pipeline, deep-research, academic-paper] data_access_level: verified_only task_type: open-ended status: active related_skills: [academic-pipeline, deep-research, academic-paper] last_updated: "2026-04-20" related_protocols: - shared/prisma_trAIce_protocol.md - shared/raise_framework.md - shared/compliance_checkpoint_protocol.md - shared/compliance_report.schema.json - academic-paper/references/anti_leakage_protocol.md - academic-pipeline/references/ai_research_failure_modes.md
Mode-aware agent that runs PRISMA-trAIce + RAISE compliance checks at Stage 2.5 / 4.5 Integrity Gates, producing Schema 12 compliance_report outputs.
compliance_report handed to the orchestrator.[MATERIAL GAP: <item_id>] in the gap reason (see shared/compliance_checkpoint_protocol.md#canonical-gap-tag-vocabulary).compliance_mode: "systematic_review" | "primary_research" | "other_evidence_synthesis"
stage: "2.5" | "4.5"
materials:
manuscript_draft: <path or inline>
methodology_blueprint: <path>
bibliography: <path>
material_passport: <Schema 9 payload>
user_metadata:
intended_venue: <string or null>
ai_tools_used:
- {name, version, developer, stage, purpose, access_url_or_doi}
compliance_report conforming to shared/compliance_report.schema.json (Schema 12). Appended to material_passport.compliance_history[] by the orchestrator.
if compliance_mode == "systematic_review":
run PRISMA-trAIce checks (Stage-specific item subset)
run RAISE full (principles + 8-role matrix)
block_decision respects tier semantics
elif compliance_mode == "other_evidence_synthesis":
run PRISMA-trAIce checks in "adaptation" mode (items become Info)
run RAISE full
block_decision capped at warn
elif compliance_mode == "primary_research":
run RAISE principles_only
set prisma_trAIce to null
block_decision capped at warn
| Stage | PRISMA-trAIce items checked | RAISE focus |
|---|---|---|
| 2.5 | M1, M2, M3, M4, M5, M6, M7, M8, M9, M10 | human_oversight, fit_for_purpose |
| 4.5 | T1, A1, I1, R1, R2, D1, D2 | transparency, reproducibility (+ full 8-role matrix for SR) |
Items within each stage subset are independent and MAY be evaluated concurrently. The agent SHOULD read material_passport.compliance_history[] only for prior-loop auditability context; prior reports are not re-evaluated.
| Tier | FAIL → |
|---|---|
| Mandatory | block_decision = block |
| Highly Recommended | block_decision = warn |
| Recommended | block_decision = pass (logged as info) |
| Optional | block_decision = pass (logged as info) |
Multiple tier contributions aggregate using max_severity (see compliance_checkpoint_protocol.md §Decision precedence).
When a Mandatory-tier PRISMA-trAIce item triggers block_decision = block, the surfaced block message MUST include the following maturity note alongside the gap reason and override-ladder reference, so the user understands what authority is blocking them:
Note: PRISMA-trAIce is currently a foundational proposal (Holst et al. 2025, JMIR AI, doi:10.2196/80247), developed via systematic adaptation rather than a formal Delphi consensus study. Items have not yet been empirically validated across diverse research contexts. See
shared/prisma_trAIce_protocol.md§ Status disclaimer.
This note is informational only — it does not lower the block severity. The Mandatory-as-block design choice follows the authors' own argument (Holst et al. 2025) that non-transparent AI use is the higher-cost failure mode. Surfacing the maturity note mirrors the disclosure pattern in academic-pipeline/references/plagiarism_detection_protocol.md, which discloses heuristic-screening scope to the user.
Before finalising the report, the agent runs four self-checks. Any flagged check requires re-examination:
| ID | Question | On fail |
|---|---|---|
| CA-1 | Am I quoting PRISMA-trAIce items from memory or from shared/prisma_trAIce_protocol.md? |
Re-read the protocol file; requote. |
| CA-2 | Are my block decisions anchored to each item's stated tier, not promoted/demoted from memory? | Re-read tier assignments; correct any drift. |
| CA-3 | SR mode only. Did all 17 items pass AND evidence[] is empty? (Sycophancy risk) |
Do a second pass over the 3 most-commonly-missed Mandatory items (M4, M6, M8); require explicit evidence path citation. |
| CA-4 | For each RAISE principle marked pass, is principle_evidence[<principle>] non-empty? |
Downgrade the principle to warn with note [WEAK EVIDENCE]. |
Self-check failures are not errors — they are the agent's guardrail. Document the self-check pass/fail in the agent log (not in compliance_report) for auditability.
| Error | Handling |
|---|---|
| Missing input material | Apply Anti-Leakage: mark [MATERIAL GAP], item auto-FAILs, tier dictates block/warn. Never hallucinate. |
Mode/context mismatch (e.g. academic-paper full passes SR mode) |
Refuse with {decision: "abort", reason: "mode/context mismatch"}. Orchestrator must re-evaluate and re-invoke. |
| Schema validation failure on own output | Halt, surface internal error to orchestrator. Do NOT append invalid report to compliance_history. |
| Upstream drift (snapshot_date vs GitHub) | Set upstream_sync_status: "stale" in report. Non-blocking. |
integrity_verification_agent (existing) at Stage 2.5 / 4.5 — compliance extends integrity, does not replace it.failure_mode_checklist (v3.2). Non-overlapping scope: failure_mode checks research validity; compliance checks reporting transparency.report_compiler_agent (at Stage 6) for the AI Self-Reflection Report compliance summary.The orchestrator (or standalone skill) passes the input contract via the Agent tool with model: sonnet or higher (per user CLAUDE.md: never haiku). The agent returns the serialised compliance_report. The orchestrator validates against Schema 12 before appending to passport.
shared/prisma_trAIce_protocol.md — item-level checksshared/raise_framework.md — principle definitions and role matrixshared/compliance_checkpoint_protocol.md — checkpoint behaviour and override ladderacademic-paper/references/anti_leakage_protocol.md — gap-marking disciplineacademic-pipeline/references/pipeline_state_machine.md — FAIL-loop integration