{
  "version": 1,
  "generatedBy": "Silen",
  "pages": [
    {
      "route": "/en/features/",
      "title": "Mini-Wiki 3.3 core features",
      "markdown": "# Core features\n\nMini-Wiki 3.3 converts the strongest repository-relevant ideas from Obsidian into standalone, versionable\ncapabilities. Obsidian can enhance exploration, but no core feature depends on the application.\n\n## Managed Markdown and Properties\n\nProperties are the shared metadata model for pages and derived views. The CLI owns IDs, types, domains, sources,\nfreshness, quality, and version fields while preserving unknown user Properties. Generated/content markers let\nmachine facts and expert explanation evolve independently.\n\nRebuilds therefore remain safe after human or Agent enrichment: a page is not a disposable generated artifact, and\nauthored knowledge does not block structural facts from changing.\n\n## Local CJK-aware search\n\n```bash\nmini-wiki search \"插件安装\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project\n```\n\nThe index combines Markdown, Properties, aliases, tags, graph metadata, and bounded source text. Deterministic CJK\nunigram/bigram normalization supports Chinese and mixed-language queries.\n\nSQLite FTS5 is an optional accelerator, not a dependency. The fallback preserves query filters, result shape, and\nranking rules, keeping retrieval available in minimal Python environments.\n\n## Four Bases turn governance into queues\n\n| File | Purpose |\n| --- | --- |\n| `views/modules.base` | module status, freshness, quality, and backlinks |\n| `views/sources.base` | source coverage, ownership, and drift |\n| `views/quality.base` | review and enrichment queue |\n| `views/orphans.base` | pages not yet connected to the graph |\n\nBases are native declarative views over Properties. They contain no unique knowledge; edit canonical facts and\nrebuild, and the views follow the Markdown.\n\n## Three Canvas views project the same graph\n\n| File | Perspective |\n| --- | --- |\n| `canvas/architecture.canvas` | architectural layers and dependencies |\n| `canvas/domains.canvas` | domains, modules, and responsibilities |\n| `canvas/traceability.canvas` | document-to-source and symbol evidence paths |\n\nCanvas output follows JSON Canvas 1.0. Node IDs, positions, sizes, and edge ordering are deterministic. Canvas is a\nspatial exploration surface, never the only source of truth.\n\n## Deterministic builds and recovery\n\n- dry-run shows the write plan first;\n- staging holds a complete candidate result;\n- canonical Wiki switches only after strict validation;\n- retired managed pages move to `.mini-wiki/archive/`;\n- a second unchanged build should reproduce the same result.\n\nA failed build cannot leave a half-written Wiki. Migration uses the same preview, backup, copy-validation, and final\nconfiguration-switch discipline.\n\n## One input, several consumable surfaces\n\nBrowsers, editors, Git hosts, and Obsidian can read canonical `wiki/`; Agents can use the graph and Manifest; search,\nBases, and Canvas provide distinct retrieval and governance views.\n\nStart with the [knowledge-network model](/en/knowledge-network/), then read [security](/en/security/) before adding\nexternal instructions or publishing generated knowledge.\n",
      "description": "Managed Properties, CJK-aware search, four Bases, three Canvas projections, and deterministic builds in one workflow."
    },
    {
      "route": "/en/guide/",
      "title": "Get started with Mini-Wiki in five minutes",
      "markdown": "# Get started in five minutes\n\nMini-Wiki 3.3 turns a code repository into a root-level `wiki/` knowledge network. The CLI owns repeatable structure\nand facts; the AI Agent owns evidence-based explanation. Managed Markdown markers let them collaborate safely.\n\n## 1. Install\n\nInstall Mini-Wiki as an Agent Skill first:\n\n```bash\nnpx skills add trsoliu/mini-wiki\n```\n\nFor direct local CLI use:\n\n```bash\ngit clone https://github.com/trsoliu/mini-wiki.git\ncd mini-wiki\npython -m venv .venv\n.venv/bin/pip install -e .\n.venv/bin/mini-wiki --version\n```\n\nPython 3.10 or newer is required. Core builds require neither Node.js nor Obsidian.\n\n## 2. Initialize and diagnose\n\nCreate schema v3 configuration in the target project, then inspect readiness and boundaries:\n\n```bash\nmini-wiki init /path/to/project\nmini-wiki doctor --json /path/to/project\n```\n\n`init` creates `.mini-wiki/config.yaml`. It does not put canonical knowledge in the state directory; the default\ndestination for durable documents is the root-level `wiki/` directory.\n\n## 3. Preview, then build\n\n```bash\nmini-wiki build --dry-run --json /path/to/project\nmini-wiki build --json /path/to/project\n```\n\nDry-run returns the write plan without changing files. A real build scans allowed sources, computes stable IDs,\nconstructs the graph, writes managed pages in staging, validates them, and switches the result transactionally.\n\nAfter the first build, inspect `.mini-wiki/cache/build-plan.json` and `.mini-wiki/cache/graph.json`. They tell the Agent\nwhat needs explanation and which source evidence can support it, avoiding blank-page generation.\n\n## 4. Let the Agent write only in the content region\n\nEvery managed page separates two responsibilities:\n\n```markdown\n<!-- mini-wiki:generated:start -->\nCLI-managed navigation, relationships, and evidence.\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent-authored explanation grounded in source evidence.\n<!-- mini-wiki:content:end -->\n```\n\nThe Agent edits only `mini-wiki:content`, leaving stable IDs, source lists, and generated navigation to the CLI.\nUnknown Properties are user-owned and survive later rebuilds.\n\n## 5. Rebuild and validate strictly\n\n```bash\nmini-wiki build --json /path/to/project\nmini-wiki check --strict --json /path/to/project\n```\n\nA second build with unchanged sources should have no unexplained diff. Strict mode validates IDs, links, source\ndrift, ownership markers, orphans, Base schemas, and Canvas node/edge integrity.\n\n## 6. Search without Obsidian\n\n```bash\nmini-wiki search \"architecture decision\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project\n```\n\nSearch covers Markdown, Properties, aliases, tags, graph metadata, and bounded source text. SQLite FTS5 accelerates\nthe index when available; the fallback preserves filters and ranking semantics.\n\n## Definition of done\n\n- `wiki/index.md` and the knowledge map open correctly;\n- Agent content cites locatable repository evidence;\n- `mini-wiki check --strict --json` succeeds;\n- the second unchanged build is stable;\n- English, Chinese, or mixed-language queries retrieve the expected page.\n\nContinue with the [knowledge-network model](/en/knowledge-network/), then use [features](/en/features/) and\n[security boundaries](/en/security/) as the operating manual.\n",
      "description": "The shortest complete path from Skill installation to build, Agent enrichment, strict validation, and local search."
    },
    {
      "route": "/en/",
      "title": "Mini-Wiki | Turn repositories into traceable knowledge networks",
      "markdown": "Mini-Wiki 3.3.0\nMini-WikiTurn repositories into traceable knowledge networks\nBuild deterministic, searchable, versioned project knowledge for maintainers and AI agents.\n\n[Get started](/en/guide/)\n\n[View on GitHub](https://github.com/trsoliu/mini-wiki)\n\n$npx skills add trsoliu/mini-wiki\n\n01Deterministic buildsStable IDs, transactional writes, and repeatable output make knowledge changes reviewable and reproducible.\n02Source traceabilityProjects, domains, modules, files, and symbols all resolve to explicit repository evidence.\n03CJK-aware searchRetrieve Markdown, Properties, graph metadata, and bounded source text locally.\n04Bases and CanvasGovern knowledge through structured queues and explore project relationships spatially.\n05Safe collaborationThe CLI owns structure while agents add evidence-based explanation only inside protected regions.\n06Agent-ready outputGenerate search indexes, Markdown routes, and model-independent discovery files from one source.\n\nAI-ready documentationBuild once for humans and agents.Every public surface comes from the same curated pages.\n\n[`llms.txt`](/llms.txt)\n\n[`llms-full.txt`](/llms-full.txt)\n\n[`ai-index.json`](/ai-index.json)\n\n[`Agent Contract`](/.well-known/silen/manifest.json)\n",
      "description": "Mini-Wiki 3.3 builds deterministic, searchable, versioned project knowledge for maintainers and AI agents."
    },
    {
      "route": "/en/knowledge-network/",
      "title": "The Mini-Wiki knowledge-network model",
      "markdown": "# The knowledge-network model\n\nMini-Wiki does more than replace a directory tree with summaries. It constructs a stable repository graph first,\nthen derives Markdown, search, Bases, Canvas, and the Manifest from that graph. Every surface uses the same IDs and\nrelationship facts.\n\n## Six core node types\n\n| Node | Meaning | Typical relationship |\n| --- | --- | --- |\n| project | Root identity of the repository | contains domains and modules |\n| domain | Business or technical responsibility boundary | groups modules |\n| module | Explainable implementation unit | owns sources and symbols |\n| source | Source file inside the scan boundary | defines or references symbols |\n| symbol | Traceable class, function, or code entity | explained by documents |\n| document | Canonical knowledge page | references sources, symbols, and documents |\n\nDirection, node type, and paths are recorded in `.mini-wiki/cache/graph.json`. Pages, Bases, and Canvas project those\nfacts instead of maintaining conflicting copies.\n\n## Stable identities, not fragile titles\n\nA managed page carries a machine-stable identity:\n\n```yaml\nid: mw:document:domains/core/core\ntitle: Core\ntype: module\ndomain: core\nsources:\n  - src/core/app.py\nfreshness: current\nquality: basic\nmini_wiki_version: 3.3.0\n```\n\nTitles serve readers; stable IDs serve rebuilds, link validation, and Agent citations. A source-content change does\nnot need to change page identity. When a module leaves management, its page moves to a recoverable archive instead\nof disappearing silently.\n\n## One page, three ownership zones\n\n1. **Properties:** known Mini-Wiki fields are CLI-owned; unknown fields remain user-owned.\n2. **generated region:** navigation, sources, relationships, and machine facts are rebuilt by the CLI.\n3. **content region:** expert explanation from an AI Agent or maintainer is preserved byte-for-byte.\n\n```markdown\n<!-- mini-wiki:generated:start -->\nCLI-owned navigation, evidence, and relationships.\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent-owned explanation grounded in repository evidence.\n<!-- mini-wiki:content:end -->\n```\n\nDocuments without ownership markers are not adopted or overwritten. During legacy migration, `migrate --adopt`\nexplicitly wraps the existing body and preserves it inside the Agent-owned region.\n\n## The source-to-explanation evidence chain\n\nA useful explanation should answer:\n\n- Which domain and module own this knowledge?\n- Which sources and symbols support the conclusion?\n- Is every source still in bounds and current?\n- Is the text authored explanation or rebuildable machine fact?\n\nThe build plan says what needs enrichment, the graph says what can be cited, and the Manifest says what the current\nbuild actually manages. The Agent is completing an inspectable evidence chain, not generating a free-form wiki.\n\n## Four views of one graph\n\n- Markdown pages support continuous reading;\n- local search supports fast human and Agent retrieval;\n- Bases turn Properties into governance queues;\n- Canvas exposes deterministic spatial relationships.\n\nSee [core features](/en/features/) for each projection, or follow the [five-minute guide](/en/guide/) to build one.\n",
      "description": "How project, domain, module, source, symbol, and document nodes connect through stable identities and evidence."
    },
    {
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "markdown": "# CLI and configuration reference\n\nThis page describes Mini-Wiki **3.3.0**. Project paths default to the current directory and can be supplied explicitly.\n\n## Installation and version\n\n```bash\nnpx skills add trsoliu/mini-wiki\nmini-wiki --version\n```\n\nLocal development installation:\n\n```bash\npython -m venv .venv\n.venv/bin/pip install -e .\n```\n\n## Initialize, diagnose, and analyze\n\n```bash\nmini-wiki init /path/to/project\nmini-wiki init --force /path/to/project\nmini-wiki doctor --json /path/to/project\nmini-wiki analyze /path/to/project\nmini-wiki changes /path/to/project\n```\n\n`init --force` backs up existing configuration first. `doctor` checks project and optional-integration readiness.\n\n## Build\n\n```bash\nmini-wiki build --dry-run --json /path/to/project\nmini-wiki build --json /path/to/project\nmini-wiki build --full --json /path/to/project\n```\n\n`--dry-run` writes nothing; `--full` rebuilds every managed document; `--json` provides machine-readable results.\n\n## Strict validation\n\n```bash\nmini-wiki check --strict --json /path/to/project\n```\n\nStrict mode validates stable IDs, links, source bounds and drift, ownership markers, orphans, Base schemas, and\nCanvas nodes and edges.\n\n## Local search\n\n```bash\nmini-wiki search \"architecture decision\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project\n```\n\n`--limit` accepts 1–200 and defaults to 20. `--type` filters document type; `--tag` matches an exact tag.\n\n## Migration\n\n```bash\nmini-wiki migrate --json /path/to/project\nmini-wiki migrate --apply --json /path/to/project\nmini-wiki migrate --apply --adopt --json /path/to/project\n```\n\n`--apply` runs the previewed v2→v3 copy migration. `--adopt` wraps legacy Markdown bodies in managed content regions.\n\n## Optional Obsidian integration\n\n```bash\nmini-wiki obsidian status --json /path/to/project\nmini-wiki obsidian status --probe --json /path/to/project\nmini-wiki obsidian open /path/to/project\n```\n\nNormal status does not launch the app. `--probe` explicitly permits an Obsidian CLI call; `open` explicitly asks the\napp to open the configured Wiki.\n\n## Instruction-only plugins\n\n```bash\nmini-wiki plugins list /path/to/project\nmini-wiki plugins install owner/repository /path/to/project\nmini-wiki plugins enable plugin-name /path/to/project\nmini-wiki plugins disable plugin-name /path/to/project\nmini-wiki plugins update plugin-name /path/to/project\nmini-wiki plugins uninstall plugin-name /path/to/project\n```\n\nPlugins are disabled by default and supply text guidance only. Scripts, hooks, package managers, and commands must\nnever be imported or executed.\n\n## Default directories\n\n```text\nwiki/                         # canonical knowledge\n├── index.md\n├── getting-started.md\n├── architecture.md\n├── knowledge-map.md\n├── domains/\n├── reference/\n├── views/*.base\n└── canvas/*.canvas\n\n.mini-wiki/                   # configuration and state\n├── config.yaml\n├── manifest.json\n├── meta.json\n├── cache/\n├── staging/\n└── archive/\n```\n\n## Managed ownership markers\n\n```markdown\n<!-- mini-wiki:generated:start -->\nCLI-owned facts.\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent-owned explanation.\n<!-- mini-wiki:content:end -->\n```\n\n## Feature switches\n\nSchema v3 has independent switches for search, Bases, Canvas, and optional Obsidian integration. Scan settings also\ncover Git ignore rules, explicit exclusions, symlink boundaries, file-size limits, and state/Wiki isolation.\n\nFor a first run, complete the [five-minute guide](/en/guide/). For data relationships, see the\n[knowledge-network model](/en/knowledge-network/).\n",
      "description": "Verified Mini-Wiki 3.3.0 commands, directories, ownership markers, feature switches, and quality gates."
    },
    {
      "route": "/en/security/",
      "title": "Mini-Wiki security, boundaries, and recovery",
      "markdown": "# Security, boundaries, and recovery\n\nMini-Wiki security is designed into directory responsibilities, ownership markers, scanning constraints,\ntransactional writes, and disabled-by-default external instructions.\n\n## Canonical knowledge and local state\n\n```text\nwiki/          # canonical, portable, suitable for Git\n.mini-wiki/    # configuration, caches, staging, recoverable archive\n.obsidian/     # never created or modified by Mini-Wiki\n```\n\n`wiki/` is the durable-fact boundary. `.mini-wiki/` primarily holds rebuildable or local state. Do not treat caches\nas canonical knowledge, and do not allow repository-external files or machine-local absolute paths into the Wiki.\n\n## Scan boundaries\n\nScanning respects Git ignore rules, explicit exclusions, file-size limits, state/Wiki exclusions, and symlink\nboundaries. Only sources inside the allowed project root can become evidence, preventing credentials, build output,\nor adjacent repositories from entering the knowledge graph.\n\n## Managed pages do not adopt unknown documents\n\nThe builder updates only documents with complete Mini-Wiki ownership markers. Unknown Properties remain user-owned,\nand existing documents without markers are not overwritten. Retired pages move to `.mini-wiki/archive/` for review\nand recovery.\n\n## Third-party plugins are instructions, not code\n\nThe plugin model is **instruction-only**: installed `PLUGIN.md` or `SKILL.md` files are untrusted text and disabled by\ndefault. An Agent may read relevant enabled guidance, but it must **never import or execute plugin scripts, hooks,\npackage managers, or commands**.\n\nInstallation also rejects:\n\n- non-HTTPS network sources;\n- path traversal, invalid roots, and symbolic links;\n- archives over bounded limits;\n- unconfirmed same-name replacement;\n- silent content changes that disagree with the recorded tree hash.\n\n## Obsidian is an optional interface\n\nBuild, search, strict validation, migration, Bases, and Canvas do not require Obsidian. Normal status is side-effect\nfree:\n\n```bash\nmini-wiki obsidian status --json /path/to/project\n```\n\nOnly explicit `--probe` may invoke the Obsidian CLI and start the app. Only `obsidian open` asks the application to\nopen the configured Wiki through an encoded URI. Mini-Wiki does not write `.obsidian/`.\n\n## Transactions, migration, and recovery\n\nBuilds create a complete candidate in staging and switch only after validation. Failure leaves the current canonical\nWiki intact. Migration previews by default, refuses a non-empty destination, backs up legacy material, validates the\ncopy, and changes configuration last.\n\n```bash\nmini-wiki migrate --json /path/to/project\nmini-wiki migrate --apply --json /path/to/project\nmini-wiki migrate --apply --adopt --json /path/to/project\n```\n\n## Pre-publication checklist\n\n1. Check `wiki/` for credentials, personal data, and machine-local paths.\n2. Run `mini-wiki check --strict --json`.\n3. Review source evidence for Agent-authored claims.\n4. Compare a second unchanged build.\n5. Commit only canonical knowledge and intentionally shared configuration.\n\nUse the [CLI reference](/en/reference/) for exact commands and the [five-minute guide](/en/guide/) for the full loop.\n",
      "description": "Canonical knowledge, local state, scan limits, instruction-only plugins, transactional recovery, and optional Obsidian."
    },
    {
      "route": "/features/",
      "title": "Mini-Wiki 3.3 核心能力",
      "markdown": "# 核心能力\n\nMini-Wiki 3.3 把 Obsidian 中最有价值的知识管理理念转化为独立、可版本化的仓库能力。Obsidian 可以\n增强阅读体验，但不是任何核心能力的运行依赖。\n\n## 托管 Markdown 与 Properties\n\nProperties 是页面和派生视图共用的元数据模型。CLI 维护 ID、类型、领域、来源、新鲜度、质量与版本，\n同时保留用户添加的未知 Properties。正文中的 generated/content 标记让机器事实与专业解释可以独立更新。\n\n结果是：重建不会把页面变成一次性生成物，手工知识也不会阻止结构和来源事实继续演进。\n\n## 中文感知的本地搜索\n\n```bash\nmini-wiki search \"插件安装\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project\n```\n\n索引组合 Markdown、Properties、别名、标签、图谱元数据与受限源码文本。确定性的中文 unigram/bigram\n归一化支持中文和中英混合查询。\n\nSQLite FTS5 是可选加速器，不是功能依赖。后备实现保持相同的查询筛选、结果格式和排序规则，因此\n知识库在精简 Python 环境中仍可检索。\n\n## 四个 Bases：把知识治理变成队列\n\n| 文件 | 用途 |\n| --- | --- |\n| `views/modules.base` | 查看模块状态、新鲜度、质量与反向链接 |\n| `views/sources.base` | 查看源码覆盖、归属与漂移 |\n| `views/quality.base` | 形成待评审和待增补队列 |\n| `views/orphans.base` | 找出尚未接入知识网络的页面 |\n\nBases 是 Properties 上的原生声明式视图。它们不持有唯一知识；修改事实后重新构建，视图会跟随正式\nMarkdown 更新。\n\n## 三个 Canvas：从不同尺度查看同一张图\n\n| 文件 | 视角 |\n| --- | --- |\n| `canvas/architecture.canvas` | 架构层次和模块依赖 |\n| `canvas/domains.canvas` | 领域、模块与职责分布 |\n| `canvas/traceability.canvas` | 文档到源码和符号的证据路径 |\n\nCanvas 使用 JSON Canvas 1.0，节点 ID、位置、大小和边顺序均为确定性输出。它适合空间探索，但不应\n成为唯一事实来源。\n\n## 确定性构建与恢复\n\n- dry-run 先展示写入计划；\n- staging 中生成完整候选结果；\n- 严格校验通过后才切换正式 Wiki；\n- 退出管理的页面移动到 `.mini-wiki/archive/`；\n- 第二次无变化构建应产生相同结果。\n\n构建失败不会留下半写入的 Wiki。迁移同样采用预览优先、备份旧材料、校验副本、最后切换配置的流程。\n\n## 一个输入面，多个可消费产物\n\n正式 `wiki/` 可以被浏览器、编辑器、Git 主机和 Obsidian 阅读；图谱与 Manifest 可以被 Agent 使用；\n搜索、Bases、Canvas 则提供不同的召回和治理方式。\n\n先理解[知识网络模型](/knowledge-network/)，再阅读[安全边界](/security/)了解哪些内容可以生成、执行或发布。\n",
      "description": "查看托管 Properties、中文搜索、四个 Bases、三个 Canvas 与确定性构建如何协同。"
    },
    {
      "route": "/guide/",
      "title": "五分钟上手 Mini-Wiki",
      "markdown": "# 五分钟上手 Mini-Wiki\n\nMini-Wiki 3.3 把一个代码仓库转换成仓库根级 `wiki/` 知识网络。CLI 负责可重复的结构和事实，AI Agent\n负责有源码证据的专业解释；二者通过托管 Markdown 的所有权标记协作。\n\n## 1. 安装\n\n推荐先把 Mini-Wiki 安装为 Agent Skill：\n\n```bash\nnpx skills add trsoliu/mini-wiki\n```\n\n需要直接使用本地 CLI 时：\n\n```bash\ngit clone https://github.com/trsoliu/mini-wiki.git\ncd mini-wiki\npython -m venv .venv\n.venv/bin/pip install -e .\n.venv/bin/mini-wiki --version\n```\n\n要求 Python 3.10 或更高版本。核心构建不需要 Node.js，也不需要 Obsidian。\n\n## 2. 初始化并诊断\n\n在目标项目上创建 schema v3 配置，然后先检查运行环境和边界：\n\n```bash\nmini-wiki init /path/to/project\nmini-wiki doctor --json /path/to/project\n```\n\n`init` 创建 `.mini-wiki/config.yaml`，不会把正式知识写进状态目录。正式文档的默认目标是项目根级\n`wiki/`。\n\n## 3. 先预览，再构建\n\n```bash\nmini-wiki build --dry-run --json /path/to/project\nmini-wiki build --json /path/to/project\n```\n\ndry-run 输出计划但不写文件。正式构建会扫描受允许的源文件、计算稳定 ID、生成图谱、写入托管页面，\n并通过事务暂存后一次性切换结果。\n\n第一次构建后，先查看 `.mini-wiki/cache/build-plan.json` 和 `.mini-wiki/cache/graph.json`。它们告诉 Agent\n哪些页面需要解释、每个结论能追溯到哪些源码，而不是让 Agent 从空白页面猜测。\n\n## 4. 让 Agent 只写内容区\n\n每个托管页面有两个职责区：\n\n```markdown\n<!-- mini-wiki:generated:start -->\nCLI 管理的导航、关系与证据。\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent 根据源码证据编写的专业解释。\n<!-- mini-wiki:content:end -->\n```\n\nAgent 只修改 `mini-wiki:content` 区域，不改稳定 ID、来源列表或 CLI 管理的导航。未知 Properties 视为\n用户所有，后续重建会保留。\n\n## 5. 重建并严格校验\n\n```bash\nmini-wiki build --json /path/to/project\nmini-wiki check --strict --json /path/to/project\n```\n\n第二次未发生源码变化的构建应当没有无法解释的差异。严格模式检查 ID、链接、来源漂移、所有权标记、\n孤立页面、Base schema，以及 Canvas 节点和边的完整性。\n\n## 6. 不依赖 Obsidian 的搜索\n\n```bash\nmini-wiki search \"架构决策\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project\n```\n\n搜索覆盖 Markdown、Properties、别名、标签、图谱元数据和有界源码文本。SQLite FTS5 只是加速器；没有\nFTS5 时，后备实现保持相同的筛选与排序语义。\n\n## 完成标准\n\n- `wiki/index.md` 与知识地图可以打开；\n- Agent 内容区包含可定位到仓库源码的证据；\n- `mini-wiki check --strict --json` 成功；\n- 第二次无变化构建稳定；\n- 中文或混合语言查询能返回正确页面。\n\n接下来阅读[知识网络模型](/knowledge-network/)，再根据需要查看[核心能力](/features/)与[安全边界](/security/)。\n",
      "description": "从安装 Skill 到首次构建、Agent 增补、严格校验与本地搜索的完整最短路径。"
    },
    {
      "route": "/",
      "title": "Mini-Wiki｜把代码仓库变成可追溯的知识网络",
      "markdown": "Mini-Wiki 3.3.0\nMini-Wiki把代码仓库变成可追溯的知识网络\n为维护者与 AI Agent 生成确定性、可搜索、可版本化的项目知识。\n\n[开始使用](/guide/)\n\n[在 GitHub 查看](https://github.com/trsoliu/mini-wiki)\n\n$npx skills add trsoliu/mini-wiki\n\n01确定性构建稳定 ID、事务写入与可重复构建，让知识变更可以审查和重放。\n02源码可追溯项目、领域、模块、文件与符号都能回到明确的仓库证据。\n03中英混合搜索本地检索 Markdown、Properties、图谱元数据与有界源码文本。\n04Bases 与 Canvas用结构化队列治理知识，用空间视图探索项目关系。\n05安全协作边界CLI 管理结构，Agent 只在受保护内容区内补充证据化解释。\n06面向 AI Agent同源生成搜索索引、Markdown 路由与模型无关的发现文件。\n\nAI-ready documentation一次构建，同时服务人和 Agent。所有公开入口来自同一组受控页面。\n\n[`llms.txt`](/llms.txt)\n\n[`llms-full.txt`](/llms-full.txt)\n\n[`ai-index.json`](/ai-index.json)\n\n[`Agent Contract`](/.well-known/silen/manifest.json)\n",
      "description": "Mini-Wiki 3.3 为人和 AI Agent 构建确定性、可搜索、可版本化的项目知识网络。"
    },
    {
      "route": "/knowledge-network/",
      "title": "Mini-Wiki 知识网络模型",
      "markdown": "# 知识网络模型\n\nMini-Wiki 不是把目录树换成一批摘要。它先构建稳定的仓库图谱，再从图谱派生 Markdown、搜索、Bases、\nCanvas 与 Manifest。所有输出共享同一组 ID 和关系事实。\n\n## 六类核心节点\n\n| 节点 | 说明 | 典型关系 |\n| --- | --- | --- |\n| project | 当前仓库的根身份 | 包含 domain 与 module |\n| domain | 业务或技术职责边界 | 聚合 module |\n| module | 可解释的实现单元 | 拥有 source 与 symbol |\n| source | 受扫描边界约束的源码文件 | 定义或引用 symbol |\n| symbol | 类、函数等可追溯代码实体 | 被 document 解释 |\n| document | 正式知识页面 | 引用 source、symbol 与其他 document |\n\n关系方向、节点类型和路径都会进入 `.mini-wiki/cache/graph.json`。页面、Base 与 Canvas 只投影这些事实，\n不会各自维护互相冲突的数据副本。\n\n## 稳定 ID，而不是脆弱标题\n\n托管页面用机器稳定 ID 表示身份，例如：\n\n```yaml\nid: mw:document:domains/core/core\ntitle: Core\ntype: module\ndomain: core\nsources:\n  - src/core/app.py\nfreshness: current\nquality: basic\nmini_wiki_version: 3.3.0\n```\n\n标题适合人阅读，稳定 ID 适合重建、链接校验和 Agent 引用。源文件内容改变不必导致页面身份变化；\n模块真正退出管理时，相关页面会进入可恢复归档，而不是静默删除。\n\n## 一份页面，三种所有权\n\n1. **Properties：** 已知 Mini-Wiki 字段由 CLI 管理，未知字段保留给用户。\n2. **generated 区域：** 导航、来源、关系和机器事实由 CLI 重建。\n3. **content 区域：** AI Agent 或维护者编写的专业解释逐字节保留。\n\n```markdown\n<!-- mini-wiki:generated:start -->\nCLI-owned navigation, evidence, and relationships.\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent-owned explanation grounded in repository evidence.\n<!-- mini-wiki:content:end -->\n```\n\n没有所有权标记的现有文档不会被自动接管或覆盖。需要迁移旧知识时，`migrate --adopt` 会显式包装原有\n正文，并保留在 Agent 内容区。\n\n## 从源码到解释的证据链\n\n一次有效解释应当能够回答：\n\n- 这段知识对应哪个 domain 和 module？\n- 哪些 source 与 symbol 支撑这个结论？\n- 证据是否仍在扫描边界内，是否发生漂移？\n- 这段文字属于 Agent 内容，还是可重建的机器事实？\n\n构建计划提供“需要补充什么”，图谱提供“可以引用什么”，Manifest 提供“本次构建实际管理了什么”。\n因此 Agent 的工作不是自由生成百科，而是补齐一条可检查的证据链。\n\n## 同一图谱的四种读法\n\n- Markdown 页面给维护者连续阅读；\n- 本地搜索给人和 Agent 快速召回；\n- Bases 用 Properties 形成治理工作台；\n- Canvas 用确定性节点和边展示空间关系。\n\n更具体的视图与检索方式见[核心能力](/features/)。要开始建立自己的图谱，请回到[五分钟上手](/guide/)。\n",
      "description": "理解项目、领域、模块、源码、符号与文档节点如何通过稳定 ID 和证据关系连接。"
    },
    {
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "markdown": "# 命令与配置参考\n\n本页对应 Mini-Wiki **3.3.0**。命令中的项目路径默认是当前目录，也可以显式传入目标仓库。\n\n## 安装与版本\n\n```bash\nnpx skills add trsoliu/mini-wiki\nmini-wiki --version\n```\n\n本地开发安装：\n\n```bash\npython -m venv .venv\n.venv/bin/pip install -e .\n```\n\n## 初始化、诊断与分析\n\n```bash\nmini-wiki init /path/to/project\nmini-wiki init --force /path/to/project\nmini-wiki doctor --json /path/to/project\nmini-wiki analyze /path/to/project\nmini-wiki changes /path/to/project\n```\n\n`init --force` 会先备份已有配置。`doctor` 用于诊断项目和可选集成是否就绪。\n\n## 构建\n\n```bash\nmini-wiki build --dry-run --json /path/to/project\nmini-wiki build --json /path/to/project\nmini-wiki build --full --json /path/to/project\n```\n\n`--dry-run` 不写文件；`--full` 忽略增量判断并重建所有托管文档；`--json` 提供机器可读结果。\n\n## 严格校验\n\n```bash\nmini-wiki check --strict --json /path/to/project\n```\n\n严格模式检查稳定 ID、链接、来源边界与漂移、所有权标记、孤立页面、Base schema，以及 Canvas 节点和边。\n\n## 本地搜索\n\n```bash\nmini-wiki search \"架构决策\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project\n```\n\n`--limit` 范围为 1–200，默认 20。`--type` 按文档类型过滤，`--tag` 做精确标签过滤。\n\n## 迁移\n\n```bash\nmini-wiki migrate --json /path/to/project\nmini-wiki migrate --apply --json /path/to/project\nmini-wiki migrate --apply --adopt --json /path/to/project\n```\n\n`--apply` 应用预览过的 v2→v3 复制迁移；`--adopt` 把旧 Markdown 正文包装进托管内容区。\n\n## 可选 Obsidian\n\n```bash\nmini-wiki obsidian status --json /path/to/project\nmini-wiki obsidian status --probe --json /path/to/project\nmini-wiki obsidian open /path/to/project\n```\n\n普通 status 不启动应用。`--probe` 明确允许调用 Obsidian CLI；`open` 明确请求打开配置的 Wiki。\n\n## instruction-only 插件\n\n```bash\nmini-wiki plugins list /path/to/project\nmini-wiki plugins install owner/repository /path/to/project\nmini-wiki plugins enable plugin-name /path/to/project\nmini-wiki plugins disable plugin-name /path/to/project\nmini-wiki plugins update plugin-name /path/to/project\nmini-wiki plugins uninstall plugin-name /path/to/project\n```\n\n插件默认禁用，只提供说明文本；任何脚本、钩子、包管理器或命令都不得导入或执行。\n\n## 默认目录\n\n```text\nwiki/                         # 正式知识\n├── index.md\n├── getting-started.md\n├── architecture.md\n├── knowledge-map.md\n├── domains/\n├── reference/\n├── views/*.base\n└── canvas/*.canvas\n\n.mini-wiki/                   # 配置与状态\n├── config.yaml\n├── manifest.json\n├── meta.json\n├── cache/\n├── staging/\n└── archive/\n```\n\n## 托管标记\n\n```markdown\n<!-- mini-wiki:generated:start -->\nCLI-owned facts.\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent-owned explanation.\n<!-- mini-wiki:content:end -->\n```\n\n## 配置能力开关\n\nschema v3 为搜索、Bases、Canvas 与可选 Obsidian 集成提供独立开关。扫描配置还包括 Git ignore、显式排除、\n符号链接边界、文件大小限制，以及 Wiki/状态目录隔离。\n\n如果这是第一次使用，先按[五分钟上手](/guide/)完成完整闭环；数据关系见[知识网络模型](/knowledge-network/)。\n",
      "description": "Mini-Wiki 3.3.0 的已验证 CLI、目录、所有权标记、功能开关与质量检查速查。"
    },
    {
      "route": "/security/",
      "title": "Mini-Wiki 安全、边界与恢复",
      "markdown": "# 安全、边界与恢复\n\nMini-Wiki 的安全不是“生成完成后再检查”，而是由目录职责、所有权标记、扫描限制、事务写入和默认禁用\n共同组成。\n\n## 正式知识与状态目录\n\n```text\nwiki/          # 正式、可移植、适合提交 Git\n.mini-wiki/    # 配置、缓存、暂存与可恢复归档\n.obsidian/     # Mini-Wiki 不创建、不修改\n```\n\n`wiki/` 是持久事实边界；`.mini-wiki/` 主要包含可重建或本地状态。不要把缓存当作正式知识，也不要让\n构建流程把仓库外文件或机器本地绝对路径写进 Wiki。\n\n## 扫描边界\n\n扫描遵守 Git ignore、显式排除、文件大小限制、状态目录和 Wiki 目录排除，以及符号链接边界。来源只有\n在允许的项目根目录内才可成为证据，避免把凭证、构建输出或相邻项目误纳入知识网络。\n\n## 托管页面不会接管未知文档\n\n只有带完整 Mini-Wiki 所有权标记的文档才由构建器更新。未知 Properties 保留给用户；缺少标记的现有\n文档不会被覆盖。页面退出管理时先进入 `.mini-wiki/archive/`，便于审查与恢复。\n\n## 第三方插件只提供说明\n\nMini-Wiki 插件采用 **instruction-only** 模型：安装的 `PLUGIN.md` 或 `SKILL.md` 是不可信文本，默认禁用。\nAgent 可以阅读已启用的相关说明，但安全不变量是：**never import or execute plugin scripts, hooks,\npackage managers, or commands**（绝不导入或执行插件脚本、钩子、包管理器或命令）。\n\n安装还会拒绝：\n\n- 非 HTTPS 网络来源；\n- 路径穿越、无效根目录与符号链接；\n- 超出限制的压缩包；\n- 未确认的同名覆盖；\n- 与记录 tree hash 不一致的静默内容变化。\n\n## Obsidian 是可选界面\n\n构建、搜索、严格校验、迁移、Bases 与 Canvas 均不依赖 Obsidian。普通状态检查无副作用：\n\n```bash\nmini-wiki obsidian status --json /path/to/project\n```\n\n只有显式 `--probe` 才可能调用 Obsidian CLI 并启动应用；只有 `obsidian open` 会通过编码后的 Obsidian URI\n请求打开配置的 Wiki。Mini-Wiki 不需要写入 `.obsidian/`。\n\n## 事务、迁移与失败恢复\n\n构建先在 staging 生成候选结果，验证成功后再切换。失败时保留当前正式 Wiki。迁移默认只预览，应用时\n拒绝非空目标、备份旧材料、验证复制结果，并在最后一步切换配置。\n\n```bash\nmini-wiki migrate --json /path/to/project\nmini-wiki migrate --apply --json /path/to/project\nmini-wiki migrate --apply --adopt --json /path/to/project\n```\n\n## 发布前检查\n\n1. 确认 `wiki/` 中没有凭证、个人信息或机器绝对路径；\n2. 运行 `mini-wiki check --strict --json`；\n3. 审查 Agent 内容的源码证据；\n4. 比较第二次无变化构建；\n5. 只提交正式知识和明确需要的配置。\n\n命令与开关的完整入口在[参考手册](/reference/)，首次操作流程见[五分钟上手](/guide/)。\n",
      "description": "明确正式知识、本地状态、扫描范围、instruction-only 插件、事务恢复与可选 Obsidian 的边界。"
    }
  ],
  "chunks": [
    {
      "id": "/en/features/",
      "route": "/en/features/",
      "title": "Mini-Wiki 3.3 core features",
      "headingPath": [],
      "text": "Mini-Wiki 3.3 converts the strongest repository-relevant ideas from Obsidian into standalone, versionable capabilities. Obsidian can enhance exploration, but no core feature depends on the application.",
      "code": [],
      "links": [],
      "order": 0
    },
    {
      "id": "/en/features/#managed-markdown-and-properties",
      "route": "/en/features/",
      "title": "Mini-Wiki 3.3 core features",
      "headingPath": [
        "Managed Markdown and Properties"
      ],
      "text": "Properties are the shared metadata model for pages and derived views. The CLI owns IDs, types, domains, sources, freshness, quality, and version fields while preserving unknown user Properties. Generated/content markers let machine facts and expert explanation evolve independently. Rebuilds therefore remain safe after human or Agent enrichment: a page is not a disposable generated artifact, and authored knowledge does not block structural facts from changing.",
      "code": [],
      "links": [],
      "order": 1
    },
    {
      "id": "/en/features/#local-cjk-aware-search",
      "route": "/en/features/",
      "title": "Mini-Wiki 3.3 core features",
      "headingPath": [
        "Local CJK-aware search"
      ],
      "text": "The index combines Markdown, Properties, aliases, tags, graph metadata, and bounded source text. Deterministic CJK unigram/bigram normalization supports Chinese and mixed-language queries. SQLite FTS5 is an optional accelerator, not a dependency. The fallback preserves query filters, result shape, and ranking rules, keeping retrieval available in minimal Python environments.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki search \"插件安装\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project"
        }
      ],
      "links": [],
      "order": 2
    },
    {
      "id": "/en/features/#four-bases-turn-governance-into-queues",
      "route": "/en/features/",
      "title": "Mini-Wiki 3.3 core features",
      "headingPath": [
        "Four Bases turn governance into queues"
      ],
      "text": "File Purpose views/modules.base module status, freshness, quality, and backlinks views/sources.base source coverage, ownership, and drift views/quality.base review and enrichment queue views/orphans.base pages not yet connected to the graph Bases are native declarative views over Properties. They contain no unique knowledge; edit canonical facts and rebuild, and the views follow the Markdown.",
      "code": [],
      "links": [],
      "order": 3
    },
    {
      "id": "/en/features/#three-canvas-views-project-the-same-graph",
      "route": "/en/features/",
      "title": "Mini-Wiki 3.3 core features",
      "headingPath": [
        "Three Canvas views project the same graph"
      ],
      "text": "File Perspective canvas/architecture.canvas architectural layers and dependencies canvas/domains.canvas domains, modules, and responsibilities canvas/traceability.canvas document-to-source and symbol evidence paths Canvas output follows JSON Canvas 1.0. Node IDs, positions, sizes, and edge ordering are deterministic. Canvas is a spatial exploration surface, never the only source of truth.",
      "code": [],
      "links": [],
      "order": 4
    },
    {
      "id": "/en/features/#deterministic-builds-and-recovery",
      "route": "/en/features/",
      "title": "Mini-Wiki 3.3 core features",
      "headingPath": [
        "Deterministic builds and recovery"
      ],
      "text": "dry-run shows the write plan first; staging holds a complete candidate result; canonical Wiki switches only after strict validation; retired managed pages move to .mini-wiki/archive/ ; a second unchanged build should reproduce the same result. A failed build cannot leave a half-written Wiki. Migration uses the same preview, backup, copy-validation, and final configuration-switch discipline.",
      "code": [],
      "links": [],
      "order": 5
    },
    {
      "id": "/en/features/#one-input-several-consumable-surfaces",
      "route": "/en/features/",
      "title": "Mini-Wiki 3.3 core features",
      "headingPath": [
        "One input, several consumable surfaces"
      ],
      "text": "Browsers, editors, Git hosts, and Obsidian can read canonical wiki/ ; Agents can use the graph and Manifest; search, Bases, and Canvas provide distinct retrieval and governance views. Start with the knowledge-network model , then read security before adding external instructions or publishing generated knowledge.",
      "code": [],
      "links": [
        "/en/knowledge-network/",
        "/en/security/"
      ],
      "order": 6
    },
    {
      "id": "/en/guide/",
      "route": "/en/guide/",
      "title": "Get started with Mini-Wiki in five minutes",
      "headingPath": [],
      "text": "Mini-Wiki 3.3 turns a code repository into a root-level wiki/ knowledge network. The CLI owns repeatable structure and facts; the AI Agent owns evidence-based explanation. Managed Markdown markers let them collaborate safely.",
      "code": [],
      "links": [],
      "order": 0
    },
    {
      "id": "/en/guide/#1-install",
      "route": "/en/guide/",
      "title": "Get started with Mini-Wiki in five minutes",
      "headingPath": [
        "1. Install"
      ],
      "text": "Install Mini-Wiki as an Agent Skill first: For direct local CLI use: Python 3.10 or newer is required. Core builds require neither Node.js nor Obsidian.",
      "code": [
        {
          "language": "bash",
          "value": "npx skills add trsoliu/mini-wiki"
        },
        {
          "language": "bash",
          "value": "git clone https://github.com/trsoliu/mini-wiki.git\ncd mini-wiki\npython -m venv .venv\n.venv/bin/pip install -e .\n.venv/bin/mini-wiki --version"
        }
      ],
      "links": [],
      "order": 1
    },
    {
      "id": "/en/guide/#2-initialize-and-diagnose",
      "route": "/en/guide/",
      "title": "Get started with Mini-Wiki in five minutes",
      "headingPath": [
        "2. Initialize and diagnose"
      ],
      "text": "Create schema v3 configuration in the target project, then inspect readiness and boundaries: init creates .mini-wiki/config.yaml . It does not put canonical knowledge in the state directory; the default destination for durable documents is the root-level wiki/ directory.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki init /path/to/project\nmini-wiki doctor --json /path/to/project"
        }
      ],
      "links": [],
      "order": 2
    },
    {
      "id": "/en/guide/#3-preview-then-build",
      "route": "/en/guide/",
      "title": "Get started with Mini-Wiki in five minutes",
      "headingPath": [
        "3. Preview, then build"
      ],
      "text": "Dry-run returns the write plan without changing files. A real build scans allowed sources, computes stable IDs, constructs the graph, writes managed pages in staging, validates them, and switches the result transactionally. After the first build, inspect .mini-wiki/cache/build-plan.json and .mini-wiki/cache/graph.json . They tell the Agent what needs explanation and which source evidence can support it, avoiding blank-page generation.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki build --dry-run --json /path/to/project\nmini-wiki build --json /path/to/project"
        }
      ],
      "links": [],
      "order": 3
    },
    {
      "id": "/en/guide/#4-let-the-agent-write-only-in-the-content-region",
      "route": "/en/guide/",
      "title": "Get started with Mini-Wiki in five minutes",
      "headingPath": [
        "4. Let the Agent write only in the content region"
      ],
      "text": "Every managed page separates two responsibilities: The Agent edits only mini-wiki:content , leaving stable IDs, source lists, and generated navigation to the CLI. Unknown Properties are user-owned and survive later rebuilds.",
      "code": [
        {
          "language": "markdown",
          "value": "<!-- mini-wiki:generated:start -->\nCLI-managed navigation, relationships, and evidence.\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent-authored explanation grounded in source evidence.\n<!-- mini-wiki:content:end -->"
        }
      ],
      "links": [],
      "order": 4
    },
    {
      "id": "/en/guide/#5-rebuild-and-validate-strictly",
      "route": "/en/guide/",
      "title": "Get started with Mini-Wiki in five minutes",
      "headingPath": [
        "5. Rebuild and validate strictly"
      ],
      "text": "A second build with unchanged sources should have no unexplained diff. Strict mode validates IDs, links, source drift, ownership markers, orphans, Base schemas, and Canvas node/edge integrity.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki build --json /path/to/project\nmini-wiki check --strict --json /path/to/project"
        }
      ],
      "links": [],
      "order": 5
    },
    {
      "id": "/en/guide/#6-search-without-obsidian",
      "route": "/en/guide/",
      "title": "Get started with Mini-Wiki in five minutes",
      "headingPath": [
        "6. Search without Obsidian"
      ],
      "text": "Search covers Markdown, Properties, aliases, tags, graph metadata, and bounded source text. SQLite FTS5 accelerates the index when available; the fallback preserves filters and ranking semantics.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki search \"architecture decision\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project"
        }
      ],
      "links": [],
      "order": 6
    },
    {
      "id": "/en/guide/#definition-of-done",
      "route": "/en/guide/",
      "title": "Get started with Mini-Wiki in five minutes",
      "headingPath": [
        "Definition of done"
      ],
      "text": "wiki/index.md and the knowledge map open correctly; Agent content cites locatable repository evidence; mini-wiki check --strict --json succeeds; the second unchanged build is stable; English, Chinese, or mixed-language queries retrieve the expected page. Continue with the knowledge-network model , then use features and security boundaries as the operating manual.",
      "code": [],
      "links": [
        "/en/knowledge-network/",
        "/en/features/",
        "/en/security/"
      ],
      "order": 7
    },
    {
      "id": "/en/",
      "route": "/en/",
      "title": "Mini-Wiki | Turn repositories into traceable knowledge networks",
      "headingPath": [],
      "text": "Mini-Wiki 3.3.0 Mini-WikiTurn repositories into traceable knowledge networks Build deterministic, searchable, versioned project knowledge for maintainers and AI agents. Get started View on GitHub $npx skills add trsoliu/mini-wiki 01Deterministic buildsStable IDs, transactional writes, and repeatable output make knowledge changes reviewable and reproducible. 02Source traceabilityProjects, domains, modules, files, and symbols all resolve to explicit repository evidence. 03CJK-aware searchRetrieve Markdown, Properties, graph metadata, and bounded source text locally. 04Bases and CanvasGovern knowledge through structured queues and explore project relationships spatially. 05Safe collaborationThe CLI owns structure while agents add evidence-based explanation only inside protected regions. 06Agent-ready outputGenerate search indexes, Markdown routes, and model-independent discovery files from one source. AI-ready documentationBuild once for humans and agents.Every public surface comes from the same curated pages. llms.txt llms-full.txt ai-index.json Agent Contract",
      "code": [],
      "links": [
        "/en/guide/",
        "https://github.com/trsoliu/mini-wiki",
        "/llms.txt",
        "/llms-full.txt",
        "/ai-index.json",
        "/.well-known/silen/manifest.json"
      ],
      "order": 0
    },
    {
      "id": "/en/knowledge-network/",
      "route": "/en/knowledge-network/",
      "title": "The Mini-Wiki knowledge-network model",
      "headingPath": [],
      "text": "Mini-Wiki does more than replace a directory tree with summaries. It constructs a stable repository graph first, then derives Markdown, search, Bases, Canvas, and the Manifest from that graph. Every surface uses the same IDs and relationship facts.",
      "code": [],
      "links": [],
      "order": 0
    },
    {
      "id": "/en/knowledge-network/#six-core-node-types",
      "route": "/en/knowledge-network/",
      "title": "The Mini-Wiki knowledge-network model",
      "headingPath": [
        "Six core node types"
      ],
      "text": "Node Meaning Typical relationship project Root identity of the repository contains domains and modules domain Business or technical responsibility boundary groups modules module Explainable implementation unit owns sources and symbols source Source file inside the scan boundary defines or references symbols symbol Traceable class, function, or code entity explained by documents document Canonical knowledge page references sources, symbols, and documents Direction, node type, and paths are recorded in .mini-wiki/cache/graph.json . Pages, Bases, and Canvas project those facts instead of maintaining conflicting copies.",
      "code": [],
      "links": [],
      "order": 1
    },
    {
      "id": "/en/knowledge-network/#stable-identities-not-fragile-titles",
      "route": "/en/knowledge-network/",
      "title": "The Mini-Wiki knowledge-network model",
      "headingPath": [
        "Stable identities, not fragile titles"
      ],
      "text": "A managed page carries a machine-stable identity: Titles serve readers; stable IDs serve rebuilds, link validation, and Agent citations. A source-content change does not need to change page identity. When a module leaves management, its page moves to a recoverable archive instead of disappearing silently.",
      "code": [
        {
          "language": "yaml",
          "value": "id: mw:document:domains/core/core\ntitle: Core\ntype: module\ndomain: core\nsources:\n  - src/core/app.py\nfreshness: current\nquality: basic\nmini_wiki_version: 3.3.0"
        }
      ],
      "links": [],
      "order": 2
    },
    {
      "id": "/en/knowledge-network/#one-page-three-ownership-zones",
      "route": "/en/knowledge-network/",
      "title": "The Mini-Wiki knowledge-network model",
      "headingPath": [
        "One page, three ownership zones"
      ],
      "text": "Properties: known Mini-Wiki fields are CLI-owned; unknown fields remain user-owned. generated region: navigation, sources, relationships, and machine facts are rebuilt by the CLI. content region: expert explanation from an AI Agent or maintainer is preserved byte-for-byte. Documents without ownership markers are not adopted or overwritten. During legacy migration, migrate --adopt explicitly wraps the existing body and preserves it inside the Agent-owned region.",
      "code": [
        {
          "language": "markdown",
          "value": "<!-- mini-wiki:generated:start -->\nCLI-owned navigation, evidence, and relationships.\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent-owned explanation grounded in repository evidence.\n<!-- mini-wiki:content:end -->"
        }
      ],
      "links": [],
      "order": 3
    },
    {
      "id": "/en/knowledge-network/#the-source-to-explanation-evidence-chain",
      "route": "/en/knowledge-network/",
      "title": "The Mini-Wiki knowledge-network model",
      "headingPath": [
        "The source-to-explanation evidence chain"
      ],
      "text": "A useful explanation should answer: Which domain and module own this knowledge? Which sources and symbols support the conclusion? Is every source still in bounds and current? Is the text authored explanation or rebuildable machine fact? The build plan says what needs enrichment, the graph says what can be cited, and the Manifest says what the current build actually manages. The Agent is completing an inspectable evidence chain, not generating a free-form wiki.",
      "code": [],
      "links": [],
      "order": 4
    },
    {
      "id": "/en/knowledge-network/#four-views-of-one-graph",
      "route": "/en/knowledge-network/",
      "title": "The Mini-Wiki knowledge-network model",
      "headingPath": [
        "Four views of one graph"
      ],
      "text": "Markdown pages support continuous reading; local search supports fast human and Agent retrieval; Bases turn Properties into governance queues; Canvas exposes deterministic spatial relationships. See core features for each projection, or follow the five-minute guide to build one.",
      "code": [],
      "links": [
        "/en/features/",
        "/en/guide/"
      ],
      "order": 5
    },
    {
      "id": "/en/reference/",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [],
      "text": "This page describes Mini-Wiki 3.3.0 . Project paths default to the current directory and can be supplied explicitly.",
      "code": [],
      "links": [],
      "order": 0
    },
    {
      "id": "/en/reference/#installation-and-version",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [
        "Installation and version"
      ],
      "text": "Local development installation:",
      "code": [
        {
          "language": "bash",
          "value": "npx skills add trsoliu/mini-wiki\nmini-wiki --version"
        },
        {
          "language": "bash",
          "value": "python -m venv .venv\n.venv/bin/pip install -e ."
        }
      ],
      "links": [],
      "order": 1
    },
    {
      "id": "/en/reference/#initialize-diagnose-and-analyze",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [
        "Initialize, diagnose, and analyze"
      ],
      "text": "init --force backs up existing configuration first. doctor checks project and optional-integration readiness.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki init /path/to/project\nmini-wiki init --force /path/to/project\nmini-wiki doctor --json /path/to/project\nmini-wiki analyze /path/to/project\nmini-wiki changes /path/to/project"
        }
      ],
      "links": [],
      "order": 2
    },
    {
      "id": "/en/reference/#build",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [
        "Build"
      ],
      "text": "--dry-run writes nothing; --full rebuilds every managed document; --json provides machine-readable results.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki build --dry-run --json /path/to/project\nmini-wiki build --json /path/to/project\nmini-wiki build --full --json /path/to/project"
        }
      ],
      "links": [],
      "order": 3
    },
    {
      "id": "/en/reference/#strict-validation",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [
        "Strict validation"
      ],
      "text": "Strict mode validates stable IDs, links, source bounds and drift, ownership markers, orphans, Base schemas, and Canvas nodes and edges.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki check --strict --json /path/to/project"
        }
      ],
      "links": [],
      "order": 4
    },
    {
      "id": "/en/reference/#local-search",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [
        "Local search"
      ],
      "text": "--limit accepts 1–200 and defaults to 20. --type filters document type; --tag matches an exact tag.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki search \"architecture decision\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project"
        }
      ],
      "links": [],
      "order": 5
    },
    {
      "id": "/en/reference/#migration",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [
        "Migration"
      ],
      "text": "--apply runs the previewed v2→v3 copy migration. --adopt wraps legacy Markdown bodies in managed content regions.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki migrate --json /path/to/project\nmini-wiki migrate --apply --json /path/to/project\nmini-wiki migrate --apply --adopt --json /path/to/project"
        }
      ],
      "links": [],
      "order": 6
    },
    {
      "id": "/en/reference/#optional-obsidian-integration",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [
        "Optional Obsidian integration"
      ],
      "text": "Normal status does not launch the app. --probe explicitly permits an Obsidian CLI call; open explicitly asks the app to open the configured Wiki.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki obsidian status --json /path/to/project\nmini-wiki obsidian status --probe --json /path/to/project\nmini-wiki obsidian open /path/to/project"
        }
      ],
      "links": [],
      "order": 7
    },
    {
      "id": "/en/reference/#instruction-only-plugins",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [
        "Instruction-only plugins"
      ],
      "text": "Plugins are disabled by default and supply text guidance only. Scripts, hooks, package managers, and commands must never be imported or executed.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki plugins list /path/to/project\nmini-wiki plugins install owner/repository /path/to/project\nmini-wiki plugins enable plugin-name /path/to/project\nmini-wiki plugins disable plugin-name /path/to/project\nmini-wiki plugins update plugin-name /path/to/project\nmini-wiki plugins uninstall plugin-name /path/to/project"
        }
      ],
      "links": [],
      "order": 8
    },
    {
      "id": "/en/reference/#default-directories",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [
        "Default directories"
      ],
      "text": "",
      "code": [
        {
          "language": "text",
          "value": "wiki/                         # canonical knowledge\n├── index.md\n├── getting-started.md\n├── architecture.md\n├── knowledge-map.md\n├── domains/\n├── reference/\n├── views/*.base\n└── canvas/*.canvas\n\n.mini-wiki/                   # configuration and state\n├── config.yaml\n├── manifest.json\n├── meta.json\n├── cache/\n├── staging/\n└── archive/"
        }
      ],
      "links": [],
      "order": 9
    },
    {
      "id": "/en/reference/#managed-ownership-markers",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [
        "Managed ownership markers"
      ],
      "text": "",
      "code": [
        {
          "language": "markdown",
          "value": "<!-- mini-wiki:generated:start -->\nCLI-owned facts.\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent-owned explanation.\n<!-- mini-wiki:content:end -->"
        }
      ],
      "links": [],
      "order": 10
    },
    {
      "id": "/en/reference/#feature-switches",
      "route": "/en/reference/",
      "title": "Mini-Wiki 3.3 CLI and configuration reference",
      "headingPath": [
        "Feature switches"
      ],
      "text": "Schema v3 has independent switches for search, Bases, Canvas, and optional Obsidian integration. Scan settings also cover Git ignore rules, explicit exclusions, symlink boundaries, file-size limits, and state/Wiki isolation. For a first run, complete the five-minute guide . For data relationships, see the knowledge-network model .",
      "code": [],
      "links": [
        "/en/guide/",
        "/en/knowledge-network/"
      ],
      "order": 11
    },
    {
      "id": "/en/security/",
      "route": "/en/security/",
      "title": "Mini-Wiki security, boundaries, and recovery",
      "headingPath": [],
      "text": "Mini-Wiki security is designed into directory responsibilities, ownership markers, scanning constraints, transactional writes, and disabled-by-default external instructions.",
      "code": [],
      "links": [],
      "order": 0
    },
    {
      "id": "/en/security/#canonical-knowledge-and-local-state",
      "route": "/en/security/",
      "title": "Mini-Wiki security, boundaries, and recovery",
      "headingPath": [
        "Canonical knowledge and local state"
      ],
      "text": "wiki/ is the durable-fact boundary. .mini-wiki/ primarily holds rebuildable or local state. Do not treat caches as canonical knowledge, and do not allow repository-external files or machine-local absolute paths into the Wiki.",
      "code": [
        {
          "language": "text",
          "value": "wiki/          # canonical, portable, suitable for Git\n.mini-wiki/    # configuration, caches, staging, recoverable archive\n.obsidian/     # never created or modified by Mini-Wiki"
        }
      ],
      "links": [],
      "order": 1
    },
    {
      "id": "/en/security/#scan-boundaries",
      "route": "/en/security/",
      "title": "Mini-Wiki security, boundaries, and recovery",
      "headingPath": [
        "Scan boundaries"
      ],
      "text": "Scanning respects Git ignore rules, explicit exclusions, file-size limits, state/Wiki exclusions, and symlink boundaries. Only sources inside the allowed project root can become evidence, preventing credentials, build output, or adjacent repositories from entering the knowledge graph.",
      "code": [],
      "links": [],
      "order": 2
    },
    {
      "id": "/en/security/#managed-pages-do-not-adopt-unknown-documents",
      "route": "/en/security/",
      "title": "Mini-Wiki security, boundaries, and recovery",
      "headingPath": [
        "Managed pages do not adopt unknown documents"
      ],
      "text": "The builder updates only documents with complete Mini-Wiki ownership markers. Unknown Properties remain user-owned, and existing documents without markers are not overwritten. Retired pages move to .mini-wiki/archive/ for review and recovery.",
      "code": [],
      "links": [],
      "order": 3
    },
    {
      "id": "/en/security/#third-party-plugins-are-instructions-not-code",
      "route": "/en/security/",
      "title": "Mini-Wiki security, boundaries, and recovery",
      "headingPath": [
        "Third-party plugins are instructions, not code"
      ],
      "text": "The plugin model is instruction-only : installed PLUGIN.md or SKILL.md files are untrusted text and disabled by default. An Agent may read relevant enabled guidance, but it must never import or execute plugin scripts, hooks, package managers, or commands . Installation also rejects: non-HTTPS network sources; path traversal, invalid roots, and symbolic links; archives over bounded limits; unconfirmed same-name replacement; silent content changes that disagree with the recorded tree hash.",
      "code": [],
      "links": [],
      "order": 4
    },
    {
      "id": "/en/security/#obsidian-is-an-optional-interface",
      "route": "/en/security/",
      "title": "Mini-Wiki security, boundaries, and recovery",
      "headingPath": [
        "Obsidian is an optional interface"
      ],
      "text": "Build, search, strict validation, migration, Bases, and Canvas do not require Obsidian. Normal status is side-effect free: Only explicit --probe may invoke the Obsidian CLI and start the app. Only obsidian open asks the application to open the configured Wiki through an encoded URI. Mini-Wiki does not write .obsidian/ .",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki obsidian status --json /path/to/project"
        }
      ],
      "links": [],
      "order": 5
    },
    {
      "id": "/en/security/#transactions-migration-and-recovery",
      "route": "/en/security/",
      "title": "Mini-Wiki security, boundaries, and recovery",
      "headingPath": [
        "Transactions, migration, and recovery"
      ],
      "text": "Builds create a complete candidate in staging and switch only after validation. Failure leaves the current canonical Wiki intact. Migration previews by default, refuses a non-empty destination, backs up legacy material, validates the copy, and changes configuration last.",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki migrate --json /path/to/project\nmini-wiki migrate --apply --json /path/to/project\nmini-wiki migrate --apply --adopt --json /path/to/project"
        }
      ],
      "links": [],
      "order": 6
    },
    {
      "id": "/en/security/#pre-publication-checklist",
      "route": "/en/security/",
      "title": "Mini-Wiki security, boundaries, and recovery",
      "headingPath": [
        "Pre-publication checklist"
      ],
      "text": "Check wiki/ for credentials, personal data, and machine-local paths. Run mini-wiki check --strict --json . Review source evidence for Agent-authored claims. Compare a second unchanged build. Commit only canonical knowledge and intentionally shared configuration. Use the CLI reference for exact commands and the five-minute guide for the full loop.",
      "code": [],
      "links": [
        "/en/reference/",
        "/en/guide/"
      ],
      "order": 7
    },
    {
      "id": "/features/",
      "route": "/features/",
      "title": "Mini-Wiki 3.3 核心能力",
      "headingPath": [],
      "text": "Mini-Wiki 3.3 把 Obsidian 中最有价值的知识管理理念转化为独立、可版本化的仓库能力。Obsidian 可以 增强阅读体验，但不是任何核心能力的运行依赖。",
      "code": [],
      "links": [],
      "order": 0
    },
    {
      "id": "/features/#托管-markdown-与-properties",
      "route": "/features/",
      "title": "Mini-Wiki 3.3 核心能力",
      "headingPath": [
        "托管 Markdown 与 Properties"
      ],
      "text": "Properties 是页面和派生视图共用的元数据模型。CLI 维护 ID、类型、领域、来源、新鲜度、质量与版本， 同时保留用户添加的未知 Properties。正文中的 generated/content 标记让机器事实与专业解释可以独立更新。 结果是：重建不会把页面变成一次性生成物，手工知识也不会阻止结构和来源事实继续演进。",
      "code": [],
      "links": [],
      "order": 1
    },
    {
      "id": "/features/#中文感知的本地搜索",
      "route": "/features/",
      "title": "Mini-Wiki 3.3 核心能力",
      "headingPath": [
        "中文感知的本地搜索"
      ],
      "text": "索引组合 Markdown、Properties、别名、标签、图谱元数据与受限源码文本。确定性的中文 unigram/bigram 归一化支持中文和中英混合查询。 SQLite FTS5 是可选加速器，不是功能依赖。后备实现保持相同的查询筛选、结果格式和排序规则，因此 知识库在精简 Python 环境中仍可检索。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki search \"插件安装\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project"
        }
      ],
      "links": [],
      "order": 2
    },
    {
      "id": "/features/#四个-bases把知识治理变成队列",
      "route": "/features/",
      "title": "Mini-Wiki 3.3 核心能力",
      "headingPath": [
        "四个 Bases：把知识治理变成队列"
      ],
      "text": "文件 用途 views/modules.base 查看模块状态、新鲜度、质量与反向链接 views/sources.base 查看源码覆盖、归属与漂移 views/quality.base 形成待评审和待增补队列 views/orphans.base 找出尚未接入知识网络的页面 Bases 是 Properties 上的原生声明式视图。它们不持有唯一知识；修改事实后重新构建，视图会跟随正式 Markdown 更新。",
      "code": [],
      "links": [],
      "order": 3
    },
    {
      "id": "/features/#三个-canvas从不同尺度查看同一张图",
      "route": "/features/",
      "title": "Mini-Wiki 3.3 核心能力",
      "headingPath": [
        "三个 Canvas：从不同尺度查看同一张图"
      ],
      "text": "文件 视角 canvas/architecture.canvas 架构层次和模块依赖 canvas/domains.canvas 领域、模块与职责分布 canvas/traceability.canvas 文档到源码和符号的证据路径 Canvas 使用 JSON Canvas 1.0，节点 ID、位置、大小和边顺序均为确定性输出。它适合空间探索，但不应 成为唯一事实来源。",
      "code": [],
      "links": [],
      "order": 4
    },
    {
      "id": "/features/#确定性构建与恢复",
      "route": "/features/",
      "title": "Mini-Wiki 3.3 核心能力",
      "headingPath": [
        "确定性构建与恢复"
      ],
      "text": "dry-run 先展示写入计划； staging 中生成完整候选结果； 严格校验通过后才切换正式 Wiki； 退出管理的页面移动到 .mini-wiki/archive/ ； 第二次无变化构建应产生相同结果。 构建失败不会留下半写入的 Wiki。迁移同样采用预览优先、备份旧材料、校验副本、最后切换配置的流程。",
      "code": [],
      "links": [],
      "order": 5
    },
    {
      "id": "/features/#一个输入面多个可消费产物",
      "route": "/features/",
      "title": "Mini-Wiki 3.3 核心能力",
      "headingPath": [
        "一个输入面，多个可消费产物"
      ],
      "text": "正式 wiki/ 可以被浏览器、编辑器、Git 主机和 Obsidian 阅读；图谱与 Manifest 可以被 Agent 使用； 搜索、Bases、Canvas 则提供不同的召回和治理方式。 先理解 知识网络模型 ，再阅读 安全边界 了解哪些内容可以生成、执行或发布。",
      "code": [],
      "links": [
        "/knowledge-network/",
        "/security/"
      ],
      "order": 6
    },
    {
      "id": "/guide/",
      "route": "/guide/",
      "title": "五分钟上手 Mini-Wiki",
      "headingPath": [],
      "text": "Mini-Wiki 3.3 把一个代码仓库转换成仓库根级 wiki/ 知识网络。CLI 负责可重复的结构和事实，AI Agent 负责有源码证据的专业解释；二者通过托管 Markdown 的所有权标记协作。",
      "code": [],
      "links": [],
      "order": 0
    },
    {
      "id": "/guide/#1-安装",
      "route": "/guide/",
      "title": "五分钟上手 Mini-Wiki",
      "headingPath": [
        "1. 安装"
      ],
      "text": "推荐先把 Mini-Wiki 安装为 Agent Skill： 需要直接使用本地 CLI 时： 要求 Python 3.10 或更高版本。核心构建不需要 Node.js，也不需要 Obsidian。",
      "code": [
        {
          "language": "bash",
          "value": "npx skills add trsoliu/mini-wiki"
        },
        {
          "language": "bash",
          "value": "git clone https://github.com/trsoliu/mini-wiki.git\ncd mini-wiki\npython -m venv .venv\n.venv/bin/pip install -e .\n.venv/bin/mini-wiki --version"
        }
      ],
      "links": [],
      "order": 1
    },
    {
      "id": "/guide/#2-初始化并诊断",
      "route": "/guide/",
      "title": "五分钟上手 Mini-Wiki",
      "headingPath": [
        "2. 初始化并诊断"
      ],
      "text": "在目标项目上创建 schema v3 配置，然后先检查运行环境和边界： init 创建 .mini-wiki/config.yaml ，不会把正式知识写进状态目录。正式文档的默认目标是项目根级 wiki/ 。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki init /path/to/project\nmini-wiki doctor --json /path/to/project"
        }
      ],
      "links": [],
      "order": 2
    },
    {
      "id": "/guide/#3-先预览再构建",
      "route": "/guide/",
      "title": "五分钟上手 Mini-Wiki",
      "headingPath": [
        "3. 先预览，再构建"
      ],
      "text": "dry-run 输出计划但不写文件。正式构建会扫描受允许的源文件、计算稳定 ID、生成图谱、写入托管页面， 并通过事务暂存后一次性切换结果。 第一次构建后，先查看 .mini-wiki/cache/build-plan.json 和 .mini-wiki/cache/graph.json 。它们告诉 Agent 哪些页面需要解释、每个结论能追溯到哪些源码，而不是让 Agent 从空白页面猜测。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki build --dry-run --json /path/to/project\nmini-wiki build --json /path/to/project"
        }
      ],
      "links": [],
      "order": 3
    },
    {
      "id": "/guide/#4-让-agent-只写内容区",
      "route": "/guide/",
      "title": "五分钟上手 Mini-Wiki",
      "headingPath": [
        "4. 让 Agent 只写内容区"
      ],
      "text": "每个托管页面有两个职责区： Agent 只修改 mini-wiki:content 区域，不改稳定 ID、来源列表或 CLI 管理的导航。未知 Properties 视为 用户所有，后续重建会保留。",
      "code": [
        {
          "language": "markdown",
          "value": "<!-- mini-wiki:generated:start -->\nCLI 管理的导航、关系与证据。\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent 根据源码证据编写的专业解释。\n<!-- mini-wiki:content:end -->"
        }
      ],
      "links": [],
      "order": 4
    },
    {
      "id": "/guide/#5-重建并严格校验",
      "route": "/guide/",
      "title": "五分钟上手 Mini-Wiki",
      "headingPath": [
        "5. 重建并严格校验"
      ],
      "text": "第二次未发生源码变化的构建应当没有无法解释的差异。严格模式检查 ID、链接、来源漂移、所有权标记、 孤立页面、Base schema，以及 Canvas 节点和边的完整性。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki build --json /path/to/project\nmini-wiki check --strict --json /path/to/project"
        }
      ],
      "links": [],
      "order": 5
    },
    {
      "id": "/guide/#6-不依赖-obsidian-的搜索",
      "route": "/guide/",
      "title": "五分钟上手 Mini-Wiki",
      "headingPath": [
        "6. 不依赖 Obsidian 的搜索"
      ],
      "text": "搜索覆盖 Markdown、Properties、别名、标签、图谱元数据和有界源码文本。SQLite FTS5 只是加速器；没有 FTS5 时，后备实现保持相同的筛选与排序语义。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki search \"架构决策\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project"
        }
      ],
      "links": [],
      "order": 6
    },
    {
      "id": "/guide/#完成标准",
      "route": "/guide/",
      "title": "五分钟上手 Mini-Wiki",
      "headingPath": [
        "完成标准"
      ],
      "text": "wiki/index.md 与知识地图可以打开； Agent 内容区包含可定位到仓库源码的证据； mini-wiki check --strict --json 成功； 第二次无变化构建稳定； 中文或混合语言查询能返回正确页面。 接下来阅读 知识网络模型 ，再根据需要查看 核心能力 与 安全边界 。",
      "code": [],
      "links": [
        "/knowledge-network/",
        "/features/",
        "/security/"
      ],
      "order": 7
    },
    {
      "id": "/",
      "route": "/",
      "title": "Mini-Wiki｜把代码仓库变成可追溯的知识网络",
      "headingPath": [],
      "text": "Mini-Wiki 3.3.0 Mini-Wiki把代码仓库变成可追溯的知识网络 为维护者与 AI Agent 生成确定性、可搜索、可版本化的项目知识。 开始使用 在 GitHub 查看 $npx skills add trsoliu/mini-wiki 01确定性构建稳定 ID、事务写入与可重复构建，让知识变更可以审查和重放。 02源码可追溯项目、领域、模块、文件与符号都能回到明确的仓库证据。 03中英混合搜索本地检索 Markdown、Properties、图谱元数据与有界源码文本。 04Bases 与 Canvas用结构化队列治理知识，用空间视图探索项目关系。 05安全协作边界CLI 管理结构，Agent 只在受保护内容区内补充证据化解释。 06面向 AI Agent同源生成搜索索引、Markdown 路由与模型无关的发现文件。 AI-ready documentation一次构建，同时服务人和 Agent。所有公开入口来自同一组受控页面。 llms.txt llms-full.txt ai-index.json Agent Contract",
      "code": [],
      "links": [
        "/guide/",
        "https://github.com/trsoliu/mini-wiki",
        "/llms.txt",
        "/llms-full.txt",
        "/ai-index.json",
        "/.well-known/silen/manifest.json"
      ],
      "order": 0
    },
    {
      "id": "/knowledge-network/",
      "route": "/knowledge-network/",
      "title": "Mini-Wiki 知识网络模型",
      "headingPath": [],
      "text": "Mini-Wiki 不是把目录树换成一批摘要。它先构建稳定的仓库图谱，再从图谱派生 Markdown、搜索、Bases、 Canvas 与 Manifest。所有输出共享同一组 ID 和关系事实。",
      "code": [],
      "links": [],
      "order": 0
    },
    {
      "id": "/knowledge-network/#六类核心节点",
      "route": "/knowledge-network/",
      "title": "Mini-Wiki 知识网络模型",
      "headingPath": [
        "六类核心节点"
      ],
      "text": "节点 说明 典型关系 project 当前仓库的根身份 包含 domain 与 module domain 业务或技术职责边界 聚合 module module 可解释的实现单元 拥有 source 与 symbol source 受扫描边界约束的源码文件 定义或引用 symbol symbol 类、函数等可追溯代码实体 被 document 解释 document 正式知识页面 引用 source、symbol 与其他 document 关系方向、节点类型和路径都会进入 .mini-wiki/cache/graph.json 。页面、Base 与 Canvas 只投影这些事实， 不会各自维护互相冲突的数据副本。",
      "code": [],
      "links": [],
      "order": 1
    },
    {
      "id": "/knowledge-network/#稳定-id而不是脆弱标题",
      "route": "/knowledge-network/",
      "title": "Mini-Wiki 知识网络模型",
      "headingPath": [
        "稳定 ID，而不是脆弱标题"
      ],
      "text": "托管页面用机器稳定 ID 表示身份，例如： 标题适合人阅读，稳定 ID 适合重建、链接校验和 Agent 引用。源文件内容改变不必导致页面身份变化； 模块真正退出管理时，相关页面会进入可恢复归档，而不是静默删除。",
      "code": [
        {
          "language": "yaml",
          "value": "id: mw:document:domains/core/core\ntitle: Core\ntype: module\ndomain: core\nsources:\n  - src/core/app.py\nfreshness: current\nquality: basic\nmini_wiki_version: 3.3.0"
        }
      ],
      "links": [],
      "order": 2
    },
    {
      "id": "/knowledge-network/#一份页面三种所有权",
      "route": "/knowledge-network/",
      "title": "Mini-Wiki 知识网络模型",
      "headingPath": [
        "一份页面，三种所有权"
      ],
      "text": "Properties： 已知 Mini-Wiki 字段由 CLI 管理，未知字段保留给用户。 generated 区域： 导航、来源、关系和机器事实由 CLI 重建。 content 区域： AI Agent 或维护者编写的专业解释逐字节保留。 没有所有权标记的现有文档不会被自动接管或覆盖。需要迁移旧知识时， migrate --adopt 会显式包装原有 正文，并保留在 Agent 内容区。",
      "code": [
        {
          "language": "markdown",
          "value": "<!-- mini-wiki:generated:start -->\nCLI-owned navigation, evidence, and relationships.\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent-owned explanation grounded in repository evidence.\n<!-- mini-wiki:content:end -->"
        }
      ],
      "links": [],
      "order": 3
    },
    {
      "id": "/knowledge-network/#从源码到解释的证据链",
      "route": "/knowledge-network/",
      "title": "Mini-Wiki 知识网络模型",
      "headingPath": [
        "从源码到解释的证据链"
      ],
      "text": "一次有效解释应当能够回答： 这段知识对应哪个 domain 和 module？ 哪些 source 与 symbol 支撑这个结论？ 证据是否仍在扫描边界内，是否发生漂移？ 这段文字属于 Agent 内容，还是可重建的机器事实？ 构建计划提供“需要补充什么”，图谱提供“可以引用什么”，Manifest 提供“本次构建实际管理了什么”。 因此 Agent 的工作不是自由生成百科，而是补齐一条可检查的证据链。",
      "code": [],
      "links": [],
      "order": 4
    },
    {
      "id": "/knowledge-network/#同一图谱的四种读法",
      "route": "/knowledge-network/",
      "title": "Mini-Wiki 知识网络模型",
      "headingPath": [
        "同一图谱的四种读法"
      ],
      "text": "Markdown 页面给维护者连续阅读； 本地搜索给人和 Agent 快速召回； Bases 用 Properties 形成治理工作台； Canvas 用确定性节点和边展示空间关系。 更具体的视图与检索方式见 核心能力 。要开始建立自己的图谱，请回到 五分钟上手 。",
      "code": [],
      "links": [
        "/features/",
        "/guide/"
      ],
      "order": 5
    },
    {
      "id": "/reference/",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [],
      "text": "本页对应 Mini-Wiki 3.3.0 。命令中的项目路径默认是当前目录，也可以显式传入目标仓库。",
      "code": [],
      "links": [],
      "order": 0
    },
    {
      "id": "/reference/#安装与版本",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [
        "安装与版本"
      ],
      "text": "本地开发安装：",
      "code": [
        {
          "language": "bash",
          "value": "npx skills add trsoliu/mini-wiki\nmini-wiki --version"
        },
        {
          "language": "bash",
          "value": "python -m venv .venv\n.venv/bin/pip install -e ."
        }
      ],
      "links": [],
      "order": 1
    },
    {
      "id": "/reference/#初始化诊断与分析",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [
        "初始化、诊断与分析"
      ],
      "text": "init --force 会先备份已有配置。 doctor 用于诊断项目和可选集成是否就绪。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki init /path/to/project\nmini-wiki init --force /path/to/project\nmini-wiki doctor --json /path/to/project\nmini-wiki analyze /path/to/project\nmini-wiki changes /path/to/project"
        }
      ],
      "links": [],
      "order": 2
    },
    {
      "id": "/reference/#构建",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [
        "构建"
      ],
      "text": "--dry-run 不写文件； --full 忽略增量判断并重建所有托管文档； --json 提供机器可读结果。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki build --dry-run --json /path/to/project\nmini-wiki build --json /path/to/project\nmini-wiki build --full --json /path/to/project"
        }
      ],
      "links": [],
      "order": 3
    },
    {
      "id": "/reference/#严格校验",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [
        "严格校验"
      ],
      "text": "严格模式检查稳定 ID、链接、来源边界与漂移、所有权标记、孤立页面、Base schema，以及 Canvas 节点和边。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki check --strict --json /path/to/project"
        }
      ],
      "links": [],
      "order": 4
    },
    {
      "id": "/reference/#本地搜索",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [
        "本地搜索"
      ],
      "text": "--limit 范围为 1–200，默认 20。 --type 按文档类型过滤， --tag 做精确标签过滤。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki search \"架构决策\" --json /path/to/project\nmini-wiki search \"storage\" --type module --tag domain/storage --limit 10 /path/to/project"
        }
      ],
      "links": [],
      "order": 5
    },
    {
      "id": "/reference/#迁移",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [
        "迁移"
      ],
      "text": "--apply 应用预览过的 v2→v3 复制迁移； --adopt 把旧 Markdown 正文包装进托管内容区。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki migrate --json /path/to/project\nmini-wiki migrate --apply --json /path/to/project\nmini-wiki migrate --apply --adopt --json /path/to/project"
        }
      ],
      "links": [],
      "order": 6
    },
    {
      "id": "/reference/#可选-obsidian",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [
        "可选 Obsidian"
      ],
      "text": "普通 status 不启动应用。 --probe 明确允许调用 Obsidian CLI； open 明确请求打开配置的 Wiki。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki obsidian status --json /path/to/project\nmini-wiki obsidian status --probe --json /path/to/project\nmini-wiki obsidian open /path/to/project"
        }
      ],
      "links": [],
      "order": 7
    },
    {
      "id": "/reference/#instruction-only-插件",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [
        "instruction-only 插件"
      ],
      "text": "插件默认禁用，只提供说明文本；任何脚本、钩子、包管理器或命令都不得导入或执行。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki plugins list /path/to/project\nmini-wiki plugins install owner/repository /path/to/project\nmini-wiki plugins enable plugin-name /path/to/project\nmini-wiki plugins disable plugin-name /path/to/project\nmini-wiki plugins update plugin-name /path/to/project\nmini-wiki plugins uninstall plugin-name /path/to/project"
        }
      ],
      "links": [],
      "order": 8
    },
    {
      "id": "/reference/#默认目录",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [
        "默认目录"
      ],
      "text": "",
      "code": [
        {
          "language": "text",
          "value": "wiki/                         # 正式知识\n├── index.md\n├── getting-started.md\n├── architecture.md\n├── knowledge-map.md\n├── domains/\n├── reference/\n├── views/*.base\n└── canvas/*.canvas\n\n.mini-wiki/                   # 配置与状态\n├── config.yaml\n├── manifest.json\n├── meta.json\n├── cache/\n├── staging/\n└── archive/"
        }
      ],
      "links": [],
      "order": 9
    },
    {
      "id": "/reference/#托管标记",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [
        "托管标记"
      ],
      "text": "",
      "code": [
        {
          "language": "markdown",
          "value": "<!-- mini-wiki:generated:start -->\nCLI-owned facts.\n<!-- mini-wiki:generated:end -->\n\n<!-- mini-wiki:content:start -->\nAgent-owned explanation.\n<!-- mini-wiki:content:end -->"
        }
      ],
      "links": [],
      "order": 10
    },
    {
      "id": "/reference/#配置能力开关",
      "route": "/reference/",
      "title": "Mini-Wiki 3.3 命令与配置参考",
      "headingPath": [
        "配置能力开关"
      ],
      "text": "schema v3 为搜索、Bases、Canvas 与可选 Obsidian 集成提供独立开关。扫描配置还包括 Git ignore、显式排除、 符号链接边界、文件大小限制，以及 Wiki/状态目录隔离。 如果这是第一次使用，先按 五分钟上手 完成完整闭环；数据关系见 知识网络模型 。",
      "code": [],
      "links": [
        "/guide/",
        "/knowledge-network/"
      ],
      "order": 11
    },
    {
      "id": "/security/",
      "route": "/security/",
      "title": "Mini-Wiki 安全、边界与恢复",
      "headingPath": [],
      "text": "Mini-Wiki 的安全不是“生成完成后再检查”，而是由目录职责、所有权标记、扫描限制、事务写入和默认禁用 共同组成。",
      "code": [],
      "links": [],
      "order": 0
    },
    {
      "id": "/security/#正式知识与状态目录",
      "route": "/security/",
      "title": "Mini-Wiki 安全、边界与恢复",
      "headingPath": [
        "正式知识与状态目录"
      ],
      "text": "wiki/ 是持久事实边界； .mini-wiki/ 主要包含可重建或本地状态。不要把缓存当作正式知识，也不要让 构建流程把仓库外文件或机器本地绝对路径写进 Wiki。",
      "code": [
        {
          "language": "text",
          "value": "wiki/          # 正式、可移植、适合提交 Git\n.mini-wiki/    # 配置、缓存、暂存与可恢复归档\n.obsidian/     # Mini-Wiki 不创建、不修改"
        }
      ],
      "links": [],
      "order": 1
    },
    {
      "id": "/security/#扫描边界",
      "route": "/security/",
      "title": "Mini-Wiki 安全、边界与恢复",
      "headingPath": [
        "扫描边界"
      ],
      "text": "扫描遵守 Git ignore、显式排除、文件大小限制、状态目录和 Wiki 目录排除，以及符号链接边界。来源只有 在允许的项目根目录内才可成为证据，避免把凭证、构建输出或相邻项目误纳入知识网络。",
      "code": [],
      "links": [],
      "order": 2
    },
    {
      "id": "/security/#托管页面不会接管未知文档",
      "route": "/security/",
      "title": "Mini-Wiki 安全、边界与恢复",
      "headingPath": [
        "托管页面不会接管未知文档"
      ],
      "text": "只有带完整 Mini-Wiki 所有权标记的文档才由构建器更新。未知 Properties 保留给用户；缺少标记的现有 文档不会被覆盖。页面退出管理时先进入 .mini-wiki/archive/ ，便于审查与恢复。",
      "code": [],
      "links": [],
      "order": 3
    },
    {
      "id": "/security/#第三方插件只提供说明",
      "route": "/security/",
      "title": "Mini-Wiki 安全、边界与恢复",
      "headingPath": [
        "第三方插件只提供说明"
      ],
      "text": "Mini-Wiki 插件采用 instruction-only 模型：安装的 PLUGIN.md 或 SKILL.md 是不可信文本，默认禁用。 Agent 可以阅读已启用的相关说明，但安全不变量是： never import or execute plugin scripts, hooks, package managers, or commands （绝不导入或执行插件脚本、钩子、包管理器或命令）。 安装还会拒绝： 非 HTTPS 网络来源； 路径穿越、无效根目录与符号链接； 超出限制的压缩包； 未确认的同名覆盖； 与记录 tree hash 不一致的静默内容变化。",
      "code": [],
      "links": [],
      "order": 4
    },
    {
      "id": "/security/#obsidian-是可选界面",
      "route": "/security/",
      "title": "Mini-Wiki 安全、边界与恢复",
      "headingPath": [
        "Obsidian 是可选界面"
      ],
      "text": "构建、搜索、严格校验、迁移、Bases 与 Canvas 均不依赖 Obsidian。普通状态检查无副作用： 只有显式 --probe 才可能调用 Obsidian CLI 并启动应用；只有 obsidian open 会通过编码后的 Obsidian URI 请求打开配置的 Wiki。Mini-Wiki 不需要写入 .obsidian/ 。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki obsidian status --json /path/to/project"
        }
      ],
      "links": [],
      "order": 5
    },
    {
      "id": "/security/#事务迁移与失败恢复",
      "route": "/security/",
      "title": "Mini-Wiki 安全、边界与恢复",
      "headingPath": [
        "事务、迁移与失败恢复"
      ],
      "text": "构建先在 staging 生成候选结果，验证成功后再切换。失败时保留当前正式 Wiki。迁移默认只预览，应用时 拒绝非空目标、备份旧材料、验证复制结果，并在最后一步切换配置。",
      "code": [
        {
          "language": "bash",
          "value": "mini-wiki migrate --json /path/to/project\nmini-wiki migrate --apply --json /path/to/project\nmini-wiki migrate --apply --adopt --json /path/to/project"
        }
      ],
      "links": [],
      "order": 6
    },
    {
      "id": "/security/#发布前检查",
      "route": "/security/",
      "title": "Mini-Wiki 安全、边界与恢复",
      "headingPath": [
        "发布前检查"
      ],
      "text": "确认 wiki/ 中没有凭证、个人信息或机器绝对路径； 运行 mini-wiki check --strict --json ； 审查 Agent 内容的源码证据； 比较第二次无变化构建； 只提交正式知识和明确需要的配置。 命令与开关的完整入口在 参考手册 ，首次操作流程见 五分钟上手 。",
      "code": [],
      "links": [
        "/reference/",
        "/guide/"
      ],
      "order": 7
    }
  ]
}
