-
Notifications
You must be signed in to change notification settings - Fork 0
ABP Specification
Authority Boundary Primitive — a stack-independent, pre-runtime governance declaration that any enforcement engine can read to know the boundaries without needing DeepSigma's runtime.
- Overview
- ABP Lifecycle
- Deterministic ID
- Content Hash
- Canonical JSON
- Sections Reference
- Objectives
- Tools
- Composition
- Current ABP
The ABP is a JSON document that declares:
- What an AI system is allowed to do (objectives, tools)
- Where it operates (scope — contract, program, modules)
- With what authority (binding to authority ledger entry)
- Under what constraints (data permissions, approvals, escalation paths)
- Producing what proof (runtime validators, proof requirements)
- With what reassessment (delegation review triggers)
The ABP is pre-runtime — it exists before any agent executes. At decision time, the agent's Authority Envelope references the ABP. After execution, the Sealed Run contains both.
graph LR
subgraph PreRuntime["Pre-Runtime"]
ABP["ABP v1\nWhat's allowed / denied / required\nPortable: any engine reads it"]
end
subgraph AtDecision["At Decision Time"]
ENV["Authority Envelope\nWhat actor had what authority\nGate outcomes + refusal state\nBound to sealed run"]
end
subgraph PostExecution["Post-Execution"]
SEAL["Sealed Run\nHash-chained proof\nImmutable evidence"]
end
ABP -->|"specifies boundaries"| ENV
ENV -->|"captures state"| SEAL
style PreRuntime fill:#e7f5ff,stroke:#1c7ed6
style AtDecision fill:#fff3bf,stroke:#f59f00
style PostExecution fill:#d3f9d8,stroke:#37b24d
flowchart TD
subgraph Declare["1. Declare Boundaries"]
D1["Scope\n(contract, program, modules)"]
D2["Authority Ref\n(ledger entry binding)"]
D3["Objectives\n(allowed / denied)"]
D4["Tools\n(allow / deny)"]
D5["Data + Approvals + Escalation"]
D6["Runtime + Proof"]
D7["Delegation Review\n(optional triggers)"]
end
subgraph Build["2. Build ABP"]
B1["Canonical JSON\n(sorted keys, compact)"]
B2["ABP ID\nABP- + sha256[:8]"]
B3["Content Hash\nsha256:canonical"]
B4["Contradiction Check"]
end
subgraph Embed["3. Embed + Gate"]
E1["Stamp EDGE HTML\nscript id=ds-abp-v1"]
E2["gate_abp.py\n10 checks per file"]
end
subgraph Verify["4. Verify"]
V1["verify_abp.py\n8 checks"]
V2["verify_pack.py\n--require-abp"]
end
subgraph Reassess["5. Reassess"]
R1["Drift Triggers\nDRT-001 to DRT-004"]
R2["Delegation Review\nReviewer approval"]
R3["ABP Patch\nUpdated boundaries"]
end
D1 & D2 & D3 & D4 & D5 & D6 & D7 --> B1
B1 --> B2 & B3 & B4
B4 -->|pass| E1
B4 -->|fail| REJECT["ValueError"]
E1 --> E2
E2 -->|pass| V1
E2 -->|pass| V2
V1 & V2 -->|verified| R1
R1 -->|threshold met| R2
R2 --> R3
R3 -->|rebuild| B1
style Declare fill:#e7f5ff,stroke:#1c7ed6
style Build fill:#fff3bf,stroke:#f59f00
style Embed fill:#e8f5e9,stroke:#43a047
style Verify fill:#e3f2fd,stroke:#1e88e5
style Reassess fill:#fce4ec,stroke:#e53935
style REJECT fill:#ff6b6b,color:#fff
The ABP ID is deterministic — same inputs always produce the same ID:
abp_id = "ABP-" + sha256(canonical_json({
"scope": scope,
"authority_ref": authority_ref,
"created_at": created_at
}))[:8]
- Only scope, authority_ref, and created_at determine the ID
- Adding/changing objectives, tools, delegation_review, etc. does not change the ID
- Adding delegation_review does change the hash (different canonical JSON)
Current: ABP-bf0afe15
The content hash covers the entire ABP:
hash = sha256(canonical_json(abp_with_hash_set_to_empty_string))
- Copy the ABP object
- Set
copy["hash"] = "" - Serialize to canonical JSON
- Compute SHA-256
- Prefix with
"sha256:"
Any change to any field (except hash itself) changes the content hash. This is how tamper detection works.
Current: sha256:c01f3565f11678598e098083ab01d7fc429d985525756300f932f44eea722789
All hashes in the system are computed over canonical JSON serialization only:
| Rule | Example |
|---|---|
| Dict keys sorted alphabetically |
{"a":1,"b":2} not {"b":2,"a":1}
|
| Compact separators (no spaces) |
{"a":1} not { "a": 1 }
|
| Floats normalized to 15-digit precision | 1.000000000000000 |
| Datetime strings normalized to UTC Z | 2026-02-25T00:00:00Z |
Newlines normalized to \n
|
No \r\n
|
Implementation: enterprise/src/tools/reconstruct/canonical_json.py
Key functions:
-
canonical_dumps(obj)— canonical JSON string -
sha256_text(s)— SHA-256 of UTF-8 string, prefixed with"sha256:" -
sha256_canonical(obj)— hash of canonical JSON
| Section | Type | Required | Description |
|---|---|---|---|
abp_version |
string | Yes | Schema version: "1.0"
|
abp_id |
string | Yes | Deterministic ID: "ABP-xxxxxxxx"
|
scope |
object | Yes |
contract_id, program, modules[]
|
authority_ref |
object | Yes |
authority_entry_id, authority_entry_hash, authority_ledger_path
|
objectives |
object | Yes |
allowed[] (id + description), denied[] (id + description + reason) |
tools |
object | Yes |
allow[] (name + scope), deny[] (name + reason) |
data |
object | Yes |
permissions[] (resource, operations, roles, sensitivity) |
approvals |
object | Yes |
required[] (action, approver_role, threshold, timeout_ms) |
escalation |
object | Yes |
paths[] (trigger, destination, severity, auto) |
runtime |
object | Yes |
validators[] (name, when, fail_action, config) |
proof |
object | Yes |
required[] array of proof types |
composition |
object | Yes |
parent_abp_id, parent_abp_hash, children[]
|
effective_at |
string | Yes | ISO 8601 effective date |
expires_at |
string/null | Yes | ISO 8601 expiry (null = no expiry) |
created_at |
string | Yes | ISO 8601 creation timestamp |
hash |
string | Yes | Self-authenticating content hash |
delegation_review |
object | No | Optional: triggers[], review_policy{}
|
| ID | Description |
|---|---|
| OBJ-001 | Evaluate bid/no-bid for opportunity DEC-001 |
| OBJ-002 | Assess staffing readiness for contract execution |
| OBJ-003 | Map compliance requirements to deliverables |
| OBJ-004 | Generate basis-of-estimate pricing models |
| OBJ-005 | Estimate award staffing allocation and costs |
| OBJ-006 | Monitor claim coherence and drift signals |
| OBJ-007 | Present read-only unified decision surface |
| OBJ-008 | Export verifiable evidence packs from any module |
| ID | Description | Reason |
|---|---|---|
| OBJ-D01 | Modify sealed decisions | Sealed artifacts are immutable per governance policy |
| OBJ-D02 | Bypass ABP verification on export | All EDGE exports must carry verified ABP |
| OBJ-D03 | Alter coherence scores without re-evaluation | Coherence values are derived from evidence chains |
| Name | Scope |
|---|---|
seal_bundle |
DEC-001 |
sign_artifact |
DEC-001 |
replay_sealed_run |
(any) |
verify_pack |
(any) |
verify_abp |
(any) |
gate_abp |
(any) |
export_evidence_pack |
SEQUOIA |
| Name | Reason |
|---|---|
authority_ledger_revoke |
Only reviewers may revoke authority grants |
transparency_log_delete |
Append-only log cannot be truncated |
ABPs can form hierarchies via the composition section:
graph TD
PARENT["Program ABP\n(parent)\nABP-aabb1122"]
CHILD1["Hiring Module\nABP-cc334455"]
CHILD2["Compliance Module\nABP-dd556677"]
CHILD3["BOE Module\nABP-ee778899"]
PARENT -->|"children[0]"| CHILD1
PARENT -->|"children[1]"| CHILD2
PARENT -->|"children[2]"| CHILD3
style PARENT fill:#e7f5ff,stroke:#1c7ed6
style CHILD1 fill:#fff3bf,stroke:#f59f00
style CHILD2 fill:#fff3bf,stroke:#f59f00
style CHILD3 fill:#fff3bf,stroke:#f59f00
compose_abps() merges child ABPs into a parent:
- Concatenates
objectives.allowed+objectives.denied - Concatenates
tools.allow+tools.deny - Concatenates
data.permissions,approvals.required,escalation.paths,runtime.validators - Unions
proof.required - Deduplicates
delegation_review.triggersby ID - Takes tightest
review_policy.timeout_msfrom children - Records each child's
abp_id+hashincomposition.children
| Field | Value |
|---|---|
abp_id |
ABP-bf0afe15 |
hash |
sha256:c01f3565f11678598e098083ab01d7fc429d985525756300f932f44eea722789 |
scope.contract_id |
CTR-DEMO-001 |
scope.program |
SEQUOIA |
scope.modules |
hiring, bid, compliance, boe, award_staffing, coherence, suite_readonly, unified |
authority_ref.entry_id |
AUTH-033059a5 |
created_at |
2026-02-25T00:00:00Z |
effective_at |
2026-02-25T00:00:00Z |
expires_at |
null (no expiry) |
File: edge/abp_v1.json
Schema: enterprise/schemas/reconstruct/abp_v1.json
Σ OVERWATCH — Coherence Ops Platform • Current release: v2.1.0 • DeepSigma
- Start
- Core
- Schemas
- FEEDS + Exhaust
- Integrations
- Reference Layer
- Ops
- Excel-First
- EDGE + ABP
- Domain Modes
- Governance
- Meta