
Fabric review_code 模式实战用 AI 完成结构化、可落地的代码审查【免费下载链接】FabricFabric is an open-source framework for augmenting humans using AI. It provides a modular system for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.项目地址: https://gitcode.com/GitHub_Trending/fa/Fabric导读review_code是 Fabric 开源仓库data/patterns/中内置的一组 AI 提示词模式Pattern它让模型以首席软件工程师的身份对代码片段或 diff 进行系统化审查并输出带优先级排序、可逐条改进的结构化 Markdown 报告。本文以该模式的完整提示词为骨架结合 Fabric 的源码实现讲解其审查维度、输出格式、完整示例并给出 CLI 与 REST API 的实际调用方式帮助你把它接入自己的日常代码审查工作流。一、模式定位让 AI 扮演首席软件工程师Fabric 是一个用 AI 增强人类的开源框架核心思路是把解决特定问题的提示词封装成一个个可复用的模式Pattern每个模式存放在独立的目录中包含system.md系统提示词与可选的user.md用户输入模板。review_code正是其中专用于代码审查的模式其官方描述为Performs a comprehensive code review, providing detailed feedback on correctness, security, and performance.对应的标签为DEVELOPMENT、REVIEW、SECURITY见 scripts/pattern_descriptions/pattern_descriptions.json说明它聚焦开发过程中的审查、安全与质量改进场景。该模式的系统提示词data/patterns/review_code/system.md明确了两个核心设定角色ROLE AND GOAL模型被要求扮演一位以细致入微著称的首席软件工程师Principal Software Engineer目标不是单纯挑错而是帮助其他开发者提升代码质量——识别潜在问题、给出具体改进建议并解释背后的原理。这一定位决定了审查输出是教育性educational和建设性constructive的而非冷冰冰的缺陷清单。任务TASK输入是一段代码片段或一个 diff输出是一份详细的审查报告。从 Fabric 的架构看这种以系统提示词驱动模型的方式正是模式系统的核心价值提示词本身是开源可审阅、可迭代的任何人都可以在 data/patterns/ 下看到全部模式的完整内容无需把审查逻辑硬编码进二进制。二、模式如何被 Fabric 加载与使用要理解review_code的实战用法先看它在 Fabric 中的加载链路。Fabric 的模式存储在data/patterns/目录下由internal/tools/patterns_loader.go中的PatternsLoader负责默认从配置的 Git 仓库DefaultPatternsGitRepoUrl拉取模式文件目标目录为data/patterns下载后通过movePatterns()拷贝到配置目录并写入一个loaded标记文件表示模式已就绪createUniquePatternsFile()会扫描主目录与自定义模式目录生成按字母排序的模式名清单。换句话说review_code的system.md就是通过这套流水线进入本地 Fabric 环境的安装/更新模式后即可直接调用。在 CLI 层面模式的选择通过 internal/cli/flags.go 中定义的-p / --pattern参数完成Choose a pattern from the available patterns基本调用方式为在终端中执行# 将代码文件内容作为输入交给 review_code 模式审查 cat your_code.py | fabric --pattern review_code # 审查某次提交的 diff git diff HEAD~1 | fabric --pattern review_codeFabric 还支持为所有模式生成 shell 别名使其像普通命令一样使用例如把review_code变成直接可执行的命令见 README.md 中Add aliases for all patterns一节别名形式为fabric --pattern pattern_name。此外Fabric 提供 REST API 服务模式可通过 HTTP 端点调用例如POST /patterns/:name/apply支持传入输入与变量后应用指定模式见 internal/server/patterns.go这使得review_code可以被集成进 CI 流水线或 Web 工具中。三、审查方法论六维系统化分析模式的核心方法论在 STEPS 第 2 步要求模型在写作之前先对代码进行心理分析并对照以下六个维度逐一评估分析过程本身不写入输出只作为形成审查结论的依据维度关注的核心问题Correctness正确性是否存在 bug、逻辑错误或竞态条件race conditionsSecurity安全性是否存在潜在漏洞如注入攻击、敏感数据处理不当Performance性能能否在保持可读性的前提下优化速度或内存占用Readability Maintainability可读性与可维护性代码是否干净、文档是否充分、他人是否容易理解与修改Best Practices Idiomatic Style最佳实践与惯用风格是否符合既定约定、设计模式以及该语言的惯用写法Error Handling Edge Cases错误处理与边界情况错误是否被优雅处理相关边界情况是否都被考虑到这套维度的设计很值得借鉴它先保证正确性与安全性这类硬性问题再谈性能这种可量化指标最后落到可读性、最佳实践、错误处理等长期可维护性因素覆盖了一次高质量代码审查的全部关键面。模式的 STEPS 还强调第 1 步理解上下文先仔细阅读给定代码及其附带上下文彻底理解其目的、功能与要解决的问题再开始分析。这意味着使用该模式时输入越完整例如附带相关函数的调用关系、模块说明审查结论越准确。四、输出格式必须严格遵循的三段式报告模式要求审查结果必须是 Markdown并严格遵循以下结构4.1 Overall Assessment总体评估一段简短的高层总结说明代码质量的总体情况指出其优点strengths与最主要的改进方向primary areas for improvement。4.2 Prioritized Recommendations优先级排序的建议按重要程度从高到低编号的关键改动清单1. 最关键的改动 2. 第二关键的改动 3. ...优先级排序的意义在于让开发者不必从一堆琐碎意见中自行分辨轻重缓急而是直接先处理影响最大的一两条。4.3 Detailed Feedback逐条详细反馈针对识别出的每一个问题按如下固定模板逐条展开**[ISSUE TITLE]** - 例如 Security、Readability、Performance **Original Code:**原始代码 [language] // 存在问题的具体代码行Suggested Improvement:改进建议// 修订后的改进代码Rationale:理由 清晰、简洁地解释为什么推荐该改动可引用最佳实践、设计模式或潜在风险如涉及高级概念需简要解释。这个原始代码 → 改进建议 → 理由的三段式模板是整套输出的灵魂它不仅指出哪里有问题还给出怎么改和为什么改正好呼应了角色设定中解释底层原理的教育性目标。 ## 五、完整示例剖析从 N1 查询到防御式编程 模式自带一个 Python 示例完整演示了上述格式的落地方式。下面结合示例逐段解读同时补充其中隐含的工程原理。 **示例场景**一个按用户 ID 列表批量获取用户邮箱的函数。 ### 5.1 Overall Assessment 示例 The function correctly fetches user data, but it can be made more robust and efficient. The primary areas for improvement are in error handling and database query optimization. 这段总结符合模板要求先肯定功能正确再点明两个改进主方向——错误处理与查询优化。 ### 5.2 Prioritized Recommendations 示例Avoid making database queries inside a loop to prevent performance issues (N1 query problem).Add specific error handling for when a user is not found.两条建议按影响排序性能问题N1放在首位因为它在数据量大时影响最严重错误处理次之。 ### 5.3 Detailed Feedback 示例解读 **第 1 条[PERFORMANCE] - N1 Database Query** 原始代码 python def get_user_emails(user_ids): emails [] for user_id in user_ids: user db.query(User).filter(User.id user_id).one() emails.append(user.email) return emails改进代码def get_user_emails(user_ids): if not user_ids: return [] users db.query(User).filter(User.id.in_(user_ids)).all() return [user.email for user in users]理由分析模式原文原始代码对列表中的每一个user_id执行一次数据库查询这就是著名的N1 查询问题在大列表上性能极差改进方案用一条IN查询取回所有用户效率显著更高。这个示例还顺带演示了另一个工程细节——if not user_ids: return []处理了空列表的边界情况。第 2 条[CORRECTNESS] - Lacks Specific Error Handling原始代码user db.query(User).filter(User.id user_id).one()改进代码from sqlalchemy.orm.exc import NoResultFound try: user db.query(User).filter(User.id user_id).one() except NoResultFound: # Handle the case where the user doesnt exist # e.g., log a warning, skip the user, or raise a custom exception continue理由分析模式原文.one()在给定 ID 的用户不存在时会抛出NoResultFound异常导致整个函数崩溃显式用 try/except 处理能让函数更具韧性。这里值得注意的是改进代码中的continue——它暗示调用方应把该段逻辑放入循环说明示例同时示范了如何结合上下文编写修复代码。这两个示例恰好分别对应六维分析中的Performance与Correctness/Error Handling维度可以作为向团队成员演示什么是高质量审查反馈的现成教材。六、实战接入把 review_code 融入日常流程结合 Fabric 的机制review_code可以灵活地接入多种场景1. 本地代码审查# 审查单个文件 fabric --pattern review_code path/to/file.py # 审查未提交改动 git diff | fabric --pattern review_code # 审查最近一次提交 git show HEAD | fabric --pattern review_code2. 输出保存与查看Fabric 的-o参数可将审查报告写入文件见 internal/cli/flags.go 中-o/--output的定义git diff | fabric --pattern review_code -o review_report.md3. 审查其他模式的作品Fabric 的理念是模式可以互相组合例如先用explain_code模式理解一段不熟悉的代码再用review_code审查它或让review_code审查你自己正在开发的 Fabric 模式提示词借助教育性反馈反向优化提示词质量仓库中的 create_pattern、improve_prompt 等模式可配合使用。4. 服务化集成运行fabric --serve启动 REST API 后可用POST /patterns/review_code/apply传入{input: 代码内容}获取审查结果路由定义见 internal/server/patterns.go 中的ApplyPattern适合嵌入 CI 或团队审查工具。使用前提上述命令需要本机已安装并配置好 Fabric含可用的模型供应商配置且模式数据已通过fabric --updatepatterns或安装流程加载到本地data/patterns/。由于模式本质上是一段提示词其审查质量与所选模型的推理能力直接相关。七、小结review_code的价值在于把好的代码审查标准化它规定了角色、分析维度、输出结构与反馈粒度让 AI 的审查结果始终是可操作、可排序、可追溯的。无论你是用命令行审查自己的 diff还是把它接进 CI 流程这套模式都能在保持指出问题的犀利同时兼顾教会别人的温和——这正是它被归入DEVELOPMENT / REVIEW / SECURITY标签的用意所在。想深入了解模式系统的运作方式可以继续阅读 internal/tools/patterns_loader.go 与 README.md 中关于模式管理与使用的章节。【免费下载链接】FabricFabric is an open-source framework for augmenting humans using AI. It provides a modular system for solving specific problems using a crowdsourced set of AI prompts that can be used anywhere.项目地址: https://gitcode.com/GitHub_Trending/fa/Fabric创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考