Migrate owned cadence declaration to published contract
Assistant: codex Assistant-Model: gpt-6.1-sol Assistant-Session: 01a1029d-2c93-7500-a0e0-e3e089668b29
This commit is contained in:
parent
3abb576821
commit
931e0b3249
4 changed files with 289 additions and 52 deletions
234
cadence.yaml
234
cadence.yaml
|
|
@ -1,38 +1,196 @@
|
|||
# Source-side emission cadence for load-bearing approval evidence.
|
||||
# Statute §9.6; detection surface GH-WP-0002-T04.
|
||||
schema_version: "0.1"
|
||||
source: approval-engine
|
||||
kind: load-bearing
|
||||
form: heartbeat-or-reconciliation
|
||||
rate_monitoring: forbidden
|
||||
|
||||
heartbeat:
|
||||
class: heartbeat
|
||||
interval: 24h
|
||||
assertion: nothing-to-report
|
||||
missing: finding
|
||||
|
||||
reconciliation:
|
||||
compare:
|
||||
local: committed outbox counts per class
|
||||
remote: "audit-core event counts where source=approval-engine"
|
||||
divergence: finding
|
||||
undrained_local: lag-not-divergence
|
||||
|
||||
lag_bound:
|
||||
outbox_depth: 100
|
||||
outbox_age: 1h
|
||||
exceed: finding
|
||||
|
||||
classes:
|
||||
issuance:
|
||||
action: approval.issuance
|
||||
use:
|
||||
action: approval.use
|
||||
note: "Public CAS consumption under GH-DEC-2026-003."
|
||||
supersession:
|
||||
action: approval.supersession
|
||||
revocation:
|
||||
action: approval.revocation
|
||||
heartbeat:
|
||||
action: approval.heartbeat
|
||||
{
|
||||
"schema_version": "0.1",
|
||||
"declaration_id": "approval-engine-emission-cadence-v0.1",
|
||||
"source": "approval-engine",
|
||||
"sources": [
|
||||
{
|
||||
"source_id": "approval-engine:issuance",
|
||||
"source_system": "approval-engine",
|
||||
"event_class": "issuance",
|
||||
"form": "heartbeat-or-reconciliation",
|
||||
"reconciliation": {
|
||||
"compare_local": "committed outbox issuance counts for the same tenant and bounded window; drained counts exclude pending lag",
|
||||
"compare_observed": "audit-core accepted action=approval.issuance counts for source=approval-engine, tenant=tenant:platform and identical since/until bounds",
|
||||
"divergence": "finding",
|
||||
"undrained_local": "lag-not-divergence"
|
||||
},
|
||||
"extensions": {
|
||||
"netkingdom": {
|
||||
"evidence_class": "load-bearing",
|
||||
"rate_monitoring": "forbidden"
|
||||
},
|
||||
"approval-engine": {
|
||||
"action": "approval.issuance"
|
||||
}
|
||||
},
|
||||
"heartbeat": {
|
||||
"event_class": "audit-core.heartbeat",
|
||||
"interval_seconds": 86400,
|
||||
"assertion": "nothing-to-report",
|
||||
"missing": "finding",
|
||||
"extensions": {
|
||||
"approval-engine": {
|
||||
"asserted_class": "issuance",
|
||||
"requested_observer_max_gap_seconds": 172800,
|
||||
"observer_registration_status": "pending"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"source_id": "approval-engine:use",
|
||||
"source_system": "approval-engine",
|
||||
"event_class": "use",
|
||||
"form": "heartbeat-or-reconciliation",
|
||||
"reconciliation": {
|
||||
"compare_local": "committed outbox use counts for the same tenant and bounded window; drained counts exclude pending lag",
|
||||
"compare_observed": "audit-core accepted action=approval.use counts for source=approval-engine, tenant=tenant:platform and identical since/until bounds",
|
||||
"divergence": "finding",
|
||||
"undrained_local": "lag-not-divergence"
|
||||
},
|
||||
"extensions": {
|
||||
"netkingdom": {
|
||||
"evidence_class": "load-bearing",
|
||||
"rate_monitoring": "forbidden"
|
||||
},
|
||||
"approval-engine": {
|
||||
"action": "approval.use"
|
||||
}
|
||||
},
|
||||
"heartbeat": {
|
||||
"event_class": "audit-core.heartbeat",
|
||||
"interval_seconds": 86400,
|
||||
"assertion": "nothing-to-report",
|
||||
"missing": "finding",
|
||||
"extensions": {
|
||||
"approval-engine": {
|
||||
"asserted_class": "use",
|
||||
"requested_observer_max_gap_seconds": 172800,
|
||||
"observer_registration_status": "pending"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"source_id": "approval-engine:supersession",
|
||||
"source_system": "approval-engine",
|
||||
"event_class": "supersession",
|
||||
"form": "heartbeat-or-reconciliation",
|
||||
"reconciliation": {
|
||||
"compare_local": "committed outbox supersession counts for the same tenant and bounded window; drained counts exclude pending lag",
|
||||
"compare_observed": "audit-core accepted action=approval.supersession counts for source=approval-engine, tenant=tenant:platform and identical since/until bounds",
|
||||
"divergence": "finding",
|
||||
"undrained_local": "lag-not-divergence"
|
||||
},
|
||||
"extensions": {
|
||||
"netkingdom": {
|
||||
"evidence_class": "load-bearing",
|
||||
"rate_monitoring": "forbidden"
|
||||
},
|
||||
"approval-engine": {
|
||||
"action": "approval.supersession"
|
||||
}
|
||||
},
|
||||
"heartbeat": {
|
||||
"event_class": "audit-core.heartbeat",
|
||||
"interval_seconds": 86400,
|
||||
"assertion": "nothing-to-report",
|
||||
"missing": "finding",
|
||||
"extensions": {
|
||||
"approval-engine": {
|
||||
"asserted_class": "supersession",
|
||||
"requested_observer_max_gap_seconds": 172800,
|
||||
"observer_registration_status": "pending"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"source_id": "approval-engine:revocation",
|
||||
"source_system": "approval-engine",
|
||||
"event_class": "revocation",
|
||||
"form": "heartbeat-or-reconciliation",
|
||||
"reconciliation": {
|
||||
"compare_local": "committed outbox revocation counts for the same tenant and bounded window; drained counts exclude pending lag",
|
||||
"compare_observed": "audit-core accepted action=approval.revocation counts for source=approval-engine, tenant=tenant:platform and identical since/until bounds",
|
||||
"divergence": "finding",
|
||||
"undrained_local": "lag-not-divergence"
|
||||
},
|
||||
"extensions": {
|
||||
"netkingdom": {
|
||||
"evidence_class": "load-bearing",
|
||||
"rate_monitoring": "forbidden"
|
||||
},
|
||||
"approval-engine": {
|
||||
"action": "approval.revocation"
|
||||
}
|
||||
},
|
||||
"heartbeat": {
|
||||
"event_class": "audit-core.heartbeat",
|
||||
"interval_seconds": 86400,
|
||||
"assertion": "nothing-to-report",
|
||||
"missing": "finding",
|
||||
"extensions": {
|
||||
"approval-engine": {
|
||||
"asserted_class": "revocation",
|
||||
"requested_observer_max_gap_seconds": 172800,
|
||||
"observer_registration_status": "pending"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"source_id": "approval-engine:heartbeat",
|
||||
"source_system": "approval-engine",
|
||||
"event_class": "heartbeat",
|
||||
"form": "heartbeat-or-reconciliation",
|
||||
"reconciliation": {
|
||||
"compare_local": "committed outbox heartbeat counts for the same tenant and bounded window; drained counts exclude pending lag",
|
||||
"compare_observed": "audit-core accepted action=audit-core.heartbeat counts for source=approval-engine, tenant=tenant:platform and identical since/until bounds",
|
||||
"divergence": "finding",
|
||||
"undrained_local": "lag-not-divergence"
|
||||
},
|
||||
"extensions": {
|
||||
"netkingdom": {
|
||||
"evidence_class": "load-bearing",
|
||||
"rate_monitoring": "forbidden"
|
||||
},
|
||||
"approval-engine": {
|
||||
"action": "audit-core.heartbeat"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"extensions": {
|
||||
"approval-engine": {
|
||||
"lag_bound": {
|
||||
"outbox_depth": 100,
|
||||
"outbox_age_seconds": 3600,
|
||||
"exceed": "finding",
|
||||
"enforcement_status": "observer-delivery-pending"
|
||||
},
|
||||
"inventory": {
|
||||
"load_bearing": [
|
||||
"issuance",
|
||||
"use",
|
||||
"supersession",
|
||||
"revocation",
|
||||
"heartbeat"
|
||||
],
|
||||
"rare_load_bearing": [
|
||||
"issuance",
|
||||
"use",
|
||||
"supersession",
|
||||
"revocation"
|
||||
],
|
||||
"attributive": []
|
||||
},
|
||||
"contract": {
|
||||
"owner": "info-tech-canon",
|
||||
"document_version": "0.2.0",
|
||||
"status": "candidate",
|
||||
"schema_sha256": "6d52692eb1e4d1325e0d6062d95acded98beddaae5bcfe24c6f0e91f1b6be6ae"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue