Assumptions & Invariants Ledger
| # | Sigil | Unicode | Locked Assignment | |---|-------|---------|-------------------| | 1 | ߛ | U+07DB | Stabilization | | 2 | ߜ | U+07DC | Dispersion | | 3 | ߕ | U+07D5 | Transition | | 4 | ߙ | U+07D9 | Return | | 5 | ߡ | U+07E1 | Dwell | | 6 | ߚ | U+07DA | Oscillation | | 7 | ߞ | U+07DE | Recovery | | 8 | ߣ | U+07E3 | Novelty | | 9 | ߠ | U+07E0 | Place-Shift | | 10 | ߥ | U+07E5 | Echo |
Full Public Reader
Assumptions & Invariants Ledger
Version: 1.0.0
Last Updated: 2026-01-03
---
Assumptions
Assumptions are things the project relies on that could be false. If violated, specific parts break.
### A-INS-001: DELL provides z-trajectory
Assumption: The DELL latent engine streams z(t) embeddings at consistent intervals.
What breaks if false: Claim detectors have no input, inscriptions cannot be generated.
Detection: Monitor DELL stream health, alert on gaps > 10s.
Mitigation: Buffer last-known z(t) and emit degraded-confidence claims.
### A-INS-002: Graph Kernel enforces admissibility
Assumption: All evidence retrieval for Echo claims goes through the Graph Kernel.
What breaks if false: Echo claims could reference non-admissible evidence, provenance is broken.
Detection: Audit Echo claims for valid slice_id references.
Mitigation: Reject Echo claims without verified admissibility tokens.
### A-INS-003: Basins are rare relative to samples
Assumption: The number of graduated basins is << number of z-trajectory samples.
What breaks if false: Lexicon becomes unmanageably large, phrase compression fails.
Detection: Monitor basin count, alert if > 100 basins per user per month.
Mitigation: Increase graduation threshold, retire low-dwell basins.
### A-INS-004: N'Ko sigils are Unicode-stable
Assumption: The 10 N'Ko characters (ߛ, ߜ, ߕ, ߙ, ߡ, ߚ, ߞ, ߣ, ߠ, ߥ) have stable Unicode codepoints.
What breaks if false: Rendering breaks across systems, corpus becomes unreadable.
Detection: N/A (Unicode codepoints are standardized).
Mitigation: Store codepoints (e.g., U+07DB) alongside rendered characters.
### A-INS-005: Lexicon versions are append-only
Assumption: New lexicon versions only add or rename tokens, never delete.
What breaks if false: Old inscriptions reference undefined tokens.
Detection: Schema validation rejects lexicon versions that remove tokens.
Mitigation: Mark tokens as deprecated rather than deleted.
### A-INS-006: Claim types are exhaustive for z-dynamics
Assumption: The 10 claim types cover all meaningful z-trajectory patterns.
What breaks if false: Undetected patterns go unrecorded, corpus is incomplete.
Detection: Monitor "unknown event" rate in detector output.
Mitigation: Add claim type 11+ via lexicon extension (requires charter amendment).
---
Invariants
Invariants must NEVER be violated. Violations trigger immediate alerts and investigation.
### INV-INS-001: Sigil Immutability
Invariant: The 10 operator sigils MUST never change assignment.
Why it exists: Ensures all inscriptions are readable across all lexicon versions.
What breaks: Historical corpus becomes ambiguous, parsing fails.
Canary: Lexicon schema validation rejects sigil changes.
| # | Sigil | Unicode | Locked Assignment |
|---|---|---|---|
| 1 | ߛ | U+07DB | Stabilization |
| 2 | ߜ | U+07DC | Dispersion |
| 3 | ߕ | U+07D5 | Transition |
| 4 | ߙ | U+07D9 | Return |
| 5 | ߡ | U+07E1 | Dwell |
| 6 | ߚ | U+07DA | Oscillation |
| 7 | ߞ | U+07DE | Recovery |
| 8 | ߣ | U+07E3 | Novelty |
| 9 | ߠ | U+07E0 | Place-Shift |
| 10 | ߥ | U+07E5 | Echo |
### INV-INS-002: IR Primacy
Invariant: The typed IR is the source of truth; N'Ko surface is a derived view.
Why it exists: Enables re-rendering with new lexicons without data loss.
What breaks: N'Ko-only storage loses structured data, provenance is incomplete.
Canary: Every Inscription struct contains both `claim: Claim` and `surface: NKoLine`.
### INV-INS-003: Non-Retroactive Lexicon
Invariant: Old inscriptions MUST never be rewritten; reinterpretation is a separate view.
Why it exists: Preserves historical corpus integrity and auditability.
What breaks: Provenance chain is invalidated, trust in historical claims is lost.
Canary: Inscription storage is append-only; no UPDATE on corpus tables.
### INV-INS-004: Claim-Evidence Binding
Invariant: Every claim MUST reference its source evidence (z-window, slice_id, or none).
Why it exists: Enables tracing claims back to measurements.
What breaks: Claims become unverifiable assertions (hallucinations).
Canary: `Claim::evidence_ref()` method returns `EvidenceRef`, never `None` for non-Novel claims.
### INV-INS-005: Basin Identity Stability
Invariant: A BasinId MUST never change once assigned to a graduated basin.
Why it exists: Enables cross-session tracking and phrase detection.
What breaks: Return claims can't detect re-entry, basin lifecycle breaks.
Canary: Basin table has unique constraint on id; no UPDATE on id column.
### INV-INS-006: Proto-Basin Expiry
Invariant: Proto-basins MUST expire if graduation criteria aren't met within threshold.
Why it exists: Prevents infinite accumulation of spurious proto-basins.
What breaks: Ontology bloats, novelty detection becomes meaningless.
Canary: Cron job marks expired proto-basins as RetirementType::Spurious.
### INV-INS-007: Confidence Bounds
Invariant: Confidence values MUST be in [0, 1].
Why it exists: Enables meaningful comparison and aggregation.
What breaks: Confidence loses semantic meaning, ranking breaks.
Canary: `Confidence::new()` clamps input to [0, 1].
### INV-INS-008: TimeWindow Validity
Invariant: TimeWindow MUST satisfy t0 <= t1.
Why it exists: Duration calculations and ordering depend on valid windows.
What breaks: Negative durations, invalid queries, panics.
Canary: `TimeWindow::new()` asserts t0 <= t1.
---
Canary Implementation Checklist
| Invariant | Canary Type | Implemented? | Notes |
|---|---|---|---|
| INV-INS-001 | Schema validation | ✅ Yes | Lexicon JSON schema rejects sigil changes |
| INV-INS-002 | Type system | ✅ Yes | Inscription contains both Claim and NKoLine |
| INV-INS-003 | Storage policy | ❌ No | Need append-only corpus storage |
| INV-INS-004 | Type system | ⚠️ Partial | Need EvidenceRef on all claims |
| INV-INS-005 | Database constraint | ❌ No | Need basin table with unique id constraint |
| INV-INS-006 | Cron job | ❌ No | Need expiry job for proto-basins |
| INV-INS-007 | Constructor | ✅ Yes | Confidence::new() clamps to [0, 1] |
| INV-INS-008 | Constructor | ✅ Yes | TimeWindow::new() validates t0 <= t1 |
---
Incident Response Triggers
| Canary Violation | Severity | Response Time | Action |
|---|---|---|---|
| INV-INS-001 | CRITICAL | Immediate | Reject lexicon, investigate source |
| INV-INS-002 | HIGH | < 1 hour | Audit inscription pipeline |
| INV-INS-003 | CRITICAL | Immediate | Halt writes, restore from backup |
| INV-INS-004 | HIGH | < 4 hours | Add evidence refs retroactively |
| INV-INS-005 | CRITICAL | Immediate | Investigate basin table mutation |
| INV-INS-006 | LOW | < 1 day | Run manual cleanup job |
| INV-INS-007 | LOW | < 1 day | Fix input validation |
| INV-INS-008 | LOW | < 1 day | Fix input validation |
Promotion Decision
Promote into a technical note or architecture paper with implementation anchors.
Source Anchor
Comp-Core/core/semantic/cc-inscription/docs/02-INVARIANTS_LEDGER.md
Detected Structure
Method · Evaluation · References · Architecture