Skip to main content

VERITAS — AI Critique Experimental Report Analysis Framework

Project description

VERITAS v3.4.1

AI Critique Experimental Report Analysis Framework

CI Release PyPI Python 3.10+ License: MIT Coverage Tests SPAR SIDRCE

A sovereignty-grade experimental report critique engine.
Implements the VERITAS v3.3 protocol as a fully executable Python package + REST API + CLI.

VERITAS is the only open framework that closes the full academic submission loop:
Critique → Rebuttal → Journal Score → Response Letter → Revision Diff
— in a single pipeline, offline, with zero cloud dependency.


Why VERITAS?

Submission Loop Closure — VERITAS's most distinctive differentiator is not critique alone.
The Rebuttal Engine + Response Letter Renderer automatically classifies reviewer critiques by
severity (CRITICAL / HIGH / MEDIUM / LOW) and renders a Point-by-Point response letter formatted
for your target journal (IEEE / ACM / Nature). No RAG tool, no paper summarizer, no LLM chatbot
offers this. It is the only framework that closes the full academic submission cycle.

VERITAS v3.3 SciSpace / Elicit ChatPDF / LLM
Architecture CPU-Only · pure Python deterministic pipeline Large-scale cloud server Cloud LLM API
Speed / Resources ~0.3–1 s/doc · parallel batch optimized Server latency (seconds–tens of seconds) Proportional to token generation
Submission loop ✅ Full — Rebuttal Engine + Response Letter ❌ None ❌ Manual prompting only
Author rebuttal ✅ Auto-generated (IEEE / ACM / Nature format)
Journal calibration ✅ 7 profiles (Nature / IEEE / Lancet / Q1–Q3)
Data sovereignty ✅ 100% Offline-First · fully self-hosted ❌ Public cloud dependency ❌ External API (data leak risk)
GPU required ❌ None — pure Python, no model loading ✅ Cloud GPU ✅ Cloud GPU
AI Slop risk ❌ Deterministic — fail-closed guardrails ⚠️ High ⚠️ Very high
Scoring system ✅ Calibrated Ω (SIDRCE Ω = 0.9978 S++) External metrics only (citation count, IF) None

VERITAS is not a research assistant. It is an independent integrity verification engine — a microscope for a single experimental result, not a telescope for surveying literature.


What It Does

Accepts a raw experimental report (text, PDF, DOCX, MD) and produces a structured critique through a 7-phase pipeline, enriched with LOGOS reasoning, HSTA scoring, bibliography analysis, and reproducibility assessment.

Performance: ~1 second per document · CPU-only · no model loading · no GPU required
Governance: SIDRCE Ω = 0.9978 (S++) · Fail-closed architecture · AI Slop guardrails enforced

Phase Name Weight
PRECHECK Artifact Sufficiency Gate
STEP 0 Experiment Classification
STEP 1 Claim Integrity 40%
STEP 2 Traceability Audit 30%
STEP 3 Series Continuity 20%
STEP 4 Publication Readiness 10%
STEP 5 Priority Fix Synthesis

Output enrichment layers:

Engine Output Description
LOGOS IRF-Calc 6D irf_scores M/A/D/I/F/P reasoning quality dimensions
BioMedical-Paper-Harvester HSTA hsta_scores N/C/T/R bibliometric quality
BibliographyAnalyzer bibliography_stats Reference count, formats, year range, quality score
ReproducibilityChecklistExtractor reproducibility_checklist 8-criterion ARRIVE/CONSORT assessment

Workflow

