关于 wiki-init
wiki-init 是用于在仓库中搭建或迁移 Wiki、QMD 和 Agent 钩子结构的技能。它先检查状态并预览改动,写入前要求确认 Wiki 位置和索引名称。
主要功能
- 01使用 doctor 检查仓库
- 02安装与迁移的试运行
- 03配置本地或共享 Wiki
- 04管理 QMD 检出版本与封装命令
- 05按 Harness 配置钩子和文件
适用场景
- 01检查 Wiki 布局与 QMD 状态
- 02为仓库准备 Wiki 基础设施
- 03将仓库迁移到新的 Wiki 布局
MCP 相关
该技能会配置 MCP 和 Agent 配置文件,作为仓库基础设施的一部分;未说明其提供 MCP 服务。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ djalmajr/ skills --skill wiki-init安装后在 Claude Code 中输入/wiki-init确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/presets.mdscripts/qmd-doctor.tsvalidate-wiki-init.tswiki-init.test.tswiki-init.tstemplates/agents-block.md.tmplantigravity-hooks.json.tmplclaude-settings.json.tmplcodex-config.toml.tmplcodex-hooks.json.tmplmcp.json.tmplopencode-config.json.tmplopencode-plugin.js.tmplwiki-guardrails.yml.tmpltemplates/hooks/claude/wiki-suggest-ingest.sh.tmpltemplates/hooks/codex/wiki-consider.sh.tmpltemplates/hooks/shared/wiki-drift-audit.sh.tmplwiki-policy-check.sh.tmplwiki-reindex.sh.tmpl详细介绍
wiki-init
使用此技能可将代码库初始化或迁移为 wiki + QMD + Agent hook 模式。
用户可能会使用自然语言。按以下方式处理意图:
- “结构是什么样的?”,“需要迁移吗?”,“doctor”,“qmd 正常吗?” -> 运行
doctor。 - “安装”,“准备这个代码库”,“配置 hooks” -> 先以试运行方式运行
install,然后在执行--write前询问用户是否确认建议的 wiki 位置和索引。 - “迁移到新格式” -> 先以试运行方式运行
migrate,然后在执行--write前询问用户是否确认建议的 wiki 位置和索引。 - “修复 qmd”,“托管的 qmd”,“修补 qmd” -> 运行
doctor,然后在获得明确批准后使用install --write或update-hooks --write,以准备托管的 QMD 检出和包装器。
项目根目录
此技能中的所有路径(wiki/、AGENTS.md、CLAUDE.md、.mcp.json、hook 脚本等)都相对于通过 --project <path> 传入的项目根目录,而不是 Agent 当前的工作目录。
- 始终向脚本传入
--project <absolute-or-relative-path>——它不会静默回退到 CWD。 - QMD 包装器命令(
<wrapper> collection add <wiki-path>)接受绝对路径;如果 Agent 的 CWD 可能与项目根目录不同,请优先使用绝对路径。 - 从同级代码库(例如 meta/skills 代码库,而目标项目位于其他位置)调用时,请在执行
--write前与用户确认--project的值。
工作流
- 首先运行
scripts/wiki-init.ts doctor --project <path>。 - 阅读报告:wiki 布局、AGENTS/CLAUDE、harness、hooks、缓存迁移、已安装内容的偏差和 QMD 状态。
- 如需更改,先在不带
--write的情况下运行install或migrate,并展示计划执行的文件操作和建议的拓扑结构。 - 明确询问用户:使用本地 wiki 还是共享 wiki? 不要默默默认使用同级路径。使用 harness 的结构化提问工具(参见提问)。
- 本地 ——wiki 位于此代码库内的
wiki/。适用于独立项目和私人实验。 - 共享 ——wiki 位于此代码库之外(同级目录、中央知识库、monorepo 位置)。用户选择共享时,请用自由文本询问绝对或相对路径;检测到的同级路径(如
../knowledge-base等)仅为建议,必须由用户确认或替换。
- 本地 ——wiki 位于此代码库内的
- 用自由文本向用户确认 QMD 索引名称。建议一个合理的默认值(本地使用项目基本名称,共享使用组织或产品名称),但允许用户自行指定。
- 只有在明确传入
--wiki和--index后,才能使用--write。如果没有这些标志,脚本会阻止写入。 - 写入后重新运行
doctor。 --write会在技能缓存(~/.local/share/skills/qmd/checkouts/qmd)下准备托管的 QMD 检出,并将项目包装器指向该检出。如果缺少检出,会克隆https://github.com/tobi/qmd.git并在其中安装依赖项。- 如果目标项目需要索引,请使用生成的包装器初始化 QMD:
<wrapper> collection add <wiki-path> --name <index> --mask "**/*.md",然后运行<wrapper> update和<wrapper> embed。 - 更改可复用模板或脚本前,运行
scripts/validate-wiki-init.ts。
提示词
遵循项目级约定 CLAUDE.md / AGENTS.md(“Skill 提示词约定”)。对于以下决策点,使用运行环境提供的结构化提问工具——AskUserQuestion(Claude Code)、ask_user_question(Codex)或 question(OpenCode)。仅在需要路径或标识符时使用自由文本。
| 决策点 | 使用结构化提问的原因 | 建议选项 |
|---|---|---|
| Wiki 位置 | 决定整个安装方案:路径、钩子、预设 | 本地(仓库内的 wiki/)· 共享(单独路径) |
| 检测到旧缓存时的迁移 | 难以撤销的复制操作 | 立即复制(保留旧缓存)· 跳过迁移 |
| 已安装文件出现偏差时的修复方式 | 会触发 update-hooks --write | 全部更新 · 先显示差异 · 忽略 |
| 运行环境选择(多选),检测到多个运行环境时 | 避免配置用户不需要的 Agent | claude · codex · opencode · antigravity |
用户回答后,在运行 --write 之前,用自己的话重述其选择。
自由文本提示(不使用结构化提问工具):
- 共享 Wiki 路径
- QMD 索引名称
- 任何自定义 QMD 命令(
--qmd-command) - 任何需要用户输入、且技能无法枚举其取值的字段
doctor 报告内容
doctor 是始终安全的入口。它会报告:
- wiki_path、qmd_index、推荐的拓扑结构以及运行环境覆盖情况。
- 规范文件(
AGENTS.md、CLAUDE.md、.wiki-guardrails.yml、MCP/Agent 配置)的存在情况。 - Markdown 偏差 — 配置的 Wiki 路径之外受跟踪的
.md文件。 - 缓存迁移 — 检测旧版
~/.local/share/essential-skills/qmd缓存,并报告--write是否会将其复制到当前的~/.local/share/skills/qmd位置。为确保安全,会保留旧目录(绝不删除)。 - 已安装文件偏差 — 对最新模板会生成的每个文件,将磁盘上的内容与预期内容进行比较。报告过时路径(例如,对旧缓存的引用)、
AGENTS.md/CLAUDE.md中过时的受管理代码块,以及落后于模板的钩子/配置。建议的修复方式是wiki-init update-hooks --write。 - QMD 状态 — 受管理的检出位置、版本、补丁报告、索引状态。
- 计划执行的操作 — 下一次运行
install/migrate/update-hooks时将创建或更新的每个文件。
脚本
主脚本:
bun skills/wiki-init/scripts/wiki-init.ts doctor --project .
侧重 QMD 的别名:
bun skills/wiki-init/scripts/qmd-doctor.ts --project .
该脚本有意默认采用试运行模式。只有使用 --write 才会写入。
常见示例:
bun skills/wiki-init/scripts/wiki-init.ts doctor --project /path/to/project
bun test skills/wiki-init/scripts/wiki-init.test.ts
bun skills/wiki-init/scripts/wiki-init.ts migrate --project /path/to/project --wiki ../knowledge-base --index my-index
bun skills/wiki-init/scripts/wiki-init.ts install --project /path/to/project
bun skills/wiki-init/scripts/wiki-init.ts install --project /path/to/project --wiki ../knowledge-base --index my-project --harness claude,codex,opencode,antigravity --write
预设
使用 references/presets.md 查看受支持的项目结构:本地 Wiki、中央同级 Wiki、多仓库组织 Wiki,以及仅文档迁移。
Wiki 内容脚手架
wiki-init 配置基础设施(配置、钩子、MCP、QMD 包装器),但不会创建 Wiki 内容。执行 install --write 后,Agent 必须创建其他 Wiki 技能所需的最小 Wiki 脚手架:
<project-root>/wiki/
├── index.md # navigable catalog
├── CONVENTIONS.md # schema, frontmatter, naming, audience separation
├── log.md # append-only operation log
├── business/ # business/product rules (audience: business)
├── apps/ # app-level technical docs (audience: dev)
├── ops/ # operational procedures (audience: ops)
├── data/ # data models and schemas (audience: dev)
└── sources/ # ingested source summaries (one per slug)
<project-root>/raw/
└── index.md # raw source materials inventory
受众区分和 frontmatter 约定定义于 wiki-ingest/SKILL.md。创建脚手架时,应将其视为命名、frontmatter 和内容布局的事实来源。
完成脚手架后,按照工作流第 9 步初始化 QMD 索引。
边界
- 不要自动摄取 Wiki 内容。钩子只负责发出信号;由 Agent 从语义层面作出判断。
- 不要全局修补或安装 QMD。
- 优先使用受管理的项目级 QMD 包装器,而非 shell 别名或
bunx。包装器必须附带来源清单,记录受管理的检出、上游仓库/引用、包装的二进制文件、版本、补丁报告、语言和嵌入模型。 - 可复用的技能文件中不得包含用户专属的绝对路径。只有在安装后生成的每台机器专属包装器/清单/配置中才可以出现本地绝对路径。
- 模板必须保留在此技能目录中。