Okf author
Claude Code plugin: author, explore, validate, and visualize Google's Open Knowledge Format (OKF) v0.1 bundles.
npx -y skills add shreytam/okf-toolkit --skill okf-authorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 28 days oldThe repository was created 28 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Author conformant Open Knowledge Format (OKF) v0.1 bundles — Google's open markdown+YAML-frontmatter spec for packaging organizational knowledge (tables, datasets, metrics, APIs, runbooks, playbooks) so AI agents and humans can consume it. Use this skill whenever the user mentions OKF, Open Knowledge Format, knowledge bundles, an "LLM wiki", agent-readable documentation, or wants to convert schemas, data dictionaries, catalogs, runbooks, internal docs, or a codebase (services, modules, API endpoints, architecture decisions) into a portable markdown knowledge base — even if they don't say "OKF" explicitly.
SKILL.md
6.8 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
Authoring OKF Bundles
OKF (Open Knowledge Format) v0.1 represents knowledge as a directory of
markdown files with YAML frontmatter. Each file is one concept (a table,
metric, API, runbook, …); the file path is its identity; markdown links
between files form a knowledge graph. The full specification is in
references/okf-spec.md — consult it for any detail not covered here.
Workflow
1. Understand the source material
Identify the concepts in what the user gives you (schemas, docs, CSVs, API definitions, tribal knowledge in prose). One concept = one file. Ask the user only if the grouping is genuinely ambiguous.
2. Plan the hierarchy
Group concepts into subdirectories by kind or domain — e.g. tables/,
datasets/, metrics/, playbooks/, apis/, references/. The directory
layout is free-form; pick what makes the bundle self-explanatory to someone
running ls. Two filenames are reserved at every level and must never be
used for concepts: index.md (directory listing) and log.md (change
history).
3. Write each concept document
Every concept file needs YAML frontmatter delimited by --- lines, then a
markdown body:
---
type: BigQuery Table # REQUIRED — the only mandatory field
title: Orders
description: One row per completed customer order.
resource: https://console.cloud.google.com/bigquery?p=acme&d=sales&t=orders
tags: [sales, orders]
timestamp: 2026-05-28T14:30:00Z
---
# Schema
| Column | Type | Description |
|---------------|---------|-------------------------------------------|
| `order_id` | STRING | Unique order identifier. |
| `customer_id` | STRING | FK to [customers](/tables/customers.md). |
# Joins
Joined with [customers](/tables/customers.md) on `customer_id`.
Frontmatter rules that matter:
typeis the only required field. Pick descriptive, self-explanatory values (BigQuery Table,Metric,Playbook,API Endpoint,Reference) — there is no central registry.- Recommended, in priority order:
title,description(one sentence — index generators and search snippets use it),resource(canonical URI of the underlying asset; omit for abstract concepts),tags(YAML list),timestamp(ISO 8601). - Extra producer-defined keys are allowed; don't strip them when editing an existing bundle.
Body rules: favor structural markdown (headings, tables, fenced code) over
prose — it aids both human reading and agent retrieval. Three headings have
conventional meaning; use them when applicable: # Schema (columns/fields),
# Examples (usage, fenced code), # Citations (numbered external sources,
at the bottom: [1] [label](url)).
4. Cross-link concepts
Link related concepts with normal markdown links. Prefer the
bundle-relative absolute form — starts with /, resolved from the bundle
root: [customers](/tables/customers.md). It survives files moving between
subdirectories. The relationship kind (joins-with, depends-on, part-of) is
conveyed by surrounding prose, not the link. Linking to a not-yet-written
concept is fine — broken links are legal and represent future knowledge.
5. Generate index.md files
Add an index.md to the bundle root and each subdirectory for progressive
disclosure. Index files have no frontmatter (exception: the bundle-root
index may carry a frontmatter block with just okf_version: "0.1" — the
recommended way to declare the spec version). Format:
# Tables
* [Orders](orders.md) - One row per completed customer order.
* [Customers](customers.md) - One row per registered customer.
# Subdirectories
* [Metrics](metrics/) - Business metric definitions.
Pull each entry's description from the linked concept's frontmatter so the index stays consistent with the concepts.
6. Add log.md (when history matters)
For bundles that will evolve, add a root log.md — date-grouped entries,
newest first, ISO YYYY-MM-DD headings:
# Directory Update Log
## 2026-07-11
* **Initialization**: Created bundle with [orders](/tables/orders.md) and [customers](/tables/customers.md).
Entry prefixes (**Creation**, **Update**, **Deprecation**) are
conventions, not requirements. Skip log.md for one-shot exports unless the
user asks.
7. Validate before delivering
Run the bundled conformance checker on the finished bundle:
(scripts/validate_okf.py lives under this skill's base directory —
use its absolute path, since the shell's working directory is elsewhere.)
python3 <skill-base-dir>/scripts/validate_okf.py <bundle-dir>
It checks the three conformance rules (every non-reserved .md has parseable
frontmatter; every frontmatter has a non-empty type; reserved files are
structured correctly) and warns on soft issues like broken internal links and
missing descriptions. Fix errors; use judgment on warnings (broken links may
be intentional). Tell the user the validation result.
Judgment calls
-
Codebase bundles: OKF documents a codebase, it does not replace it. Create one concept per service/module (
type: Service), API endpoint, data model, architecture decision (type: ADR), and runbook; pointresourceat the file, spec, or console URL; cross-link service -> endpoints -> tables -> runbooks. Keep the bundle in the repo (e.g.knowledge/) so it versions with the code. -
Granularity: a 40-column table is still one concept; a dataset with 40 tables is 40 concepts plus a dataset concept linking to them.
-
Don't subsume other schemas: OKF references Avro/Protobuf/OpenAPI definitions via
resourceor citations; it doesn't replace them. Summarize the schema in a# Schematable, link to the authoritative source. -
Consumers are permissive by spec — missing optional fields, unknown types, and broken links must not break a bundle. So when converting messy source material, ship a partially-enriched bundle rather than blocking on completeness; note gaps in
log.mdor the concept body. -
Editing an existing bundle: preserve unknown frontmatter keys and unfamiliar directory conventions; update the relevant
index.mdandlog.mdentries to match your changes.
What ships with it: 2 files
20.1 KB alongside SKILL.md, 1 of them executable
references/
- okf-spec.md14.8 KB
scripts/
- validate_okf.pyruns5.3 KB