flowchart TD
    A([Document Input<br/>PDF / DOCX / MD / TXT]) --> B[PRECHECK<br/>Artifact Sufficiency Gate]

    B -->|BLOCKED| Z([Halt — insufficient material])
    B -->|FULL / PARTIAL / LIMITED| C[STEP 0<br/>Experiment Classification]

    C --> D[STEP 1<br/>Claim Integrity<br/>40%]
    D --> E[STEP 2<br/>Traceability Audit<br/>30%]
    E --> F[STEP 3<br/>Series Continuity<br/>20%]
    F --> G[STEP 4<br/>Publication Readiness<br/>10%]
    G --> H[STEP 5<br/>Priority Fix Synthesis]

    H --> I([Enrichment Layer])

    I --> J[LOGOS IRF-Calc 6D<br/>Reasoning Quality]
    I --> K[HSTA 4D<br/>Bibliometric Score]
    I --> L[BibliographyAnalyzer<br/>Reference Stats]
    I --> M[ReproducibilityChecklist<br/>8-criterion ARRIVE/CONSORT]

    J & K & L & M --> N[Omega Score<br/>0.0 – 1.0]

    N --> O{Output Format}
    O --> P[Markdown<br/>CLI / Agent]
    O --> Q[DOCX<br/>A4 Professional]
    O --> R[PDF<br/>A4 Print-ready]
    O --> S[LaTeX / TEX<br/>XeLaTeX]
    O --> T[MICA JSON<br/>Skill / Agent Pipeline]

Academic Submission Loop (v3.3)

VERITAS is the only tool that covers the complete author workflow from first submission to final acceptance:

[1] CRITIQUE         veritas critique report.pdf --journal ieee
       |  Omega score, 7-step structured findings, IRF-6D reasoning quality
       v
[2] REBUTTAL         veritas rebuttal report.pdf --style ieee
       |  CRITICAL/HIGH/MEDIUM/LOW severity grading, response templates per finding
       v
[3] JOURNAL SCORE    veritas critique report.pdf --journal nature
       |  Calibrated Omega vs 7 journal profiles (Nature/IEEE/Lancet/Q1/Q2/Q3)
       v
[4] RESPONSE LETTER  veritas rebuttal report.pdf --render-letter --output letter.md
       |  Formal point-by-point letter: IEEE / ACM / Nature formatting
       v
[5] REVISION DIFF    veritas diff report_v1.pdf report_v2.pdf
       |  RCS (Revision Completeness Score): COMPLETE / PARTIAL / INSUFFICIENT

No competing tool (SciSpace, Elicit, ChatPDF, or any LLM chatbot) implements steps 2–5.


Quick Start

pip install flamehaven-veritas

Python API

from veritas import SciExpCritiqueEngine

engine = SciExpCritiqueEngine()
report = engine.critique(report_text)

print(report.precheck.line1)                    # PRECHECK MODE: FULL
print(report.omega_score)                       # 0.8571
print(report.irf_scores.composite)             # LOGOS IRF composite
print(report.bibliography_stats.quality_score) # 0.74

CLI

# Critique from file (output to terminal as Markdown)
veritas critique path/to/report.pdf

# Critique and save formatted report
veritas critique report.pdf --format docx --output report_critique.docx
veritas critique report.pdf --format pdf  --output report_critique.pdf
veritas critique report.pdf --format tex  --output report_critique.tex
veritas critique report.pdf --format md   --output report_critique.md

# Use KU Research Report template
veritas critique report.pdf --template ku --format docx

# Run PRECHECK gate only
veritas precheck report.pdf

# MICA Playbook mode — structured JSON for agent/skill pipelines
veritas critique report.pdf --mica

# Multi-round critique with delta Omega tracking (v2.3+)
veritas critique report.pdf --round 2 --prev report_r1.json

# Batch processing (v2.4+)
veritas batch "*.pdf" --format md --jobs 4 --output-dir results/

# Session memory (v2.5+)
veritas session start
veritas session show

# CR-EP governance (v2.5+)
veritas govern init
veritas govern status

# Peer-review simulation with 3 personas (v3.2+)
veritas review-sim report.pdf --reviewers 3
veritas review-sim report.pdf --reviewers 3 --format md --output sim_result.md

# Rebuttal generation (v3.3+)
veritas rebuttal report.pdf --style ieee
veritas rebuttal report.pdf --style acm --format json --output rebuttal.json
veritas rebuttal report.pdf --style nature --render-letter --output letter.md

# Revision diff — compare v1 vs v2 (v3.3+)
veritas diff report_v1.pdf report_v2.pdf

