okf
Skill3 starsChanged 5 months agoMITView on GitHub
Work with Open Knowledge Format (OKF) bundles in this repository. Use when the user mentions OKF, Open Knowledge Format, knowledge bundle, OKF bundle, agent-readable knowledge, LLM wiki, concepts, frontmatter, validation, indexing, graph generation, search, RAG, reading, writing, or editing OKF concepts. Prefer the MCP server named simple-okf from .mcp.json for OKF content operations.
- Reads credentials
16 other projects use a version of this.
Adopted by
Most recently taken up by
- MMACABRE/SKILLStheir own version, first seen Nov 8, 2026
- cofin/flowtheir own version, first seen Nov 7, 2026
- saschb2b/okf-bundlestheir own version, first seen Oct 20, 2026
- gradigit/claude-skillstheir own version, first seen Oct 15, 2026
- scaccogatto/okf-skillstheir own version, first seen Oct 13, 2026
- superwebpros/claude-skillstheir own version, first seen Oct 13, 2026
Other versions16 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 16
- scaccogatto/okf-skills★ 444same name
- gannonh/kata★ 67same name
- sniperunder123/okf-knowledge★ 65same name
- gannonh/kata-symphony★ 63same name
- saschb2b/skills★ 22same name
- cofin/flow★ 19same name
- k3ybladewielder/skills★ 7same name
- eloybar/okf-skills★ 4same name
- EwenSellitto/skills★ 4same name
- gannonh/skills★ 2same name
6 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- AGENTS.mdAGENTS.md
- frontend/AGENTS.mdAGENTS.md
- frontend/CLAUDE.mdCLAUDE.md
- 7dSkill
- grillmeSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
34 rules. 0 are common, 22 are distinctive, and 12 are very specific to this project.
0
Common
Most of the 16 edited versions we read keep these.
22
Distinctive
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 17
Use this skill for OKF content, OKF tooling, and OKF-aware RAG work in this repository.
- Very specific: line 36
Do not create alternate local tooling packages or a top-level rag/ directory.
- Distinctive: line 50
When files disagree, update the canonical owner instead of duplicating the same rule in another file.
- Very specific: line 100
If simple-okf is unavailable during an OKF content task, report that MCP is unavailable.
- Distinctive: line 107
Do not duplicate OKF logic in CLI handlers.
- Very specific: line 155
Never treat index.md or log.md as normal concepts.
- Distinctive: line 200
Do not invent fields, citations, source paths, schema details, or requirement IDs.
- Very specific: line 202
Use tags as a list when possible.
- Distinctive: line 206
Use these unless the user or existing bundle taxonomy indicates another type:
- Distinctive: line 244
Do not replace a missing exact target with a broad link just to satisfy validation.
- Very specific: line 251
Use simple-okf.list_concepts(...) or simple-okf.search_concepts(...) for discovery.
- Very specific: line 255
Follow Markdown links through simple-okf.read_concept(...) when relationships matter.
- Very specific: line 264
Use frontmatter with at least mapped type and allowed status.
- Distinctive: line 267
Write concise Markdown body sections.
- Distinctive: line 268
Add relative links to related concepts only when there is evidence.
- Distinctive: line 269
Add citations only when there is a real source.
- Very specific: line 272
Run simple-okf.build_graph(write=true, out_path="artifacts/okf/graph.json", html=true, html_out_path="artifacts/okf/graph.html") when …
- Distinctive: line 278
Read the existing concept first.
- Distinctive: line 281
Update links if concept IDs move.
- Distinctive: line 282
Do not delete citations, schema details, or source fields unless they are incorrect or obsolete.
- Distinctive: line 298
Do not treat generated OKF output as more canonical than its source unless the user explicitly changes the ownership model.
- Distinctive: line 314
Use RAG for discovery and question answering over OKF concepts, not as a replacement for reading/editing source concepts.
- Very specific: line 342
Keep RAG_PROFILE=local infrastructure-free.
- Distinctive: line 350
Before finishing OKF content work, run through MCP when available:
- Very specific: line 356
When adding/removing/renaming concepts, also run:
- Distinctive: line 379
Never invent domain facts.
- Distinctive: line 381
Keep stable IDs and links stable unless the user asks for a rename/move.
- Distinctive: line 382
Prefer minimal accurate concepts over padded concepts.
- Distinctive: line 383
Do not impose a rigid taxonomy beyond project conventions.
- Distinctive: line 384
Ask before broad directory, ownership, or bundle-structure changes.
- Very specific: line 385
Do not commit local secrets or .env.
- Very specific: line 386
Do not create alternate local tooling packages or top-level rag/ directories.
- Distinctive: line 387
Treat graph and RAG artifacts as derived outputs.
- Distinctive: line 392
When presenting OKF changes, summarize:
“Common” is measured: kept by at least 6 in 10 of the 16 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Open Knowledge Format (OKF)
Use this skill for OKF content, OKF tooling, and OKF-aware RAG work in this repository.
OKF is a portable knowledge format based on:
Markdown + YAML frontmatter + directories + Markdown linksThis repository is standardized on:
okf/ # default OKF bundle
okf_mcp/ # MCP server, OKF library, CLI fallback, OKF RAG
.env # local-only RAG environment file, never commit
artifacts/ # generated graph, 7D dashboard, and RAG artifacts
.agents/skills/okf/ # this skill, templates, referencesDo not create alternate local tooling packages or a top-level rag/ directory.
Authority and source of truth
For this project:
README.mdis the human quick-start.SPEC.mdis the repository/tooling contract.AGENTS.mdis the repository-local agent policy.okf/is the default knowledge bundle.okf_mcp/okf.pyis the shared OKF filesystem implementation.okf_mcp/server.pyis the MCP tool surface.okf_mcp/rag/is tooling over OKF concepts, not canonical knowledge.
When files disagree, update the canonical owner instead of duplicating the same rule in another file.
MCP entrypoint
Primary MCP server name:
simple-okfsimple-okf is configured in .mcp.json and runs python -m okf_mcp server
against the okf/ bundle.
Preferred MCP tools for OKF work:
simple-okf.bundle_info()
simple-okf.read_support_file(path="index.md")
simple-okf.list_directory(directory="")
simple-okf.list_concepts(...)
simple-okf.search_concepts(query, limit)
simple-okf.read_concept(concept_id, include_body=true)
simple-okf.read_existing_doc(concept_id)
simple-okf.read_concept_raw(concept_id)
simple-okf.write_concept_doc(concept_id, frontmatter, body, ...)
simple-okf.validate_bundle()
simple-okf.generate_indexes()
simple-okf.export_source_documents(source="system", force=false)
simple-okf.build_graph(write=true, out_path="artifacts/okf/graph.json", html=true, html_out_path="artifacts/okf/graph.html")OKF-aware RAG MCP tools:
simple-okf.rag_inspect_corpus(...)
simple-okf.rag_parse_chunks()
simple-okf.rag_refresh_index()
simple-okf.rag_retrieve(query, limit, type_filter, tag)
simple-okf.rag_answer(question, limit)
simple-okf.rag_get_source(concept_id, line_start, line_end)
simple-okf.rag_concept_relationships(concept_id, depth)
simple-okf.rag_local_readiness(correlation_id)
simple-okf.rag_infra_readiness(timeout_seconds, correlation_id)
simple-okf.rag_index_freshness()
simple-okf.rag_quality_summary(limit)
simple-okf.rag_recent_failures(limit)
simple-okf.rag_event_lookup(event_id, correlation_id, limit)If simple-okf is unavailable during an OKF content task, report that MCP is
unavailable. Use local CLI fallback only when the user asks to work on this
repository/tooling or explicitly accepts fallback behavior.
CLI fallback
CLI fallback commands live in the okf_mcp multi-app CLI and call shared implementation code.
Do not duplicate OKF logic in CLI handlers.
python3 -m okf_mcp validate okf
python3 -m okf_mcp indexes okf
python3 -m okf_mcp export system --out okf
python3 -m okf_mcp graph okf --out artifacts/okf/graph.json --html-out artifacts/okf/graph.html
python3 -m okf_mcp rag inspect --pretty
python3 -m okf_mcp rag refresh --pretty
python3 -m okf_mcp rag retrieve "query" --pretty
python3 -m okf_mcp rag retrieve "query" --answer --pretty
python3 -m okf_mcp rag local-readiness --pretty # exits non-zero when not ready; add --no-fail for informational use
python3 -m okf_mcp rag infra-readiness --pretty # exits non-zero when required/configured infra is not ready; add --no-fail for informational use
python3 -m okf_mcp rag index-freshness --pretty # exits non-zero when stale/missing; add --no-fail for informational use
python3 -m okf_mcp rag quality-summary --pretty
python3 -m okf_mcp rag recent-failures --pretty
python3 -m okf_mcp rag event-lookup --event-id EVENT_ID --prettyRAG fallback reads environment from .env by default. If the file is
missing, use --env /path/to/file for smoke tests or report that RAG runtime
validation was skipped.
Core terminology
- Bundle — a directory tree of Markdown files; unit of distribution.
- Concept — one Markdown file representing one unit of knowledge.
- Concept ID — bundle-relative path without the
.mdsuffix. - Frontmatter — YAML mapping at the top of a concept file.
- Body — Markdown content after frontmatter.
- Support file — navigation/history file, not a concept.
- Link — Markdown link expressing a relationship between concepts.
- Citation — link or source reference backing a claim.
- Derived output — generated indexes, graph reports, or RAG artifacts.
Example concept ID:
requirements/functions/FUNC-001Reserved files
| File | Purpose | Concept? |
index.md | Directory navigation / progressive disclosure | No |
log.md | Bundle-local change history | No |
Never treat index.md or log.md as normal concepts. RAG tools must exclude
them from the corpus.
Frontmatter rules
Minimum conformant concept:
---
type: Reference
status: draft
---
Concept body.Recommended project frontmatter:
---
type: API Operation
status: draft
title: API-042 — Create project
description: Operation contract for project creation.
resource: system/API.md#api-042
tags: [api, operation, project]
timestamp: 2026-06-25T00:00:00Z
requirement_id: API-042
source_path: system/API.md
owner_document: API.md
---Rules:
typeis required and must be mapped in the 7D type registry.statusis required. Allowed values are exactlydraft,to-review,not-valid,valid,rejected, andaccepted.statusis document/artifact state, not implementation progress. Status transitions are recommended only, not validation gates:draft->to-review-> (validornot-valid), then optionallyacceptedorrejected.title,description, andtimestampare recommended.- Unknown frontmatter keys are allowed.
- Preserve unknown frontmatter keys when editing existing concepts.
- Do not invent fields, citations, source paths, schema details, or requirement IDs.
- Use
tagsas a list when possible.
Common concept types
Use these unless the user or existing bundle taxonomy indicates another type:
type: Source Document
type: Requirement
type: Function Requirement
type: User Flow
type: Business Rule
type: Access Rule
type: Data Entity
type: API Operation
type: UX Screen
type: UI Component
type: Architecture Decision
type: Deployment Requirement
type: Traceability Row
type: Gap
type: Glossary Term
type: ReferenceType values are controlled by the 7D registry in SPEC.md and
okf_mcp/okf.py. Do not create an unmapped type silently; if no existing mapped
value fits, report the mapping gap instead of inventing a new taxonomy value.
Links as graph
Relationships are normal Markdown links:
This operation creates [Project](../../data/entities/project.md)
and is governed by [ACCESS-005](../../requirements/access/ACCESS-005.md).The relationship type is expressed by surrounding prose. Prefer relative links for internal OKF links because validation and graph generation resolve them reliably.
Do not replace a missing exact target with a broad link just to satisfy validation. If the correct target is unknown, report the gap.
Workflow: inspect existing bundle
- Call
simple-okf.read_support_file(path="index.md"). - Call
simple-okf.list_directory(directory=""). - Use
simple-okf.list_concepts(...)orsimple-okf.search_concepts(...)for discovery. - Open only needed concepts with
simple-okf.read_concept(...)orsimple-okf.read_concept_raw(...). - Follow Markdown links through
simple-okf.read_concept(...)when relationships matter. - Use
simple-okf.rag_retrieve(...)orsimple-okf.rag_answer(...)for broader semantic discovery when RAG is configured.
Workflow: create a concept
- Discover the right location with
list_directoryandlist_concepts. - Choose a stable concept ID.
- Use frontmatter with at least mapped
typeand allowedstatus; prefertitle,description,timestamp,tags, and source fields when supported by evidence. - Write concise Markdown body sections.
- Add relative links to related concepts only when there is evidence.
- Add citations only when there is a real source.
- Write via
simple-okf.write_concept_doc(...). - Run
simple-okf.generate_indexes(). - Run
simple-okf.build_graph(write=true, out_path="artifacts/okf/graph.json", html=true, html_out_path="artifacts/okf/graph.html")when relationships changed. - Run
simple-okf.validate_bundle().
Workflow: edit a concept
- Read the existing concept first.
- Preserve unknown frontmatter fields.
- Preserve stable concept IDs unless the user approves a rename.
- Update links if concept IDs move.
- Do not delete citations, schema details, or source fields unless they are incorrect or obsolete.
- Write via
simple-okf.write_concept_doc(...). - Regenerate derived outputs as needed.
- Validate the bundle.
Workflow: export canonical Markdown docs
Convert source Markdown documents into Source Document concepts:
simple-okf.export_source_documents(source="system", force=false)
simple-okf.generate_indexes()
simple-okf.validate_bundle()Do not treat generated OKF output as more canonical than its source unless the user explicitly changes the ownership model.
Workflow: generate graph
Build graph JSON and optional HTML report from concept links:
simple-okf.build_graph(write=true, out_path="artifacts/okf/graph.json", html=true, html_out_path="artifacts/okf/graph.html")artifacts/okf/graph.json and artifacts/okf/graph.html are derived outputs and may be
regenerated.
Workflow: use OKF RAG
Use RAG for discovery and question answering over OKF concepts, not as a replacement for reading/editing source concepts.
RAG configuration:
.env # local-only, ignored
.env.example # committed template
artifacts/rag/ # generated RAG artifactsDefault useful variables:
RAG_BUNDLE_DIR=okf
RAG_ARTIFACTS_DIR=artifacts/rag
RAG_RETRIEVAL_RESULT_LIMIT=10
RAG_ANSWER_EVIDENCE_LIMIT=5RAG rules:
- RAG corpus is OKF concepts only; exclude
index.mdandlog.md. - RAG chunks must preserve frontmatter context.
- RAG answers must cite
concept_id, path, and line ranges when evidence is available. - RAG artifacts are derived outputs, not canonical knowledge.
- Never commit
.env. - Keep
RAG_PROFILE=localinfrastructure-free; usequalityonly for gated Compose-backed checks andproductiononly with explicit infra readiness. - For profile-specific Compose guidance, backup/restore, index rollback/swap,
security/MCP exposure, 7D release checklist artifacts, and CI matrix details,
see
docs/operations/rag_production_hardening.md.
Validation expectations
Before finishing OKF content work, run through MCP when available:
simple-okf.validate_bundle()When adding/removing/renaming concepts, also run:
simple-okf.generate_indexes()
simple-okf.build_graph(write=true, out_path="artifacts/okf/graph.json", html=true, html_out_path="artifacts/okf/graph.html")
simple-okf.validate_bundle()For repository/tooling changes, use local checks as appropriate:
python3 -m py_compile okf_mcp/*.py okf_mcp/rag/*.py okf_mcp/rag/ingestion/*.py okf_mcp/rag/retrieval/*.py
python3 -m okf_mcp validate okf
python3 -m okf_mcp graph okf --out artifacts/okf/graph.json --html-out artifacts/okf/graph.html
git diff --check
git status --short
git diff --statReport which MCP tools or fallback commands were run and their results.
Guardrails
- Never invent domain facts.
- Preserve unknown fields.
- Keep stable IDs and links stable unless the user asks for a rename/move.
- Prefer minimal accurate concepts over padded concepts.
- Do not impose a rigid taxonomy beyond project conventions.
- Ask before broad directory, ownership, or bundle-structure changes.
- Do not commit local secrets or
.env. - Do not create alternate local tooling packages or top-level
rag/directories. - Treat graph and RAG artifacts as derived outputs.
- Report unresolved missing knowledge as gaps or open questions.
Output format
When presenting OKF changes, summarize:
- files changed;
- concepts added/edited/moved/deleted;
- derived outputs regenerated, if any;
- validation commands/MCP tools and results;
- remaining gaps or open questions.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

