Brief

Deterministic claim admissibility
for regulated statistical-evidence review.

CAPAS is a deterministic gate before scientific claims enter reports, governed datasets, or fine-tuning preparation. It checks whether supplied evidence licenses a claim for controlled reuse and returns a replayable packet: verdict, reason, required evidence contract, no-LLM marker, and fine-tune readiness.

Reproducible engine benchmark · pilots pending
1,238synthetic-grid engine decisions across the grid’s 12 claim families (of 14 types)
78%REWRITE or REJECT on the adversarial synthetic grid; not a production drift rate
14fine-tune readiness criteria

Synthetic benchmark. 12/12 families reach at least two verdicts and 9/12 reach all four on an adversarial grid. By contract design, physical_accuracy cannot reach REWRITE and claim_transition cannot reach REJECT; exact_model_solution has REWRITE paths the grid does not exercise. No production pilot has run yet. Benchmark methodology →

Reference gate decisions (fixed, re-derivable)SCHEMA V3
ACCEPTstatistical_confidence: p=0.03 ≤ alpha=0.05, direction confirmed · ff23bfcc
REWRITEthreshold passes; effect direction not licensed · 2a2c5234
REJECTartifact unavailable for reproducibility · 1cc473f8
HOLDincomplete evidence · fail-closed · 9033f4c1
The same four decisions as the front page; hashes re-derive with python3 benchmarks/home_gate_decisions.py.
01 · RISK
Claim drift
A cautious source sentence becomes an over-scoped reusable claim. CAPAS marks the licensed boundary when the claim is declared as a causal claim type or uses a phrase on its fixed pattern list.
02 · INPUT
Select mode
Guided builder, raw JSON, batch evaluation, or paper/text ingestion.
03 · GATE
Run gate
Schema v3 and claim-type rules return ACCEPT, REWRITE, REJECT, or HOLD.
04 · AUDIT
Inspect decision
Reason, evidence spans, provenance blockers, and fine-tune readiness.
Decision packet

The engine’s decision packet, generated and CI-checked.

Complete engine output, 18 fields with audit_hash, on a claim whose reported number re-derives correctly while its supplied accounting evidence is internally inconsistent. benchmarks/brief_decision_packet.py generates it, brief_decision_packet.json publishes it, and a CI check fails if page and engine diverge. To reproduce: pip install capas-claim-gate==0.4.0 and the payload in the JSON. Code and tag: github.com/fomv9354lve/capas-inteligentes. Site numbers come from main; each front-page blind rate names its tag.

