Policy is reusable while facts stay local
The shipped module supplies predicate schemas, releasability policy, and transitivity; the model owns its reviews and graph.
Canonical Grid model
A release decision with policy, graph dependencies, attributable evidence, and a complete explanation.
What this model gives you
20 min to study · Source reviewed 2026-08-25
Continue with guided practiceExpected checkpoint
After loading the complete source bundle with all three services reviewed and independent QA/security evidence.
The shipped module supplies predicate schemas, releasability policy, and transitivity; the model owns its reviews and graph.
QA supports approval and security refutes it, so evidence is both and the explicit modalities each read their side.
WHY can show the authorities behind approval and both dependency edges behind the inferred database route.
MODEL "Release Governance"
DESCRIPTION "A release decision with policy, graph dependencies, attributable evidence, and a complete explanation."
VERSION "1.0.0"
TAGS "predicate", "governance", "evidence", "graph", "explain"
USE "shared/governance.gs" AS policy
# Policy applies to model symbols and follows their dependency graph.
database is :reviewed(:data) = 1
api is :reviewed(:platform) = database + 1
release is :reviewed(:change_board) = api + 1
release dependency api
api dependency database
# Operational knowledge remains a resident graph rather than copied facts.
graph governance = GRAPH(
[
["edge_id", "from", "to", "relation"],
["approval", "release", "deployment", "approved"],
["release-api", "release", "api", "dependency"],
["api-database", "api", "database", "dependency"]
] AS edges,
"edge_id" AS edge_id,
"from" AS from,
"to" AS to,
["relation"] AS edge_properties,
TRUE AS directed
)
KNOWLEDGE GRAPH governance VIA edge.relation
# Independent authorities can disagree without collapsing the model.
EVIDENCE qa_approval SUPPORTS ("release" approved "deployment") BY qa
EVIDENCE security_hold REFUTES ("release" approved "deployment") BY security
R1C1 = MUST(release IS :releasable)
R1C2 = EVIDENCE("release" approved "deployment")
R1C3 = MUST("release" approved "deployment")
R1C4 = CANNOT("release" approved "deployment")
R5C2 = REACHABLE VIA dependency* FROM "release"
R1C6 = release.predicates.reviewed.by
R1C7 = MUST("release" dependency "database")
# Inspect R1C2 for contested evidence, R5C2 for route witnesses, and R1C7
# for the exact graph edges behind the inferred dependency.
END MODEL