@inkeep/open-knowledge 0.19.1-beta.1 → 0.19.1-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/assets/skills/discovery/SKILL.md +10 -10
  2. package/dist/assets/skills/packs/codebase-wiki/SKILL.md +1 -1
  3. package/dist/assets/skills/packs/entity-vault/SKILL.md +1 -1
  4. package/dist/assets/skills/packs/knowledge-base/SKILL.md +1 -1
  5. package/dist/assets/skills/packs/okf/SKILL.md +3 -3
  6. package/dist/assets/skills/packs/plain-notes/SKILL.md +1 -1
  7. package/dist/assets/skills/packs/software-lifecycle/SKILL.md +1 -1
  8. package/dist/assets/skills/packs/worldbuilding/SKILL.md +1 -1
  9. package/dist/assets/skills/packs/writing-pipeline/SKILL.md +1 -1
  10. package/dist/assets/skills/project/SKILL.md +13 -13
  11. package/dist/cli.mjs +14 -14
  12. package/dist/config-schema.json +1 -1
  13. package/dist/config.project.schema.json +1 -1
  14. package/dist/constants-Xc5Z7ZTx.mjs +2 -0
  15. package/dist/{dist-CKbTJ2SP.mjs → dist-CSYT3uRJ.mjs} +1 -1
  16. package/dist/{dist-DijTLjBt.mjs → dist-dm_DI4lI.mjs} +24 -24
  17. package/dist/{gh-detect-Cvw39ew1.mjs → gh-detect-Drsi8mbA.mjs} +2 -2
  18. package/dist/index.d.mts +2 -2
  19. package/dist/index.mjs +1 -1
  20. package/dist/{init-CY-W9G3-.mjs → init-qnci9inN.mjs} +11 -11
  21. package/dist/init-rn90hvr3.mjs +1 -0
  22. package/dist/loader-BAMewtvZ.mjs +1 -0
  23. package/dist/{loader-CZo-Wia5.mjs → loader-CTpkYEcs.mjs} +2 -2
  24. package/dist/preview-BaI3J7xB.mjs +1 -0
  25. package/dist/{preview-D0Sz6xea.mjs → preview-Dfj5I0lA.mjs} +2 -2
  26. package/dist/public/assets/{ActivityModeContent-jZ6HnQxU.js → ActivityModeContent-Dy1_JO4s.js} +1 -1
  27. package/dist/public/assets/{ConsentDialogBody-DOf6_QiW.js → ConsentDialogBody-CPn5k8Yj.js} +1 -1
  28. package/dist/public/assets/{DocumentContext-DVhriDCf.js → DocumentContext-DppavGIB.js} +1 -1
  29. package/dist/public/assets/{GraphPanel-Buy4AAG0.js → GraphPanel-B7tXBL9C.js} +14 -14
  30. package/dist/public/assets/{McpConsentDialogBody-stteh15-.js → McpConsentDialogBody-_slAuRpY.js} +1 -1
  31. package/dist/public/assets/SettingsDialogBody-DgfCMlWX.js +7 -0
  32. package/dist/public/assets/{SourceEditor-DW3ZzZL8.js → SourceEditor-CvVog_I5.js} +1 -1
  33. package/dist/public/assets/{TerminalPanel-BQT_RT2t.js → TerminalPanel-gtDefA9J.js} +3 -3
  34. package/dist/public/assets/{config-validation-events-DSgrywOU.js → config-validation-events-De91seTf.js} +7 -7
  35. package/dist/public/assets/{dist-52GaUc7C.js → dist-DzbxRXt5.js} +13 -13
  36. package/dist/public/assets/{index-Amfq6SzA.js → index-Do4YGiKm.js} +16 -16
  37. package/dist/public/assets/{keyboard-shortcuts-NT911PBK.js → keyboard-shortcuts-CrOPSj32.js} +1 -1
  38. package/dist/public/assets/{prop-types-DFOayjLw.js → prop-types-C0kDsvPx.js} +1 -1
  39. package/dist/public/assets/{target-navigation-intent-Ck2yPxGj.js → target-navigation-intent-BW8U2Njg.js} +1 -1
  40. package/dist/public/assets/toggle-group-DsgJIlng.js +1 -0
  41. package/dist/public/assets/{typing-burst-detector-CpE9cH17.js → typing-burst-detector-Wg72tb4K.js} +1 -1
  42. package/dist/public/index.html +10 -10
  43. package/dist/{repair-launch-json-C00DtQix.mjs → repair-launch-json-BXPqa1Kr.mjs} +2 -2
  44. package/dist/{repair-mcp-configs-Bjis3Gs_.mjs → repair-mcp-configs-B6iUUT2Z.mjs} +2 -2
  45. package/dist/repair-skills-B57xTnpU.mjs +1 -0
  46. package/dist/repair-skills-CsRymFFj.mjs +3 -0
  47. package/dist/schemas/v0/config.project.schema.json +1 -1
  48. package/dist/server-lock-8Lv6A-Xa-BTQcAAhW.mjs +1 -0
  49. package/dist/{server-lock-BpjJj3OD-DwwMezJh.mjs → server-lock-CN2YHwpP-Cvbk69Pj.mjs} +5 -5
  50. package/dist/{src-BG8wN5nj.mjs → src-FMu2amXA.mjs} +3 -3
  51. package/dist/start-B-pM1bbX.mjs +3 -0
  52. package/dist/start-CHqj7QZt.mjs +1 -0
  53. package/dist/write-project-skill-C3yO9LBO.mjs +12 -0
  54. package/package.json +1 -1
  55. package/dist/constants-7_gPH7bM.mjs +0 -2
  56. package/dist/init-BI5Q1yiS.mjs +0 -1
  57. package/dist/loader-DUZt0mlM.mjs +0 -1
  58. package/dist/preview-CG2kjIuT.mjs +0 -1
  59. package/dist/public/assets/SettingsDialogBody-CcxV23r0.js +0 -7
  60. package/dist/public/assets/toggle-group-oSLn0Q3B.js +0 -1
  61. package/dist/repair-skills-Fvio4Y5j.mjs +0 -3
  62. package/dist/repair-skills-RiEpYpER.mjs +0 -1
  63. package/dist/server-lock-CyhBidkz-CtwSwoJc.mjs +0 -1
  64. package/dist/start-DB7xaE_Y.mjs +0 -3
  65. package/dist/start-kkKeSsPq.mjs +0 -1
  66. package/dist/write-project-skill-X3m0-n6F.mjs +0 -12
