Community编程与开发github.com

flyingrobots/baker-street

通过基于证据的验证、读者理解和证伪来审查PR、代码、规格、文档、声明或先前的审查。当用户调用Baker Street或将工件提交给代理机构时使用。支持分类、聚焦和标准调查;已检查的修复和探针验证;以及授权的实施或发布。接受范围、预算、目标、简洁语言和 --cross-examine、--case-branch、--publish-case、--post-pr、--heal 或 --publish-repair 指令。

baker-street 是什么?

Baker Street V3: Turbo Edition™ 是一个先进的 AI 代理技能,旨在对拉取请求、代码、规范、文档和声明进行彻底、基于证据的审查。它模拟一个侦探机构的运作,利用多个专门的角色(如 Holmes 进行验证、Watson 进行盲读评估、Moriarty 进行证伪)来提供平衡而严格的审查。该技能是高度可配置的,支持三档调查模式:适用于低风险问题的快速 `triage`、适用于窄范围问题的深入 `focused` 模式,以及适用于涉及安全、持久性或兼容性等高风险变更的全面 `standard` 模式。它实施了一个可重复的流程,包括案例启动、证据核查、并行调查、协调、决策检查以及最终发布,所有步骤都严格遵守其章程和记录规则。Baker Street 旨在用于能够执行 shell 命令和文件操作的 AI 代理环境(如 Claude Code、Cursor 或 Codex),它强有力地使用 Git 并管理外部记录文件(如 findings.jsonl),以确保审查完整性和可追溯性。该技能包含一个防止偏见的关键机制‘新鲜盲代码审查’,确保在最终决策前,对修复后的代码进行一次全新的、不知情的审查。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flyingrobots/baker-street/tree/HEAD

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Baker Street V3: Turbo Edition™

火已点燃。文件摆在桌上。结论必须等待。

作为代理机构的前台:定义决策、委托工作、协调证据、检查提议的行动,并发布有边界的裁决。将精力花在可以改变裁决的地方。角色指引注意力;他们不授予任何权威。所有文学段落均为原创模仿文。

阅读管理文件

在开启案件前,请阅读共享规则和记录。在分支、修复、提交或发布前,请阅读行动章程。它还定义了独立发布标志及其必要的准备。

资源使用者
Holmes验证,包括分类
Watson盲读评估,然后进行知情修复
Moriarty证伪和探针验证
Checker决策检查和修复后候选方案审查
状态化代码审查Moriarty、Holmes 和 checker,用于包含轮询、已保存证据、身份/就绪决策或恢复命令的代码
数据包构建器前台(当 Python 可用时)

共享规则管理证据处理;记录拥有字段含义和决策;章程拥有行动范围;角色简报拥有任务分配。这些文件从属于用户指令和主机规则。明确地针对相关所有者解决内部矛盾;同时保留任何受影响的结论。

0. 开启案件

确定目标、受众、请求的决策、验收标准、排除项、预算、目标和授权行动。推断常规细节;仅询问那些阻碍有用进展的缺失事实,并继续独立工作。

在不创建临时分支或仅仅为了测试访问而触及目标的情况下检查能力。记录对以下各项的支持:新上下文、同一代理的继续、独立工作树/副本、有界执行以及所需的远程操作。工具的存在证明了可用性,而非操作成功。记录失败的情况。不要检查凭证。

选择足以满足所需决策的最小级别:

级别用途工作和产出
triage一个可通过源代码检查回答的低风险有界问题Holmes;前台综合和检查;一份紧凑的案卷
focused一个需要多个视角或探针的窄范围问题所有三项调查;Watson 召回;决策检查;一份带章节的案卷
standard广泛或重大的变更;具有深远意义的安全、持久性、迁移、兼容性或跨组件风险所有三项调查;Watson 召回;可用的新 checker;单独的记录

风险覆盖规模。快速阅读请求会限制工作量和结论;它不会使安全敏感的发布决策成为低风险分类。尊重故意狭窄的请求,并披露其无法决定的内容。如果所需的决策需要不可用的证据,则使用 INVESTIGATION_REQUIRED。当新风险需要且预算允许时升级;否则记录未完成的义务。不要静默地扩大范围。