# Journal-calibrated scoring (v3.3+)
veritas critique report.pdf --journal nature
veritas critique report.pdf --journal ieee
veritas journal-profiles                       # list all 7 built-in profiles

# Domain plugin system (v3.4+)
veritas domains list                           # show all registered IRF domains
veritas critique report.pdf --domain cs        # CS/SE domain scoring
veritas critique report.pdf --domain math      # Formal math domain scoring
veritas critique report.pdf --domain biomedical  # Biomedical (default)
veritas rebuttal report.pdf --domain cs --style ieee

REST API

# Start the server
uvicorn veritas.api.app:app --reload --port 8400

# Submit text
curl -X POST http://localhost:8400/api/v1/critique/text \
  -H "Content-Type: application/json" \
  -d '{"report_text": "...", "template": "bmj", "round_number": 1}'

# CS domain scoring (v3.4+)
curl -X POST http://localhost:8400/api/v1/critique/text \
  -H "Content-Type: application/json" \
  -d '{"report_text": "...", "domain": "cs"}'

# List registered domains (v3.4+)
curl http://localhost:8400/api/v1/domains

# Upload a document
curl -X POST http://localhost:8400/api/v1/critique/upload \
  -F "file=@report.pdf" -F "template=bmj"

# Download formatted report
curl -X POST http://localhost:8400/api/v1/critique/download \
  -F "file=@report.pdf" -F "format=docx" -o critique.docx

Output Formats

Format Flag Description
Markdown --format md Structured .md with tables (low token cost)
DOCX --format docx A4 professional report (python-docx)
PDF --format pdf A4 print-ready (ReportLab)
LaTeX --format tex Standalone .tex (XeLaTeX-compatible, optional compile_pdf)

All outputs use either the BMJ Scientific Editing template or the KU Research Report template (--template bmj|ku).


API Endpoints

Method Path Description
POST /api/v1/critique/text Full critique pipeline (JSON body)
POST /api/v1/critique/upload Full critique pipeline (file upload)
POST /api/v1/critique/download Upload file, receive formatted report
POST /api/v1/precheck PRECHECK gate only
POST /api/v1/classify STEP 0 classification only
POST /api/v1/review-sim Peer-review simulation (v3.2+)
POST /api/v1/rebuttal Author rebuttal generation (v3.3+)
POST /api/v1/rebuttal-upload Rebuttal generation — file upload (v3.3+)
POST /api/v1/diff Revision comparison v1 vs v2 (v3.3+)
POST /api/v1/journal-score Journal-calibrated omega scoring (v3.3+)
POST /api/v1/journal-score-upload Journal score — file upload (v3.3+)
POST /api/v1/response-letter Render formal response letter as Markdown (v3.3+)
GET /api/v1/journal-profiles List all built-in journal profiles (v3.3+)
GET /api/v1/domains List registered IRF scoring domains (v3.4+)
GET /health Liveness check
GET /version Package version

See docs/api_reference.md for full schema.


Enrichment Engines

LOGOS IRF-Calc 6D

Six-dimensional reasoning quality score computed over the critique text:

Dimension Key Meaning
Methodic Doubt M Systematic uncertainty articulation
Axiom / Hypothesis A Central claim falsifiability
Deduction D Logical step validity
Induction I Evidence generalization quality
Falsification F Testability and counter-evidence exposure
Paradigm P Framework consistency
Composite Mean of M+A+D+I+F+P; threshold ≥ 0.78 = PASS

Domain Plugin Architecture (v3.4+)

IRF-6D scoring is domain-aware. Built-in domains:

Domain Key Target IEEE journal hint Lancet journal hint
biomedical Clinical trials, biomedical experiments
cs CS/SE papers, algorithms, systems
math Formal mathematics, proofs, theorems

Each domain defines its own marker banks for all 6 IRF dimensions, composite threshold, and saturation points.

Use via CLI:

veritas critique paper.pdf --domain cs
veritas critique paper.pdf --domain math
veritas domains list            # show all registered domains
veritas domains list --format json

Use via API:

curl -X POST http://localhost:8400/api/v1/critique/text \
  -H "Content-Type: application/json" \
  -d '{"report_text": "...", "domain": "cs"}'

