|
| 1 | +# Analyze PR |
| 2 | + |
| 3 | +分析 GitHub Pull Request,评估必要性、描述完整性、验证证据、主要风险与是否可直接合入。 |
| 4 | + |
| 5 | +**Repository**: https://github.com/ZhuLinsen/daily_stock_analysis/pulls |
| 6 | + |
| 7 | +## Usage |
| 8 | + |
| 9 | +```text |
| 10 | +/analyze-pr <pr_number> |
| 11 | +``` |
| 12 | + |
| 13 | +## Instructions |
| 14 | + |
| 15 | +分析时使用简洁中文,优先遵循仓库根目录 `AGENTS.md` 和 `.github/PULL_REQUEST_TEMPLATE.md`。 |
| 16 | + |
| 17 | +### Step 1: 拉取 PR 基本信息 |
| 18 | + |
| 19 | +```bash |
| 20 | +gh pr view <pr_number> --repo ZhuLinsen/daily_stock_analysis |
| 21 | +gh pr view <pr_number> --repo ZhuLinsen/daily_stock_analysis --comments |
| 22 | +gh pr checks <pr_number> --repo ZhuLinsen/daily_stock_analysis |
| 23 | +gh pr diff <pr_number> --repo ZhuLinsen/daily_stock_analysis |
| 24 | +``` |
| 25 | + |
| 26 | +如有失败的 CI,优先查看失败日志,而不是立刻在本地重跑全部检查: |
| 27 | + |
| 28 | +```bash |
| 29 | +gh run view <run_id> --log-failed |
| 30 | +``` |
| 31 | + |
| 32 | +### Step 2: 按仓库模板检查描述完整性 |
| 33 | + |
| 34 | +对照 `.github/PULL_REQUEST_TEMPLATE.md`,确认是否覆盖: |
| 35 | + |
| 36 | +- `PR Type` |
| 37 | +- `Background And Problem` |
| 38 | +- `Scope Of Change` |
| 39 | +- `Issue Link` |
| 40 | +- `Verification Commands And Results` |
| 41 | +- `Compatibility And Risk` |
| 42 | +- `Rollback Plan` |
| 43 | + |
| 44 | +若 PR 涉及第三方模型 / API 兼容语义、请求参数固定值、OpenAI-compatible 路由、YAML alias、fallback 行为或运行时配置保存 / 清理 / 迁移逻辑,还要额外检查描述里是否明确写出: |
| 45 | + |
| 46 | +- 官方来源链接或公告 |
| 47 | +- 当前锁定依赖 / 运行时兼容范围(例如 LiteLLM 版本窗口) |
| 48 | +- 已验证的调用链路覆盖面 |
| 49 | +- 旧配置是否会被静默改写、清空、迁移或保持不变 |
| 50 | +- 最小回滚路径(通常是 revert 本 PR) |
| 51 | + |
| 52 | +### Step 3: 优先使用 CI / Diff 证据 |
| 53 | + |
| 54 | +- 先根据 `gh pr checks`、PR diff、现有测试与工作流日志判断问题 |
| 55 | +- 仅当 CI 未覆盖改动面、CI 结果不足以定性问题、或需要验证关键回归风险时,再补充本地最小验证 |
| 56 | +- 不要默认切换当前分支或执行 `gh pr checkout` |
| 57 | + |
| 58 | +如果必须补本地验证,按改动面选择最接近的检查,例如: |
| 59 | + |
| 60 | +- 后端:`./scripts/ci_gate.sh` 或 `python -m py_compile <changed_python_files>` |
| 61 | +- 前端:`cd apps/dsa-web && npm ci && npm run lint && npm run build` |
| 62 | +- 桌面端:先构建 Web,再构建 Electron |
| 63 | + |
| 64 | +### Step 4: 评估正确性与风险 |
| 65 | + |
| 66 | +重点检查: |
| 67 | + |
| 68 | +- 是否解决了明确问题,且没有夹带无关改动 |
| 69 | +- 是否破坏 API / Schema / Web / Desktop 兼容性 |
| 70 | +- 是否破坏 fallback、降级路径、通知链路或发布流程 |
| 71 | +- 是否存在明显逻辑错误、异常吞没、安全问题、配置语义变化未同步文档 |
| 72 | + |
| 73 | +### Step 5: 生成评审文档 |
| 74 | + |
| 75 | +保存到 `.claude/reviews/prs/pr-<number>.md` |
| 76 | + |
| 77 | +## Output Document Format |
| 78 | + |
| 79 | +```markdown |
| 80 | +# PR #<number> Analysis |
| 81 | + |
| 82 | +**Date**: YYYY-MM-DD |
| 83 | +**Status**: Pending Review |
| 84 | + |
| 85 | +## Findings |
| 86 | + |
| 87 | +- [严重级别] file:line - 问题描述 |
| 88 | + |
| 89 | +## Summary |
| 90 | + |
| 91 | +- 必要性: |
| 92 | +- 是否有对应 issue: |
| 93 | +- PR 类型: |
| 94 | +- description 完整性: |
| 95 | +- 验证情况: |
| 96 | +- 主要风险: |
| 97 | +- 是否可直接合入: |
| 98 | + |
| 99 | +## Validation Evidence |
| 100 | + |
| 101 | +- CI 结论: |
| 102 | +- 本地补充验证(如有): |
| 103 | + |
| 104 | +## Compatibility And Risk |
| 105 | + |
| 106 | +- API / Web / Desktop: |
| 107 | +- 配置 / Docker / GitHub Actions: |
| 108 | +- fallback / 通知 / 报告结构: |
| 109 | +- 第三方依赖 / 官方约束来源: |
| 110 | +- 运行时兼容窗口 / 已覆盖链路: |
| 111 | +- 旧配置迁移或静默改写风险: |
| 112 | + |
| 113 | +## Draft Review Comment |
| 114 | + |
| 115 | +<建议评论内容> |
| 116 | +``` |
| 117 | + |
| 118 | +## Allowed Auto-Actions (No Confirmation Needed) |
| 119 | + |
| 120 | +- 拉取 PR 元数据、diff、评论和 CI 状态 |
| 121 | +- 阅读相关代码、模板、工作流与文档 |
| 122 | +- 在必要时执行最小化本地验证 |
| 123 | +- 生成评审文档 |
| 124 | + |
| 125 | +## Actions Requiring Confirmation |
| 126 | + |
| 127 | +执行以下动作前,先询问用户: |
| 128 | + |
| 129 | +1. 发布评论 |
| 130 | +2. Approve PR |
| 131 | +3. Request changes |
| 132 | +4. Merge PR |
| 133 | +5. 关闭 PR |
0 commit comments