| type | Skill |
| name | OKF Export |
| category | productivity |
| description | Backfill memory/topics into an OKF-conformant bundle by adding type frontmatter, then open a PR |
| var | |
| tags | ["meta"] |
${var} — Optional. A single topic filename (e.g. crypto.md) or subfolder to limit the backfill to. If empty, process every un-typed concept under memory/topics/.
Today is ${today}. Aeon's memory/topics/ directory is a native OKF (Open Knowledge Format) bundle (see docs/OKF.md and the "Publishing knowledge (OKF)" section of CLAUDE.md). Historically, topic notes were written as plain markdown with no type: frontmatter. Your job is a one-shot backfill: bring existing concept files up to OKF v0.1 conformance and open a PR — never commit to main.
This is a lossy translation. These notes were never written with type: in mind. Treat your output as a draft to be reviewed, not ground truth. When a file's type: is genuinely ambiguous, prefer Reference and flag it in the PR body rather than guessing a specific type.
Steps
-
Scope. List memory/topics/*.md (and any subfolders). Exclude the reserved files index.md and log.md, and any non-.md files (e.g. milestone-dispatch.json). If ${var} is set, restrict to that file/subfolder. For each file, check whether it already begins with a --- ... --- frontmatter block containing a non-empty type:. Skip files that already conform.
-
Classify + enrich each un-typed concept. For every file needing work, read it and prepend a frontmatter block using the pinned vocabulary in CLAUDE.md (Token, Protocol, Narrative, Repo, Playbook, Metric, Reference; pick the best fit, default Reference when unsure):
---
type: <Type>
title: <Human title — derive from the top heading or filename>
description: <One-sentence summary of what the note covers>
tags: [<existing themes>]
timestamp: ${today}T00:00:00Z
---
- Do not rewrite the body. Only prepend frontmatter (and, where an obvious relationship exists, add a bundle-relative cross-link like
[Ethereum](/tokens/ethereum.md) — but do not invent links to files that don't exist).
Network note
All work is local file I/O against memory/topics/ plus the two Node scripts (scripts/okf-index.mjs, scripts/okf-validate.mjs) — no network. The PR uses the gh CLI's built-in auth (no curl / secret expansion). No API keys required.
Constraints
- Never commit to
main — always open a PR.
- Never rewrite a note's body; only prepend frontmatter (+ safe cross-links).
- Never open a PR if
okf-validate fails.
- Skip files that already carry a non-empty
type: — idempotent by design.
- If nothing needs backfilling, exit
OKF_EXPORT_NOOP and send no notification.