mcpField
B
brain-taxonomist

brain-taxonomist

github.com/garrytan生产力31.3k169 次安装今天更新
代码仓库

关于 brain-taxonomist

brain-taxonomist 是为 gbrain 页面选择归档路径的技能,供创建页面或批量导入内容的 Agent 使用。它读取当前 schema pack 作出可复现建议,遇到类型不匹配或含糊情况时会请求进一步处理,而非自行猜测。

主要功能

  1. 01依据活动 schema pack 推荐页面路径
  2. 02支持按 source 使用不同规则
  3. 03对含糊归档情况请求确认
  4. 04无匹配类型时提交 schema 检查
  5. 05扫描未声明类型和页面漂移

适用场景

  1. 01写入新页面前确定归档位置
  2. 02为批量导入的页面选择路径
  3. 03检查已有页面是否符合当前分类
  4. 04发现需要新增页面类型的情况

MCP 相关

README 提到可通过 MCP 的 run_doctor 报告查看 schema_pack_consistency 检查结果;没有说明此技能自身如何连接 MCP。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/garrytan/gbrain --skill brain-taxonomist

安装后在 Claude Code 中输入/brain-taxonomist确认已加载。

附带文件routing-eval.jsonl

详细介绍

brain-taxonomist

用途

门控函数: 在创建任何新的 brain 页面之前,先咨询此技能以确定正确的归档路径。这样可以在写入时避免归档错误,而不是事后清理偏差。

漂移函数: 定期扫描已超出当前位置的页面。

约定

此技能保证:

  • 每个新页面都归档到由 ACTIVE schema pack 决定的路径,绝不依据此技能中硬编码的目录表。
  • 决策可复现:对同一内容两次调用 brain-taxonomist,推荐路径相同。
  • 存在歧义的情况通过 skills/ask-user/ 交由用户决定,而不是静默选择默认值。
  • 通过 --source <id> 指定的按来源覆盖设置会被遵守:如果多 brain 用户(Persona B)的各个 pack 存在差异,则每个来源会得到不同的推荐。
  • 当激活的 pack 中不存在匹配的 page_types[] 条目时,此技能会向 EIIRP Phase 3(SCHEMA CHECK)发出信号,而不是挑选最接近的备选方案。

关键:此技能将 ACTIVE schema pack 作为数据读取

brain-taxonomist 没有硬编码的目录表。每个决策都由 gbrain schema show --json 驱动。这意味着:

  • 运行 gbrain schema use gbrain-recommended 的用户会获得完整的推荐目录集(deal、meeting、concept、project、source、daily、personal、civic、original、place、trip、conversation、writing,以及所有 gbrain-base 类型)。
  • 通过 gbrain schema init 并编辑来创作自定义 pack 的用户,会获得基于其自身分类体系的归档推荐,而不是 gbrain 的默认值。
  • 当向 brain-taxonomist 传入 --source <id> 时,会遵守按来源覆盖设置(7 层解析链中的第 3 层)。

这是 v0.39 plan-eng-review 中的单一事实来源原则(D9)。

何时咨询(必须)

在以下情况向 brain 写入之前,需运行 taxonomist 检查:

  1. 新 brain 页面:任何 type(person、company、concept、book、meeting 等)
  2. 批量导入:在提交一批新页面之前
  3. 归档不确定:当主要主题存在歧义时

以下情况无需咨询:

  • 原地更新现有页面(路径相同)
  • 追加到 Timeline 部分
  • 将会议实体传播到现有页面

决策流程

第 1 步:确定主要主题类型

按顺序回答以下问题:

  1. 主要主题是一个具名人物吗?→ person 类型目录
  2. 主要主题是一个具名组织吗?→ company 类型目录
  3. 是否关于一个有时间边界的事件(会议、交易、行程)?→ 时间类型目录
  4. 是否是一个可复用的心智模型?→ concept 类型目录
  5. 是否是原始媒体(文章、视频、书籍、PDF)?→ media 类型目录
  6. 是否是批量源数据?→ source 类型目录
  7. 以上都不是 → 咨询 EIIRP Phase 3,以创建 schema pack 候选项。
第 2 步:在激活的 pack 中查找该类型对应的目录
gbrain schema show --json | jq '.page_types[] | select(.primitive == "entity")'

每个 page_types[] 条目都有一个 path_prefixes: 数组。第一个前缀是规范路径。如果多个类型匹配(例如 pack 中同时存在 person 和 founder,且 expert_routing: true),则优先选择更具体的类型(即路径前缀更具体的那个)。

第 3 步:对于书籍,确定子类别

gbrain-recommended pack 将书籍归档为 media/books/<category>/<slug>.md,其中 category 为以下之一:psychology、philosophy、spirituality、business、media-and-society、family-and-divorce、heritage、science、fiction、biography、arts-and-design。如果你激活的 pack 使用不同的方案,请从 gbrain schema show --json 中读取,而不要在此处硬编码。

第 4 步:构造 slug
  • 使用 kebab-case,描述性强
  • 除非需要消歧,否则不包含作者姓名
  • 与规范路径前缀完全匹配(不带前导斜杠)