curl http://localhost:8400/api/v1/domains

Write an external domain plugin:

# my_veritas_physics/domain.py
from veritas.logos.domain.base import DomainRuleset

PHYSICS = DomainRuleset(
    domain_key="physics",
    name="Experimental Physics",
    m_markers=("uncertainty principle", "measurement error", "systematic uncertainty"),
    a_markers=("lagrangian", "hamiltonian", "wave function", "quantum state"),
    d_markers=("derivation", "proof", "conservation law", "symmetry argument"),
    i_markers=("experimental data", "cross-section", "scattering amplitude"),
    f_markers=("falsifiable", "exclusion limit", "null hypothesis"),
    p_markers=("standard model", "quantum field theory", "general relativity"),
    composite_threshold=0.78,
    component_min=0.25,
)

Register in pyproject.toml:

[project.entry-points."veritas.domains"]
physics = "my_veritas_physics.domain:PHYSICS"

After pip install my-veritas-physics, the domain appears automatically in veritas domains list.


HSTA 4D (BioMedical-Paper-Harvester)

Four-dimensional bibliometric score:

Dimension Key Meaning
Novelty N Unique technical term density
Consistency C Contradiction marker absence
Temporality T Version / date marker presence
Reproducibility R Method detail completeness
Composite Arithmetic mean (N+C+T+R)/4

Bibliography Analysis

Extracted automatically from the reference section of the submitted document:

  • Total reference count and format detection (Vancouver / APA / Harvard)
  • Year range (oldest → newest)
  • Self-citation detection
  • Quality score: 0.0–1.0 composite (recency 50% + breadth 50%, −10% if self-cites detected)

Reproducibility Checklist

8-criterion assessment derived from ARRIVE 2.0 / CONSORT 2010 / STROBE / TOP Guidelines:

Code Criterion
DATA Open data availability statement
CODE Code / software availability
PREREG Pre-registration declaration
POWER Statistical power / sample size justification
STATS Statistics description (test, software, version)
BLIND Blinding / randomization procedure
EXCL Exclusion criteria stated
CONF Conflict of interest declaration

PRECHECK Modes

FULL     — All artifacts present. Execute STEP 0 through STEP 5 normally.
PARTIAL  — Primary claim evaluable; secondary artifacts missing. Proceed, mark gaps.
LIMITED  — Primary claim partially evaluable. Constrained execution.
BLOCKED  — Insufficient material. Critique halted after PRECHECK.

Traceability Classes

The engine uses exactly three traceability terms (no weaker substitutes):

Class Meaning
traceable Fully anchored to a measured artifact
partially traceable Some anchoring present; incomplete
not traceable No artifact anchor found

Evidence Precedence

Conflicting artifacts are resolved by rank:

  1. Measured artifact / raw result file
  2. Hash manifest / trace log / deviation log
  3. Inline figure or table
  4. Narrative interpretation
  5. Cross-cycle comparison prose

MICA Playbook Mode

The CLI supports MICA (Memory Invocation & Context Archive) structured output for agent / skill pipeline integration:

veritas critique report.pdf --mica

Returns a machine-readable JSON payload suitable for direct consumption by AI agents, orchestrators, or downstream skills — without token overhead of formatted prose.

Load the full playbook at session start:

veritas playbook   # prints memory/playbook.md to stdout

Peer-Review Simulation (v3.2+)

Simulate a 3-member editorial panel, each applying a different calibration stance:

Persona CalibrationGate Bias
strict Omega ≥ 0.85 Conservative; penalises M/D/F deficits × 1.4
balanced Omega ≥ 0.78 Neutral; uniform weighting across 6 IRF dimensions
lenient Omega ≥ 0.70 Liberal; M/D/F penalties reduced to × 0.85

Algorithm:

  1. Run the full SciExpCritiqueEngine once → base IRF-6D scores
  2. Per persona: apply weighted calibrate_omega(irf, weights) → persona Omega
  3. CrossValidator.check_consensus() — consensus reached when spread ≤ 0.30
  4. If consensus_omega < 0.60DR3Protocol.resolve() applies 0.90 penalty factor
  5. Final recommendation: ACCEPT ≥ 0.78 / REVISE ≥ 0.60 / REJECT < 0.60
