Communitygithub.com

noddhogg/knowledge-gatekeeper

Governance layer for personal knowledge bases: a 4-tier quality gate, a single ledger with resumable batches, and anti-loss rules. Sits above conversion tools, not instead of them.

¿Qué es knowledge-gatekeeper?

knowledge-gatekeeper is a Claude Code agent skill that governance layer for personal knowledge bases: a 4-tier quality gate, a single ledger with resumable batches, and anti-loss rules. Sits above conversion tools, not instead of them.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add noddhogg/knowledge-gatekeeper

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

knowledge-gatekeeper · 知识库治理层

别人解决「怎么把视频变成笔记」,本 skill 解决「什么配进笔记库」。 本文件自包含:读完即可开工,不需要外部文档。

一、定位

转化工具(take-notesvideo2knowledge 等)已经能把信息源变成结构化笔记。本 skill 不重复那部分,只做它们上面缺的一层治理:

  • 进什么 —— 四档质量门禁
  • 怎么攒 —— 单一账本 + 断点续跑
  • 怎么不丢 —— 防丢闭环

以及成文时的页面结构规范

前置假设:你已经能把素材转成文字(转写稿、文章正文),本 skill 从拿到文字稿开始。

二、五条核心原则

  1. 未提交 = 不存在。页面生成后当轮必须提交版本库。
  2. 账本是唯一事实源。状态、定档、产出路径只记在一处。
  3. 质量门禁零例外。未经定档的内容不得入库。
  4. 只加不删。批量操作默认可回滚,删除前先移位而不是直接删。
  5. 人机同源。同一批内容同时产出人看页面与 AI 可读索引。

三、三根纵切机制(核心)

治理不是流水线上的某一环,而是贯穿全程的三根支柱。

3.1 四档质量门禁

这是整条链路最重要的一步,不可跳过、不可批量放行。

逐篇通读转写稿,按下表定档,写入账本的 quality 字段:

判据处置
high体系化干货,信息密度高,标题与内容一致完整入库
medium有可提取的方法论,但夹杂冗余或跑题只精炼有效部分
low标题党、引流广告、内容空洞、泛娱乐不入库
reject与知识库主题无关跳过

四条判据,逐条过:

  1. 标题与内容是否一致 —— 最有效的单一指标,标题党一眼可辨
  2. 是否有引流广告 —— 中后段突然出现加群/带货/引流,通常意味着质量断崖
  3. 信息密度如何 —— 通读后能否复述出 3 个以上具体知识点
  4. 是否泛娱乐化 —— 观点输出多、事实和方法少

注意 medium 不是排除项。 它进库,但规格不同——只取有效部分,不做完整展开。审查的产出不是"要不要",是"以什么规格要"。

这一步必须逐篇通读,无法自动化。也正因如此,它是整套方法里最难被复制的部分。

3.2 单一账本

所有素材的状态、定档、产出路径只记在一个 JSON 文件里,每完成一步立即回写,不做批量补记

它带来三个能力:

  • 断点续跑 —— 重跑命令 = 跳过 done 的命令
  • 积压可见 —— transcribed(已转写未定档)是一个可查询的队列
  • 统计可信 —— 覆盖率、通过率由账本算出,不是估的

完整结构见 examples/ledger.schema.json。核心字段:

字段用途
id素材唯一标识,整条链路的主键
statuspendingworkingtranscribeddone / failed
qualityhigh / medium / low / reject,由门禁写入
media / transcript过程文件路径
page成页路径,low / reject 时留空
fail_reason / retry_count失败原因与重试次数

同一批次只允许一个进程写账本。 并发写 JSON 会互相覆盖,这是最容易踩且最难排查的坑。

3.3 防丢闭环

以下五条来自真实事故(一次误操作丢掉 90 页未提交内容),零例外

  1. 禁止对知识库执行 git clean -fd,无论带不带路径参数。清理残留一律先 git status --short 人工核对,只做精确回退。
  2. 禁止把 git reset --hard 当作回退手段。需要回退先 git stash push(保留未跟踪文件)或先做全量快照。
  3. 任何破坏性操作前(reset / clean / rm / checkout -- .),先确认目标文件是否已跟踪;未跟踪文件必须先复制到备份区。
  4. 页面建完即提交。任何 HTML / MD / 资产一经生成或修改,当轮结束前必须提交。禁止跨轮持有未提交内容。
  5. 依赖库同步提交(CSS / JS / 字体等),禁止裸放在工作区。

附加建议:每日自动生成一次全量快照归档到 _archive/,作为最后的安全网。

四、四层横切(流程背景)

治理机制作用的舞台。这层的工具已经很成熟,本 skill 不重复实现,只定义契约

① 获取  →  ② 转译  →  ③ 分流审查  →  ④ 呈现
做什么治理机制在此层的作用
① 获取拉取清单,对比新增;下载或抓正文账本记来源与状态;门禁做清单去重
② 转译提音频、转文字账本记转写路径;失败重试判定;过程文件不落临时目录
③ 分流审查四档定档门禁主战场;账本写定档结果
④ 呈现成页、索引、审计账本记成页位置;0 坏链审计;建完即提交