{
  "schema_version": "capas-claim-payload-v3",
  "input_claim": {
    "id": "brief_fin_001",
    "type": "financial_metric_claim",
    "text": "Reported net assets of 1000 match the audited reference for the period."
  },
  "verdict": "REJECT",
  "reason": "reported_value differs from reference_value by 0.0, within tolerance 0.5, and period matches; OVERRIDDEN by a domain invariant violation: balance identity VIOLATED: assets 1000.0 != liabilities 600.0 + equity 300.0 (residual 100) — the books do not close",
  "licensed_claim": null,
  "rewrite": null,
  "missing_fields": [],
  "required_fields": [
    "reported_value",
    "reference_value",
    "tolerance",
    "metric_period_match"
  ],
  "schema_errors": [],
  "did_you_mean": {},
  "resolution": {
    "kind": "exclude_or_replace_evidence",
    "message": "The evidence contradicts the claim. Exclude it, or supply new evidence that changes the contract outcome."
  },
  "invariant_audit": {
    "applicable": true,
    "verdict": "FLAG",
    "laws_checked": [
      "accounting"
    ],
    "violations": [
      "accounting"
    ],
    "holds": [],
    "results": {
      "accounting": {
        "applies": true,
        "verdict": "FLAG",
        "law": "assets = liabilities + equity",
        "why": "balance identity VIOLATED: assets 1000.0 != liabilities 600.0 + equity 300.0 (residual 100) — the books do not close"
      }
    },
    "summary": "balance identity VIOLATED: assets 1000.0 != liabilities 600.0 + equity 300.0 (residual 100) — the books do not close"
  },
  "text_licensed_as_written": false,
  "notices": [
    "ai_use_declared: not declared (tool, purpose, phase); required from the X6 freeze"
  ],
  "plan3_checks": {
    "provenance": {
      "declared": 0,
      "verified": 0
    },
    "ai_use_declared": "not declared",
    "uncertainty": "not declared"
  },
  "fine_tune_ready": false,
  "fine_tune_blockers": [
    "claim verdict is not ACCEPT",
    "source-backed evidence is not attached",
    "external review is not attached",
    "claim.text semantic alignment is not externally certified",
    "witness independence is not externally certified",
    "provenance.sources or provenance.source_urls is empty",
    "external review hash is missing or does not match review_packet",
    "source URLs are not recoverable with matching hashes",
    "witness_id is not resolvable in the witness registry",
    "RO-Crate provenance packet is missing, invalid, or hash-mismatched",
    "reviewer identity or attestation is not verifiable",
    "provenance.review_id is missing",
    "provenance.witness_id is missing"
  ],
  "fine_tune_criteria": {
    "verdict_accept": false,
    "schema_clean": true,
    "source_backed_evidence": false,
    "external_review": false,
    "semantic_alignment": false,
    "witness_independence": false,
    "provenance_sources": false,
    "review_hash_verified": false,
    "source_urls_recoverable_hashable": false,
    "witness_registry_resolved": false,
    "ro_crate_validated": false,
    "reviewer_attestation_verified": false,
    "review_id_present": false,
    "witness_id_present": false
  },
  "non_claim": "This decision is rule-based over supplied evidence fields, not an LLM judgment.",
  "audit_hash": "sha256:4a323d7445b6bb14a5ae30d008d5606e5482fcec3db2b986b9b6613509ac5997",
  "rules_fired": [
    "R404ebcc1d2",
    "R498daec9f1"
  ],
  "rule_table_sha256": "sha256:f871e061eb2690b9cc376b5fb07bc6f2d5affbe3de3cc343a16f5dd394cc3dd6",
  "engine_version": "0.4.1",
  "evidence_sha256": "sha256:5c52b7088b555b950f9bf3b373bb062ee681c80475b33d75b835ee99d390664a",
  "audit_hash_recipe": "v2",
  "admissibility_certificate": {
    "calculus_version": "capas-admissibility-calculus-v1",
    "metaphor": "compiler_certificate",
    "claim_contract": {
      "registered": true,
      "claim_type": "financial_metric_claim",
      "description": "Financial metric claims against a reference value and period. With evidence.ledger {rows_csv, metric, period} the engine recomputes reference_value from the rows itself.",
      "required_fields": [
        "reported_value",
        "reference_value",
        "tolerance",
        "metric_period_match"
      ],
      "optional_fields": [
        "metric_name",
        "audit_trail",
        "ledger",
        "object_declared",
        "object_matches_target",
        "load_bearing_citation_read",
        "citation_hypotheses_checked",
        "null_control_passed",
        "ai_use_declared",
        "coverage_factor",
        "abs_error_u",
        "tolerance_u",
        "method_standard",
        "cited_dois",
        "retraction_snapshot",
        "cited_doi_retracted",
        "prereg"
      ],
      "anchor_mode": null,
      "anchor_license": null,
      "absolute_accept_only": false
    },
    "lattice": {
      "axes": {
        "contract": {
          "score": 3,
          "level": "contract_complete"
        },
        "evidence": {
          "score": 2,
          "level": "complete"
        },
        "boundary": {
          "score": 2,
          "level": "claim_excluded"
        },
        "provenance": {
          "score": 0,
          "level": "none"
        },
        "defeaters": {
          "score": 4,
          "level": "no_active_defeater"
        }
      },
      "controlled_reuse_meet": 2,
      "training_reuse_meet": 0,
      "reuse_boundary": "claim_excluded",
      "non_claim": "This lattice orders admissibility of supplied evidence, not scientific truth."
    },
    "dialectic": {
      "thesis": "Reported net assets of 1000 match the audited reference for the period.",
      "licensed_thesis": null,
      "warrant": "reported_value differs from reference_value by 0.0, within tolerance 0.5, and period matches; OVERRIDDEN by a domain invariant violation: balance identity VIOLATED: assets 1000.0 != liabilities 600.0 + equity 300.0 (residual 100) — the books do not close",
      "supports": [
        "evidence.reported_value",
        "evidence.reference_value",
        "evidence.tolerance",
        "evidence.metric_period_match"
      ],
      "optional_supports": [],
      "undercutters": [],
      "rebuttals": [
        "reported_value differs from reference_value by 0.0, within tolerance 0.5, and period matches; OVERRIDDEN by a domain invariant violation: balance identity VIOLATED: assets 1000.0 != liabilities 600.0 + equity 300.0 (residual 100) — the books do not close"
      ],
      "burden_of_proof": []
    },
    "proof_obligations": [],
    "next_action": {
      "kind": "exclude_or_replace_evidence",
      "label": "Exclude this claim or provide new evidence that changes the contract outcome."
    }
  }
}
Decision path

