SuperAPI AI 工具集

research-curator

写作与研究

查看项目

更新于 10-16 09:06

技能介绍

Research Curator 是一个多模式编排器,用于管理 ./research/ 目录下的研究条目生命周期,涵盖条目创建、维护与校验。它通过生成 @research-curator 智能体来执行内容工作,自身负责协调、README 更新以及后续操作。

模式路由

工具解析 <mode_args/> 来选择运行模式。在执行任何模式之前,会先捕获 git status --porcelain --untracked-files=all -- ./research/ 的基线(即本次调用写入前、README 更新或 curator 智能体写入任何内容之前的状态)。对于每个 --rerun 目标,还会在基线中记录 git hash-object {path}。后续操作会与此基线比较,以区分本次运行自身的写入与其他贡献者预先存在的未提交工作。--untracked-files=all 是必需的:默认行为会将未跟踪目录折叠为一行,因此新未跟踪目录中预先存在的未跟踪文件将无法匹配基线,并被错误归类为本次运行自身的工作。

模式选择逻辑:若 <mode_args/> 包含 --batch 则执行批量模式;若无 --batch 但包含 --rerun 则执行重跑模式;若无上述标志但包含 --validate 则执行校验模式;若无任何标志而仅包含 URL 则执行默认模式(单个 URL)。

代理结果中继规则

只要编排器收到任何 @research-curator 智能体的结果,这些规则便适用,且在向用户报告前应用:

  • 规则 1——保留精确数量:智能体报告数字时,原样转述这些精确数字,不得用“大部分找到”“若干个问题”等模糊说法替代。
  • 规则 2——保留失败原因:转述具体原因而非泛化,例如“HTTP 403 Forbidden”应转述为“access denied (HTTP 403)”而非“not available”。
  • 规则 3——引用产物而非重新总结:当智能体写入文件或提交问题时,在中继中包含其路径或问题编号与 URL。
  • 规则 4——转述结构而非解释:当智能体返回 STATUS/ARTIFACTS/WARNINGS 块时,保留该结构,不要折叠成一句话。
  • 规则 5——区分观察与结论:“Config has no timeout field”(观察)不同于“timeout defaults to 30s”(智能体的结论),应保持二者区别。

默认模式——单个 URL

触发条件:<mode_args/> 包含一个 URL 且无标志。工作流:解析提取 URL;在生成智能体前执行重复检测;通过 Agent 工具生成 @research-curator 智能体(新条目无已存在条目时提示“Research and create an entry for: {URL}”,若第 2 步发现已存在条目则提示“--rerun ./research/{category}/{name}.md”);等待结构化结果(状态、文件路径、类别、关键发现);校验——curator 在返回前自检并修正自己的条目,因此此关卡确认该检查而非驱动修复循环;若研究状态非 failed,则运行针对新建/刷新条目的校验关卡,若结果为“mark issues”则将条目标记为“created with issues”(或第 2 步路由到 --rerun 时的“refreshed with issues”),跳过步骤 6–8,并使用校验器 JSON 中的精确错误或警告文本向用户报告;若结果为“proceed”则继续步骤 6;交叉引用——若研究状态非 failed,生成 linker 并转述其 CROSS_REFERENCES_ADDED 计数;评审——对条目运行 Entry Review;重叠扫描——当第 2 步未发现已存在条目且 Entry Review 返回 PASS 时运行 Overlap Scan;后续操作——lint、commit、push。

错误处理:若智能体返回 status: failed,或超时未返回,则按 Failure Recovery 处理后再报告;未写入任何内容的失败智能体:向用户转述精确失败原因并停止。失败时不要创建部分条目或更新 README。

批量模式

触发条件:<mode_args/> 包含 --batch。URL 解析:提取 --batch 之后所有匹配 https?:// 的令牌作为目标 URL,非 URL 令牌忽略并警告。重复检测:对每个 URL 在生成前执行重复检测。波次生成:每波通过 Agent 工具最多生成 5 个 @research-curator 智能体,等待当前波次全部完成后再生成下一波。所有波次完成后,对每个成功条目运行针对新建/刷新条目的校验关卡。进度报告:每波之后转述智能体输出中的精确计数和精确失败原因。

重跑模式

触发条件:<mode_args/> 包含 --rerun。流程包括:解析目标值(category/name 单条目路径或 all 全部条目);对单条目验证文件是否存在,不存在则报错停止;生成 @research-curator 智能体并提示“--rerun ./research/category/name.md”;应用代理结果中继规则;在校验关卡中,若仍有错误或门控警告在 --fix 重试后仍未解决,则标记该条目标记为 refreshed with issues,跳过交叉引用和评审,不刷新 README 日期,向用户报告精确问题文本;若干净则生成 @research-cross-referencer。对 all 情形,运行 validate_research.py main --json ./research 收集 entries[].file 作为条目路径,以每波 5 个生成 curator 智能体。

校验模式

触发条件:<mode_args/> 包含 --validate。validate_research.py 依据 Validation Rules 检查每个条目,并输出以条目为键的 JSON(entries[].issues[],每项带该参考定义的严重级别)。脚本调用:

uv run .claude/skills/research-curator/scripts/validate_research.py main --json ./research/{target}.md # 单条目 uv run .claude/skills/research-curator/scripts/validate_research.py main --json ./research/ # 全部

问题处理:error——生成带 --fix 的 @research-curator 及从 JSON 提取的精确问题列表;warning——将精确警告文本包含在给用户的报告中,不自动修复。修复智能体委托的提示格式包含条目路径与逐条问题。若修复智能体失败或超时,则其条目的错误保持原状,在报告中列为未修复。

条目评审

在默认、批量和重跑模式中运行,在该模式的交叉引用器返回后、重叠扫描和后续操作之前。将本次运行创建或刷新的每个条目循环通过评审与修正,对照 Entry Review Rubric。

先修复互惠性:@research-cross-referencer 仅写入前向链接,因此其返回时知识库是不对称的,评审会因本次运行即将修复的缺陷而使每个条目不通过。在生成任何评审前,先运行后续操作步骤 2 的反向链接修复。评审循环按条目逐个运行,每波 5 个条目。临时文档 .tmp/scratch/reports/{category}-{name}-review.md 承载条目在所有轮次中的发现。

循环运行评审者、工作者、评审者、工作者直到评审者通过。当某轮结束时未检查的 D 行 id 与上一轮相同(无进展;R 行除外),或经过 5 轮评审后停止。条目是带摘要的书签,因此停止结果取决于每行未检查项所属的门:机械门(1 和 4:格式、校验器、禁用措辞),停止后仍未检查的行属于 UNRESOLVED,机械修复无需研究,因此该失败是流程缺陷;语义门(2 和 3:保真度和深度),停止后仍未检查的行属于尽力而为,条目被 ACCEPTED 并如 PASS 般继续,但不进行重叠扫描,源是真相,评审者发现源不支持的内容应丢弃而非再次争论,未检查的行进入报告,绝不出现在条目中。