SuperAPI AI 工具集

grove-glossary

写作与研究

查看项目

更新于 10-23 23:07

技能介绍

用途

grove-glossary 用于维护 CocoGrove 的通用语言词汇表(ubiquitous language glossary)。它扫描项目产物,找出可能属于领域词汇的候选术语,并向 .cocoplus/grove/language/glossary.md 提议新增条目。每个提议条目都需要开发者审阅并确认后才会写入。

主要能力

  • 验证 .cocoplus/ 是否已初始化。
  • 确保 .cocoplus/grove/language/ 目录存在,不存在则创建。
  • 读取已有词汇表,提取已定义术语和别名,并进行大小写不敏感归一化(去除首尾空白、合并重复空格、小写比较术语文本、将别名作为规范术语的重复键比较)。
  • 扫描项目产物中的候选术语,来源包括:
    • lifecycle/spec.md:函数名、能力描述、领域名词
    • .cocoplus/flow.json:阶段名称和描述
    • lifecycle/plan.md:决策术语、评估引用
    • lifecycle/discuss.md:阈值名称、方法论术语
    • .cocoplus/prompts/*.md:AI 函数输入/输出描述
    • .cocoplus/grove/cupper-findings.md:模式名称、反模式术语
    • .cocoplus/map/coco-map.json:领域部分的能力名称(如果存在)
  • 提取候选术语:寻找作为关键概念出现的多词名词短语,例如用作领域概念的函数名(如 "sentiment score"、"churn propensity")、指标和阈值名称(如 "accuracy baseline"、"gold standard dataset")、在多个产物中出现的流程术语(如 "evaluation harness"、"prompt iteration")。排除通用技术术语(SQL 关键字、标准 Snowflake 函数名)。
  • 过滤已知术语:移除已作为规范术语或别名出现在词汇表中的候选。如果候选与某个别名重复但增加了有用上下文,则提议更新现有条目而非新增术语。
  • 将候选逐个(或编号列表批量)呈现给开发者,包含:术语、出现位置、AI 推断的简要定义、可选别名、关联函数,以及接受/跳过/编辑定义的选项。
  • 对每个被接受的条目或更新,按指定格式写入 glossary.md:术语标题、定义、别名、关联函数、添加日期(ISO8601)。更新现有术语时,除非开发者明确接受编辑后的定义,否则保留当前定义;追加新别名/函数时不重复已有值。
  • 所有被接受的条目写入后创建 git 提交:feat(grove): add [N] glossary terms。
  • 向开发者确认结果,并提示可通过 $grove glossary view 查看词汇表;词汇表可供 CocoScout 用于上下文加载。

使用方式

命令为 $grove glossary。

前置条件:

  • .cocoplus/ 必须已初始化。
  • 至少存在以下之一:lifecycle/spec.md、flow.json、lifecycle/plan.md、prompts/*.md 或 CocoCupper findings。

执行流程:

  1. 验证初始化:检查 .cocoplus/ 是否存在。若不存在,输出 "CocoPlus not initialized. Run $pod init first." 并退出。
  2. 创建词汇表目录:确保 .cocoplus/grove/language/ 存在,缺失则创建。
  3. 读取已有词汇表。
  4. 扫描项目产物中的候选术语。
  5. 提取候选术语。
  6. 过滤已知术语。
  7. 向开发者逐个或批量呈现候选。
  8. 对每个被接受的条目或更新写入 glossary.md。
  9. 写入后创建 git 提交。
  10. 向开发者确认。

适用场景

  • 项目已初始化 CocoPlus,并存在 spec、flow、plan、prompts 或 CocoCupper findings 等产物。
  • 需要从项目产物中识别并沉淀领域词汇,维护通用语言词汇表。
  • 希望由开发者逐条审阅确认后再写入词汇表,而非自动写入。

限制

  • 不会在未经开发者确认的情况下自动写入任何术语。
  • 不添加通用 SQL/Snowflake 技术术语(如 SELECT、CREATE、无领域上下文的 AI_CLASSIFY)。
  • 找不到产物时不会静默失败,始终报告扫描了什么。
  • 当术语已作为别名或仅大小写变体存在时,不会创建新的词汇表条目。
  • 无法写入词汇表文件时输出文件系统错误,不提交部分条目。
  • 开发者跳过所有候选时输出 "No terms added. Run again after adding more project artifacts."。
  • 未找到新候选时输出 "No new domain terms found." 及已在词汇表中的术语数量。
  • 未找到源产物时输出警告并列出缺失的产物,建议先运行 $spec。

完成标准

  • 候选术语已呈现给开发者审阅。
  • 被接受的术语已写入 glossary.md。
  • 若至少添加了一个术语,则已创建 git 提交。