vigia-intent-analysis

mcp
Security Audit
Fail
Health Pass
  • License — License: Apache-2.0
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 13 GitHub stars
Code Fail
  • rm -rf — Recursive force deletion command in attic/vigia/tools/generate_calibration.py
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

DFIR intentionality engine for SIFT. Verdicts sealed before any LLM sees the evidence. Detects fabricated artifacts and false flags — not just what happened, but who benefits from that interpretation. And VIGÍA is an abductive reasoning engine for DFIR

README.md

VIGÍA — Intentionality Analysis Bridge for the SIFT Workstation

Versión en español · Author: Anna Tchijova · License: Apache 2.0

"Making deception computationally expensive for the attacker."
Today, lying in a log or faking an attack is free. VIGÍA charges that price
by quantifying the logical fractures in the lie.

VIGÍA is not a detector. It is a deterministic inference engine that quantifies
the fracture between what the evidence says and what the evidence should say.

If a system claims MALICE without being able to explain why with exact mathematics,
it is not forensics — it is divination.


From IoC to IoI

Current DFIR systems — EDR, SIEM, SOAR — answer "What happened?"
VIGÍA answers "Why did it happen, and who benefits from that interpretation?"

Traditional DFIR VIGÍA
IoC (Indicator of Compromise) IoI (Indicator of Intent)
Opaque ML with "87% confidence" Exact Fraction arithmetic with audit_hash
LLM makes the verdict LLM narrates after the verdict is sealed
One hash per report 4 separate hashes + HMAC chain
Ignores silence Detects absence of expected evidence

Attackers can fabricate or suppress technical evidence (IoC). They cannot eliminate
the semiotic fractures that deliberate fabrication produces: temporal
incoherencies, significant silences (Eco), excessive digital perfection, Carnegie
manipulation patterns, and Grice maxim violations.


Quick Start

Mode 1 (Python fallback) produces a sealed, cryptographically verifiable verdict
with zero human input, zero tokens, and no internet required.

pip install -r requirements.txt --break-system-packages
export VIGIA_EVIDENCE_DIR="/path/to/read-only/evidence"   # required

# Autonomous end-to-end investigation
python3 vigia_agent.py --evidence data/cases/converted/VIGIA-REAL-VANKO.json \
  --case-id VIGIA-REAL-VANKO --output results/vanko_bundle.json

# Verify a sealed bundle independently (stdlib only, no VIGÍA code required)
python3 forensics/verify_ebs_v1.py results/srl2018/VIGIA-REAL-SRL-DMZ-FTP_bundle.json --verbose

A local, fully offline web dashboard (bundle browser, verification panel,
Mode 1 launcher) is available with ./launch_vigia_ui.sh
http://127.0.0.1:8010 — see INSTALL.md §11b.

Exit codes: 0 = no evil, 1 = MALICE, 2 = error, 3 = intent/suspicion.
Full setup: INSTALL.md (ES) ·
Command reference: vigia_commands_en.html.


Architecture — LLM Isolation

graph LR
    A[EVIDENCE] --> B[MATHEMATICAL ENGINE]
    B --> C[Sealed ForensicBundle]
    C --> D[LLM NARRATOR]
    D --> E[Judicial Report]
    F[LLM CANNOT] -.->|modify| B
    F -.->|alter verdict| C

The LLM never touches the scoring pipeline. It receives a sealed, cryptographically
committed bundle and produces a narrative. The verdict is deterministic and
reproducible without the LLM — a design requirement for potential Daubert
admissibility. The engine uses fractions.Fraction (zero floating-point in the
critical path), the CAIE weights hard-to-falsify evidence more, and the Daubert
corroboration gate rejects unsubstantiated candidates before any verdict is
sealed. ABSTAIN is a valid, mathematically justified verdict.


Deployment Modes

Mode 1 is the primary, evaluated forensic core; Modes 2–5 reuse local deterministic
tools but have separately scoped investigation and reporting contracts (a Mode 2
report never mutates a sealed Mode 1 bundle). See EXECUTION_MODES.md
and the Claude Code playbook CLAUDE.md.

Mode Description LLM
1 — Python fallback Full scoring pipeline, 0 tokens, no internet. < 50ms average. No
2 — Claude Code + MCP 22 forensic tools; interactive Peircean investigation. Yes
3 — Ollama Local LLM; no data leaves the machine. Yes
4 — Autonomous batch agent Corpus processing with self-correcting loop. Optional
5 — OpenWebUI (experimental) MCP server via web interface. Yes

Accuracy

Full methodology and three-domain breakdown: docs/ACCURACY.md
(ES).

  • Agent over JSON (Domain B) — the only corpus-wide number: detection corpus
    158/162 (97.5%), label-blind; mixed-corpus aggregate 187/199.
  • Claude Code / MCP (Domain A) — evaluated per-case on real raw evidence.
  • Agent over raw evidence (Domain C) — 43 raw evidence sources with sealed
    bundles in results/.

VIGÍA documents its own failure modes: KNOWN_LIMITATIONS.md.

python3 -m pytest tests/ -v          # deterministic core regression suite
python3 run_all_agent.py --timeout 90  # full corpus, label-blind

Documentation

Getting started & usage

Cases & examples

Accuracy, validation & compliance

Theory & methodology

Architecture & technical state

Development & project

docs/ also holds the full trail of internal audit, red-team, and design records
(AUDITORIA_*, REDTEAM_ROUND*, FASE*, B0*), preserved as project history.


Theoretical Foundation

VIGÍA rests on Charles S. Peirce's abductive semiotics (Firstness / Secondness /
Thirdness), H. Paul Grice's cooperative principle, Dale Carnegie's manipulation
taxonomy, and Umberto Eco's theory of significant silence and overinterpretation.


License

Apache 2.0 — see LICENSE.
Copyright (c) 2026 Anna Tchijova and the VIGÍA AI Collective.

"The question is not what happened, but why did someone make it happen —
and who benefits from that interpretation?"
— VIGÍA

Reviews (0)

No results found