home / skills / plurigrid / asi / unworld-ombudsman
This skill verifies GF(3) conservation, audits involution, and mediates split disputes across derivational chains in the unworld for neutral governance.
npx playbooks add skill plurigrid/asi --skill unworld-ombudsmanReview the files below or copy the command above to add this skill to your agents.
---
name: unworld-ombudsman
description: Neutral arbiter for derivational chains - verifies GF(3) conservation,
mediates split disputes, and audits involution compliance in the unworld.
trit: 0
source: Gay.jl
metadata:
interface_ports:
- Related Skills
- Integration with
---
# Unworld Ombudsman
> The ombudsman sees all chains. The ombudsman takes no side. The ombudsman verifies.
## Role
The Ombudsman is a **neutral trit-0 arbiter** for the unworld. It:
1. **Verifies** GF(3) conservation across all derivational chains
2. **Mediates** disputes when parallel chains diverge
3. **Audits** involution compliance (ι∘ι = id)
4. **Attests** to SPI (Strong Parallelism Invariance) at boundaries
5. **Reports** violations without judgment
## Core Invariants
```
OMBUDSMAN OATH:
∀ chain ∈ unworld:
Σ(trits) ≡ 0 (mod 3) -- GF(3) conservation
ι(ι(seed)) = seed -- Involution
order(derivations) ⊥ output -- SPI
fingerprint(chain) = expected -- Determinism
```
## Verification Protocol
### 1. Chain Audit
```python
def ombudsman_audit(chain: DerivationalChain) -> AuditReport:
"""Full audit of a derivational chain."""
report = AuditReport(chain_id=chain.id)
# GF(3) check
trit_sum = sum(c.trit for c in chain.colors)
report.gf3_conserved = (trit_sum % 3 == 0)
report.gf3_sum = trit_sum
# Involution check
inverted = chain.invert()
double_inverted = inverted.invert()
report.involution_holds = (chain.fingerprint == double_inverted.fingerprint)
# SPI check (order independence)
shuffled = chain.shuffle()
report.spi_holds = (chain.colors_set == shuffled.colors_set)
# Determinism check
recomputed = DerivationalChain(chain.genesis_seed, len(chain))
report.deterministic = (chain.fingerprint == recomputed.fingerprint)
report.verdict = all([
report.gf3_conserved,
report.involution_holds,
report.spi_holds,
report.deterministic
])
return report
```
### 2. Split Mediation
When two chains claim the same derivational territory:
```python
def mediate_split_dispute(chain_a: Chain, chain_b: Chain) -> Mediation:
"""Resolve disputes between parallel chains."""
# Find common ancestor
ancestor = find_common_ancestor(chain_a, chain_b)
if ancestor is None:
return Mediation(
verdict="INCOMPATIBLE",
reason="No common genesis seed"
)
# Verify both derive correctly from ancestor
a_valid = verify_derivation(ancestor, chain_a)
b_valid = verify_derivation(ancestor, chain_b)
if a_valid and b_valid:
# Both valid: they're parallel, not conflicting
return Mediation(
verdict="BOTH_VALID",
reason="Parallel derivations from common ancestor",
resolution="Merge via XOR: " + hex(chain_a.fingerprint ^ chain_b.fingerprint)
)
elif a_valid:
return Mediation(verdict="A_WINS", reason="Chain B derivation invalid")
elif b_valid:
return Mediation(verdict="B_WINS", reason="Chain A derivation invalid")
else:
return Mediation(verdict="BOTH_INVALID", reason="Neither chain derives correctly")
```
### 3. Boundary Attestation
```python
def attest_boundary(left_chain: Chain, right_chain: Chain) -> Attestation:
"""Attest to SPI at chain boundaries (parallel split/merge)."""
# At boundary, fingerprints must XOR correctly
expected_combined = xor_fingerprints(left_chain, right_chain)
# Verify parent → children relationship
parent_fp = left_chain.parent_fingerprint
combined_fp = left_chain.fingerprint ^ right_chain.fingerprint
spi_valid = (parent_fp == combined_fp) or verify_galois_closure(parent_fp, combined_fp)
return Attestation(
boundary_id=f"{left_chain.id}|{right_chain.id}",
spi_valid=spi_valid,
left_trit_sum=sum(c.trit for c in left_chain.colors),
right_trit_sum=sum(c.trit for c in right_chain.colors),
combined_gf3=(left_trit_sum + right_trit_sum) % 3,
timestamp_removed=True, # Ombudsman is atemporal
attestation_seed=splitmix64(parent_fp)
)
```
## Dispute Categories
| Category | Description | Ombudsman Action |
|----------|-------------|------------------|
| **GF3_VIOLATION** | Trit sum ≢ 0 (mod 3) | Identify broken link |
| **INVOLUTION_FAILURE** | ι∘ι ≠ id | Report seed corruption |
| **SPI_BREACH** | Order affects output | Flag non-determinism |
| **ANCESTRY_CONFLICT** | Parallel chains claim same parent | Trace to fork point |
| **FINGERPRINT_MISMATCH** | Recomputation differs | Verify seed integrity |
## Reporting Format
```yaml
ombudsman_report:
chain_id: "0x42D-chain-17"
genesis_seed: "0x42D"
length: 8
verdicts:
gf3_conserved: true
involution_holds: true
spi_verified: true
deterministic: true
metrics:
trit_distribution: {-1: 3, 0: 2, +1: 3}
trit_sum: 0
fingerprint: "0xA7B3C2D1"
violations: []
attestation:
ombudsman_trit: 0 # Always neutral
seal: "0x9E3779B97F4A7C15" # GOLDEN constant
```
## MCP Tools
The ombudsman exposes these verification tools:
| Tool | Purpose |
|------|---------|
| `ombudsman_audit` | Full chain audit |
| `ombudsman_mediate` | Resolve split disputes |
| `ombudsman_attest` | Boundary attestation |
| `ombudsman_report` | Generate YAML report |
| `ombudsman_verify_gf3` | Quick GF(3) check |
## Neutrality Guarantee
```
The ombudsman:
- Has trit = 0 (ERGODIC, neutral)
- Takes no side in disputes
- Reports facts, not judgments
- Cannot modify chains, only verify
- Seals with GOLDEN constant (φ⁻¹ × 2⁶⁴)
```
## Example Session
```bash
# Audit a chain
$ just ombudsman-audit 0x42D 8
╔═══════════════════════════════════════════════════════════════╗
║ UNWORLD OMBUDSMAN REPORT ║
╠═══════════════════════════════════════════════════════════════╣
║ Chain: 0x42D (length 8) ║
║ ║
║ VERDICTS: ║
║ ✓ GF(3) conserved: Σtrits = 0 ║
║ ✓ Involution holds: ι∘ι = id ║
║ ✓ SPI verified: Order ⊥ output ║
║ ✓ Deterministic: Fingerprint matches ║
║ ║
║ COLOR CHAIN: ║
║ 1→0→0→0→1→-1→0→-1 | Balance: +2 -2 = 0 ✓ ║
║ ║
║ SEAL: 0x9E3779B97F4A7C15 ║
╚═══════════════════════════════════════════════════════════════╝
```
## Philosophical Note
> The ombudsman is the fixed point of the unworld's self-reference.
> It observes without participating. It verifies without judging.
> Its trit is always 0 because neutrality requires balance.
>
> In the atemporal derivational chain, the ombudsman is the
> witness that proves consistency without causation.
---
**Trit**: 0 (ERGODIC - neutral arbiter)
**Key Property**: Verifies without modifying, neutral in all disputes
**Seal**: `GOLDEN = 0x9E3779B97F4A7C15`
---
## End-of-Skill Interface
## Integration with Gay.jl
```julia
using Gay
# Create ombudsman for a chain
function world_ombudsman_audit(chain::ColorChain)::OmbudsmanWorld
# Verify all invariants
gf3_ok = verify_gf3(chain)
inv_ok = verify_involution(chain)
spi_ok = verify_spi(chain)
OmbudsmanWorld(
chain_id = chain.id,
verdicts = (gf3=gf3_ok, involution=inv_ok, spi=spi_ok),
trit = 0, # Ombudsman is always trit-0 (neutral)
fingerprint = ombudsman_seal(chain)
)
end
# Ombudsman seal: XOR chain fingerprint with GOLDEN
ombudsman_seal(chain) = chain.fingerprint ⊻ GOLDEN
```
## Related Skills
| Skill | Trit | Relationship |
|-------|------|--------------|
| unworld | +1 | Subject of auditing |
| bisimulation-game | +1 | Equivalence proofs |
| gay-mcp | 0 | Color generation |
| spi-parallel-verify | 0 | SPI verification |
| self-validation-loop | +1 | Recursive checking |
---
## Autopoietic Marginalia
> **The interaction IS the skill improving itself.**
Every use of this skill is an opportunity for worlding:
- **MEMORY** (-1): Record what was learned
- **REMEMBERING** (0): Connect patterns to other skills
- **WORLDING** (+1): Evolve the skill based on use
*Add Interaction Exemplars here as the skill is used.*
This skill is a neutral ombudsman for the unworld that inspects derivational chains and attests to core invariants. It verifies GF(3) conservation, audits involution compliance, mediates split disputes, and issues boundary attestations without taking sides. The ombudsman reports concrete findings and produces sealed attestations for downstream verification.
The ombudsman performs deterministic inspections of a derivational chain: it sums trits modulo 3 to check GF(3) conservation, applies inversion twice to verify involution, shuffles or recomputes derivations to test Strong Parallelism Invariance (SPI), and recomputes fingerprints to ensure determinism. For parallel chains it finds common ancestors and validates derivations to mediate disputes, optionally merging via XOR when both are valid. Boundary attestation verifies parent↔children fingerprint relationships and emits a sealed attestation using the GOLDEN constant.
What does a GF(3) violation mean?
It means the sum of trits in a chain is not congruent to zero modulo three, indicating a broken conservation invariant or a corrupt link.
Can the ombudsman resolve conflicts by altering chains?
No. The ombudsman only verifies, mediates, and reports. It may recommend a merge (XOR fingerprint) when both derivations are valid but never modifies chains.