---
title: "AI knowledge file pack builder"
type: "skill"
url: "https://useaiblocks.com/skills/ai-knowledge-file-pack-builder"
updated: "2026-10-28"
first_published: "2026-10-25"
job: "Write down how work gets done"
tested: true
licence: "MIT"
source: "https://github.com/magnus919/agent-skills/tree/92c327e525da69c9ad3812fd223a1770e977c2e3/open-knowledge-format"
instructions: "https://useaiblocks.com/skills/ai-knowledge-file-pack-builder/SKILL.md"
---

# AI knowledge file pack builder

> Turn your notes and facts into an Open Knowledge Format folder: linked Markdown files your team and AI tools can read, reuse and check.

Share facts, definitions or steps you want to reuse. You get a folder of linked Markdown notes in Open Knowledge Format v0.1, with clear document types and sources. It is a plain folder, not a database or a wiki. The Python checker is optional.

Free skill for the job "Write down how work gets done" · Level: intermediate · Thinking: high · Tested · Updated 2026-10-28

## Links

- Page: https://useaiblocks.com/skills/ai-knowledge-file-pack-builder
- Instructions (SKILL.md): https://useaiblocks.com/skills/ai-knowledge-file-pack-builder/SKILL.md
- All files (zip): https://useaiblocks.com/skills/ai-knowledge-file-pack-builder.zip
- JSON version: https://useaiblocks.com/skills/ai-knowledge-file-pack-builder.json
- In your AI: connect https://useaiblocks.com/mcp and ask "Use AI Blocks to get ai-knowledge-file-pack-builder"

## What it does

Open Knowledge Format (OKF) is a folder of Markdown files. Each file holds one idea and starts with a type line. Files link to each other, so people and AI tools can read, reuse and check what you know.

You give your AI your notes, facts and sources. It writes one file per idea, picks stable folder names and adds the type and source to each. The optional Python checker then tests the types, reserved file names and links. The skill's own examples are about data tables. For business knowledge, such as a process or a policy, treat each process or policy as one file.

## What you give it

- The knowledge, sources, document types, stable folder names, and intended readers.

## What you get

- A linked Markdown knowledge folder, optional index and change log, and format review notes.

## Example: what goes in and what comes out

### What goes in

- Your notes, facts, definitions or steps to reuse
- Links or names of your sources
- The kind of document each topic should be (optional)
- Who will read the folder (optional)

### Before you start

- An AI that can create files, to get the folder
- Python 3.8 or newer with PyYAML, only if you want to run the optional checker

### What comes out

- **Concept files**: One Markdown file per idea, each with a type in its header and a body that links to related files.
- **Folders and file paths**: Stable names that group files by topic, so links keep working when you add more.
- **index.md**: An optional list of the files in each folder, with a short line about each one.
- **log.md**: An optional change history with dated headings in year-month-day form.
- **Concept template**: A starter file with the suggested header fields and body sections, such as Schema, Examples and Citations.
- **Format review notes**: What passed and what failed on types, reserved file names and links, from the optional checker.

## Use it when

- You want facts, definitions or steps saved in a form your AI tools can reuse.
- You need a folder of notes that links together and cites its sources.
- You want to share a body of knowledge with a team or another AI tool.

## Skip it when

- You want a normal wiki or help pages for people: use a plain wiki or docs tool instead.
- You need to check full YAML syntax: use a YAML parser, because the bundled checker only reads a simple subset.
- You have one short note to save: keep it in a plain document, no folder needed.
- You want a wiki to build up over time from your notes: use the notes wiki builder instead.

## How to use it

1. Open Claude, ChatGPT or Gemini. Paste the skill, or upload its folder if your AI can read files.
2. Paste your notes, facts and sources. Say who will read the folder and what each topic should be called.
3. Ask your AI to write the folder. It must be able to create files. If it cannot, ask it to return the file list and the text of each file, then save each file by hand. Check that each file has a type and that links point to real files.
4. The bash steps in the skill and the Python checker are for developers. A business user can skip them and ask the AI to write the files. The checker is optional. To run the checker, you need Python 3.8 or newer with PyYAML. Without Python, your AI can still write the folder, and you check the links by hand. Create each folder before you add files to it.
5. Next, save the folder in a repo or shared drive. Point your AI tool's file access at its index.md. Choose the notes wiki builder if your notes grow over time, the company wiki planner for team processes with owners, or the text to knowledge graph builder to pull links out of one long document.

## What to do next

