<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marco 'Gatto' Boffo</title>
    <description>The latest articles on DEV Community by Marco 'Gatto' Boffo (@scaccogatto).</description>
    <link>https://dev.to/scaccogatto</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4006486%2F6ebffc95-eab0-4440-b686-6a7ac7830fa4.jpg</url>
      <title>DEV Community: Marco 'Gatto' Boffo</title>
      <link>https://dev.to/scaccogatto</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/scaccogatto"/>
    <language>en</language>
    <item>
      <title>OKF for Claude Code: structured, portable memory your agent (and team) can read</title>
      <dc:creator>Marco 'Gatto' Boffo</dc:creator>
      <pubDate>Sun, 28 Jun 2026 12:44:50 +0000</pubDate>
      <link>https://dev.to/scaccogatto/okf-for-claude-code-structured-portable-memory-your-agent-and-team-can-read-4ocn</link>
      <guid>https://dev.to/scaccogatto/okf-for-claude-code-structured-portable-memory-your-agent-and-team-can-read-4ocn</guid>
      <description>&lt;h2&gt;
  
  
  The problem: agents forget your project every session
&lt;/h2&gt;

&lt;p&gt;If you pair with a coding agent, you have lived this: a new session starts and the context is gone. The agent re-discovers your auth flow, re-guesses why a decision was made, re-reads the same files to rebuild a mental model you already explained yesterday. Project knowledge — the &lt;em&gt;why&lt;/em&gt; behind your systems, the runbooks, the "don't touch this, here's the reason" — lives scattered across wikis, code comments, and people's heads. None of it travels with the code, and none of it survives a fresh context window.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CLAUDE.md&lt;/code&gt; helps, but it's for standing &lt;em&gt;instructions&lt;/em&gt;, and it gets loaded wholesale into every prompt. Auto-memory captures what an agent picked up, but it's implicit, per-agent, and not reviewed. A wiki is for humans and needs exporting. There's a gap: &lt;strong&gt;curated team knowledge that's structured, versioned with the code, and readable by any agent or person.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What OKF is
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cloud.google.com/blog/products/data-analytics/how-the-open-knowledge-format-can-improve-data-sharing" rel="noopener noreferrer"&gt;&lt;strong&gt;Open Knowledge Format&lt;/strong&gt;&lt;/a&gt; is an open, vendor-neutral format (announced by the Google Cloud Data Cloud team in June 2026, Apache-2.0) that represents knowledge as &lt;strong&gt;a directory of markdown files with YAML frontmatter&lt;/strong&gt;. That's the whole idea. No schema registry, no runtime, no SDK. If you can &lt;code&gt;cat&lt;/code&gt; a file you can read it; if you can &lt;code&gt;git clone&lt;/code&gt; a repo you can ship it.&lt;/p&gt;

&lt;p&gt;A bundle looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.okf/
├── index.md                  # progressive disclosure (root carries okf_version)
├── log.md                    # ISO-dated change history, newest first
├── services/auth-api.md      # one concept = one file; path is its ID
├── datasets/orders-db.md
├── decisions/use-okf.md
├── runbooks/payment-failures.md
└── metrics/checkout-conversion.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each concept needs exactly one thing to be conformant: YAML frontmatter with a non-empty &lt;code&gt;type&lt;/code&gt;. Everything else is optional.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Service&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Auth&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;API"&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Issues&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;and&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;verifies&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;short-lived&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;access&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;tokens."&lt;/span&gt;
&lt;span class="na"&gt;resource&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;https://github.com/acme/auth&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;auth&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;platform&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="na"&gt;timestamp&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2026-06-14T10:00:00Z&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gh"&gt;# Endpoints&lt;/span&gt;
| Method | Path     | Description               |
|--------|----------|---------------------------|
| &lt;span class="sb"&gt;`POST`&lt;/span&gt; | &lt;span class="sb"&gt;`/token`&lt;/span&gt; | Exchange creds for a JWT. |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Concepts link to each other with plain markdown links, which makes the bundle a graph of typed, cross-referenced knowledge — diffable, reviewable in PRs, and portable across tools because it's just text.&lt;/p&gt;

&lt;h2&gt;
  
  
  What okf-skills adds
&lt;/h2&gt;