@@ -1,24 +1,24 @@
1
1
  ---
2
2
  name: open-knowledge-discovery
3
- description: "Read when the user asks what Open Knowledge is, wants to install it on a repository, wants to share an Open Knowledge project with collaborators, or asks how `ok init` / `ok install-skill` / OK Desktop set up a project. Do NOT load to perform Open Knowledge reads/writes — the runtime guidance for editing markdown inside an initialized OK project ships as a separate project-local skill at `.claude/skills/open-knowledge/` whenever `ok init` runs. If the user appears to be editing markdown inside a `.ok/` project and this is the only OK skill loaded, advise them to re-run `ok init` to install the project-local skill."
3
+ description: "Read when the user asks what OpenKnowledge is, wants to install it on a repository, wants to share an OpenKnowledge project with collaborators, or asks how `ok init` / `ok install-skill` / OK Desktop set up a project. Do NOT load to perform OpenKnowledge reads/writes — the runtime guidance for editing markdown inside an initialized OK project ships as a separate project-local skill at `.claude/skills/open-knowledge/` whenever `ok init` runs. If the user appears to be editing markdown inside a `.ok/` project and this is the only OK skill loaded, advise them to re-run `ok init` to install the project-local skill."
4
4
  compatibility: "Any agent host — no MCP server required. Pure discovery + install guidance."
5
5
  metadata:
6
- version: "0.19.1-beta.1"
6
+ version: "0.19.1-beta.11"
7
7
  author: "Inkeep"
8
8
  repository: "https://github.com/inkeep/open-knowledge"
9
9
  ---
10
- # Open Knowledge — what it is and how to install it
10
+ # OpenKnowledge — what it is and how to install it
11
11
 
12
- Open Knowledge (OK) is a markdown-CRDT collaboration platform. It turns a
12
+ OpenKnowledge (OK) is a markdown-CRDT collaboration platform. It turns a
13
13
  directory of `.md` / `.mdx` files into a live, multi-writer knowledge base:
14
14
  agents and humans edit the same documents in real time, every change is
15
15
  attributed, and a browser preview renders edits as they land.
16
16
 
