Squashed 'vendor/ruvector/' content from commit b64c2172
git-subtree-dir: vendor/ruvector git-subtree-split: b64c21726f2bb37286d9ee36a7869fef60cc6900
This commit is contained in:
48
docs/adr/coherence-engine/ADR-CE-012-gate-refusal-witness.md
Normal file
48
docs/adr/coherence-engine/ADR-CE-012-gate-refusal-witness.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# ADR-CE-012: Gate = Refusal Mechanism with Witness
|
||||
|
||||
**Status**: Accepted
|
||||
**Date**: 2026-01-22
|
||||
**Parent**: ADR-014 Coherence Engine Architecture
|
||||
|
||||
## Context
|
||||
|
||||
When coherence energy exceeds threshold, the system must refuse action. This refusal needs to be:
|
||||
- Deterministic (same inputs → same decision)
|
||||
- Auditable (why was it refused?)
|
||||
- Provable (cryptographic witness)
|
||||
|
||||
## Decision
|
||||
|
||||
**Gate = refusal mechanism with witness - every refusal is provable.**
|
||||
|
||||
Gate evaluation produces:
|
||||
```rust
|
||||
pub struct GateDecision {
|
||||
pub allow: bool,
|
||||
pub lane: ComputeLane,
|
||||
pub witness: WitnessRecord,
|
||||
pub denial_reason: Option<String>,
|
||||
}
|
||||
```
|
||||
|
||||
The WitnessRecord includes:
|
||||
- Energy snapshot at decision time
|
||||
- Policy bundle that defined thresholds
|
||||
- Hash chain to previous witness
|
||||
- Content hash for integrity
|
||||
|
||||
## Consequences
|
||||
|
||||
### Benefits
|
||||
- Every refusal has cryptographic proof
|
||||
- Can reconstruct exactly why any decision was made
|
||||
- Compliance-ready audit trail
|
||||
|
||||
### Risks
|
||||
- Witness storage overhead
|
||||
- Must handle witness retrieval at scale
|
||||
|
||||
## References
|
||||
|
||||
- ADR-014: Coherence Engine Architecture, Section 3
|
||||
- ADR-CE-005: First-Class Governance Objects
|
||||
Reference in New Issue
Block a user