Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add theesfeld/claude-okf --skill okf-cataloggit clone --depth 1 https://github.com/theesfeld/claude-okfWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/theesfeld/claude-okf/okf-catalog)<a href="https://agentmods.dev/skills/theesfeld/claude-okf/okf-catalog"><img src="https://agentmods.dev/badge/skills/theesfeld/claude-okf/okf-catalog.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00098 | $0.01677 |
| Opus 5 | $0.00049 | $0.00839 |
| Sonnet 5 | $0.00020 | $0.00335 |
| Haiku 4.5 | $0.00010 | $0.00168 |
Grade A, and why
okf-catalog scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 163 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Maintaining an OKF knowledge catalog
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.)
- Spec (the standard is young and evolving): https://raw.githubusercontent.com/GoogleCloudPlatform/knowledge-catalog/main/okf/SPEC.md
- Current version: v0.1.
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.
Placement (do this first on a new catalog)
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.
Bundle anatomy
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
Concept document = frontmatter + body
---
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)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago First seen · 163 lines · 98 tokens per session scan A 3d4c7aa94fc7
okf-catalog is a skill published in the GitHub repository theesfeld/claude-okf (1 stars, last pushed 2mo ago), licensed MIT. It adds 98 tokens to every session and 1,677 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
state
Use when the user says 'update state', 'project state', 'where was I', or at session start to load current context.
harness-step3-session-management
A project setup for keeping an agent’s work state in files between separate chat sessions. It creates a task list, a progress summary, and a script for checking the project environment.
tackle-issue
Start-of-work triage in this monorepo. Trigger on: a GitHub issue number ("tackle issue 99", "work on #42", bare #N), pasted proposal/spec text ("investigate this", "pressure-test this", "scope this"), or picker phrasing ("tackle the next issue", "what should I work on"). Read-only investigation that tries to falsify…
stale-proposals
Audit this repository's local proposal queue for stale entries: proposals still marked proposed, deferred, or accepted even though the work already shipped, plus old proposals whose subject has become inert. Reconcile proposals against plugin changelogs and first-parent Git history, automatically resolve only…
dream
Prunes and consolidates the project's auto-memory to keep it minimal — deletes stale, wrong, or redundant memories, merges overlapping ones into existing files, and trims the index. Strong bias against growth: never creates new memory files and never stores new facts. Verifies staleness against the current codebase…
project-context-loader
Load relevant memory, decisions and contacts for the current project at the start of a session.