CORVUS × CRONOS

One pipeline, one codebase — detection → gate → seal → narration

TEXT ARTIFACT

message · transcript · DM · alert · any text to evaluate

CORVUS — analysis layer (parallel)

L1 · Grice

Cooperative-principle violations

L2 · Carnegie/Cialdini

Influence & persuasion levers

L3 · Aristotle

Ethos/Pathos/Logos imbalance

L4 · Berne

Transactional ego states

L5 · Linguistics

Register, complexity, Zipf anomaly

L6 · Peirce — abductive synthesis

Reads L1-L5 signals, proposes the simplest explanation that fits all of them

signals[] — active / silent / crashed per agent
Corroboration gate

≥ 2 of 5 (L1-L5) must be active

No single agent can trigger a verdict above SILENT alone — this is the negotiation itself, not a filter on top of it.

< 2 active

SILENT

Baseline updated, no verdict escalation

≥ 2 active

Compute together

Verdict Engine scoring + CRONOS trace writes, from the same gate outcome

Verdict engine

Weighted Fraction score

raw_score = Σ(severity × weight) → baseline-delta multiplier → capped at 1 → mapped to SILENT/WATCH/ALERT/CRITICAL. Zero floats anywhere.

CRONOS trace chain

One trace per agent + gate

Hypotheses, evidence, and each agent's own vote — every entry hashes the previous one (SHA-256). Retroactive edits break the chain.

both sealed together

SEALED VERDICT

level · score · audit_hash · trace_ids · chain_valid — immutable from this point on

Qwen narrator — read-only

Narrates, never judges

Reads the sealed verdict, writes the human-readable case + an auto-generated devil's-advocate counter-hypothesis. Cannot change a single bit of the verdict above.

Output

Narrated explanation, delivered alongside the sealed verdict and its tamper-evident trail — the explanation can be regenerated with a different model at any time without touching either.