$npx -y skills add inkeep/open-knowledge --skill okfHow to work in an OKF starter project (the okf starter pack): a knowledge base that is conformant with Google's Open Knowledge Format (OKF) from commit one — concepts/, references/, notes/, a reserved index.md navigation hub, and a reserved log.md change history. Read
| 1 | # OKF starter pack — how to work here |
| 2 | |
| 3 | This project was scaffolded to be conformant with **Google's Open Knowledge Format (OKF) v0.1** from the first commit — markdown + YAML frontmatter, a standard-markdown link graph, and two reserved files. Conformance here is pre-populated, **not enforced**: OpenKnowledge's native frontmatter schema stays open-shaped, nothing is linted, and you are free to author however you like. This skill explains the conventions so the kit stays OKF-portable as it grows. |
| 4 | |
| 5 | > This skill is pack guidance. The platform `open-knowledge` skill (read/write/preview/grounding rules) still governs every markdown operation — this layers OKF conventions on top. |
| 6 | |
| 7 | ## The one rule (keep the kit conformant) |
| 8 | |
| 9 | OKF requires exactly one thing of every **non-reserved** document: a **non-empty `type`** in its frontmatter. That is the whole conformance contract for your content. |
| 10 | |
| 11 | - The value is **yours to choose** — `concept`, `reference`, `note`, `person`, `event`, anything that fits. There is no blessed taxonomy. |
| 12 | - `Document` is a fine **generic fallback** when nothing more specific fits (it is just a non-empty value, not a special keyword). |
| 13 | - The folder templates already set a sensible `type` per section — create docs with `write({ document: { path, template: "<name>" } })` and you inherit it. |
| 14 | |
| 15 | ## Folders |
| 16 | |
| 17 | - **`concepts/`** — durable ideas and definitions, one file per concept (`type: concept`). |
| 18 | - **`references/`** — external sources and citations you rely on (`type: reference`). |
| 19 | - **`notes/`** — working notes and observations (`type: note`). |
| 20 | |
| 21 | Link liberally with **standard markdown links** (`[text](./path.md)`) — the value is the graph that emerges from the links between typed docs, and standard links keep that graph portable to any OKF consumer. (OpenKnowledge also accepts `[[wiki-link]]` shorthand as a native superset and preserves it byte-for-byte — but seeded content uses standard links so the bundle is conformant as-is.) |
| 22 | |
| 23 | ## Reserved files (keep them frontmatter-free) |
| 24 | |
| 25 | OKF reserves two lowercase files at the project root. **Neither carries frontmatter** — adding any frontmatter to a reserved file breaks OKF conformance. |
| 26 | |
| 27 | - **`index.md`** (OKF §6) — the navigation hub: a link-list to the key docs and sections. Keep it current as you add important docs; it is how a reader (or a strict OKF consumer) finds their way in. |
| 28 | - **`log.md`** (OKF §7) — the change history: newest-first dated entries shaped `## YYYY-MM-DD: <summary>`. Add an entry whenever you create, edit, or restructure content. The seed ships a prose instruction documenting this format — add your first dated entry on your first edit. |
| 29 | |
| 30 | The tool does not keep these live for you (that would be enforcement) — maintaining them is part of authoring here. |
| 31 | |
| 32 | ## What stays OKF-portable |
| 33 | |
| 34 | - Every non-reserved doc has a non-empty `type`. ✅ |
| 35 | - `index.md` / `log.md` stay lowercase and frontmatter-free. ✅ |
| 36 | - Links use standard markdown / wiki-link syntax. ✅ |
| 37 | |
| 38 | If you ever want to hand this knowledge base to a strict OKF consumer, those three habits are all it takes. |