| type | Reference | |||||
|---|---|---|---|---|---|---|
| title | OKF documentation and commit policy | |||||
| description | Canonical rules for public vs ephemeral vs private knowledge, commit messages, and post-update bundle consistency. | |||||
| tags |
|
|||||
| timestamp | 2026-08-22 00:00:00 UTC |
Single source of truth for OKF knowledge and commit wording. Other OKF docs/work queues link here; do not restate.
| Kind | Where it lives | What it contains |
|---|---|---|
| Public (durable) | GitHub-public reference docs and indexes under okf-bundle/ (not work-queue files) |
Stable API names, registry IDs, SDK versions, classifications, verification methods, architecture, canonical commands |
| Ephemeral | Linear project work-queue documents (grandfathered okf-bundle/**/*work-queue.md until migrated) |
Session phase/probe IDs, planned commit subjects (commit_subject), gate state, next_work_type, snapshot labels, dated banners, run counts |
| Private | Linear issues and internal docs | Issue IDs, discussion, non-public commercial terms. Not GitHub-public; not the same as ephemeral |
GitHub-public reference docs, AGENTS.md, commits, and PR titles must not contain ephemeral fields (for example work-queue gates) or private items (for example Linear issue identifiers). Queue state lives on Linear project documents, not in new git files. Grandfathered repo *work-queue.md files may still hold ephemeral fields until pickup.
Rules
- General OKF docs get public/durable only updates: no phase IDs, commit subjects, session e2e counts, gate snapshots, or Linear issue identifiers.
- Ephemeral state lives only in work queues. Private tracker state lives on the Linear issue. When an item closes, public outcomes move to reference docs; archive the Linear queue document (un-archive on reopen).
- Durable docs may link to a work queue for current status; do not duplicate ephemeral or private fields.
We treat git commits as durable documentation: they are the canonical record of what changed, when, and why — for humans and agents reviewing history later, not only for the current PR thread.
Commit messages use Conventional Commits and describe durable product/process deliverables: what changed and why, not probe IDs, gates, e2e counts, or “phase X complete”.
Commit subjects and PR titles use Conventional Commits. When a PR contains exactly one commit, the PR title must match that commit's subject line exactly (character-for-character). Multi-commit PRs use a summary title that describes the overall change set.
PRs are squash-merged. Maintainers or agents may amend or squash to fix a non-conforming subject so the published commit is Conventional Commits. That is an exception flow to repair a violation, not permission to skip the format on commits.
OKF markdown edits require an independent bundle consistency pass. That pass is independent-review when the frozen tree includes okf-bundle/ reference docs, AGENTS.md, or CONTRIBUTING.md — validation-checklist § OKF bundle review. The documentation work type promotes durable text; it does not run this scan. Loop order: change authoring § primary loop.
Scan the entire okf-bundle/ tree against:
| Check | Requirement |
|---|---|
| Canonical location | Each topic has one owning doc; others link to it. Bundle owners: index.md. Testing owners: testing/index.md (file and section links). |
| DRY | No duplicated procedures, policy paragraphs, or ephemeral snapshots outside work queues |
| Efficiency | Shortest text that stays complete and true (§ Efficiency). Completeness wins over brevity |
| Link hygiene | Cross-links resolve; indexes list canonical entry points |
| Durability | No ephemeral or private fields in GitHub-public reference docs, commits, or PR titles. Queue state lives on Linear (or a grandfathered repo file until pickup). Linear issue identifiers stay off GitHub |
Report-only during independent-review (frozen tree). Fix before git commit. Do not add OKF after a frozen review without another independent-review. Work-queue edits still follow this split.
Efficiency is information-preserving brevity, not a token budget.
Pass when:
- Non-owning docs link to the owner instead of copying procedures, policy paragraphs, or command lists.
- Sentences and tables are as short as they can be without dropping a rule, case, exception, location, dual path (for example single- vs multi-commit PR titles), blocking step, or inbound heading id.
- Index and
AGENTS.mdsummaries remain true: every distinction an agent needs in order to act correctly is either stated or linked with enough qualifier that the wrong place or rule cannot be assumed.
Fail when:
- A shorter owner doc omits a requirement that existed, or that other docs still depend on.
- A summary collapses two cases into one.
- A heading rename breaks
#fragmentlinks. - “Don’t restate” is used to skip updating
AGENTS.mdor indexes after a policy change.
If shortening would change how an agent acts, keep the longer text.
Work queues are intentionally ephemeral: phases, commit subjects, gates, active coordination. They are not policy or finalized registry/design homes.
Home: a Linear project document on the issue's Linear project. Not a git file, and not the issue description. One copy. Document shape: How the Work Queue Orchestrator Works. Issue pointer rules: Cross Platform Issue Authoring & Agent Workflow Guide, Step 10.
Do not create new okf-bundle/**/*work-queue.md files.
Existing repo queues: stay the source of truth until that item is next picked up. On pickup, copy the file into a Linear project document, point the Linear issue at it (Queue: linear-work-queue), and delete the file in the same change. Do not dual-write.
Work queues record gates, next_work_type, validation_tier, and commit_subject using field names and allowed values from iteration vocabulary. Gate semantics, workflow rules, and commit_subject recording: change authoring workflow (including § commit). Public OKF owns those terms, gates, and commands. They do not name agent roles, dispatch instructions, or session choreography.
Record commit_subject (the planned Conventional Commit subject line) before git commit. After commit, the subject in git and in the Linear queue document must match character-for-character (PR title rule for single-commit PRs). Do not record SHAs. The queue document is not part of the git changeset.