第 5 步:写入前校验
  • 路径符合当前启用的 pack 中 page_types[].path_prefixes 的规定
  • Slug 为 kebab-case,且具有描述性
  • Frontmatter 包含 type:,其值与 pack 中某个 page_types[].name 一致
  • 已包含指向相关页面的交叉链接

如果当前启用的 pack 中没有适合你要归档内容的类型, 不要选择最接近的类型。请改为向 EIIRP 发出信号,表明需要新增类型,并交由 schema-pack cathedral 处理提案流程。

与其他 Skills 的集成

  • eiirp — 对其清单中的每个输出,将本 skill 作为第 2 阶段 TAXONOMY 调用。
  • ingest — 文章与媒体摄入时,咨询 brain-taxonomist 以决定归档位置。
  • repo-architecture — 将归档决策委托给本 skill。
  • book-mirror — 生成镜像后,通过 brain-taxonomist 进行归档。

定期漂移检测

# Which pages have no type matching the active pack? Counts untyped pages AND
# pages whose type the pack neither declares nor aliases (undeclared_types).
gbrain schema review-orphans --json

# Per-type audit of the stored corpus (stored_type_undeclared / stored_type_is_alias).
gbrain schema lint --with-db --json

两条命令均在本地运行。通过 MCP 运行时,run_doctor 报告会在其 schema_pack_consistency 检查中给出相同结论(未声明的类型会以 page_type_undeclared 代码发出警告)。

出现未声明的类型时,请在 pack 中声明(gbrain schema add-type <type> --primitive <p> --prefix <dir/>),或将页面改写为已声明的类型。当某个来源中超过 10% 的内容未带类型时,运行 EIIRP 第 3 阶段 SCHEMA CHECK 流程,通过 schema detect 提出候选类型。

输出格式

建议性输出:一个推荐信息块,外加一行推理轨迹。

**File at:** `<directory>/<slug>.md`
**Reasoning:**
- Primary subject: <person|company|concept|...>
- Matched page_type: <name> (primitive: <entity|temporal|concept|media|annotation>)
- Active pack: <pack-name> v<version>
- Source: <source_id>

当判断存在歧义时,通过 skills/ask-user/ 提出 2 个候选项,而不是默默选择。

当当前启用的 pack 中没有匹配的类型时,向 EIIRP 第 3 阶段(SCHEMA CHECK)发出信号,并输出:

**No match in active pack `<name>`.**
**Suggested next step:** `gbrain schema detect --source <source_id>` then
`gbrain schema review-candidates`.

失败时的处理

对于任何 gbrain 错误 code、退出码、[AGENT] 块或通知块,请遵循 agent 操作规范。本 skill 的具体情况如下:

  • 若 gbrain schema show / gbrain schema lint 因未启用任何 schema pack 或 pack 损坏而失败:报告该问题,并转交 schema-author skill;不要凭记忆猜测目录。
  • 若某项推荐需要修改 schema(gbrain schema add-type、gbrain schema use):本 skill 仅提供建议。应在用户同意后将其交给 EIIRP 或 schema-author;切勿在此直接修改当前启用的 pack。

反模式

  • 在本 skill 中硬编码目录表。 所有决策都应通过 gbrain schema show --json 完成。v0.39+ 有意移除了旧的硬编码表,以便使用 gbrain-recommended 或自定义 pack 的用户自动获得正确的路由。
  • 在没有匹配类型时选择最接近的类型。 就近归类会悄无声息地降低用户的归档质量。应改为上报给 EIIRP 第 3 阶段。
  • 在多 brain 环境中忽略 --source <id>。 按来源的覆盖设置位于 7 层解析链的第 3 层;若漏掉该参数,将静默使用全 brain 范围的当前 pack。
  • 自动应用 gbrain schema review-candidates --apply 的决定。 即使是高置信度的建议,也需要用户批准。本 skill 是一道关卡,而不是自动执行者。

硬性规则

  • 切勿在本 skill 中硬编码目录表。 所有决策都必须通过 gbrain schema show --json 完成。当前启用的 pack 才是权威来源。
  • 按来源的参数是一等公民。 处理非默认来源时,每次 CLI 调用都要传入 --source <id>。
  • 遵守置信度下限。 EIIRP 第 3 阶段产生的、置信度低于 0.6 的建议,brain-taxonomist 必须呈现给用户,而不是自动应用。不得悄悄提升低置信度的 schema 变更。

变更日志

v1.0.0 — gbrain v0.39.0.0
  • 从上游 OpenClaw 初始移植。已泛化处理,依据 CLAUDE.md 隐私规则,不再引用私有分支名称。
  • 已移除硬编码的目录表。所有决策现在都通过 gbrain schema show --json 读取当前生效的 schema pack。单一事实来源。
  • 书籍分类已从 skill 文本迁移到 gbrain-recommended pack 的 media/books/ 分支(参见 src/core/schema-pack/base/gbrain-recommended.yaml)。
  • 为多 brain 用户(Persona B)补充了 --source <id> 传递的说明文档。

评论

支持 Markdown