# CLI — outputs per-reviewer + consensus table + final recommendation
veritas review-sim report.pdf
veritas review-sim report.pdf --reviewers 3 --format md --output peer_review.md

# REST API
curl -X POST http://localhost:8400/api/v1/review-sim \
  -H "Content-Type: application/json" \
  -d '{"report_text": "...", "num_reviewers": 3}'

Rebuttal Engine (v3.3+)

Generate a structured author rebuttal directly from a critique report:

# CLI
veritas rebuttal report.pdf --style ieee
veritas rebuttal report.pdf --style nature --render-letter --output response_letter.md

# REST API
curl -X POST http://localhost:8400/api/v1/rebuttal \
  -H "Content-Type: application/json" \
  -d '{"report_text": "...", "style": "ieee"}'

Each RebuttalItem carries:

Field Description
issue_id R-{step_id}.{finding_index} (e.g. R-1.2)
severity CRITICAL / HIGH / MEDIUM / LOW
category REPRODUCIBILITY / METHODOLOGY / STATISTICS / CLARITY
reviewer_text Original finding text from critique
author_response_template Pre-filled response scaffold

Response Letter Renderer

Converts a RebuttalReport into a formal point-by-point response letter:

Style Format Target
ieee "Author Response to Reviewer Comments" IEEE Transactions / Letters
acm "Response to Reviewer Comments" ACM journals / conferences
nature "Point-by-Point Response to Referees" Nature Portfolio journals
# Render and save letter
veritas rebuttal report.pdf --style ieee --render-letter --output letter.md

# API
curl -X POST http://localhost:8400/api/v1/response-letter \
  -H "Content-Type: application/json" \
  -d '{"report_text": "...", "style": "acm"}'

Journal Profiles + Calibrated Scoring (v3.3+)

Score a report against a target journal's acceptance criteria:

# CLI
veritas critique report.pdf --journal nature
veritas journal-profiles      # show all profiles

# REST API
curl -X POST http://localhost:8400/api/v1/journal-score \
  -H "Content-Type: application/json" \
  -d '{"report_text": "...", "journal": "ieee"}'

Calibrated Omega formula: Σ(q_i × m_i × w_i) / Σ(m_i × w_i) where q_i = step quality, m_i = journal multiplier, w_i = step weight.

7 built-in journal profiles:

Key Accept threshold (Ω) Notes
nature ≥ 0.92 Methods × 1.6, Claim × 1.4
lancet ≥ 0.90 STATS × 1.5, Reproducibility × 1.5
ieee ≥ 0.85 Methods × 1.3, balanced
q1 ≥ 0.85 General Q1 journal profile
q2 ≥ 0.78 General Q2 journal profile
q3 ≥ 0.70 General Q3 journal profile
default ≥ 0.78 Baseline threshold

Verdicts: ACCEPT / REVISE / REJECT


Development

git clone https://github.com/flamehaven01/Flamehaven-Veritas.git
cd Flamehaven-Veritas
pip install -e ".[dev]"

pytest                          # full suite + 80% coverage gate
ruff check src tests            # lint
mypy src                        # type check

CI/CD Pipeline

flowchart LR
    A([git push / PR]) --> B{Trigger}

    B -->|push to main<br/>or develop| C[CI — Python 3.10 / 3.11 / 3.12]
    B -->|push tag<br/>v*.*.*| H[Release]

    subgraph CI [CI Jobs — parallel matrix]
        direction TB
        C --> D[🔍 ruff lint]
        C --> E[🎨 ruff format check]
        C --> F[🔬 mypy type check]
        C --> G[🧪 pytest + coverage ≥ 80%]
    end

    D & E & F & G --> Z([✅ CI Green])

    subgraph Release [Release Pipeline]
        direction TB
        H --> I[python -m build]
        I --> J[PyPI Trusted Publisher]
        J --> K[GitHub Release<br/>auto-generated notes]
    end