An LLM may be used upstream to extract the payload from a paper or to draft a rewrite suggestion. It is never used to determine admissibility. Versioned deterministic rules over the supplied evidence fields produce the verdict (ACCEPT / REWRITE / REJECT / HOLD). The non_claim field is the machine-readable marker. The REWRITE wording CAPAS returns (licensed_claim) is a deterministic template from the evidence fields; text a model redrafts upstream or downstream is not CAPAS output.

Text-ingested claims also carry source evidence spans. /api/decide and /api/gate return unsigned packets whose audit_hash anyone re-derives. A signed, content-addressed certificate (capas_certstore) is issued only through the auth-gated issuance path on the Security page.

Fine-tune readiness

The 14 fine-tune readiness criteria.

An ACCEPTed claim may still not qualify as training data. These 14 checks, copied from the engine, decide fine_tune_ready after an ACCEPT without changing the verdict. Four criteria are self-declared flags the engine checks only for true. Five are engine-verified; four of those five require a deployment the hosted API lacks: CAPAS_VERIFY_REMOTE_SOURCES=1 for URL recovery, plus local registries (witness registry, reviewer attestations, RO-Crate files) absent from the pip wheel. On the hosted API a payload reaches at most 10/14, so fine_tune_ready is a library-mode property.

verdict_accept · the claim verdict is ACCEPT
schema_clean · no schema or required-field blockers
source_backed_evidence self-declared · source-backed evidence is attached
external_review self-declared · external review is attached
semantic_alignment self-declared · claim text alignment is self-declared, not externally certified
witness_independence self-declared · witness independence is self-declared, not externally certified
provenance_sources · provenance sources / source URLs present
review_hash_verified engine-verified · review hash matches the review packet
source_urls_recoverable_hashable engine-verified · source URLs recoverable with matching hashes
witness_registry_resolved engine-verified · witness ID resolves in the registry
ro_crate_validated engine-verified · RO-Crate packet valid and hash-matched
reviewer_attestation_verified engine-verified · reviewer identity / attestation verifiable
review_id_present · provenance review_id is present
witness_id_present · provenance witness_id is present

Source: capas.evaluate_fine_tune_readiness. Any unmet criterion appears as a named blocker on the packet.

Buyer summary

The three points a buyer evaluates.

Risk

Claim drift

CAPAS checks the point where a cautious source sentence becomes an over-scoped reusable claim.

Control point

Gate before reuse

The gate runs before records enter fine-tuning, publication workflows, governed datasets, or downstream reports.

Audit packet

Structured output

Each output carries decision reason, evidence spans, blockers, and a non-LLM marker.

Mechanism

Evidence contracts decide licensed scope.

The gate checks a claim and its evidence package against a claim-type evidence contract. The contract defines the required evidence and the licensed scope. The gate returns a deterministic verdict.

📥

Input

Claim text and evidence fields: statistical, artifact, source URL, license, reviewer hash.

→
🚧

