SuperAPI AI 工具集

crit-story

编程与开发

查看项目

更新于 10-16 04:31

技能介绍

用途:crit-story 用于为代码差异撰写“故事模式”概览,把 diff 按主题(而非按文件)聚类成 prologue、chapters、support 结构,随后进入与 /crit 相同的交互评审循环:等待 → 处理评论 → 下一轮。仅在用户明确要求生成 crit story 时调用,不应从普通评审、PR 或 diff 评审请求中推断使用。

主要能力与用法:

  1. 获取指南:运行 crit story --guide,打印当前解析出的撰写指南(若用户有自定义版本则用其版本)及需输出字段的 JSON schema,以该指南为准。
  2. 写准备文件:运行 crit story --prep /tmp/crit-story-prep.txt,把完整未裁剪的 diff(提交信息与每个 hunk 及其 (file_path, old_start) id)写入指定路径并打印路径;diff 不会内联进指南提示,需读取该文件。
  3. 撰写故事 JSON:按指南按主题聚类 hunk,只写 prologue、chapters、support 到临时文件(如 /tmp/crit-story.json),不要包含 version、generated_at、agent、base_sha、head_sha、scope_fingerprint、coverage,crit 会自行填充。
  4. 导入:运行 crit story --story-file /tmp/crit-story.json。退出码 0 表示已保存并打开浏览器;退出码 1 表示被拒,stdout 会以 JSON 打印覆盖报告(缺失/重复 hunk)。重复非空需决定归属后重新导入;缺失非空且 auto_repaired 为 true 时 crit 已回填到 support[];出现“diff changed since prep”漂移错误需重新运行 --prep 并重新撰写。
  5. 重连并等待:导入成功后必须运行 crit(后台运行,run_in_background: true,timeout: 86400000),否则 Claude Code 会在 30 分钟后停止后台命令;crit 会重连到导入时已启动的守护进程并阻塞,直到用户点击 Finish Review。若导入打印了评审 URL,需原样转达。
  6. 读取评审输出:crit 完成后读取 stdout 并按其指示操作,检查 stderr 的 approved: true/false;若已批准则告知用户无修改请求并停止。回退方式:crit comments 或 crit comments --json。
  7. 处理评论:故事模式是底层 diff 的编辑视图,评论应针对实际源文件处理,除非用户明确要求,不要编辑或重新生成已保存的故事 JSON。对每条未解决评论,理解诉求、应用建议块、用 Edit 修改源文件,并用 crit comment --reply-to <id> --author 'Claude Code' '<内容>' 回复;不要传 --resolve,是否解决由评审者决定。长内容可写 JSON 文件后用 --file 传入。
  8. 完成并开始下一轮:stdout 的完成提示包含再次运行的命令,用它开启新一轮;后续调用会先自动发出 round-complete 信号,再阻塞等待下一次 Finish Review。

限制:撰写故事时不产生代理编写的评审评论,评论由人在浏览器中留下;评审循环中不编辑或重新生成已保存的故事 JSON(除非用户明确要求);不运行裸 crit story(经 agent_cmd 调用 LLM),除非用户明确要求;不调用 crit push 或 crit share,除非用户要求分享。若需将超时上限提高到 24 小时,可在 ~/.claude/settings.json 中加入 "env": { "BASH_MAX_TIMEOUT_MS": "86400000" },需合并而非覆盖其他设置,重启 Claude Code 后生效。