17
- This skill is **discovery-only**. It explains what Open Knowledge is and how
17
+ This skill is **discovery-only**. It explains what OpenKnowledge is and how
18
18
  to set it up. It carries **no runtime rules** for reading or editing markdown
19
19
  — that guidance ships separately (see *Working inside a project* below).
20
20
 
21
- ## Install Open Knowledge on a repository
21
+ ## Install OpenKnowledge on a repository
22
22
 
23
23
  Run `ok init` from the repository root:
24
24
 
@@ -32,7 +32,7 @@ ok init
32
32
  `ok init` is the one setup verb. It:
33
33
 
34
34
  - scaffolds a `.ok/` directory (project config — `content.dir` defaults to `.`);
35
- - wires the Open Knowledge MCP server into detected editors (Claude Code,
35
+ - wires the OpenKnowledge MCP server into detected editors (Claude Code,
36
36
  Cursor, Codex) — skip with `--no-mcp`;
37
37
  - installs the **project-local runtime skill** at `.claude/skills/open-knowledge/`
38
38
  and `.cursor/skills/open-knowledge/` so agents working in this repo get the
@@ -42,7 +42,7 @@ ok init
42
42
  Re-run `ok init` any time to refresh wiring and skills to the installed CLI
43
43
  version.
44
44
 
45
- ## Share an Open Knowledge project with collaborators
45
+ ## Share an OpenKnowledge project with collaborators
46
46
 
47
47
  An OK project travels with its repository. To share one:
48
48
 
@@ -73,14 +73,14 @@ from the releases page.
73
73
 
74
74
  ## Working inside a project — use the project-local skill, not this one
75
75
 
76
- Do **not** use this skill to perform Open Knowledge reads or writes. The
76
+ Do **not** use this skill to perform OpenKnowledge reads or writes. The
77
77
  runtime contract — STOP rules for native file tools on in-scope markdown, the
78
78
  preview-attach handshake, grounding and linking rules, the MCP tool routing
79
79
  table — lives in a **separate project-local skill** installed at
80
80
  `.claude/skills/open-knowledge/SKILL.md` whenever `ok init` runs.
81
81
 
82
82
  If the user is editing markdown inside a project that has a `.ok/` directory
83
- and this discovery skill is the only Open Knowledge skill loaded, the
83
+ and this discovery skill is the only OpenKnowledge skill loaded, the
84
84
  project-local skill is missing (the repo was never `ok init`'d, or the skill
85
85
  directory was not committed). Advise the user to run `ok init` to install it.
86
86
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: open-knowledge-pack-codebase-wiki
3
3
  description: "How to work in a Codebase Wiki project (the `codebase-wiki` starter pack): an agent-authored, source-grounded wiki of the surrounding codebase. Read when the project has a `wiki/` knowledge base with `architecture/`, `modules/`, `flows/`, `concepts/`, and `guides/` sections plus `wiki/OVERVIEW.md`. Carries the per-folder rules and freshness + log discipline, summarizes the audience/depth knobs and source-reference convention, and points to the `workflow({ kind: 'wiki' })` guide for the full generate/refresh procedure. Complements the platform `open-knowledge` skill; does not replace it."
4
- compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires Open Knowledge MCP server. Installed project-local by `ok seed --pack codebase-wiki`."
4
+ compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack codebase-wiki`."
5
5
  metadata:
6
6
  pack: "codebase-wiki"
7
7
  author: "Inkeep"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: open-knowledge-pack-entity-vault
3
3
  description: "How to work in an Entity vault project (the `entity-vault` starter pack, GBrain-compatible): a typed-entity vault of people, companies, meetings, and concepts, each a dossier with a rewritable summary plus an append-only timeline. Read when the project has these folders. Carries the dossier convention and entity-extraction behaviors so that guidance does not live inside template bodies or folder descriptions. Complements the platform `open-knowledge` skill; does not replace it."
4
- compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires Open Knowledge MCP server. Installed project-local by `ok seed --pack entity-vault`."
4
+ compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack entity-vault`."
5
5
  metadata:
6
6
  pack: "entity-vault"
7
7
  author: "Inkeep"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: open-knowledge-pack-knowledge-base
3
3
  description: "How to work in a Knowledge Base project (the `knowledge-base` starter pack). Read when the project has the three-layer source-grounded layout — `external-sources/` → `research/` → `articles/` — wired to the `workflow` MCP tool's ingest / research / consolidate kinds. Carries the pack's workflow, per-folder rules, status flows, and log discipline so this guidance does NOT live inside template bodies or log.md. Complements the platform `open-knowledge` skill; does not replace it."
4
- compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires Open Knowledge MCP server. Installed project-local by `ok seed --pack knowledge-base`."
4
+ compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack knowledge-base`."
5
5
  metadata:
6
6
  pack: "knowledge-base"
7
7
  author: "Inkeep"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: open-knowledge-pack-okf
3
3
  description: "How to work in an OKF starter project (the `okf` starter pack): a knowledge base that is conformant with Google's Open Knowledge Format (OKF) from commit one — `concepts/`, `references/`, `notes/`, a reserved `index.md` navigation hub, and a reserved `log.md` change history. Read when the project has these folders + reserved files. Carries the OKF conventions (non-empty `type` on every non-reserved doc; reserved files carry no frontmatter) as guidance, not enforcement. Complements the platform `open-knowledge` skill; does not replace it."
4
- compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires Open Knowledge MCP server. Installed project-local by `ok seed --pack okf`."
4
+ compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack okf`."
5
5
  # `type` keeps this skill doc OKF-conformant: it installs as project-local
6
6
  # markdown under `.claude`/`.cursor`/`.agents` skills dirs, which OK admits into
7
7
  # the content corpus — so without a non-empty `type` it would be a non-reserved
@@ -14,7 +14,7 @@ metadata:
14
14
  ---
15
15
  # OKF starter pack — how to work here
16
16
 
17
- This project was scaffolded to be conformant with **Google's Open Knowledge Format (OKF) v0.1** from the first commit — markdown + YAML frontmatter, a standard-markdown link graph, and two reserved files. Conformance here is pre-populated, **not enforced**: Open Knowledge's native frontmatter schema stays open-shaped, nothing is linted, and you are free to author however you like. This skill explains the conventions so the kit stays OKF-portable as it grows.
17
+ This project was scaffolded to be conformant with **Google's Open Knowledge Format (OKF) v0.1** from the first commit — markdown + YAML frontmatter, a standard-markdown link graph, and two reserved files. Conformance here is pre-populated, **not enforced**: OpenKnowledge's native frontmatter schema stays open-shaped, nothing is linted, and you are free to author however you like. This skill explains the conventions so the kit stays OKF-portable as it grows.
18
18
 
19
19
  > This skill is pack guidance. The platform `open-knowledge` skill (read/write/preview/grounding rules) still governs every markdown operation — this layers OKF conventions on top.
20
20
 
@@ -32,7 +32,7 @@ OKF requires exactly one thing of every **non-reserved** document: a **non-empty
32
32
  - **`references/`** — external sources and citations you rely on (`type: reference`).
33
33
  - **`notes/`** — working notes and observations (`type: note`).
34
34
 
35
- Link liberally with **standard markdown links** (`[text](./path.md)`) — the value is the graph that emerges from the links between typed docs, and standard links keep that graph portable to any OKF consumer. (Open Knowledge also accepts `[[wiki-link]]` shorthand as a native superset, and the OKF export normalizes it to standard links — but seeded content uses standard links so the bundle is conformant as-is.)
35
+ Link liberally with **standard markdown links** (`[text](./path.md)`) — the value is the graph that emerges from the links between typed docs, and standard links keep that graph portable to any OKF consumer. (OpenKnowledge also accepts `[[wiki-link]]` shorthand as a native superset, and the OKF export normalizes it to standard links — but seeded content uses standard links so the bundle is conformant as-is.)
36
36
 
37
37
  ## Reserved files (keep them frontmatter-free)
38
38
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: open-knowledge-pack-plain-notes
3
3
  description: "How to work in a Plain Notes project (the `plain-notes` starter pack): a flat notes/ folder plus a daily/ journal. The 'I just want to write' layout. Read when the project has these folders. Carries the linking habit and daily-entry behavior so templates and folder descriptions stay minimal. Complements the platform `open-knowledge` skill; does not replace it."
4
- compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires Open Knowledge MCP server. Installed project-local by `ok seed --pack plain-notes`."
4
+ compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack plain-notes`."
5
5
  metadata:
6
6
  pack: "plain-notes"
7
7
  author: "Inkeep"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: open-knowledge-pack-software-lifecycle
3
3
  description: "How to work in a Software Lifecycle project (the `software-lifecycle` starter pack): proposals → decisions → specs → postmortems, plus guides. Read when the project has these folders. Carries the doc lifecycle, status flows, and per-folder agent behaviors so that guidance does not live inside template bodies or folder descriptions. Complements the platform `open-knowledge` skill; does not replace it."
4
- compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires Open Knowledge MCP server. Installed project-local by `ok seed --pack software-lifecycle`."
4
+ compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack software-lifecycle`."
5
5
  metadata:
6
6
  pack: "software-lifecycle"
7
7
  author: "Inkeep"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: open-knowledge-pack-worldbuilding
3
3
  description: "How to work in a Worldbuilding project (the `worldbuilding` starter pack): a fiction encyclopedia of characters, settings, themes, factions, and lore. Read when the project has these folders. Carries the auto-stub and consistency behaviors so that guidance does not live inside template bodies or folder descriptions. Complements the platform `open-knowledge` skill; does not replace it."
4
- compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires Open Knowledge MCP server. Installed project-local by `ok seed --pack worldbuilding`."
4
+ compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack worldbuilding`."
5
5
  metadata:
6
6
  pack: "worldbuilding"
7
7
  author: "Inkeep"
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: open-knowledge-pack-writing-pipeline
3
3
  description: "How to work in a Writing Pipeline project (the `writing-pipeline` starter pack): a three-stage drafting flow, ideas → drafts → published. Read when the project has these folders. Carries the stage flow and review behaviors so that guidance does not live inside template bodies or folder descriptions. Complements the platform `open-knowledge` skill; does not replace it."
4
- compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires Open Knowledge MCP server. Installed project-local by `ok seed --pack writing-pipeline`."
4
+ compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server. Installed project-local by `ok seed --pack writing-pipeline`."
5
5
  metadata:
6
6
  pack: "writing-pipeline"
7
7
  author: "Inkeep"
@@ -1,17 +1,17 @@
1
1
  ---
2
2
  name: open-knowledge
3
- description: "MUST invoke before reading or editing any `.md` / `.mdx` file, and before any `mcp__open-knowledge__*` tool call (`exec`, `search`, `write`, `edit`, and the rest). This skill is installed into the repository by `ok init`, so its presence alone means this is an Open Knowledge project — its runtime contract governs every markdown file here, with no need to probe for a `.ok/` directory. Authoritative agent-runtime contract for working inside this Open Knowledge project."
4
- compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires Open Knowledge MCP server + code execution."
3
+ description: "MUST invoke before reading or editing any `.md` / `.mdx` file, and before any `mcp__open-knowledge__*` tool call (`exec`, `search`, `write`, `edit`, and the rest). This skill is installed into the repository by `ok init`, so its presence alone means this is an OpenKnowledge project — its runtime contract governs every markdown file here, with no need to probe for a `.ok/` directory. Authoritative agent-runtime contract for working inside this OpenKnowledge project."
4
+ compatibility: "Claude Code, Claude Desktop, Claude Cowork, Claude.ai web. Requires OpenKnowledge MCP server + code execution."
5
5
  metadata:
6
- version: "0.19.1-beta.1"
6
+ version: "0.19.1-beta.11"
7
7
  author: "Inkeep"
8
8
  repository: "https://github.com/inkeep/open-knowledge"
9
9
  ---
10
- # Open Knowledge — agent guidance
10
+ # OpenKnowledge — agent guidance
11
11
 
12
- Open Knowledge (OK) is a markdown-CRDT collaboration platform exposed via MCP. This skill carries the behavioral rules agents need to use it fluently. Every section is a MUST unless marked otherwise.
12
+ OpenKnowledge (OK) is a markdown-CRDT collaboration platform exposed via MCP. This skill carries the behavioral rules agents need to use it fluently. Every section is a MUST unless marked otherwise.
13
13
 
14
- > **Authoritative source.** This skill is the single source of Open Knowledge agent guidance — the full attach rule, grounding rule, media rules, dead-link verification, and failure-mode guidance live only here.
14
+ > **Authoritative source.** This skill is the single source of OpenKnowledge agent guidance — the full attach rule, grounding rule, media rules, dead-link verification, and failure-mode guidance live only here.
15
15
 
16
16
  > Skill version: tracks `@inkeep/open-knowledge-server` package version. Check `cat ~/.ok/skill-state.yml` to see what's installed locally. **Version floor:** `ok seed` (referenced below) requires `@inkeep/open-knowledge` >= 0.4.0. If `ok seed` errors with `unknown command`, upgrade: `npm install -g @inkeep/open-knowledge`.
17
17
 
@@ -45,19 +45,19 @@ Tools NOT in OK MCP (they belong to your agent host): `preview_start`, `preview_
45
45
 
46
46
  ## STOP — native tools on in-scope `.md` / `.mdx`
47
47
 
48
- When this workspace has Open Knowledge MCP configured, do **not** use your host's native file tools on markdown paths inside the content directory. The ban covers every common rationalization:
48
+ When this workspace has OpenKnowledge MCP configured, do **not** use your host's native file tools on markdown paths inside the content directory. The ban covers every common rationalization:
49
49
 
50
50
  - **Native `Read` / `Grep` / `Glob` on in-scope `.md` / `.mdx`** — the original case.
51
51
  - **`Bash ls` / `Bash find` / `Bash cat` on dirs containing in-scope markdown** — use `exec("ls -A …")` / `exec("find … -name '*.md'")` / `exec("cat …")` instead. Native returns bare names; `exec` returns frontmatter, backlink counts, and recent activity per child. `-A` shows hidden entries (`.ok/`, `.okignore`) which OK projects carry; omit `.` and `..` rows that `-a` would add.
52
52
  - **Glob patterns that target markdown** (`**/*.md`, any dir known to be markdown-heavy like `specs/**`, `reports/**`, `docs/**`) — use `exec` with `find`, or `exec("ls -A <dir>")`.
53
- - **Dispatching the Explore / general-purpose subagent for markdown-heavy exploration** — subagents use native `Read` / `Grep` / `Glob` internally and bypass Open Knowledge entirely. Do markdown exploration yourself via `exec` / `search`. Subagents remain appropriate for **source-code** exploration.
53
+ - **Dispatching the Explore / general-purpose subagent for markdown-heavy exploration** — subagents use native `Read` / `Grep` / `Glob` internally and bypass OpenKnowledge entirely. Do markdown exploration yourself via `exec` / `search`. Subagents remain appropriate for **source-code** exploration.
54
54
  - **Native `Read` / `Grep` on any in-scope markdown inside `.ok/`** — the `.ok/` directory is in-scope; if it carries `.md` / `.mdx`, treat those the same as any other knowledge-base file.
55
55
 
56
56
  Why: native tools skip frontmatter, backlinks, shadow-repo activity, and project git history that OK's tools return for every matched knowledge-base file. `exec` is the primary read surface; it runs read-only bash (`cat`, `ls`, `grep`, `find`, `head`, `tail`, `wc`, `sort`, `uniq`, `cut`) and returns raw stdout plus enriched metadata per file. One command or a pipe (`|`) per call — it is NOT a shell, so `&&` / `;` / redirects are rejected; list several dirs with `ls -A a b c` or make separate calls.
57
57
 
58
- **MCP tool visibility — not seeing `exec` is NOT the escape hatch.** MCP wiring varies by client. Claude Code, Cursor, Codex, Windsurf, VS Code — each surfaces MCP differently. Server labels are user-defined; tools may not appear as top-level symbols named `exec` in your specific UI. If Open Knowledge is registered as an MCP server in this workspace, route markdown reads through its `exec` / `search` via your client's documented MCP invocation (including any generic "call MCP tool" flow). Registration is the test, not top-level-symbol visibility.
58
+ **MCP tool visibility — not seeing `exec` is NOT the escape hatch.** MCP wiring varies by client. Claude Code, Cursor, Codex, Windsurf, VS Code — each surfaces MCP differently. Server labels are user-defined; tools may not appear as top-level symbols named `exec` in your specific UI. If OpenKnowledge is registered as an MCP server in this workspace, route markdown reads through its `exec` / `search` via your client's documented MCP invocation (including any generic "call MCP tool" flow). Registration is the test, not top-level-symbol visibility.
59
59
 
60
- **Escape hatch.** Native `Read` / `Grep` / `Glob` on `.md` / `.mdx` is allowed **only** when no Open Knowledge MCP server is registered for this project, **or** immediately after you tried an MCP call and it failed — then begin a user-visible sentence with `Open Knowledge MCP unavailable:`. Never use the hatch because you skipped your client's MCP path, didn't see `exec` as a top-level tool, or rationalized the skill wasn't necessary.
60
+ **Escape hatch.** Native `Read` / `Grep` / `Glob` on `.md` / `.mdx` is allowed **only** when no OpenKnowledge MCP server is registered for this project, **or** immediately after you tried an MCP call and it failed — then begin a user-visible sentence with `OpenKnowledge MCP unavailable:`. Never use the hatch because you skipped your client's MCP path, didn't see `exec` as a top-level tool, or rationalized the skill wasn't necessary.
61
61
 
62
62
  **Source code and non-markdown files** (`.ts`, `.py`, `package.json`, …): native `Read` / `Grep` / `Glob` always.
63
63
 
@@ -141,7 +141,7 @@ To author an MDX doc (the KB renders MDX/JSX components), set `extension: ".mdx"
141
141
 
142
142
  To delete a doc, call `delete({ document })` — never `rm` / `unlink` / native `Bash` removal on in-scope markdown. The MCP path closes open agent sessions and unloads the doc from Hocuspocus before unlinking; native `rm` desynchronizes those. Deletion is irreversible — call `checkpoint()` first if you may need to roll back (it snapshots the whole project; afterwards restore the doc via `restore_version({ document, version })`, finding the `version` in `history`), and `links({ kind: "backlinks", document })` first if you want to fix referrers that will become redlinks. To move or rename a doc instead of delete + rewrite, use `move({ from, to })` — it auto-detects document vs folder vs asset and rewrites incoming references atomically.
143
143
 
144
- **If `edit` returns "Text not found" on text you can verify exists on disk** (via `exec("cat …")`), the MCP session is likely stale (e.g., after a folder rename or server restart). Treat this as the escape-hatch trigger from the STOP block: prefix your next user-visible sentence with `Open Knowledge MCP unavailable:` and report the inconsistency. Don't loop on retries — the symptom is structural, not transient.
144
+ **If `edit` returns "Text not found" on text you can verify exists on disk** (via `exec("cat …")`), the MCP session is likely stale (e.g., after a folder rename or server restart). Treat this as the escape-hatch trigger from the STOP block: prefix your next user-visible sentence with `OpenKnowledge MCP unavailable:` and report the inconsistency. Don't loop on retries — the symptom is structural, not transient.
145
145
 
146
146
  ## Conflict-aware writes
147
147
 
@@ -504,9 +504,9 @@ If `write` or `edit` returns a "Hocuspocus server is not running" error, start i
504
504
 
505
505
  ## Scope recap
506
506
 
507
- Open Knowledge looks for documents under the resolved `content.dir` (discoverable at runtime via `config({ key: 'content.dir' })`). `.gitignore` and `.okignore` (at the project root and at any folder depth) define exclusions. A folder's own metadata + templates live in nested `<folder>/.ok/frontmatter.yml` + `<folder>/.ok/templates/` — NOT in `.ok/config.yml`.
507
+ OpenKnowledge looks for documents under the resolved `content.dir` (discoverable at runtime via `config({ key: 'content.dir' })`). `.gitignore` and `.okignore` (at the project root and at any folder depth) define exclusions. A folder's own metadata + templates live in nested `<folder>/.ok/frontmatter.yml` + `<folder>/.ok/templates/` — NOT in `.ok/config.yml`.
508
508
 
509
- Default mental model (no jargon): **every `.md` and `.mdx` under `content.dir`** not excluded by `.gitignore` or `.okignore` is an Open Knowledge document — including under `specs/`, `reports/`, `docs/`, etc. Read `.okignore` (and any nested `.okignore` files) once per turn to know what's excluded.
509
+ Default mental model (no jargon): **every `.md` and `.mdx` under `content.dir`** not excluded by `.gitignore` or `.okignore` is an OpenKnowledge document — including under `specs/`, `reports/`, `docs/`, etc. Read `.okignore` (and any nested `.okignore` files) once per turn to know what's excluded.
510
510
 
511
511
  **First session in this project?** If substantial folders have no frontmatter of their own and no `templates_available`, the project isn't onboarded — invoke `workflow({ kind: 'discover' })` before writing.
512
512