CAPAS Gate

14 registered claim types and 26 cross-domain invariant gates check the claim against its evidence contract; both counts regenerate from capability_matrix.json. The synthetic grid covers 12 of the 14 types. No LLM in the decision path.

→
📤

Output

ACCEPT REWRITE REJECT HOLD

+ blockers, reviewer action, audit hash, evidence spans

Worked example: editorial review (systematic_review_claim)
ACCEPTall four obligations met

protocol_registered ✓ · inclusion_criteria_declared ✓ · risk_of_bias_assessed ✓ · effect_consistency ✓

The ACCEPT licenses a statement generated from the declared fields; the original sentence is never carried.

REWRITEtwo booleans changed

protocol ✓ · inclusion ✓ · risk_of_bias_assessed ✗ · effect_consistency ✗

CAPAS returns the narrowest licensed wording as a deterministic template from the evidence fields:

“systematic review process is documented; strength or consistency of effect is not fully licensed.”

Two booleans changed the verdict with no language model in the decision; each input has its own audit_hash. The rewrite is the tightest claim the declared evidence licenses. Re-derive it: capas_sdk.gate("systematic_review_claim", evidence, claim_text).

Regulatory context

An auditable evidence trail for training-data governance.

AI-governance frameworks ask teams to document the quality and provenance of the data behind a claim. CAPAS produces that artifact per claim, deterministically, with no model in the decision path. It supports compliance and review work; it does not certify compliance.

EU AI Act · Art. 10

Data governance

Article 10 requires high-risk AI systems to use training, validation, and testing data that meet quality and governance criteria. CAPAS records, per claim, whether supplied evidence licenses reuse: a traceable check when data enters a dataset.

NIST AI RMF

Traceability

The NIST AI Risk Management Framework emphasizes documentation and traceability across the data lifecycle. Every CAPAS decision emits a reason, evidence spans, provenance blockers, and an audit hash, reviewable after the fact.

No LLM judge

Deterministic by design

Unlike LLM-as-judge evaluators, CAPAS has no language model in the decision path, so the same payload yields the same verdict and any decision can be re-run and audited independently.

Regulatory references are context only. CAPAS does not certify compliance with the EU AI Act, the NIST AI RMF, or any other framework; it produces auditable decision artifacts that support governance and review.

Two-week pilot

Claim drift measured on your own corpus.

A controlled operating test: which claims are licensed, which must be rewritten, which must be rejected, and which need more evidence before reuse.

Steps
1

Corpus: pharma statistical-evidence review, the first market. Other verticals follow only after the pilot passes its gate.

2

The Pilot page protocol: records from the sponsor’s own history, where a bad record is one its reviewers later corrected or rejected; nothing seeded; two blind coders; engine frozen at a tag; verdicts sealed by hash before adjudication.

3

Pre-registered go / no-go: false-accept ≤ 30% and false-reject ≤ 25% on at least 40 bad and 40 good adjudicated records (Wilson 95%), κ ≥ 0.70 between coders. Otherwise no-go. Full gate and power →

4

Report in the sealed-batch template: decision mix, coder agreement, false-accept and false-reject with intervals, HOLD share, exclusions and provenance blockers.

ACCEPT

Licensed for controlled reuse. Fine-tune obligations to clear.

REWRITE

Evidence supports a narrower claim. Returns the licensed boundary.

REJECT

Returns which evidence is missing or failing.

HOLD

Returns the steps: supply the missing field, verify provenance, resubmit.

Disclaimers

Required context for buyers.

·

CAPAS evaluates supplied evidence fields only; it does not infer hidden evidence, provide legal advice, certify broad scientific truth, or replace external review.

·

The 1,238 decisions and the 78% REWRITE-or-REJECT share are reproducible from the engine benchmark (benchmarks/family_decision_mix.py) over a synthetic decision-space grid. They are not a production drift rate; production rates require an independently adjudicated corpus.

·

Do not share payload URLs or exports containing confidential source text, reviewer IDs, witness IDs, licensed materials, or proprietary provenance paths without authorization. Data handling & security →