关于层 ① 和层 ②:不同平台有不同的获取方式和各自的服务条款,请自行实现并遵守对方规则。常见约束提前预期——批量连续请求易触发频率限制,长任务中凭据会失效需自动重建,单条失败不应中断整批。

转写实用建议

  • 小规模用 faster-whispersmall 档即可
  • 中文素材显式指定语言,非中文素材让模型自动检测——强制指定错误语言会产出音译乱码
  • 谨慎使用 VAD 过滤,参数不当会把整段音频判为静音
  • 耗时约为音频时长的 0.3~0.5 倍(CPU 推理),批量请按小时计

呈现层的两个视图

不并列,生产关系不同:

  • 人看 HTML —— 主产物,逐篇写,遵循下方规范
  • AI 看专家索引 —— 派生视图,由账本自动聚合,不手工维护

专家索引的形式:$KB_ROOT/_meta/experts/<主题>.md,每条含页面路径、核心摘要、关联标签。agent 先检索索引命中主题,再精读少数几篇,避免全文扫描。

它的价值随规模增长——二十篇时无用,两百篇时是刚需。条件启用,不是标配。

索引由账本生成,不要靠正则扫 HTML——后者在目录结构调整后必然失真。

五、页面规范

模板见同项目 templates/knowledge_page.html。单文件、离线可读、无外部依赖。

一篇合格的知识页包含:

#要素说明
1顶部返回条相对路径返回上级索引
2标题区标题 + 标签 + 难度星级 + 元信息行(学习日期 / 素材来源 / 预计阅读)
3一句话总结页面最上方,1-2 句说清核心结论
4知识地图TOC 导航,5-9 节,锚点对齐
5分节正文每节一张卡片,带序号
6对比表格并列概念必用,比段落高效得多
7提示 / 警告块视觉上区分于正文
8易混点与误区单独一节,表格呈现"误区 vs 真相"
9自测题折叠块,点击展开答案;避免元信息题(考日期、考作者),要考理解和应用
10页脚素材来源与整理日期
11笔记组件可选,读者随手记疑问并导出,交给 agent 处理

两条硬性纪律:

  • 不使用 emoji。各平台渲染不一致,且干扰文本处理。
  • 相对路径铁律。返回首页 ../../index.html、域内 ../<主题>/、跨域 ../../<域>/。绝对路径会在迁移或换设备时全盘失效。

大文件提示:写超长 HTML 时生成工具可能截断,做法是分片写临时文件再用脚本拼接。

六、反模式清单

工程层面

  • 后台脚本输出非 ASCII 字符,在非 UTF-8 默认编码环境下崩溃 → 启动即重配置 stdout 编码
  • 把脚本代码内联进 shell 执行,遇到引号嵌套必炸 → 一律写成文件再执行
  • 多个进程同时写同一个 JSON 账本 → 单写者原则

内容层面

  • 强制给非中文音频指定中文转写 → 产出音译乱码
  • 开启 VAD 过滤但参数不当 → 整段被判静音,产出空文件
  • 自测题出成元信息题 → 没有复习价值
  • 用绝对路径链接页面 → 迁移即全断

流程层面

  • 批量跑完再统一定档 → 几十篇的通读必然走过场。转完一批就定档一批
  • 定档后不回写账本 → 下次重跑全部重来
  • 跳过链接审计就宣布完成 → 坏链要等用户点开才发现
  • 把专家索引当独立产物手工维护 → 必然与正文脱节,应由账本生成

七、检查清单

每批次收尾时逐项确认:

  • 账本中本批次条目状态全部为 donefailed,无 working 悬挂
  • 所有 high / medium 条目都有对应的 page 路径
  • page 路径指向的文件真实存在
  • 全库链接审计 0 坏链
  • 域索引与根索引已更新,计数与实际一致
  • 本批次新增页面已提交版本库
  • 无孤儿过程文件(有转写但既无页面也未标记跳过)
  • 专家索引已由账本重新生成(若启用)

八、配置

使用前把配置模板复制为 config.json 并填写:

占位符含义建议值
$KB_ROOT知识库根目录自选,建议放在版本库内
$LEDGER账本文件$KB_ROOT/_meta/ledger.json
$INCOMING过程文件区$KB_ROOT/_incoming/
$SOURCE_LIST待处理素材清单CSV 或 JSON,自选

不要硬编码绝对路径到脚本里,从配置读取。

目录约定:

$KB_ROOT/
├── _meta/           真源数据(账本、专家索引)
├── _incoming/       过程文件(media/ trans/),建议 gitignore
├── _archive/        每日快照,安全网
├── assets/          样式与脚本
├── index.html       根索引
└── <NN_域>/<主题>/  知识页,按域分组

Skills relacionados