okf
Create, author, validate, and navigate Open Knowledge Format (OKF) bundles — vendor-neutral knowledge represented as a directory of markdown files with YAML…
Skill by mattjoyce
Chalk Labs
Need help deploying okf?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/mattjoyce-okf
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/okf
What's inside
- Skill name
okf- Description
- Create, author, validate, and navigate Open Knowledge Format (OKF) bundles — vendor-neutral knowledge represented as a directory of markdown files with YAML frontmatter. Use when asked to create an OKF bundle, write a concept document, build a knowledge bundle/catalog as markdown, produce index.md or log.md for a bundle, check OKF conformance, convert metadata or docs into OKF, or work with anything described as OKF, a "knowledge bundle", or "metadata as markdown".
- License
- Apache-2.0
- Instructions
- 176 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (10)
- SKILL.md
- index.md · examples/minimal_bundle/datasets/
- sales.md · examples/minimal_bundle/datasets/
- index.md · examples/minimal_bundle/
- customers.md · examples/minimal_bundle/tables/
- index.md · examples/minimal_bundle/tables/
- orders.md · examples/minimal_bundle/tables/
- spec-quickref.md · references/
- tooling.md · references/
- validate_okf.py · scripts/
SKILL.md (first lines)
# OKF — Open Knowledge Format OKF represents **knowledge** (the metadata and context around data and systems) as a directory of markdown files with YAML frontmatter. No schema registry, no SDK, no required tooling: **if you can `cat` a file you can read OKF; if you can `git clone` a repo you can ship it.** Authoritative spec: OKF v0.1 (`references/spec-quickref.md`). ## The model (learn this first) You cannot author a bundle correctly without the mental model. Five terms: - **Bundle** — a directory tree of markdown files. The unit of distribution (a git repo, a tarball, or a subdir of a larger repo). - **Concept** — one unit of knowledge = one markdown file. May describe a real asset (a table, an API) or an abstract idea (a metric, a playbook). - **Concept ID** — the file's path within the bundle with `.md` removed. `tables/users.md` → concept id `tables/users`. **The path *is* the concept's identity**: moving or renaming a file renames the concept and breaks every inbound link to it. Each segment must be a filesystem-safe slug (exact rule: `references/spec-quickref.md` §2). - **Links** — a standard markdown link from one concept to another asserts a *relationship*; the kind of relationship lives in the surrounding prose, not the link. Prefer **bundle-relative links rooted at `/`**: `[customers](/tables/customers.md)`. These are robust to moving the *linking* file (the target path doesn't change with the source's depth); they still break if the *target* moves — nothing rewrites links, and consumers treat a broken link as not-yet-written knowledge, not an error. - **Reserved files** — `index.md` (directory listing, §6) and `log.md` (update history, §7). These two filenames MUST NOT be used for concept documents. Every other `.md` file is a concept. A concept document = a YAML frontmatter block delimited by `---` lines, then a markdown body. The **`type` field is required** and must be non-empty — it is the one field consumers route on. See `references/spec-quickref.md` for all fields and the full conformance checklist. **Why it's built this way.** OKF is *permissive by design*: no schema registry, unknown `type`s and extra keys tolerated, broken links allowed. That is not sloppiness — it is the bet that knowledge is authored incrementally and never complete, so a bundle must stay useful while it is half-written, refactored, or partly agent-generated. Treat missing concepts and broken links as gaps to fill later, not defects to reject. **Conformance vs. tooling-strict (one rule, stated once).** Spec §9 conformance needs only a non-empty `type`. The reference producer (`enrichment_agent`) is stricter — `type`, `title`, `description`, `timestamp` all truthy. Authoring all four is *defensive* (maximal compatibility with the strictest likely consumer), not an OKF requirement. Default to all four; validate with `--strict` to enforce them. See `spec-quickref.md` §"Spec vs. reference-tooling differences" for the full divergence. ## How to create a bundle from scratch 1. `mkdir` a bundle directory. Decide a shallow type-based layout (`datasets/`, `tables/`, `references/`, `playbooks/` …) — the structure is yours; OKF does not dictate a taxonomy. 2. Write one concept document per unit of knowledge (next section). 3. Cross-link related concepts with `/`-rooted markdown links. 4. Write an `index.md` per directory for progressive disclosure (how-to below). 5. Validate: `python3 scripts/validate_okf.py <bundle-dir> --strict`. 6. (Optional) Add a `log.md` (hand-authored only — see `spec-quickref.md` §7; no tool generates it), ship as a git repo, or render with the visualizer (`references/tooling.md`). See a complete, validated bundle in `examples/minimal_bundle/`. ## How to author a concept document Create `<type-dir>/<name>.md`: ```markdown --- type: BigQuery Table # the only field §9 requires; must be non-empty 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-28T00:00:00Z --- # Schema | Column | Type | Description | |------------|---------|----------------------------------------------| | `order_id` | STRING | Unique order identifier. | | `cust_id` | STRING | FK to [customers](/tables/customers.md). | Part of the [sales dataset](/datasets/sales.md). ``` Field meanings and which are required: `references/spec-quickref.md` §4.1. **Always open the file with `---`.** A file *missing* the opening fence parses as all-body with empty frontmatter and silently fails conformance (no `type`); a file with an *unterminated* fence is a hard error. The silent case is the trap — start every concept with `---`. Favor structural markdown (headings, tables, lists, fenced code) over prose — it aids both human reading and agent retrieval. Conventional headings: `# Schema`, `# Examples`, `# Citations` (use when applicable). Producers MAY add any extra frontmatter keys; consumers must tolerate unknown keys and unknown `type` values. ## How to write an index.md `index.md` has **no frontmatter**. Group entries under `#` headings (by type), one bullet per entry, description from the linked concept's frontmatter: ```markdown # BigQuery Table * [Orders](orders.md) - One row per completed customer order. * [Customers](customers.md) - One row per customer. # Subdirectories * [datasets](datasets/index.md) - Dataset-level concepts. ``` The one permitted exception to "no frontmatter": the **bundle-root** `index.md` may carry a single `okf_version` line as a bare key (no `---` fences), at the very top: ```markdown okf_version: "0.1"
From mattjoyce/okf-skill, Apache-2.0.
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 18, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/mattjoyce/okf-skill
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from mattjoyce
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get okf running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
okf skill. Agent Mart. https://agentmart.dev/skills/mattjoyce-okf (last updated 2026-10-24)