- [Notes wiki builder](https://useaiblocks.com/skills/notes-wiki-builder): Notes wiki builder
- [Company wiki planner](https://useaiblocks.com/skills/company-wiki-planner): Company wiki planner
- [Text-to-knowledge-graph builder](https://useaiblocks.com/skills/text-to-knowledge-graph-builder): Decide what to do

## Sources and credits

- From Magnus Hedemark: https://github.com/magnus919/agent-skills/tree/92c327e525da69c9ad3812fd223a1770e977c2e3/open-knowledge-format, shared under the MIT licence (original name: open-knowledge-format).
- [open-knowledge-format skill](https://github.com/magnus919/agent-skills/tree/92c327e525da69c9ad3812fd223a1770e977c2e3/open-knowledge-format), Magnus Hedemark: Copied under the MIT licence. We gave it a plain name. We added Before you start and After this sections that link to other AI Blocks steps.

## Instructions (SKILL.md)

## Open Knowledge Format (OKF) — v0.1

Google Cloud published the [Open Knowledge Format v0.1](https://cloud.google.com/blog/products/data-analytics/how-the-open-knowledge-format-can-improve-data-sharing/) on **June 12, 2026** — an open specification that formalizes the [LLM-wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) into a portable, vendor-neutral format for AI agent knowledge.

**The design is intentionally minimal:** a directory of markdown files with YAML frontmatter. No schema registry, no central authority, no required tooling.

> "If you can `cat` a file, you can read OKF; if you can `git clone` a repo, you can ship it."

<!-- needs: written by tools/add-needs.mjs for AI Blocks; not part of the original skill. Edit that tool, not this section. -->
### Before you start
Use the material below to do this job. If facts or tool access are missing, explain what you can finish and what must wait.

**What you need** (use your own material or the linked skill):
- **Your question** (yours): the decision or problem, and what a good outcome looks like.

**Makes it better (optional):**
- **Source text** (yours): a long source in full: an article, a video or talk transcript, or notes from a book, with its title, author and link.
- **A document** (yours): a finished document, such as a Word file, a PDF or a page of notes.

How to start:
1. **Look first.** Use what they've already attached, pasted or put in their about-me note. In a coding assistant with file access, look in the project too for these by name.
2. **Check what's missing.** Look for your question, source text, a document. They can attach files, paste the details, or share a file path your assistant can read. Ask only for missing facts that change the result. If they ask you to start with what they have, complete the parts you can and mark the gaps.
3. **Do the job.** Follow the skill below with the facts and tools you have. Mark each gap with `MISSING:` where it belongs and never invent a fact to fill it.

**Tools that do this best:**
- **File access; Python for optional checks:** The bundled helper reads a simple subset of YAML. A full YAML parser is needed to check complete YAML syntax.
<!-- /needs -->

### What you need

The knowledge to put in the bundle: pasted text, a source such as an article or transcript, or a finished document such as meeting minutes.

### Core Concepts

| Concept | Definition |
|---------|------------|
| **Knowledge Bundle** | A self-contained directory tree of markdown files. The unit of distribution. |
| **Concept** | A single unit of knowledge — one markdown file. May describe a table, a metric, a playbook, an API, or any idea. |
| **Concept ID** | The file path with `.md` stripped (e.g. `tables/users.md` has ID `tables/users`). |
| **Frontmatter** | YAML block at the top of each file with structured metadata. |
| **Body** | Standard markdown content after the frontmatter. |
| **Link** | A markdown link from one concept to another — expresses relationships. |

### Reference Files

| Reference | Load when | File |
|-----------|-----------|------|
| Spec summary | You need the full OKF v0.1 specification, conformance criteria, and field definitions | `references/spec-summary.md` |
| Bundle architecture | You're creating or structuring an OKF bundle — directory layout, index files, cross-linking conventions | `references/bundle-architecture.md` |
| Use cases | You need real-world examples, third-party implementations, and adoption patterns | `references/use-cases.md` |

### Scripts

| Script | Purpose | Load when |
|--------|---------|-----------|
| `okf-bundle-validate.py` | Validate an OKF bundle directory — checks frontmatter, required fields, reserved filenames, and cross-link integrity | You've created or modified an OKF bundle and want to verify conformance |

### Assets

| Asset | Purpose | Path |
|-------|---------|------|
| Concept template | A template markdown file with all recommended frontmatter fields and body sections | `assets/concept-template.md` |
| Example bundle | A minimal but complete OKF bundle showing directory structure, index files, and cross-linked concepts | `assets/example-bundle/` |

### Bundle Structure

```
path/to/bundle/
├── index.md                      # Optional. Directory listing for progressive disclosure.
├── log.md                        # Optional. Chronological update history.
├── <concept>.md                  # A concept at the bundle root.
└── <subdirectory>/               # Subdirectories organize concepts into groups.
    ├── index.md
    ├── <concept>.md
    └── <subdirectory>/
        └── …
```

Files named `index.md` and `log.md` are **reserved** — they have defined semantics and must not be used for concept documents.

### Frontmatter Fields

```yaml
---
type: <Type name>                  # REQUIRED
title: <Optional display name>
description: <Optional one-line summary>
resource: <Optional canonical URI for the underlying asset>
tags: [<tag>, <tag>, …]            # Optional
timestamp: <ISO 8601 datetime>     # Optional last-modified time
# … other producer-defined key/value pairs
---
```

**Required:** `type` — a short string identifying the kind of concept. Types are NOT registered centrally. Producers pick descriptive values; consumers tolerate unknown types gracefully.

**Conventional body sections:**

| Heading | Purpose |
|---------|---------|
| `# Schema` | Structured description of an asset's columns/fields |
| `# Examples` | Concrete usage examples, often as code blocks |
| `# Citations` | External sources backing claims in the body |

### Cross-linking

Concepts link to each other via standard markdown links:

- **Absolute (bundle-relative):** Begin with `/`, relative to bundle root. Recommended — stable when documents move.
- **Relative:** Standard markdown relative paths.

A link from concept A to concept B asserts a relationship. The specific kind (references, depends-on, joins-with) is conveyed by the surrounding prose, not by the link syntax.

**Consumers MUST tolerate broken links** — a link whose target doesn't exist is not malformed; it may represent not-yet-written knowledge.

### Conformance

A bundle is **conformant** with OKF v0.1 if:

1. Every non-reserved `.md` file contains parseable YAML frontmatter
2. Every frontmatter block contains a non-empty `type` field
3. Reserved filenames (`index.md`, `log.md`) follow their defined structure

**Consumers MUST NOT reject a bundle for:** missing optional frontmatter fields, unknown `type` values, unknown frontmatter keys, broken cross-links, or missing `index.md` files.

### Relationship to Other Formats

| Format | How OKF Differs |
|--------|----------------|
| **Karpathy's LLM Wiki** | OKF specifies the interoperability surface — required fields, reserved filenames, conformance criteria |
| **Obsidian / Notion vaults** | OKF is format-only — no tooling, no runtime, no UI. Any editor works |
| **AGENTS.md / CLAUDE.md** | OKF is multi-file, hierarchical, cross-linked — not a single convention file |
| **Metadata-as-code repos** | OKF standardizes the file format so different producers and consumers interoperate |
| **Domain schemas (Avro, Protobuf, OpenAPI)** | OKF references them — it does not subsume or replace them |

### Quick Start

```bash
# 1. Create a bundle directory
mkdir my-knowledge && cd my-knowledge
mkdir -p datasets

# 2. Create a concept file
cat > datasets/sales.md << 'EOF'
---
type: BigQuery Dataset
title: Sales
description: All sales-related tables for the retail business.
tags: [sales]
timestamp: 2026-06-18T00:00:00Z
---
The sales dataset contains [orders](/tables/orders.md) and [customers](/tables/customers.md).
EOF

# 3. Add an index for navigation
cat > index.md << 'EOF'
# Knowledge Bundle

* Sales Dataset (`datasets/sales.md`) - Retail sales data in an example OKF bundle
EOF

# 4. Validate your bundle
python3 scripts/okf-bundle-validate.py .
```

### Gotchas

- **Type values are not registered centrally.** Pick descriptive types (`BigQuery Table`, `Playbook`, `Metric`). Consumers should handle unknown types gracefully.
- **File path is the identity.** Renaming a file changes its concept ID. Use stable paths or add redirects in documentation.
- **`index.md` uses no frontmatter** (except optionally at the bundle root for `okf_version`). The body is a markdown list with links.
- **`log.md` date headings must be ISO 8601** (`YYYY-MM-DD`).
- **Cross-links are untyped.** The relationship semantics live in the prose, not in the link syntax. Graph builders treat all links as directed edges.
- **OKF does not specify a tag-browsing format.** Producers that want tag aggregation should synthesize it at consumption time by scanning frontmatter.
- **OKF v0.1 is a draft.** The spec will evolve. Minor bumps add backward-compatible features; major bumps may break required fields. Consumers should do best-effort consumption on unknown versions.

<!-- next: written by tools/add-needs.mjs for AI Blocks; not part of the original skill. Edit that tool, not this section. -->
### After this
When you've handed it back, suggest what they could do next in one short question. It's a suggestion: if they're done, that's fine. Offer these, and say they can type their own:
- The [Notes wiki builder](https://useaiblocks.com/skills/notes-wiki-builder). It takes the document.
- The [Company wiki planner](https://useaiblocks.com/skills/company-wiki-planner).
- **Decide what to do** with the [Text-to-knowledge-graph builder](https://useaiblocks.com/skills/text-to-knowledge-graph-builder).
If they pick one and that skill is added here, carry straight on with what you just made. If not, give the link and say what to bring.
<!-- /next -->
