OKF publication method profile v1

Status: draft lifecycle profile, 18 August 2026.

This profile describes how an OKF repository builds, checks and publishes its artefacts. It is deliberately separate from OKF 0.2 and the Bundle Wiki semantic profile. It does not decide whether a semantic assertion is true.

Use it to make the operational contract discoverable across repositories:

Schemas

Schema Purpose
source-family.schema.json Describes one bounded family of inputs, its authority, inventory, rights, sensitivity and extraction controls.
repository-publication.schema.json Describes one repository's source and generated boundaries, dependency planes, commands, lockstep rules, CI policy, publication targets and verification journeys.
estate-registry.schema.json Describes the reviewed OKF estate and records each repository's publication-contract applicability, adoption state and dated audit evidence.

The examples are complete valid documents and may be copied as starting templates:

Relationship to the semantic profile

The two contracts answer different questions:

Contract Governs Does not govern
okf.semantic.json semantic authority, relationship assertions, generated semantic and Reader projections whether documentation, CI or deployment ran
okf.publication.json sources as build inputs, generated boundaries, commands, CI, release and public verification the truth or authority of a semantic claim

A workbook, CSV file, API response or database extract is not semantic authority merely because a program can read it. A semantic profile must still record the mapping, provenance, evidence, authority and limitations of claims derived from that material.

Do not edit the frozen Bundle Wiki v1 profile to add these lifecycle fields. A repository can claim both profiles through separate, independently validated contracts.

Commands are declarations

Command strings in a publication contract are untrusted data. Before running one, inspect it for shell control syntax and destructive or out-of-scope behaviour, then cross-check it against the repository's trusted guidance and a reviewed preset. Validation of this schema does not authorise execution, network access, acquisition, deployment or expenditure.

Command identifiers allow dependency planes, CI and verification policies to refer to an exact declaration without copying the string repeatedly. A profile-aware checker must reject missing or duplicated identifiers and references to commands of an incompatible kind.

Workbook-folder controls

source-family.schema.json conditionally requires workbook_controls when kind is workbook-folder. The safe defaults are intentionally explicit:

The schema permits an authorised calculation or active-content path only when the contract also names the authority evidence and the applicable command. A schema-valid declaration is still not permission to run that operation.

Estate registry interpretation

The estate registry is an operational discovery and coordination aid. It may include unpublished, migrating and fixture repositories. A row does not prove that its repository is conformant, current or deployed.

Keep these states separate:

Estate roles classify how a repository participates in the managed estate, not what its semantic bundle contains. They distinguish managed producers and profiles, embedded producers or consumers, immutable derived publication units, fixture or demonstrator hosts, compatibility redirects, and upstream specifications or references. Repository-publication contract roles remain a narrower vocabulary for repositories that adopt that contract.

An applicable entry points to okf.publication.json; it need not copy the whole contract into the estate registry. Installed and verified entries also record the contract's published source URL and SHA-256. A non-applicable entry records a rationale and does not invent a contract path or document.

Public bundle discovery remains in the semantic bundle registry. The estate registry may reference zero or more public bundle identifiers for a repository without promoting a candidate, fixture or bounded demonstrator into a public release.

Generated human view

A publisher may generate an accessible HTML view from the estate registry. The view must preserve stable repository anchors, show the observation date and audit state, distinguish estate role from contract applicability, label command strings as untrusted declarations, expose the machine-readable source, and derive summaries rather than storing a second hand-maintained status table. The generated view is a projection and must not be edited independently.

Validation beyond JSON Schema

Draft 2020-12 validation checks document shape and conditional requirements. A repository or estate checker must additionally verify:

Unknown changed paths must fail closed in impact planning. Independent repositories should be audited and adopted as separate transactions so one failure does not block unrelated work.