&lt;p&gt;OKF is the format. &lt;strong&gt;&lt;a href="https://github.com/scaccogatto/okf-skills" rel="noopener noreferrer"&gt;okf-skills&lt;/a&gt;&lt;/strong&gt; is the Claude Code-native toolchain that teaches your agent to actually use it, driven by the verbatim v0.1 spec. It ships as a Claude Code plugin and as agent skills (installable on Cursor, Codex, and 20+ agents via skills.sh). Three pieces:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/okf:okf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Produce, maintain, and consume bundles, applying the spec and templates. Auto-triggers when a repo already has an OKF bundle.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/okf:validate&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Deterministic §9 conformance check — a real Python checker, not an eyeball pass.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/okf:visualize&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Render a bundle to a self-contained interactive HTML graph.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The validator and visualizer are standalone scripts too (&lt;code&gt;uv run&lt;/code&gt;, PyYAML via PEP 723), so they work the same whether installed as a plugin or as skills. The visualizer output is a single &lt;code&gt;viz.html&lt;/code&gt; — concepts as nodes, links as edges, a wiki-style detail panel with rendered markdown and "Links to / Cited by" backlinks. No backend; nothing leaves the page. There's a &lt;a href="https://scaccogatto.github.io/okf-skills/" rel="noopener noreferrer"&gt;&lt;strong&gt;live demo&lt;/strong&gt;&lt;/a&gt; of a real bundle, and the repo &lt;a href="https://scaccogatto.github.io/okf-skills/self.html" rel="noopener noreferrer"&gt;documents itself in OKF&lt;/a&gt;, with CI validating that bundle on every push.&lt;/p&gt;

&lt;h2&gt;
  
  
  Honest scope
&lt;/h2&gt;

&lt;p&gt;A few things worth being straight about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OKF is curation, not magic.&lt;/strong&gt; It's a place to put knowledge deliberately, not a system that captures it automatically. Someone (you, or the agent on request) still writes the concepts. The payoff is durability and portability, not zero effort.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It's complementary, not a replacement.&lt;/strong&gt; Use &lt;code&gt;CLAUDE.md&lt;/code&gt; for &lt;em&gt;how to behave&lt;/em&gt;, auto-memory for &lt;em&gt;what the agent picked up&lt;/em&gt;, and an OKF bundle for &lt;em&gt;what the team knows&lt;/em&gt;. They stack.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No hooks by design.&lt;/strong&gt; The plugin won't silently rewrite your repo. Automatic upkeep is opt-in (see below).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The format spec is Google's&lt;/strong&gt;, vendored verbatim with attribution; this plugin's own code is MIT © Marco Boffo.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Install and try it
&lt;/h2&gt;

&lt;p&gt;As a Claude Code plugin:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/plugin marketplace add scaccogatto/okf-skills
/plugin &lt;span class="nb"&gt;install &lt;/span&gt;okf@scaccogatto
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As agent skills (Claude Code, Cursor, Codex, 20+ agents):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add scaccogatto/okf-skills
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then capture, validate, and visualize:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/okf:okf produce .okf          &lt;span class="c"&gt;# or just ask: "document the auth service in OKF"&lt;/span&gt;
/okf:validate .okf &lt;span class="nt"&gt;--strict&lt;/span&gt;
/okf:visualize .okf            &lt;span class="c"&gt;# opens a shareable viz.html&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every concept gets a deep link — &lt;code&gt;viz.html#services/auth-api&lt;/code&gt; loads the graph with that concept already selected.&lt;/p&gt;

&lt;p&gt;To turn on automatic upkeep (consult &lt;code&gt;.okf/&lt;/code&gt; before tasks, write knowledge back after changes), paste &lt;code&gt;templates/CLAUDE-okf.md&lt;/code&gt; into your project's &lt;code&gt;CLAUDE.md&lt;/code&gt;. It's soft mode and entirely opt-in. The scripts need &lt;a href="https://docs.astral.sh/uv/" rel="noopener noreferrer"&gt;&lt;code&gt;uv&lt;/code&gt;&lt;/a&gt; (or &lt;code&gt;python3&lt;/code&gt; + &lt;code&gt;pyyaml&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Why bother
&lt;/h2&gt;

&lt;p&gt;The pitch is small and concrete: give your project's knowledge &lt;strong&gt;one durable, diffable, portable home, versioned next to the code it describes&lt;/strong&gt; — instead of re-explaining it to a fresh agent every morning. It's plain markdown, so worst case you've written some good docs your team can read. Best case your agent stops forgetting.&lt;/p&gt;

&lt;p&gt;Repo, demo, and spec: &lt;strong&gt;&lt;a href="https://github.com/scaccogatto/okf-skills" rel="noopener noreferrer"&gt;github.com/scaccogatto/okf-skills&lt;/a&gt;&lt;/strong&gt;. Issues and PRs welcome.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
