Create, follow, and continuously update an Open Knowledge Format (OKF) knowledge catalog for a project. Use whenever starting a project, documenting project knowledge (tables, datasets, metrics, APIs, playbooks, decisions, runbooks), or when an OKF bundle needs a new/updated concept doc, index.md, or log.md entry. Covers v0.1 bundle structure, frontmatter fields, reserved files, cross-links, and §9 conformance.
How this skill is triggered — by the user, by Claude, or both
Slash command
/okf:okf-catalogThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**OKF (Open Knowledge Format)** is Google Cloud's vendor-neutral, agent-agnostic
OKF (Open Knowledge Format) is Google Cloud's vendor-neutral, agent-agnostic standard for project knowledge: plain markdown + YAML frontmatter + files, no database, no SDK. This plugin treats OKF as a prime directive — every project gets a catalog, kept current. (The SessionStart hook is what enforces that; see the repo README to dial it back or turn it off.)
Strict adherence is non-negotiable. Before creating a new bundle or running a
conformance pass, WebFetch the live spec above and confirm the version + clauses — do
not rely on the summary in this skill, which can lag the standard. If the live spec
disagrees with anything here, the live spec wins; follow it and note the divergence.
The hard floor never relaxes: every non-reserved .md is UTF-8, opens/closes with ---,
parses as YAML, and carries a non-empty type.
If the project has no bundle and placement is ambiguous, ask the user where to put it.
Default when unprompted: an okf/ directory at the project root. Once chosen, that
directory is the bundle root.
A bundle is a directory tree. Each non-reserved .md = one concept (a table, dataset,
metric, API endpoint, playbook, service, architectural decision…). Group concepts into
subdirectories that mirror the domain.
okf/ # bundle root
├── index.md # directory listing; ONLY index.md allowed to carry frontmatter
├── log.md # newest-first change history
├── datasets/
│ ├── index.md
│ └── orders_db.md
├── tables/
│ ├── index.md
│ ├── orders.md
│ └── customers.md
└── metrics/
├── index.md
└── weekly_active_users.md
---
type: BigQuery Table # REQUIRED — the only mandatory field. Short string.
title: Orders # recommended — human-readable display name
description: One row per completed customer order. # recommended — one sentence
resource: https://console.cloud.google.com/bigquery?p=acme&d=sales&t=orders # recommended — canonical URI
tags: [sales, revenue] # recommended — YAML list
timestamp: 2026-05-28T14:30:00Z # recommended — ISO 8601 of last meaningful change
---
# Schema
| Column | Type | Description |
|--------|------|-------------|
| `order_id` | STRING | Globally unique order identifier. |
| `customer_id` | STRING | FK to [customers](/tables/customers.md). |
# Examples
...
# Citations
[1] [Source title](https://example.com)
Frontmatter rules (§4.1):
type is the only required field and must be non-empty.title, description, resource, tags, timestamp.type values that are stable and meaningful to the project ("API Endpoint",
"Metric", "Playbook", "ADR", "Service", "Postgres Table"). They are not centrally registered.Body: standard markdown. Conventional section headings: # Schema, # Examples,
# Citations. Lead with what a reader/agent most needs.
/: [customers](/tables/customers.md)[other](./other.md)Links are untyped; the relationship is conveyed by surrounding prose. Broken links are tolerated by the spec but fix them when you notice them.
index.md — directory listing for the level it sits in. No frontmatter, except
the bundle-root index.md, which MAY declare the version:
---
okf_version: "0.1"
---
# Sales knowledge catalog
* [Orders](tables/orders.md) - One row per completed customer order.
* [Customers](tables/customers.md) - One row per customer.
Non-root index.md carries no frontmatter — just headings and a bullet list of
* [Title](relative-url) - short description, descriptions mirroring each concept's
description.
log.md — chronological change history, newest first, dates as ## YYYY-MM-DD:
# Update Log
## 2026-06-13
* **Creation**: Added `tables/orders.md`.
* **Update**: Revised `metrics/weekly_active_users.md` definition.
Whenever the project changes in a way that affects documented knowledge:
timestamp.index.md entries for any new/removed concepts.log.md.Before declaring project work done, the catalog must reflect the change. A stale catalog is unfinished work.
A bundle conforms iff:
.md has a parseable YAML frontmatter block.type.index.md/log.md follow the structures above when present.Plus the spec-body MUSTs that flank §9: files are UTF-8 (§4); reserved filenames
index.md/log.md are never reused for concepts (§3.1); log.md entries use the
**Action**: description convention under ## YYYY-MM-DD headings, newest-first (§7);
cross-links prefer the absolute, /-prefixed bundle-root form (§5).
Consumers MUST NOT reject a bundle for: missing optional fields, unknown type values,
unknown extra keys, broken cross-links, or missing index.md. So: be liberal in what you
add, strict about type + parseable UTF-8 frontmatter.
Verify with the okf-auditor agent before declaring done.
id, links, references, updated — these are NOT OKF. The real required
field is type; the recommended set is title/description/resource/tags/timestamp.index.md.type.npx claudepluginhub theesfeld/claude-okf --plugin okfFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.