guildhouse-proto/attestation/v2/governance.proto
Tyler King 98aa2b0ec7 feat(attestation): add SAT-SPEC-0002 protobuf definitions
Add protobuf message definitions for the four-layer attestation
architecture defined in SAT-SPEC-0002. Package: substrate.attestation.v2

Files:
- common.proto: QmReceipt (hash-chained Ed25519-signed receipts)
- platform.proto: PlatformClaim, TpmQuoteBinding (L1 hardware identity)
- software.proto: SoftwareClaim, BuildProvenance (L2 image provenance)
- governance.proto: GovernanceClaim, AccordReference, DelegationReference (L3)
- session.proto: SessionClaim, ActorContext, PostureEvidence, PostureLevel (L4)
- sat.proto: SatBundle (composite, optional claim fields for has_*() codegen)

Also adds buf.yaml for lint/breaking-change checks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 09:12:59 -05:00

44 lines
1.4 KiB
Protocol Buffer

syntax = "proto3";
package substrate.attestation.v2;
// ─── Layer 3: Governance Claim ──────────────────────────────────────
//
// Governance state binding: active accords, delegations, and ceremony
// state. Hash-chained via governance_epoch for tamper detection.
message GovernanceClaim {
uint32 layer = 1; // MUST be 3
bytes governance_state_hash = 2;
repeated AccordReference active_accords = 3;
repeated DelegationReference active_delegations = 4;
uint32 pending_ceremonies = 5;
uint64 governance_epoch = 6;
bytes previous_governance_hash = 7;
bytes platform_claim_hash = 8;
bytes software_claim_hash = 9;
bytes claim_hash = 10;
}
message AccordReference {
string accord_id = 1;
bytes accord_hash = 2;
string forge_repo = 3;
string forge_commit = 4;
repeated string parties = 5;
string scope = 6; // Summary
string activated_at = 7; // ISO 8601
optional string expires_at = 8;
string qm_receipt = 9;
}
message DelegationReference {
string delegation_id = 1;
string delegator = 2;
string delegate = 3;
repeated string scope = 4;
string delegator_accord = 5;
optional string ceremony_id = 6;
string qm_receipt = 7;
string expires_at = 8; // ISO 8601
}