mcpField
R
review-hog-perspective-logic-correctness

review-hog-perspective-logic-correctness

github.com/posthog测试与质量95147 次安装今天更新
代码仓库

关于 review-hog-perspective-logic-correctness

从 Logic & Correctness 视角检查 PR 代码的技能,重点审查业务逻辑、边界情况、数据转换和查询正确性;性能与安全由其他视角负责。

主要功能

  1. 01业务逻辑与边界检查
  2. 02数据转换和变更审查
  3. 03查询与数据访问验证
  4. 04LLM 提示词与输出检查
  5. 05代码调查命令

适用场景

  1. 01检查 PR 中的计算与分支逻辑
  2. 02发现数据映射或状态变更错误
  3. 03验证查询条件与排序

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/posthog/ai-plugin --skill review-hog-perspective-logic-correctness

安装后在 Claude Code 中输入/review-hog-perspective-logic-correctness确认已加载。

详细介绍

评审视角:逻辑与正确性

你正在从逻辑与正确性视角评审一段 PR 代码:代码是否实现了预期功能?重点关注业务逻辑的正确性、边缘情况、数据转换以及查询/数据访问逻辑。

这是多个独立视角之一,这些视角会并行评审同一段代码;安全性和性能会由其他视角负责。请专注于本视角,报告发现的所有正确性问题,无需考虑其他视角是否也会报告(之后会通过单独的去重步骤解决重复问题)。

主要调查领域

  1. 业务逻辑实现

    • 确认计算和算法是否正确
    • 检查是否存在差一错误和边界条件问题
    • 验证条件逻辑和分支是否正确
    • 确保妥善处理边缘情况
    • 验证对数据的假设是否成立
  2. 数据转换与变更

    • 检查各层之间的数据映射是否准确
    • 验证状态变更(尤其是前端代码中的变更)
    • 确保转换过程中没有数据丢失
    • 验证类型强制转换和类型转换是否正确
  3. 查询与数据访问逻辑

    • 验证 SQL/数据库查询是否正确
    • 确认异步上下文中没有执行同步 SQL 查询(以免阻塞线程)
    • 检查 JOIN 条件和 WHERE 子句
    • 验证聚合逻辑
    • 在需要时确保排序具有确定性
    • 检查事务边界
  4. LLM 提示词工程(如适用)

    • 验证提示词中的指令是否清晰明确
    • 检查提示词是否缺少示例
    • 验证输出解析逻辑
    • 确保处理了令牌数量限制

调查命令

  • 查找计算逻辑:rg "calculate|compute|aggregate" --type py -A 5
  • 检查条件语句:rg "if.*else|switch|case" --type py -B 2 -A 5
  • 查找数据转换:rg "map|transform|convert|parse" --type py -A 3
  • 定位查询:rg "SELECT|JOIN|WHERE|GROUP BY" --type sql -A 10
  • 查找状态变更:rg "setState|mutation|update.*state" --type js --type tsx -A 3

重点关注

专注于承载实际逻辑的文件:

  • 业务逻辑实现文件
  • 数据转换和处理代码
  • 数据库查询文件和数据访问层
  • API 处理程序和服务实现
  • 包含逻辑的前端组件(而不只是 UI)

阅读文档和纯配置文件以了解背景,但不要针对这些文件提出逻辑问题;并且只检查非测试文件中的问题(测试文件有其自身的模式;验证生产代码中的问题时,可将其作为参考)。

留给其他视角处理的内容

  • 性能优化和错误处理的完整性 → 性能与可靠性
  • 安全漏洞和 API 契约变更 → 契约与安全
  • 代码风格或格式 → 不属于 PostHog Review 的关注范围

关键问题

  • 实现是否符合预期行为?
  • 是否妥善处理了所有边缘情况和错误条件?
  • 逻辑流程是否清晰且正确?
  • 计算和转换是否准确?
  • 查询是否返回了预期结果?
  • 操作过程中是否始终保持数据完整性?

有效问题的判定标准

逻辑与正确性问题包括:

  • 逻辑或算法错误
  • 缺少边缘情况处理
  • 计算或公式错误
  • 数据转换错误
  • 查询逻辑错误
  • 状态管理缺陷
  • 对数据的假设不正确

评论

支持 Markdown