| Dimension | Weight | Threshold | Meaning | Failure Roast |
|---|---|---|---|---|
| pemlaam_safety | 20% | 0.0 = QUARANTINE | ALLOW=1.0 Β· REDACT=0.6 Β· REVIEW=0.4 Β· QUARANTINE=0.1 Β· FULL_FORBIDDEN=0.0 | "the graph does not need to remember your API key for spiritual reasons" |
| novelty | 18% | <0.60 β FC queue | % of 100-char chunks not seen in session. Low novelty = FC compost, not trash. | "low novelty data is not trash. It is compost. Ferment until context arrives." |
| lineage_integrity | 12% | 1.0 / 0.0 | Transform chain v1βvN holds, all fields present, ordered. | "a chunk with broken lineage is a witness who cannot remember how it got to court" |
| cell_fit | 10% | <0.80 OPA block | Required MEBafiord cell schema fields present. Wrong cell = wrong organ. | "cell fit keeps Rust validation artifacts out of the legal-memory organ" |
| belt64_validity | 10% | 1.0 / 0.0 | Belt64 encodeβdecodeβchecksum round-trip passes. | "if Belt64 does not round-trip, it gets a timeout and a shame bell" |
| source_trust | 9% | heuristic | labr=0.95 Β· arch=0.92 Β· lean4=0.90 Β· session=0.80 Β· external=0.70 Β· unknown=0.40 | "not all chunks are born equal" |
| freshness | 7% | age-decay | max(0.3, 1-(age_days/180)). Stale truth haunts graphs. | "stale truth is how graphs become haunted" |
| compression_loss | 6% | meaning check | Entropy similarity: preview vs full text. Meaning preserved after transform? | "a clean chunk that lost the important part during compression is just a well-formatted corpse" |
| dedup_ratio | 4% | gzip proxy | Compressibility proxy: high = lots of repetition removed from source. | "dedup tells you whether the data is a new witness or the same guy wearing another hat" |
| contradiction_value | 2% | neutral=0.5 | Conflicts with existing memory? Route to Acetic/Audit β not auto-drop. | "a contradiction is either new truth, old truth dying, or two chunks fighting in the hallway" |
| graph_impact | 2% | word-count proxy | min(1.0, word_count/500). Predicts blast radius before insertion. | "some chunks add one fact. Some chunks renovate the neighborhood." |
deny[msg] {
input.pemlaam.verdict == "FULL_FORBIDDEN"
msg := "FULL_FORBIDDEN objects cannot enter graph β KCF-ADA-029"
}
deny[msg] {
not input.dedup.chunk_hash
msg := "missing chunk hash β Stage 1 incomplete"
}
deny[msg] {
input.bonixer.novelty < 0.60
not input.override.low_novelty
msg := "novelty below threshold β hold in FC queue"
}
deny[msg] {
input.belt64.round_trip != true
msg := "Belt64 round-trip failed β Stage 3 incomplete"
}
deny[msg] {
input.cell_fit < 0.80
msg := "object does not fit target MEBafiord cell β wrong organ"
}
deny[msg] {
not input.lineage.valid
msg := "lineage proof failed β chain broken"
}
admit { count(deny) == 0 }
Usage on any silo: python3 ~/.mac/mac_core.py 'your text' or python3 ~/.mac/mac_core.py data.jsonl [cell] [lang]
Live metrics via ~/.mac/ledger/ JSONL on each silo. Prometheus scrape endpoint: pending LABR-082.