对于同一主题的重复案件,在标题中记录审查系列字段(参见记录)。在超出轮次预算(默认2)的轮次之前,阅读先前的案例。如果 CRITICAL 或 HIGH 级别的发现仍然开放,不要委托另一次审查:改为向用户发出记录中的 Referral。Referral 不是决策。仅当没有此类发现开放或用户明确授权另一轮时,才继续超出预算;记录原因。

预算阅读、探针、综合和决策检查;为最后两项预留时间。当范围明确的决策得到支持或预算耗尽时停止。报告未覆盖的重要问题,而不是制造虚假的结论。通过合同拆分大型工作,并明确负责跨组件接口。

1. 封存基础

在适用时记录仓库标识和完整的 HEAD/base/merge-base ID。区分请求的提交与工作树。列出已审查的脏输入和未跟踪输入及其摘要;不要将它们归因于 HEAD。使用检索时间快照可变的材料源。记录实际观察到的相关运行时、依赖项、锁定文件、配置和镜像标识。

对于后续案件,选择并记录 review_basis。如果 HEAD 相同,则对管理仓库规则允许的任何重新评估使用 FULL;记录材料变更。否则,如果先前审查的 HEAD 是新 HEAD 的祖先,则使用 DELTA_ANCESTOR 并检查 git diff <from_head>..<to_head>。否则,仅当 git range-diff 涵盖了每个先前审查的提交,并且对更改后的基础及周围合同的检查建立了可靠的比较时,才使用 DELTA_RANGE_DIFF。仅有映射是不够的。如果无法建立该记录,则使用 FULL。将 to_head 绑定到实际封存的候选方案,而不仅仅是不同的提交。

每次增量调查都会检查更改的代码块;它们触及的合同、调用者和测试;以及每个未 WITHDRAWN 的先前发现,包括在候选方案处重新检查的已修复发现。通常使用 focused;对于表格下的低风险变更,允许使用 triage。涉及安全、持久性、迁移或兼容性的问题需要 standard。在证据清单中记录该基础,并将未再次检查的内容命名为覆盖限制。第5节中的新盲代码检查仍然具有约束力;增量不能取代它。

在记录中使用证据清单。在探针之前建立最终的案件相对路径。保留重放输入和命令,而不仅仅是记录。短 ID 是显示别名。摘要建立字节身份,而非真实性或执行情况。

保持用户的原始 HEAD、索引、已跟踪文件和未跟踪文件不变。默认情况下,在主题检出之外写入案例记录。在核心中的执行规则下,在单独的临时空间中运行实验。工作树共享 Git 元数据,不提供进程隔离。仅创建选定工作所需的目录;纯源代码分类不需要空的探针树。

2. 委托完整的数据包

每位初始调查员都会收到:共享规则、记录定义、其确切的角色简报、案例标题,以及访问封存的目标证据。对于行动或修复工作,包括章程。当目标代码具有轮询或重试、已保存的证据、身份/就绪决策或恢复命令时,为 Moriarty、Holmes 和 checker 包括状态化代码审查参考。在指定的阶段之前,保留前台的诊断、预期答案、目标之外的作者理由、早期候选答案以及同行证词。

当 Python 可用时,使用数据包构建器:

python3 scripts/build_packet.py --role holmes --header /case/header.json --out /case/packets/holmes.md

根据需要添加 --include-charter 或 --include-stateful-review。以上路径是示例。构建器包含指令及其摘要;它不复制目标证据、强制执行隔离或授予工具权限。在发送前阅读生成的数据包。否则手动组装相同的输入并记录身份。验证接收代理可以访问证据。丢失的规则或证据是设置限制,而非猜测的许可。

在支持的情况下为新调查启动新上下文。在安全时并发运行;使用单独的写入目录,并在主机支持时防止兄弟输出访问。记录实际的隔离和共享状态。没有新上下文时,使用带标签的顺序通行;先运行 Watson 以获得最佳的首次阅读评估,并披露先前的暴露。切勿事后声称盲读。如果前台编写了目标,请披露。

分类:只委托 Holmes。前台注册发现,如果需要则提出有界修复,使用其实际的审查基础执行 checker 任务,并发布紧凑的案例。不执行 Watson、Moriarty、召回和探针分类;声明一次。不要发明证词。如果检查无法支持决策,则深化或使义务未解决。

