AgentsOpen SourceFreeActiveMachine-verified· beginner · ~10 min setup

OKF: turn your repo's tribal knowledge into a bundle your agent reads first

Write one markdown concept per thing worth knowing, cross-linked, as a conformant OKF bundle in version control that any agent can read with no SDK.

by Shilpa Mitra· verified today· v1.0.0

Run this workflow

CI-verified, 3/3 fixtures passing.

Build this with your agent

One copy-paste hands Claude Code, Codex, or Cursor the full recipe, steps included, nothing to fetch.

Intended Use

Teams who want agent context as checkable files. CI runs the OKF v0.1 conformance rule (SPEC.md §9): every non-reserved .md parses as YAML frontmatter plus a body, and every frontmatter has a non-empty `type`. No key, no model call. OKF is a format, not a runtime, so the agent only benefits if you actually wire it to read the bundle; that reading is the fenced model step.

Not for

  • Expecting the bundle to be read automatically, nothing reads it for you; point your agent at it (an AGENTS.md instruction, a retrieval step, a tool)
  • Expecting CI to judge whether the knowledge is correct, it checks conformance only

The Stack

Tested Against

okf@0.1knowledge-catalog okf/SPEC.md (2026-06)ruby@3.x (YAML stdlib)

Side effects & data flow

Network
none, local only
Writes
./<bundle>/ (markdown files)
Credentials
none required

Prerequisites

  • An agent you can point at a folder of markdown

Steps

  1. 1

    Hand-author a small bundle and check it conforms

    Write one concept file per thing worth knowing (a gnarly table, a metric, an incident runbook), give each a non-empty `type`, and cross-link them with normal markdown links. CI runs the v0.1 conformance check over the bundle: frontmatter parses and every concept carries a `type`.

    mkdir -p bundle/tables bundle/playbooks
    cat > bundle/tables/orders.md <<'MD'
    ---
    type: BigQuery Table
    title: Orders
    description: One row per completed customer order.
    tags: [sales, orders]
    timestamp: 2026-05-28T00:00:00Z
    ---
    
    # Schema
    One row per completed order. See the [sales dataset](/datasets/sales.md).
    MD
    cat > bundle/playbooks/freshness.md <<'MD'
    ---
    type: Playbook
    title: Incident response, data freshness alert
    description: Steps to triage a freshness alert on the orders pipeline.
    tags: [oncall, incident]
    ---
    
    # Trigger
    A freshness alert fires when the [orders table](/tables/orders.md) lags its SLA.
    
    # Steps
    1. Check the ingestion job dashboard.
    MD
    cat > bundle/index.md <<'MD'
    # Tables
    * [Orders](tables/orders.md) - One row per completed customer order.
    
    # Playbooks
    * [Freshness alert](playbooks/freshness.md) - Triage a data freshness alert.
    MD
    ruby -ryaml -e '
    require "date"
    RESERVED = ["index.md", "log.md"]
    concepts = 0; errors = []
    Dir.glob("bundle/**/*.md").sort.each do |path|
      next if RESERVED.include?(File.basename(path))
      lines = File.read(path).lines
      unless lines.first && lines.first.strip == "---"
        errors << (path + ": no frontmatter"); next
      end
      rest = lines[1..]
      idx = rest.index { |l| l.strip == "---" }
      unless idx; errors << (path + ": unterminated frontmatter"); next; end
      fm = (begin; YAML.safe_load(rest[0...idx].join, permitted_classes: [Date, Time]); rescue; nil; end)
      unless fm.is_a?(Hash) && !fm["type"].to_s.empty?
        errors << (path + ": missing or empty type"); next
      end
      concepts += 1
    end
    if errors.empty?
      puts "OKF bundle conformant: " + concepts.to_s + " concepts, every frontmatter parses with a non-empty type"
    else
      puts "NONCONFORMANT: " + errors.join("; "); exit 1
    end
    '
  2. 2

    Wire your agent to read the bundle (the model step, not checked by CI)

    OKF is a format, not a runtime. Tell your agent to consult the bundle before it acts (an instruction in AGENTS.md to read /knowledge first, a retrieval step, or a tool). The agent using the knowledge is fenced.

Eval, 3 fixtures

Last passed: verified today
  • conformantcontainstimeout 30s · max $0

    Expected: OKF bundle conformant:

  • has-typecontainstimeout 30s · max $0

    Expected: every frontmatter parses with a non-empty type

  • clean-exitexit_codetimeout 30s · max $0

    Expected: 0

Results

The portable version of the AGENTS.md trick: knowledge as files, in version control. Same value and limits as a well-kept docs folder, but the shape is now standard and portable across tools.

Did this work for you?

Our CI checks the setup runs. You tell us if the whole thing worked. Tell us straight.

Liked this workflow?

Get new verified workflows in WebAfterAI, three issues a week (Tue, Thu, Sat).