用途
Review Prompt Composer 用于在当前 Git 仓库内生成一份权威的 Markdown 审核提示词,交给另一个团队或 AI 代理,由其读取同一仓库与工作树来审核 Git 改动。它把共享工作树作为唯一被审核代码来源,不把改动复制成交付工件。若接收方无法访问同一仓库与工作树,则该交付方式不成立,任务应停止。
主要能力
- 范围解析:通过 git rev-parse 与 git status 确定仓库根、分支、HEAD,并将请求映射为单一范围:all-uncommitted、staged-only、unstaged-only、untracked-only 或 ref-range(分支/提交)。仅当不同解释会实质改变被审文件时才追问。
- 只读证据采集:按范围使用 git diff、git diff --cached、git ls-files --others 等命令收集统计、名称状态与完整差异,并读取范围内未跟踪文件;不虚构改动意图。
- 敏感内容门禁:在写入路径、摘要、日志、远端或背景前检查凭据、私钥、令牌、Cookie、.env 值、含凭据 URL、内部地址与个人数据;不打印疑似秘密值,只报告仓库相对路径和风险类型;若安全脱敏会破坏审核完整性则停止。
- 可证伪目标与检查:将核心主张写成审核者需尝试证伪的目标,仅把用户声明意图标为“用户声明的待验证目标”;从 AGENTS.md、仓库文档、package 脚本与 CI 配置中提取确切的测试、lint、类型检查或构建命令并记录预期可观察结果(不运行、不声称已通过),无法可靠确定时省略检查部分并说明原因。
- 提示词正文生成:正文包含工作区与范围、待验证目标、改动清单、审核重点与输出要求,要求审核结果第一行原样返回 Review-Prompt-ID,并给出通过/有保留通过/阻塞结论及按严重程度列出的证据。
- 持久化与新鲜度校验:通过 scripts/write_review_prompt.py 写入 .review-handoff/prompts/active/<branch_slug>/,使用本地时间命名与冲突后缀,记录 UTC 创建与过期时间(24 小时),替换 {{REVIEW_PROMPT_ID}}、{{SCOPE_DIGEST}}、{{VERIFY_COMMAND}} 占位符,提供只读 --verify-prompt 命令,仅在返回 status: fresh 时继续审核。
- 结果返回:不在聊天中重复完整提示词,只返回可点击的绝对路径、prompt_id、范围、摘要与有效期,以及非破坏性归档警告。
使用方式
- 确认接收方可访问同一仓库与工作树;否则停止。
- 解析仓库身份并按用户明确范围执行对应只读 Git 命令采集证据。
- 对拟写入内容做敏感信息检查与必要脱敏。
- 定义可证伪目标,查找仓库内可靠检查命令。
- 用实际证据组装提示词正文,确保三个占位符各出现一次且无其他占位符残留。
- 将正文保存到仓库外部临时 UTF-8 文件,再运行:
python3 <skill-directory>/scripts/write_review_prompt.py --repo "$repo_root" --scope all-uncommitted --body-file "$temporary_body"
ref-range 还需传入已解析的 --base 与 --target;其他范围不传。
- 读取 JSON 结果、删除临时正文、完整读取最终提示词文件,核对路径、ID、范围、HEAD、有效期、必需标题及无未解析令牌后报告成功。
适用场景
- 需要把本地 Git 改动以提示词形式交给其他团队或 AI 代理在同一工作树中审核。
- 需要明确区分暂存、未暂存、未跟踪与分支/提交范围的审核交接。
- 需要为审核提供可复现的新鲜度校验与范围摘要,避免基于过期快照评审。
限制
- 依赖接收方能读取同一仓库与工作树;不支持无法共享工作树的交付模式。
- 不支持未跟踪的嵌套 Git 仓库及其他非文件、非符号链接条目;遇到时写入与新鲜度检查以相对路径错误停止,需另设明确审核范围。
- 选定范围为空时停止,不写提示词。
- 不运行任何检查命令,不提交、暂存、取消暂存、stash、推送或发送提示词。
- 不自动删除过期或格式错误的提示词,不覆盖已有活动或归档提示词,冲突时追加后缀。
- 提示词摘要不能作为审核发现的证据;HEAD 与状态路径相同也不等于内容新鲜,须以 --verify-prompt 返回 fresh 并逐项核对完整范围差异为准。
- 仅限于写出提示词文件与隐藏 .review-handoff/ 所需的本地 exclude 条目,不修改被审源码、测试、配置、索引、HEAD、受跟踪忽略文件或仓库配置。