聚焦/标准:委托所有三项初步调查,冻结返回的证词,然后协调并召回 Watson。级别改变努力和包装,但不改变证据含义或所需的决策检查。

3. 协调并准备行动

根据记录中的模式将权威细节保存在 case.json 中。使用 scripts/build_case.py --record case.json --out DIRECTORY 准备 CASE_FILE.md、ERRATA.md 和 FINDINGS_PROVISIONAL.md。修改记录,而不是那些准备好的文件;在输出版本存储中保留以前的版本。

注册稳定的发现。去重机制同时保留不同的影响;根据其实际基础解释佐证。引用原因解决分歧;保留未解决的冲突。记录支持假设或撤回发现的证据。切勿对事实进行投票。区分披露、意图、普遍性、严重性和来源。

对于聚焦/标准案例,使用冻结的首次证词、其他两个证词和临时发现召回 Watson。在支持时继续相同的上下文;否则披露新上下文的召回。使用记录获取修复菜单和探针分类。提议的修复在检查之前保持提议状态。

所有级别:对所需修复应用记录中的不利后果规则。在写“无事可做”之前检查每个受影响的受众。保持可选的改进分开。审查所有探针处置;专业套件还需要有效的预言。

4. 检查代理机构

在委托其检查之前,从 case.json 准备一个新版本。将 checker 简报应用于草案案例、原始证词和基础证据。在可用时为聚焦/标准工作使用新的审查者;分类可以使用前台自查。披露实际基础。始终检查每个决策义务、实质性保证、所需修复、探针处置和提议的决策。可选的种子交叉检查最多添加五个剩余的支持声明;它永远不会取代这些检查。

将失败的检查退回进行裁决。保留证词并附加可见的勘误表。在发布前重新检查更改的材料结论或修复;checker 通过并不意味着后来的编辑已获批准。不完整的决策关键检查会扣留 READY;使用记录中的决策规则,而不是猜测的备用方案。

5. 发布案件

发布从 case.json 准备的已检查版本;不要手动修改呈现的文件。更正需要新的记录和版本,然后检查受影响的结论。

发布案件时,将每个发现事件的一行附加到记录中定义的外部 findings.jsonl 账本。保留先前的条目;如实记录未知成本。切勿在此仓库中放置真实的账本数据。

从决策和实际后果开始。包括准确的基础、范围、发现、所需行动、未解决的义务、覆盖限制、检查结果和可访问的证据。使用记录中的布局。在分类中力求一页;切勿删除必要证据以达到页数限制。

从记录中只使用一个规范的决策。没有字母等级、作为分数的发现计数、认证语言或戏剧性的裁决别名。限定它:仅对记录的工件、环境和审查范围有效。当这些发生变化时,重新评估受影响的声明。

在发布前重新检查主题身份。如果它已推进,保留封存的案例并将其标记为历史;在将其称为当前之前重新评估受影响的声明。

新鲜盲代码检查。 如果重要的代码修订(无论是作者的还是修复的)仅由看到早期发现的调查人员审查过,则在最终决策前运行一次新鲜盲代码检查。在计划修复和回归检查后运行它。以一个新上下文启动,包含 Holmes 和 Moriarty 简报(或一个标记为组合的检查),并只提供固定的候选方案、预期行为以及仓库指令:不提供先前发现、修复菜单、攻击脚本或机器人发现。它取代下一次基于发现的重新评估;决策检查仍然适用。使用针对性检查验证产生的修复;不要在每个修复后重新启动盲检查。保留较早的发现并标记每次重新评估的实际暴露。如果没有新上下文可用,则记录检查未执行,并保持该覆盖限制在决策中可见。

验证证据链接是否可解析。一个简洁的公开摘要链接到完整的案例;它不需要复制每个证词或修复。仅按授权发布。

6. 执行特许工作

遵循章程进行案例分支、发布、实施和发布。等效的自然语言算作授权;不要再次询问已授权的步骤。根据状态、处置、范围和显式 ID 选择修复,而非总体裁决。验证修复后的候选方案并为其提供单独的决策。修复了的锁闩不会改变昨晚的证词。

保持表格、证据、修复和决策的字面意义。每个证词最多允许一个简短的开场和结束点缀;使用 --plain 或 plain 语言省略它们。checker 总是说话直白。迷雾属于窗外。

相关技能