Architecture

See docs/architecture.md.


Roadmap

Version Target Features
v2.2 2026 Q2 LOGOS IRF-6D, HSTA 4D, BibliographyAnalyzer, ReproducibilityChecklist, LaTeX output, MICA Playbook
v2.2.1 2026 Q2 SPAR framework optional import fallback, CI green (159 tests, mypy 0 errors), version string fix
v2.3 2026 Q2 Multi-round iterative critique (--round N), delta Omega tracking, DriftEngine (JSD/L2)
v2.4 2026 Q2 Batch processing (veritas batch *.pdf), parallel engine execution, JSON summary index
v2.5 2026 Q2 MICA persistent session memory, CR-EP governance, BM25+RRF RAG, auto-template selection
v3.2 2026 Q2 Peer-review simulation (veritas review-sim), 3-persona consensus, DR3 conflict resolution, tabbed Web UI
v3.3 2026 Q2 Rebuttal engine, journal-calibrated scoring (7 profiles), response letter renderer (IEEE/ACM/Nature), Rebuttal + Journal Score Web UI tabs
v3.4 2026 Q2 Domain plugin architecture — CS/Math/Biomedical IRF scoring, veritas domains list, external plugin entry_points, journal domain_hint
v3.4.1 2026 Q2 Lint/CI hardening — resolve 49 ruff errors (I001, F401, F821, F841, SIM115, UP035/UP037), TYPE_CHECKING guard for DomainRuleset annotation

Acknowledgements

VERITAS is built on top of the Flamehaven Sovereign Stack and draws from the following open research frameworks:

Component Reference
BMJ Scientific Editing Report BMJ Author Services — Medical Scientific Editing Report template
KU Research Report Template University of Kuala Lumpur — Research Report Writing Template
ARRIVE 2.0 Percie du Sert et al. (2020) — Animal Research: Reporting of In Vivo Experiments
CONSORT 2010 Schulz et al. (2010) — Consolidated Standards of Reporting Trials
STROBE von Elm et al. (2007) — Strengthening the Reporting of Observational Studies in Epidemiology
TOP Guidelines Nosek et al. (2015) — Transparency and Openness Promotion Guidelines
IRF-Calc 6D Flamehaven LOGOS Engine — internal reasoning quality metric
HSTA 4D Flamehaven BioMedical-Paper-Harvester — bibliometric scoring framework
MICA v0.2.3 Flamehaven MICA — Memory Invocation & Context Archive for AI agents

License

MIT © 2026 Flamehaven

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flamehaven_veritas-3.4.1.tar.gz (162.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flamehaven_veritas-3.4.1-py3-none-any.whl (144.8 kB view details)

Uploaded Python 3

File details

Details for the file flamehaven_veritas-3.4.1.tar.gz.

File metadata

  • Download URL: flamehaven_veritas-3.4.1.tar.gz
  • Upload date:
  • Size: 162.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for flamehaven_veritas-3.4.1.tar.gz
Algorithm Hash digest
SHA256 acf91d7cb8f5c6bd0f0688fcd377c18862993141bd7f3d40eeb6d3d7add7b06d
MD5 4f755a8605db70bbb6e27395c99e26f2
BLAKE2b-256 fc18ebac442e5657f3cef20ec2750cb54f688dabc0d5b176007d50b12d82314e

See more details on using hashes here.

Provenance

The following attestation bundles were made for flamehaven_veritas-3.4.1.tar.gz:

Publisher: release.yml on flamehaven01/Flamehaven-Veritas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flamehaven_veritas-3.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for flamehaven_veritas-3.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dc4e435e22d213d30b5ec91448fbb6ce7136bebfcbfcfc61cfc0dcc7cf6d74bc
MD5 cc37258683f5bba56acdb0805910de54
BLAKE2b-256 e86f8ba473842a8970351d642e0067989249d59365e9b395bf4244c1753faeb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for flamehaven_veritas-3.4.1-py3-none-any.whl:

Publisher: release.yml on flamehaven01/Flamehaven-Veritas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page