Skip to content
Agentmart
Submit a tool

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

IndexedApache-2.0★ 3
Write a review

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.

Book a call

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.

We use your email only for this newsletter. Privacy

About

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".

Use cases: documents, writing

No 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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

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.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying okf?

CallGet help
Cite this page

okf skill. Agent Mart. https://agentmart.dev/skills/mattjoyce-okf (last updated 2026-10-24)