用途:对项目知识库做一次性引导,从已有 Markdown 文档中抽取候选知识节点,直接写入 nodes/ 目录下的新节点文件。用户在同一会话中监督,可随时纠正;每个写入文件由用户保留即接受、删除即拒绝。
主要能力:先用 finddocs 原语发现候选文档并带哈希去重(已应用 .gitignore、.kkignore 与静态跳过列表);读取 .ai/kenkeep/.state/bootstrap-state.json 跳过内容哈希未变的文件;优先完整阅读顶层入口文档,再抽样并跟随交叉引用;把内容判定为 practice(约定、禁止、注意事项、理由、工具与工作流)或 map(功能、模块、服务、项目词汇、文件树位置)两类节点,必要时拆分;通过 node write 持久化,并原子更新 bootstrap-state.json;最后用 index rebuild 刷新 ENTRY.md 与 GRAPH.md。
使用方式:先解析仓库根目录并切换工作目录,命令为 KK_REPO_ROOT=$(node .ai/kenkeep/scripts/kk-detect-root.mjs) || exit $? 与 cd "$KK_REPO_ROOT" || exit $?;发现文档用 npx --yes kenkeep@latest finddocs --from <scope> --with-hashes;写入节点用 npx --yes kenkeep@latest node write <kind> <slug> --title "<title>" --summary "<summary>" --tags "<tag1,tag2,...>" --confidence <high|medium|low> --source-doc "<relpath>" --source-hash "<sha256>",正文经 stdin 传入;--source-doc 与 --source-hash 必须同时提供;重建索引用 npx --yes kenkeep@latest index rebuild。可先读 .ai/kenkeep/config.yaml(回退 ~/.config/kenkeep/config.yaml)获取标签词表与范围提示。
适用场景:项目已有成体系 Markdown 文档、需要一次性建立 kenkeep 知识库时;文档数量适中且可由人工审核。
限制:只处理 Markdown,不读代码文件;不覆盖已有节点,slug 冲突由原语自动加后缀,但范围重复应跳过并报告;不自动解决文档矛盾,只写一个节点并在报告中提示;不编造理由,只引用或贴近转述原文;默认置信度为 medium;文档超过约 100 个 Markdown 文件时应停下询问用户;引导过程需人工监督。