inkeep/open-knowledge/project
- community
Checking that the SKILL.md file is still in the repository.
Authoritative agent-runtime contract for working inside an OpenKnowledge project — a markdown-CRDT knowledge base exposed over MCP. Use whenever reading, listing, searching, editing, or linting any `.md` or `.mdx` file in the project, and before any `mcp__open-knowledge*` tool call (`exec`, `search`, `write`, `edit`, `lint`, and the rest). Installed by `ok init`, so its presence means this is an OpenKnowledge project and it governs every markdown file here. Covers the read/write tool surface, grounding and linking rules, folder/template conventions, the live browser preview, and the rule that OK's MCP tools — never native file tools — handle in-scope markdown.
Install
npx vskill@latest install inkeep/open-knowledge/projectSKILL.md
OpenKnowledge — agent guidance
OpenKnowledge (OK) is a markdown-CRDT collaboration platform exposed via MCP. This skill is the single source of OK agent guidance. Every rule below is a MUST unless marked otherwise. Depth lives in `references/*.md` — one level deep; load a reference when its task comes up.
Skill version tracks@inkeep/open-knowledge-server.cat ~/.ok/skill-state.ymlshows what's installed.ok seedneeds@inkeep/open-knowledge>= 0.4.0; if it errorsunknown command,npm install -g @inkeep/open-knowledge.
CLI name. Commands here use Stable'sok(open-knowledge) and~/.ok/. With OpenKnowledge Beta, useok-beta(open-knowledge-beta) and~/.ok-beta/instead;preview_url'sokOpenCommandalready names the right one.
Setup (not connected yet?). If themcp__open-knowledge*tools aren't available in your client, this project isn't wired up on this machine — see `references/setup.md` for the rung ladder (approve.mcp.json→ok startCLI → optional desktop app) and the canonical quickstart.
TL;DR — the 90% case
- Reads:
exec("cat …")for one doc,exec("ls -A …")for a directory (folder defaults + template menu),exec("grep …")for literal,searchfor ranked retrieval. NativeRead/Greponly on source code (.ts/.py/ …), never on in-scope.md/.mdx. - Writes:
write({ document: { path, content } })for a new or full-replace doc;edit({ document: { path, find, replace } })for a body find/replace;edit({ document: { path, frontmatter } })for a frontmatter merge-patch (nulldeletes a key).delete({ document })removes,move({ from, to })moves/renames. Body find/replace is body-only. Pass a one-linesummary(≤80 chars, user-facing outcome) on every content write. - Preview / open a doc — determine your ONE surface FIRST (once per session). Stop at first match: `OK_DESKTOP_TERMINAL` or `OK_HOSTED_AGENT` set → you're inside OpenKnowledge (desktop terminal / in-app agent panel) →
ok open <name>(switches the window the user is already looking at); never paste alocalhostURL into your reply here · in-app browser (Claude Code Desktop's Browser pane, Cursor, Codex) →preview_url, then open/navigate it to the doc · else plain CLI →ok open <name>.ok open <name>opens a doc or folder (auto-detected);--skill <name>for a skill. ThepreviewUrlfield is a route id, not your open mechanism. Don'tpreview_screenshotto confirm edits. Full Step-0 procedure + per-surface how-to:references/preview.md. - Direct questions: a plain business question ("which customers…", "what did we decide about…") routes to
search/exec+ a cited chat answer — no "research" keyword needed. Persist only when durable + multi-doc + not already covered, and offer first. Seereferences/corpus-qa.md. - Authoring or improving a skill ("write/make/improve a skill", "turn this into a skill"): STOP and invoke `/open-knowledge-write-skill` for scope (project/global), contract, evaluation, and install. Author through
write({ skill }), never a document path. Skills are real folders under editorskills/dirs (.claude·.cursor·.codex·.github·.opencode·.pi·.agents): one source plus managed copies/symlinks. Read/edit via `skills` and `edit({ skill })` — they route to the source. Never hand-edit a non-source copy: recorded, unedited copies refresh from the source when the skill watcher runs or the server starts, so a source edit can precede the refresh. Editing a copy directly forks it and stops refresh.
Tool index — 19 tools (router; calling contracts live in tool descriptions and input schemas)
exec— read files and directories with document context.search— retrieve ranked workspace matches.links— inspect link relationships and suggestions.lint— check content rules and apply automatic fixes.audit— validate content rules and internal links.write— create or replace content.edit— change content or metadata in place.delete— remove content.move— rename or relocate content through managed operations.install— manage skill source and editor locations.import— acquire a skill folder without running scripts.history— inspect document, folder or skill versions.skills— discover, list or read skills by name and scope.checkpoint— save a named version.restore_version— restore a document or skill version.palette— discover components and authoring forms.config— read resolved configuration.preview_url— get the browser preview URL.share_link— get a GitHub-backed sharing link.
Read `ran` on successful lint/audit results: a family absent from ran was not checked, and [] means no checks were selected. For link VALIDATION use audit; links reports relationships and raw dead-link state. Caveats: references/linking.md.
Skill placement is separate from skill content: the source folder IS the skill, and removing an installed copy does not delete the skill. For a Project↔Global move, history resets; only what the destination level can host re-projects; the rest is removed at source, returned as droppedLocations (success: re-add with install). Read the returned outcome before recovery. A folder's frontmatter is open-shape and self-only (does NOT cascade); templates are what new docs start with.
Self-correcting on misuse: constraints JSON Schema can't express ("exactly one target", "find needs a replace", body-XOR-frontmatter) return isError: true with a one-line corrective shape. Read it and retry with that shape; don't guess.
Tools NOT in OK MCP (your host's): preview_start, preview_screenshot, WebFetch, WebSearch, native Read / Grep / Glob / Edit. The STOP rule governs which you may use on in-scope markdown.
STOP — native tools on in-scope .md / .mdx
Route every in-scope markdown read and write through OK's MCP tools — never your host's native file tools. Native Edit / sed / direct Write on in-scope markdown bypasses the CRDT and loses agent attribution in the shadow repo; native reads skip frontmatter, backlinks, shadow-repo activity, and project git history that OK returns for every matched file. When this workspace has OpenKnowledge MCP configured, do not use native file tools on markdown paths inside the content directory. The ban covers every common rationalization:
- Native `Read` / `Grep` / `Glob` on in-scope `.md` / `.mdx` — the original case.
- `Bash ls` / `Bash find` / `Bash cat` on dirs containing in-scope markdown — use
exec("ls -A …")/exec("find … -name '*.md'")/exec("cat …"). Native returns bare names;execadds frontmatter, backlinks, and recent activity.-Ashows hidden entries without./... - Glob patterns that target markdown —
execexpands file operands (cat specs/*.md); quoted patterns and a command's own pattern (find -name) stay literal. - Dispatching the Explore / general-purpose subagent for markdown-heavy exploration — a subagent may start without this skill loaded and then read markdown with its native tools, bypassing OK. Do markdown exploration yourself via
exec/search. Subagents remain appropriate for source-code exploration. - Native `Read` / `Grep` on in-scope markdown inside `.ok/` —
.ok/is in-scope; treat its.md/.mdxlike any other KB file. - `ls` / `cat` / `find` on skill folders to discover or read a skill — skills are addressed by
name+scope, not by path (a skill can live in any editor dir, the.agents/skills/hub, or a custom root, with copies elsewhere). Use theskillstool.
Not seeing `exec` is NOT the escape hatch. Wiring, labels, and tool visibility vary by client; some (notably Codex) defer MCP tools behind lazy discovery. Registration is the test, not top-level-symbol visibility — run tool discovery for open-knowledge first. Detail: references/setup.md.
Escape hatch. Native Read / Grep / Glob on .md / .mdx is allowed only when, after running tool discovery (above), no OpenKnowledge MCP server is registered for this project, or immediately after you actually invoked an MCP call and it failed — then begin a user-visible sentence with OpenKnowledge MCP unavailable:. "Not registered" is a conclusion you may only reach after tool discovery turned it up empty — never from the initial tool list alone. Never use the hatch because you skipped your client's MCP path, didn't see exec as a top-level tool, didn't run tool discovery, or rationalized the skill wasn't necessary.
Source code and non-markdown files (.ts, .py, package.json, …): native Read / Grep / Glob always.
Writing
Call write / edit as soon as you have content (route through MCP per the STOP rule).
Persist incrementally — the knowledge base IS your checkpoint (MUST). On any multi-step or long-running task — a research sweep, a multi-source synthesis, a batch of docs — write completed work to the KB as you finish each unit: per section, per source, per doc. Never hold finished findings only in your context waiting for one final write at the end. A rate limit, crash, or context compaction mid-task discards everything still unwritten; work already persisted survives, and you resume by reading the doc back. Create the target doc early (skeleton + frontmatter), then edit each section in as it firms up.
Pass a `summary` on every content write (SHOULD) — a one-line (≤80 char) user-facing note; it becomes the timeline entry. Reach for visual structure (Callout, mermaid, table, html preview) where it carries the point better than prose; call palette as you draft. Advisory write-warnings, MDX authoring, delete/move mechanics, and visual authoring: references/writing.md + references/components-and-visuals.md + references/media-and-assets.md.
Grounding — every factual claim needs a source (MUST)
KB docs are factual artifacts: every claim traceable, and the source lives inside the knowledge base, not on the public web.
Ingest is a procedure, not a tool — binary-vs-text classification, SSRF-safe fetch flags, size + executable gates, wrapper frontmatter — in `references/ingest-and-sources.md`. Read it before your first capture; a naive fetch-and-paste skips every gate.
- Closed loop. External sources are pulled in by the ingest procedure, then cited locally. A bare
[source](https://...)inside a KB doc is not a citation — it is a TODO meaning "still needs ingesting". The chain only works if every leaf is a local doc. - Every factual claim MUST cite its source at the point of claim. No unsourced speculation.
- Web sources → fetch the page (host
WebFetch/WebSearch), ingest it, then cite the path:[source name](./path/to/source.md)(the local doc carriessource_url:). Inline[source](URL)is a chat affordance, not a KB one. - Self-fetched counts. A URL YOU fetched to ground a claim gets the same ingest — no inline-URL downgrade.
- Internal cross-refs → link the OK doc holding the authoritative claim; that doc cites its own sources (chains terminate in preserved local docs).
- No evidence? Search and ingest the result, OR mark
(TODO: needs source), OR don't write the claim. Do NOT fabricate — unsourced speculation rots into untraceable tribal lore.
Linking — standard markdown links (MUST)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 93 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingpackages/server/assets/skills/project/SKILL.md
Popularity
- Repository stars
- 3,090
- Repository forks
- 193
- 7-day trend score
- 40
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/inkeep/open-knowledge/project)