Zenith Ontology / Historical release
v0.1.0
Source release date: August 23, 2026
Release notes
Zenith Ontology v0.1.0
This is the first canonical, machine-readable Zenith ontology release.
Devgraph is the authoritative source. zenith-research.ca is the public distribution surface. Consumers should resolve the current release through /.well-known/zenith-ontology, pin both version and bundle_digest, and use versioned URLs for reproducible work.
The release contains:
- JSON-LD context and ontology graph;
- transport-neutral Devgraph semantic operation names and schema identifiers;
- the Zenith Repository filesystem contract;
- human-readable class, predicate, taxonomy, readiness, and invariant documentation;
- the generated Neo4j constraint mirror for the bounded Devgraph runtime subset;
- compatibility notes and a checksum manifest.
The ontology is broader than the Devgraph Neo4j runtime. runtimeLabel: false means a canonical concept is not a first-class stored label in the current runtime. In particular, ZenithRepository is canonical vocabulary but projects into Devgraph through ExternalLink, optional SyncShadow, and Artifact evidence.
Numeric secS opcodes are not ontology identifiers. Receiver-local manifests bind those opcodes to the semantic operation names published in operations.json.
Compatibility
Compatibility notes for v0.1.0
This release is additive relative to the existing Devgraph v0 documentation and runtime model.
- Existing runtime labels, predicates, statuses, constraints, persisted records, HTTP payloads, and decoders are unchanged.
- Devgraph becomes the canonical authority for the cross-Zenith ontology; the public domain remains a distribution surface rather than a competing source.
ZenithRepositoryis added to the canonical vocabulary withruntimeLabel: false. It does not add a Neo4j label, constraint, migration, API resource, or authority claim.- Semantic operation names and schema IDs are published for transport-independent discovery. Existing HTTP bindings remain valid; future secS bindings must map receiver-local opcodes to these names.
- Consumers must accept unknown additive classes, predicates, operations, and fields within the same major version. Consumers must fail closed on an unsupported major version or a mismatched pinned digest.
No legacy field or stored representation is removed by this release.
Initial release inventory
The first release establishes the baseline; every entry is shown as added. Term counts exclude the ontology metadata record. File comparisons use manifest checksums; prose and runtime rules can change without new terms.
Vocabulary terms
+42 added · 0 changed · −0 removed
Added
zn:Todo
Before
Absent
After
{ "@id": "zn:Todo", "@type": "owl:Class", "label": "Todo", "comment": "Common base for committed or proposed work objects.", "runtimeLabel": true }zn:Proposal
Before
Absent
After
{ "@id": "zn:Proposal", "@type": "owl:Class", "label": "Proposal", "comment": "Proposed work whose acceptance requires Decision provenance.", "subClassOf": "zn:Todo", "runtimeLabel": true }zn:Initiative
Before
Absent
After
{ "@id": "zn:Initiative", "@type": "owl:Class", "label": "Initiative", "comment": "Strategic work container larger than a Project.", "subClassOf": "zn:Todo", "runtimeLabel": true }zn:Project
Before
Absent
After
{ "@id": "zn:Project", "@type": "owl:Class", "label": "Project", "comment": "Delivery container for issues, tasks, and milestones.", "subClassOf": "zn:Todo", "runtimeLabel": true }zn:Issue
Before
Absent
After
{ "@id": "zn:Issue", "@type": "owl:Class", "label": "Issue", "comment": "PR-boundary work object.", "subClassOf": "zn:Todo", "runtimeLabel": true }zn:Task
Before
Absent
After
{ "@id": "zn:Task", "@type": "owl:Class", "label": "Task", "comment": "Commit-boundary execution slice.", "subClassOf": "zn:Todo", "runtimeLabel": true }zn:Requirement
Before
Absent
After
{ "@id": "zn:Requirement", "@type": "owl:Class", "label": "Requirement", "comment": "Required behavior or condition.", "runtimeLabel": true }zn:AcceptanceCriterion
Before
Absent
After
{ "@id": "zn:AcceptanceCriterion", "@type": "owl:Class", "label": "Acceptance Criterion", "comment": "Checkable condition for accepting work or a requirement.", "runtimeLabel": true }zn:Blocker
Before
Absent
After
{ "@id": "zn:Blocker", "@type": "owl:Class", "label": "Blocker", "comment": "Explicit impediment to work.", "runtimeLabel": true }zn:Decision
Before
Absent
After
{ "@id": "zn:Decision", "@type": "owl:Class", "label": "Decision", "comment": "Accepted design or scope choice with provenance.", "runtimeLabel": true }zn:Handoff
Before
Absent
After
{ "@id": "zn:Handoff", "@type": "owl:Class", "label": "Handoff", "comment": "Context package transferred across actors or sessions.", "runtimeLabel": true }zn:ReviewPacket
Before
Absent
After
{ "@id": "zn:ReviewPacket", "@type": "owl:Class", "label": "Review Packet", "comment": "Reviewable bundle of work, evidence, and criteria.", "runtimeLabel": true }zn:Milestone
Before
Absent
After
{ "@id": "zn:Milestone", "@type": "owl:Class", "label": "Milestone", "comment": "Grouped delivery marker.", "runtimeLabel": true }zn:Artifact
Before
Absent
After
{ "@id": "zn:Artifact", "@type": "owl:Class", "label": "Artifact", "comment": "Evidence or output object.", "runtimeLabel": true }zn:ExternalLink
Before
Absent
After
{ "@id": "zn:ExternalLink", "@type": "owl:Class", "label": "External Link", "comment": "Reference to an external URL or system object without ownership semantics.", "runtimeLabel": true }zn:SyncShadow
Before
Absent
After
{ "@id": "zn:SyncShadow", "@type": "owl:Class", "label": "Sync Shadow", "comment": "Non-authoritative external metadata snapshot.", "runtimeLabel": true }zn:StatusSet
Before
Absent
After
{ "@id": "zn:StatusSet", "@type": "owl:Class", "label": "Status Set", "comment": "Named status vocabulary.", "runtimeLabel": true }zn:StatusValue
Before
Absent
After
{ "@id": "zn:StatusValue", "@type": "owl:Class", "label": "Status Value", "comment": "One value belonging to a Status Set.", "runtimeLabel": true }zn:StatusTransition
Before
Absent
After
{ "@id": "zn:StatusTransition", "@type": "owl:Class", "label": "Status Transition", "comment": "Allowed lifecycle transition.", "runtimeLabel": true }zn:EventReceipt
Before
Absent
After
{ "@id": "zn:EventReceipt", "@type": "owl:Class", "label": "Event Receipt", "comment": "Mutation and local outbox evidence; not external delivery proof.", "runtimeLabel": true }zn:HermesSessionRef
Before
Absent
After
{ "@id": "zn:HermesSessionRef", "@type": "owl:Class", "label": "Hermes Session Reference", "comment": "Reference and safe metrics for an external Hermes session, never a raw transcript.", "runtimeLabel": true }zn:ReadinessAssessment
Before
Absent
After
{ "@id": "zn:ReadinessAssessment", "@type": "owl:Class", "label": "Readiness Assessment", "comment": "Evidence record evaluating work readiness against the canonical rubric.", "runtimeLabel": true }zn:ZenithRepository
Before
Absent
After
{ "@id": "zn:ZenithRepository", "@type": "owl:Class", "label": "Zenith Repository", "comment": "Sovereign Git project conforming to the canonical Zenith filesystem contract. Conformance does not imply network admission, authority, deployment, or delivery correctness.", "runtimeLabel": false }zn:CONTAINS
Before
Absent
After
{ "@id": "zn:CONTAINS", "@type": "owl:ObjectProperty", "label": "contains", "comment": "Hierarchical work containment." }zn:DEPENDS_ON
Before
Absent
After
{ "@id": "zn:DEPENDS_ON", "@type": "owl:ObjectProperty", "label": "depends on", "comment": "Source work cannot complete before target work." }zn:BLOCKS
Before
Absent
After
{ "@id": "zn:BLOCKS", "@type": "owl:ObjectProperty", "label": "blocks", "comment": "Source prevents target work from progressing." }zn:HAS_REQUIREMENT
Before
Absent
After
{ "@id": "zn:HAS_REQUIREMENT", "@type": "owl:ObjectProperty", "label": "has requirement" }zn:HAS_ACCEPTANCE_CRITERION
Before
Absent
After
{ "@id": "zn:HAS_ACCEPTANCE_CRITERION", "@type": "owl:ObjectProperty", "label": "has acceptance criterion" }zn:ACCEPTED_BY_DECISION
Before
Absent
After
{ "@id": "zn:ACCEPTED_BY_DECISION", "@type": "owl:ObjectProperty", "label": "accepted by decision" }zn:HAS_DECISION
Before
Absent
After
{ "@id": "zn:HAS_DECISION", "@type": "owl:ObjectProperty", "label": "has decision" }zn:HAS_HANDOFF
Before
Absent
After
{ "@id": "zn:HAS_HANDOFF", "@type": "owl:ObjectProperty", "label": "has handoff" }zn:HAS_REVIEW_PACKET
Before
Absent
After
{ "@id": "zn:HAS_REVIEW_PACKET", "@type": "owl:ObjectProperty", "label": "has review packet" }zn:HAS_MILESTONE
Before
Absent
After
{ "@id": "zn:HAS_MILESTONE", "@type": "owl:ObjectProperty", "label": "has milestone" }zn:HAS_ARTIFACT
Before
Absent
After
{ "@id": "zn:HAS_ARTIFACT", "@type": "owl:ObjectProperty", "label": "has artifact" }zn:HAS_EXTERNAL_LINK
Before
Absent
After
{ "@id": "zn:HAS_EXTERNAL_LINK", "@type": "owl:ObjectProperty", "label": "has external link" }zn:HAS_SYNC_SHADOW
Before
Absent
After
{ "@id": "zn:HAS_SYNC_SHADOW", "@type": "owl:ObjectProperty", "label": "has sync shadow" }zn:EMITTED_EVENT
Before
Absent
After
{ "@id": "zn:EMITTED_EVENT", "@type": "owl:ObjectProperty", "label": "emitted event", "comment": "Links a mutation subject to local receipt evidence; it does not assert external delivery." }zn:ATTRIBUTED_TO_HERMES_SESSION
Before
Absent
After
{ "@id": "zn:ATTRIBUTED_TO_HERMES_SESSION", "@type": "owl:ObjectProperty", "label": "attributed to Hermes session" }zn:HAS_READINESS_ASSESSMENT
Before
Absent
After
{ "@id": "zn:HAS_READINESS_ASSESSMENT", "@type": "owl:ObjectProperty", "label": "has readiness assessment" }zn:IDENTIFIED_GAP
Before
Absent
After
{ "@id": "zn:IDENTIFIED_GAP", "@type": "owl:ObjectProperty", "label": "identified gap" }zn:USES_RUBRIC
Before
Absent
After
{ "@id": "zn:USES_RUBRIC", "@type": "owl:ObjectProperty", "label": "uses rubric" }zn:SUPPORTED_BY
Before
Absent
After
{ "@id": "zn:SUPPORTED_BY", "@type": "owl:ObjectProperty", "label": "supported by" }
Operations
+15 added · 0 changed · −0 removed
Added
urn:zenith:devgraph:operation:get_work_object:v1
Before
Absent
After
{ "name": "get_work_object", "id": "urn:zenith:devgraph:operation:get_work_object:v1", "mutation": false, "required_scopes": [ "devgraph.read" ], "request_schema_id": "urn:zenith:devgraph:schema:get-work-object-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:work-object:v1" }urn:zenith:devgraph:operation:query_work_objects:v1
Before
Absent
After
{ "name": "query_work_objects", "id": "urn:zenith:devgraph:operation:query_work_objects:v1", "mutation": false, "required_scopes": [ "devgraph.read" ], "request_schema_id": "urn:zenith:devgraph:schema:query-work-objects-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:work-object-list:v1" }urn:zenith:devgraph:operation:create_work_object:v1
Before
Absent
After
{ "name": "create_work_object", "id": "urn:zenith:devgraph:operation:create_work_object:v1", "mutation": true, "required_scopes": [ "devgraph.write" ], "request_schema_id": "urn:zenith:devgraph:schema:create-work-object-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:mutation-result:v1" }urn:zenith:devgraph:operation:update_work_object_content:v1
Before
Absent
After
{ "name": "update_work_object_content", "id": "urn:zenith:devgraph:operation:update_work_object_content:v1", "mutation": true, "required_scopes": [ "devgraph.write" ], "request_schema_id": "urn:zenith:devgraph:schema:update-work-object-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:mutation-result:v1" }urn:zenith:devgraph:operation:archive_work_object:v1
Before
Absent
After
{ "name": "archive_work_object", "id": "urn:zenith:devgraph:operation:archive_work_object:v1", "mutation": true, "required_scopes": [ "devgraph.write" ], "request_schema_id": "urn:zenith:devgraph:schema:archive-work-object-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:mutation-result:v1" }urn:zenith:devgraph:operation:transition_work_object_status:v1
Before
Absent
After
{ "name": "transition_work_object_status", "id": "urn:zenith:devgraph:operation:transition_work_object_status:v1", "mutation": true, "required_scopes": [ "devgraph.write" ], "request_schema_id": "urn:zenith:devgraph:schema:transition-work-object-status-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:mutation-result:v1" }urn:zenith:devgraph:operation:accept_proposal:v1
Before
Absent
After
{ "name": "accept_proposal", "id": "urn:zenith:devgraph:operation:accept_proposal:v1", "mutation": true, "required_scopes": [ "devgraph.write" ], "request_schema_id": "urn:zenith:devgraph:schema:accept-proposal-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:mutation-result:v1" }urn:zenith:devgraph:operation:convert_accepted_proposal_to_issue:v1
Before
Absent
After
{ "name": "convert_accepted_proposal_to_issue", "id": "urn:zenith:devgraph:operation:convert_accepted_proposal_to_issue:v1", "mutation": true, "required_scopes": [ "devgraph.write" ], "request_schema_id": "urn:zenith:devgraph:schema:convert-proposal-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:mutation-result:v1" }urn:zenith:devgraph:operation:children_of:v1
Before
Absent
After
{ "name": "children_of", "id": "urn:zenith:devgraph:operation:children_of:v1", "mutation": false, "required_scopes": [ "devgraph.read" ], "request_schema_id": "urn:zenith:devgraph:schema:children-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:work-object-list:v1" }urn:zenith:devgraph:operation:blockers_for:v1
Before
Absent
After
{ "name": "blockers_for", "id": "urn:zenith:devgraph:operation:blockers_for:v1", "mutation": false, "required_scopes": [ "devgraph.read" ], "request_schema_id": "urn:zenith:devgraph:schema:blockers-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:work-object-list:v1" }urn:zenith:devgraph:operation:export_internal_by_ids:v1
Before
Absent
After
{ "name": "export_internal_by_ids", "id": "urn:zenith:devgraph:operation:export_internal_by_ids:v1", "mutation": false, "required_scopes": [ "devgraph.export.internal" ], "request_schema_id": "urn:zenith:devgraph:schema:export-by-ids-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:internal-export:v1" }urn:zenith:devgraph:operation:export_redacted_by_ids:v1
Before
Absent
After
{ "name": "export_redacted_by_ids", "id": "urn:zenith:devgraph:operation:export_redacted_by_ids:v1", "mutation": false, "required_scopes": [ "devgraph.export.redacted" ], "request_schema_id": "urn:zenith:devgraph:schema:export-by-ids-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:redacted-export:v1" }urn:zenith:devgraph:operation:export_public_safe_summary_by_ids:v1
Before
Absent
After
{ "name": "export_public_safe_summary_by_ids", "id": "urn:zenith:devgraph:operation:export_public_safe_summary_by_ids:v1", "mutation": false, "required_scopes": [ "devgraph.export.redacted" ], "request_schema_id": "urn:zenith:devgraph:schema:export-by-ids-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:public-safe-summary:v1" }urn:zenith:devgraph:operation:health_live:v1
Before
Absent
After
{ "name": "health_live", "id": "urn:zenith:devgraph:operation:health_live:v1", "mutation": false, "required_scopes": [], "request_schema_id": "urn:zenith:devgraph:schema:empty-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:liveness:v1" }urn:zenith:devgraph:operation:health_ready:v1
Before
Absent
After
{ "name": "health_ready", "id": "urn:zenith:devgraph:operation:health_ready:v1", "mutation": false, "required_scopes": [], "request_schema_id": "urn:zenith:devgraph:schema:empty-request:v1", "response_schema_id": "urn:zenith:devgraph:schema:readiness:v1" }
Bundle files
+12 added · 0 changed · −0 removed
Added
README.md
Before
Absent
After
{ "path": "README.md", "sha256": "dd1e832c4e5f262bf4e2b090e9888e0a0e43849ec5801a36562b3905396aca35" }classes.md
Before
Absent
After
{ "path": "classes.md", "sha256": "1ede2e6ab4dcf2559152b246742d5f0ec6a9358a82bc7b8a9d59e49853e44c97" }compatibility.md
Before
Absent
After
{ "path": "compatibility.md", "sha256": "671c7ecd5f2d2197d2ee4b00d8eeb354eff2f600fa7a7213047108ad24f7e8f7" }constraints.cypher
Before
Absent
After
{ "path": "constraints.cypher", "sha256": "4e9d1012f49d7c20fb95ff969808a040029b8a0e4ae2e61347090f3c0039cff1" }context.jsonld
Before
Absent
After
{ "path": "context.jsonld", "sha256": "45bae6e66df778892ea90950dd3d0aab06371701a1d3f1e79d4d096fc90a46e8" }invariants.md
Before
Absent
After
{ "path": "invariants.md", "sha256": "56b2775e9fb5a73bf464edcbf4faef14ab129d8cb7745b96a80d95e00db4f39c" }ontology.jsonld
Before
Absent
After
{ "path": "ontology.jsonld", "sha256": "cfab42fd855a300d43f32a4add66916359e77effc74125b25ac355f81ab03d02" }operations.json
Before
Absent
After
{ "path": "operations.json", "sha256": "6d6098f3a255747a72263222ad708232576181b3224dce8ce9e7077360e97b55" }predicates.md
Before
Absent
After
{ "path": "predicates.md", "sha256": "38a2eefc53a5c17c052ae5111f22c248548fe261db59fc9d6b69dc90d293203d" }readiness.md
Before
Absent
After
{ "path": "readiness.md", "sha256": "233f6e52611c41c4b9f3ec81b9924c3b2a89e6851490b485cd749a59682c4503" }repository-contract.json
Before
Absent
After
{ "path": "repository-contract.json", "sha256": "7cf6da9ce07e9a729c65b3c5aeb1c60e952e55f856361e43c664fba0bc9ecc74" }taxonomy.md
Before
Absent
After
{ "path": "taxonomy.md", "sha256": "b9125bac71a748d6a1ab39f426f34506cb655304856427aa6772a50adce523f1" }
Source history
This release was already present in the first public repository snapshot. The commit below records its public availability, not its original authoring date. Notes and history are pinned to source revision c72770e.
- Release Devgraph public beta under AGPLv3 (ca0d95f)
September 15, 2026
Bundle SHA-256: 95d0a6e69fd8b79e46802b7e9f4a0cea8564b15add9cfa8f430b2a9d62c0f0e3