Tibet Core — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Tibet Core (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The Linux of AI Provenance
Two implementations, one standard.tibet-coreships as this Rust crate (cargo add tibet-core· crates.io) and as a Python package (pip install tibet-core· PyPI). Same TIBET provenance core, two ecosystems — pick the one that fits your stack.
A minimal, embeddable provenance engine for any device. From microcontrollers to cloud servers.
Time-Intent-Based Event Tokens
TIBET is the causal truth-layer of AI provenance. Every action becomes a token that records when it happened (time), what intent drove it (intent), what the event was (event), and how it links to what came before (chain). The chain is forward-only — there is no protocol-level way to rewrite time — which eliminates an entire class of provenance-spoofing attacks by construction (see Forward-only causal substrate below).
Each token captures four dimensions of the action:
| Dimension | Dutch | Meaning |
|---|---|---|
| ERIN | "Er in" | What's IN the action (content) |
| ERAAN | "Er aan" | What's attached (dependencies) |
| EROMHEEN | "Er omheen" | Context around it (environment) |
| ERACHTER | "Er achter" | Intent behind it (why) |
pip install tibet-corenpm install tibet-core[dependencies]
tibet-core = "0.1"from tibet_core import TibetEngine
engine = TibetEngine()
# Create a provenance token
token = engine.create_token(
token_type="action",
erin="User requested translation",
eraan=["model_v1", "tokenizer_v2"],
eromheen='{"env": "production"}',
erachter="Fulfilling user request",
actor="agent_001"
)
print(f"Token ID: {token.id}")
print(f"Valid: {token.verify()}")
print(f"JSON: {token.to_json()}")import { TibetEngine } from 'tibet-core';
const engine = new TibetEngine();
const tokenJson = engine.create_token(
"action",
"User requested translation",
JSON.stringify(["model_v1", "tokenizer_v2"]),
'{"env": "production"}',
"Fulfilling user request",
"agent_001",
null // no parent
);
const token = JSON.parse(tokenJson);
console.log(`Token ID: ${token.id}`);
console.log(`Valid: ${engine.verify(tokenJson)}`);use tibet_core::TibetEngine;
let engine = TibetEngine::new();
let token = engine.create_token(
"action",
"User requested translation",
&["model_v1", "tokenizer_v2"],
r#"{"env": "production"}"#,
"Fulfilling user request",
"agent_001",
None,
);
assert!(token.verify());Create audit trails by linking tokens:
# Parent action
request = engine.create_token(
token_type="request",
erin="Translate 'hello' to Dutch",
eraan=[],
eromheen='{"user": "alice"}',
erachter="User wants translation",
actor="user_001"
)
# Child response (linked to parent)
response = engine.create_token(
token_type="response",
erin="Hallo",
eraan=["gpt-4"],
eromheen='{"latency_ms": 150}',
erachter="Translation completed",
actor="ai_agent",
parent_id=request.id # Chain link!
)
print(f"Parent: {request.id}")
print(f"Child parent_id: {response.parent_id}") # Same as request.idTIBET's foundational axiom: snapshot/restore = chain-position + fork, NEVER time-rewind.
In a typical "audit log" you can in principle replay history and overwrite earlier entries. TIBET cannot — each token is anchored to its parent by hash. Restoring an earlier state means forking a new chain-position from there; the original chain stays intact. Git's mental model, without the rebase/reset/cherry-pick escape hatches.
This single property eliminates an entire class of provenance-spoofing attacks by construction, because there is no syntax in the protocol for time-rewriting an action that has already happened.
tibet-core is one half of the bootstrap-pair; jis-core is the other.
Every package in the Humotica ecosystem bootstraps via both:
use tibet_core::TibetEngine;
// + use jis_core::Identity; // bootstraps the actor + intent claimA package with only one of the two is free-floating tooling, outside the audit substrate. A package with both is inside the substrate — every emit is signed (JIS) and forks the causal chain (TIBET), verifiably and falsifiably.
| Component | Size |
|---|---|
| tibet-core (Rust) | ~50KB |
| tibet-core (WASM) | ~100KB |
| tibet-core (Python wheel) | ~2MB |
| Linux kernel (minimal) | ~300KB |
TIBET provides the audit foundation for:
| Standard | TIBET Support |
|---|---|
| EU CRA (Sep 2026) | Build provenance, SBOM accountability, audit chains |
| EU AI Act | Transparency, automated decision traceability |
| GDPR Art. 22 | Automated decision-making audit trails |
| NIS2 | Continuous logging, incident snapshots |
| ISO 5338 | AI lifecycle traceability |
| ISO 27001 | Information security audit trails |
| SOC 2 | Trust service criteria evidence |
| BIO2 | Government security baseline |
| OWASP | Security event provenance |
TIBET makes compliance architectural, not bolted-on.
TIBET and its companion protocols are being standardized at the IETF:
TIBET aligns with W3C standards:
┌─────────────────────────────────────────────────────────────┐
│ TIBET ECOSYSTEM │
├─────────────────────────────────────────────────────────────┤
│ ┌─────────────────┐ │
│ │ tibet-core │ ← 50KB Rust, minimal deps │
│ │ (the kernel) │ create_token, verify, chain │
│ └────────┬────────┘ │
│ │ │
│ ┌────────┴────────┬──────────────┬──────────────┐ │
│ ▼ ▼ ▼ ▼ │
│ tibet-c tibet-wasm tibet-python tibet-js │
│ (embedded) (browser) (PyPI) (npm) │
└─────────────────────────────────────────────────────────────┘"The Linux of AI Provenance" - Making audit trails as universal as the kernel.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.