Published 2026-06-07

Report · 2026 H1

State of Local AI Audit

A 5-model sample of the Ollama public registry, audited with SIGIL 0.1.0. We report license layer presence, SPDX detection, manifest integrity, and verdict distribution — derived deterministically from each model's on-disk evidence, with no LLM in the verdict path.

REPORT 2026 H1
AGGREGATE 5 / 5 PASS
Aggregate PASS verdict for the 2026 H1 sample: all five models (gemma3:4b, llama3.2:3b, mistral:7b, phi3:mini, qwen2.5:7b) PASS.

Headline numbers

Four numbers a compliance reviewer can quote. The raw per-model AI-BOM JSONs are linked below so the figures can be re-aggregated independently.

Sample size
5
Ollama tags, see Methodology
License layer presence
100 %
5/5 models shipping a license layer
SPDX detection rate
60 %
3/5 license layers matched to an SPDX id
Manifest integrity
5 / 5
models where every blob SHA-256 matched the manifest digest

License analysis

License-layer states partition into three buckets: absent, present but not matched to an SPDX family, and present + matched.

License layer state Count Share of sample
Present, SPDX detected 3 60 %
Present, SPDX undetected 2 40 %
Absent 0 0 %

SPDX family distribution

For the models with a license layer matched to an SPDX shortname, the family distribution.

SPDX id Count Models
Apache-2.0 2 mistral:7b, qwen2.5:7b
MIT 1 phi3:mini

Verdict and findings

Each model's AI-BOM carries a deterministic PASS / WARN / FAIL verdict aggregated from analyzer-emitted finding severities. The distribution across the sample is reported as-is.

  • PASS count: 5
  • WARN count: 0
  • FAIL count: 0
  • Total findings: 0
  • Models with at least one finding: 0

Runtime exposure

Reported as the default Ollama install on the audit workstation — the host was not specially configured. This is the as-shipped picture, not a hardened deployment.

  • Default OLLAMA_HOST: http://127.0.0.1:11434
  • Observed listener class: localhost (single bind 127.0.0.1:11434)
  • Source: /proc

Per-model index

One row per scanned model. The per-model AI-BOM JSON is the authoritative source for everything above.

Model Verdict License Layer count Model bytes Findings
gemma3:4b PASS present, SPDX undetected 5 3.34 GB 0
llama3.2:3b PASS present, SPDX undetected 6 2.02 GB 0
mistral:7b PASS Apache-2.0 5 4.37 GB 0
phi3:mini PASS MIT 5 2.18 GB 0
qwen2.5:7b PASS Apache-2.0 5 4.68 GB 0

Methodology

Five Ollama tags were chosen by license diversity rather than by popularity ranking: Gemma + Llama for vendor-custom community licenses; Qwen + Mistral for Apache-2.0; Phi for MIT.

  • Sample size: 5 tags from the Ollama public registry
  • Tool: sigil aibom generate --runtime ollama --format json
  • SIGIL version at run time: 0.1.0
  • AI-BOM schema version: 1.1
  • Audit date: 2026-06-06 UTC; summary re-aggregated with the SPDX fast-path fix at 2026-06-14T11:45:40Z in summary.json
  • Ollama version on the audit workstation: 0.30.6
  • Verdict path: deterministic severity aggregation in crates/sigil-core/src/ollama.rs:349-356
  • SPDX detection: shortname + body match over 10 families
  • Manifest integrity = no finding with id in {ollama.blob_digest_mismatch, ollama.invalid_blob_digest, ollama.blob_missing, ollama.model_not_found}. Surfaced as manifest_integrity.integrity_pass_count in summary.json.

Reproduce this

The runner and aggregator are checked in. The model list is a plain text file with one Ollama tag per line.

git clone https://github.com/ultra-supara/SIGIL && cd SIGIL
sudo apt-get install -y clang jq         # Linux

# Edit scripts/audit-models.txt if you want a different sample.
./scripts/audit-run.sh                   # pulls + runs sigil on each model
./scripts/audit-aggregate.sh             # writes reports/2026-h1/summary.json

Sources and raw data

Per-model AI-BOM JSONs are the authoritative source for everything in this report.