{"id":"a0ce719d-b95b-4779-81b9-1cc4118df473","entityType":"agent","slug":"clawhub-caingao-smart-code-review","name":"Code Review","canonicalUrl":"https://www.xpersona.co/agent/clawhub-caingao-smart-code-review","canonicalPath":"/agent/clawhub-caingao-smart-code-review","generatedAt":"2026-10-10T17:34:03.775Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T13:55:35.754Z","emptyReason":null},"description":"AI 驱动的代码审查工具。对代码变更进行多维度审查，输出结构化的 Review 意见。 **当以下情况时使用此 Skill**: (1) 需要对代码进行 Code Review (2) 需要审查 PR/MR 的代码变更 (3) 用户提到\"code review\"、\"代码审查\"、\"帮我看看代码\"、\"这段代码有问题吗... Skill: Code Review Owner: caingao Summary: AI 驱动的代码审查工具。对代码变更进行多维度审查，输出结构化的 Review 意见。 **当以下情况时使用此 Skill**: (1) 需要对代码进行 Code Review (2) 需要审查 PR/MR 的代码变更 (3) 用户提到\"code review\"、\"代码审查\"、\"帮我看看代码\"、\"这段代码有问题吗... Tags: latest:1.0.0 Version history: v1.0.0 | 2026-05-24T09:42:04.392Z | auto AI 驱动的智能代码审查工具 — 首个版本发布 - 支持五大审查维度：安全、性能、可维护性、逻辑、风格 - 提供四种审查模式：完整代码、PR 变更、安全专注、快速自查 - 风险分级：严重/警告/建议，并附带修复代码片段 - 自动根据语言切换审查规则，支持多语言 - 按模式生成结","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.4K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s17bdzn7wt8m5gmr3egcws699n87ak7y:smart-code-review","sourceUrl":"https://clawhub.ai/caingao/smart-code-review","homepage":"https://clawhub.ai/caingao/skills/smart-code-review","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/caingao/smart-code-review","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/caingao/skills/smart-code-review","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"AI 驱动的代码审查工具。对代码变更进行多维度审查，输出结构化的 Review 意见。 **当以下情况时使用此 Skill**: (1) 需要对代码进行 Code Review (2) 需要审查 PR/MR 的代码变更 (3) 用户提到\"code review\"、\"代码审查\"、\"帮我看看代码\"、\"这段代码有问题吗..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T13:55:35.754Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T13:55:35.754Z","emptyReason":null},"stars":null,"forks":null,"downloads":1401,"packageName":null,"latestVersion":"1.0.0","tractionLabel":"1.4K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T13:55:35.754Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T13:55:35.754Z","lastCrawledAt":"2026-10-10T13:55:35.754Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T13:55:35.754Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.0","createdAt":"2026-05-24T09:42:04.392Z","changelog":"AI 驱动的智能代码审查工具 — 首个版本发布 - 支持五大审查维度：安全、性能、可维护性、逻辑、风格 - 提供四种审查模式：完整代码、PR 变更、安全专注、快速自查 - 风险分级：严重/警告/建议，并附带修复代码片段 - 自动根据语言切换审查规则，支持多语言 - 按模式生成结构化审查/Review 报告，突出问题与优点 - 可自定义模式、严格度、关注维度和输出语言","fileCount":6,"zipByteSize":13408}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17bdzn7wt8m5gmr3egcws699n87ak7y:smart-code-review","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-caingao-smart-code-review/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-caingao-smart-code-review/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-caingao-smart-code-review/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-caingao-smart-code-review/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-caingao-smart-code-review/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-caingao-smart-code-review/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T17:34:03.774Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-caingao-smart-code-review/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-caingao-smart-code-review/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-caingao-smart-code-review/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-caingao-smart-code-review/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T13:55:35.754Z","emptyReason":null},"readme":"Skill: Code Review\n\nOwner: caingao\n\nSummary: AI 驱动的代码审查工具。对代码变更进行多维度审查，输出结构化的 Review 意见。 **当以下情况时使用此 Skill**: (1) 需要对代码进行 Code Review (2) 需要审查 PR/MR 的代码变更 (3) 用户提到\"code review\"、\"代码审查\"、\"帮我看看代码\"、\"这段代码有问题吗...\n\nTags: latest:1.0.0\n\nVersion history:\n\nv1.0.0 | 2026-05-24T09:42:04.392Z | auto\n\nAI 驱动的智能代码审查工具 — 首个版本发布\n\n- 支持五大审查维度：安全、性能、可维护性、逻辑、风格\n- 提供四种审查模式：完整代码、PR 变更、安全专注、快速自查\n- 风险分级：严重/警告/建议，并附带修复代码片段\n- 自动根据语言切换审查规则，支持多语言\n- 按模式生成结构化审查/Review 报告，突出问题与优点\n- 可自定义模式、严格度、关注维度和输出语言\n\nArchive index:\n\nArchive v1.0.0: 6 files, 13408 bytes\n\nFiles: README.md (2695b), review-rules.md (7547b), skill-card.md (2134b), SKILL.md (7588b), test-cases.md (5885b), _meta.json (136b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: code-review\ndescription: |\n  AI 驱动的代码审查工具。对代码变更进行多维度审查，输出结构化的 Review 意见。\n\n  **当以下情况时使用此 Skill**:\n  (1) 需要对代码进行 Code Review\n  (2) 需要审查 PR/MR 的代码变更\n  (3) 用户提到\"code review\"、\"代码审查\"、\"帮我看看代码\"、\"这段代码有问题吗\"\n  (4) 需要检查代码安全性、性能、可维护性\n  (5) 提交代码前的自查\n  (6) 用户提到\"PR review\"、\"代码质量\"、\"技术债务\"\nmetadata:\n  openclaw:\n    emoji: \"🔍\"\n    version: \"1.0.0\"\n    author: \"小摩事业部\"\n    tags: [\"code-review\", \"developer-tools\", \"security\", \"performance\", \"quality\", \"chinese\"]\n---\n\n# 🔍 AI Code Review — 智能代码审查\n\n> 不遗漏每一行有问题的代码。\n\n## 🎯 核心功能\n\n1. **多维度审查** — 从安全、性能、可维护性、逻辑、风格 5 个维度扫描代码\n2. **风险评级** — 🔴严重 / 🟡警告 / 🔵建议，优先级清晰\n3. **修复建议** — 每个问题附带具体的修复代码片段\n4. **PR 审查模式** — 分析 diff 输出结构化的 PR Review 报告\n5. **快速审查** — 只输出严重问题，适合紧急提交前自查\n\n## 📋 使用模式\n\n### 模式一：完整代码审查\n\n用户提交代码片段或文件内容，进行全面的代码审查。\n\n**输入格式**：\n```\n帮我 review 这段代码：[代码片段]\n```\n\n**输出格式**：\n\n```markdown\n## 🔍 Code Review 报告\n\n**审查文件**: [文件名/代码片段]\n**总体评级**: ⭐⭐⭐⭐ (4/5)\n**发现**: 3 个问题（🔴 0 严重 / 🟡 1 警告 / 🔵 2 建议）\n\n### 🔴 严重问题\n（无）\n\n### 🟡 警告\n\n#### 1. [问题标题]\n- **位置**: 第 42 行\n- **维度**: 安全\n- **问题**: SQL 拼接导致注入风险\n- **修复**:\n```语言\n// 修复前\nString query = \"SELECT * FROM users WHERE id = \" + userId;\n\n// 修复后\nString query = \"SELECT * FROM users WHERE id = ?\";\nPreparedStatement stmt = conn.prepareStatement(query);\nstmt.setString(1, userId);\n```\n\n### 🔵 建议\n\n#### 2. [建议标题]\n- **位置**: 第 15-20 行\n- **维度**: 可维护性\n- **建议**: 提取为独立方法\n- **参考**:\n```语言\n// 建议重构为\nprivate User findUserById(String userId) { ... }\n```\n\n### ✅ 做得好的地方\n- 异常处理完整\n- 日志记录规范\n```\n\n### 模式二：PR 审查\n\n用户提交 diff 或 PR 内容，进行变更审查。\n\n**输入格式**：\n```\n审查这个 PR：[diff 内容]\n```\n\n或\n\n```\n审查我最近的代码变更\n```\n\n**执行步骤**：\n1. 如用户在工作目录中，主动用 `git diff` 获取变更\n2. 分析变更文件列表和影响范围\n3. 对每个文件的变更逐一审查\n4. 汇总为 PR Review 报告\n\n**输出格式**：\n\n```markdown\n## 🔍 PR Review 报告\n\n**变更范围**: 5 个文件（+142/-38）\n**风险等级**: 🟡 中\n**审查结论**: ✅ 可以合并（修复 1 个警告后）\n\n### 📊 变更概览\n| 文件 | 变更行数 | 风险 | 评审结果 |\n|------|---------|------|---------|\n| auth/login.go | +45/-12 | 🟡 | 有 1 个警告 |\n| utils/crypto.go | +23/-5 | 🟢 | 通过 |\n| config.yaml | +8/-2 | 🟢 | 通过 |\n| tests/auth_test.go | +58/-15 | 🟢 | 通过 |\n| README.md | +8/-4 | 🟢 | 通过 |\n\n### 🟡 需要关注的问题\n[详细问题列表和修复建议]\n\n### 💡 改进建议\n[非必须但能提升代码质量的建议]\n\n### ✅ 值得肯定\n[写得好的地方]\n```\n\n### 模式三：安全审查\n\n专注于安全维度的深度审查。\n\n**输入格式**：\n```\n安全审查这段代码：[代码]\n```\n\n**审查重点**：\n- SQL 注入 / XSS / CSRF\n- 硬编码密钥/密码\n- 不安全的反序列化\n- 权限/认证绕过\n- 敏感数据泄露\n- 依赖漏洞\n\n### 模式四：快速自查\n\n提交前快速扫描，只输出严重问题。\n\n**输入格式**：\n```\n快速检查这段代码：[代码]\n```\n\n**输出格式**：\n```\n🔍 快速审查结果：✅ 可以提交 / ⚠️ 有 N 个问题\n\n[如果有问题，列出简要说明和修复建议]\n```\n\n## 🧠 审查维度详解\n\n加载 `review-rules.md` 获取完整的审查规则库。\n\n### 五大审查维度\n\n| 维度 | 关注点 | 严重级别 |\n|------|--------|---------|\n| 🔒 安全 | 注入、泄露、认证、加密 | 🔴 严重 |\n| ⚡ 性能 | 算法复杂度、内存、缓存、N+1查询 | 🟡 警告 |\n| 🔧 可维护性 | 代码复杂度、重复、命名、注释 | 🔵 建议 |\n| 🧩 逻辑 | 边界条件、空值、并发、竞态 | 🔴 严重 |\n| 📐 风格 | 编码规范、格式、最佳实践 | 🔵 建议 |\n\n### 语言特定规则\n\n根据代码语言自动切换审查规则：\n\n| 语言 | 特定关注点 |\n|------|-----------|\n| Java | 资源泄漏、空指针、并发安全、Spring 最佳实践 |\n| Python | 类型安全、GIL、装饰器滥用、异步陷阱 |\n| Go | goroutine 泄漏、error 处理、channel 死锁 |\n| JavaScript/TS | Promise 错误处理、原型污染、类型安全 |\n| SQL | 注入、索引、N+1、事务隔离级别 |\n| Rust | 生命周期、unsafe 使用、内存安全 |\n\n## 🔄 工作流程\n\n1. **读取审查规则** → 用 `read` 工具读取 `review-rules.md`\n2. **分析代码** → 确定语言、文件类型、变更范围\n3. **多维度扫描** → 按规则库逐条检查\n4. **风险评级** → 对每个发现分级\n5. **生成修复建议** → 附带代码片段\n6. **输出报告** → 按模式要求格式化输出\n\n## 📐 评级标准\n\n### 总体评级（⭐ 1-5 星）\n\n| 评级 | 含义 | 标准 |\n|------|------|------|\n| ⭐ | 不可合并 | 有严重安全漏洞或逻辑错误 |\n| ⭐⭐ | 需要大改 | 多个严重问题或设计缺陷 |\n| ⭐⭐⭐ | 可以更好 | 有警告级问题需要修复 |\n| ⭐⭐⭐⭐ | 良好 | 只有建议级改进 |\n| ⭐⭐⭐⭐⭐ | 优秀 | 代码质量很高，无显著问题 |\n\n### 问题分级标准\n\n| 级别 | 标准 | 处理 |\n|------|------|------|\n| 🔴 严重 | 安全漏洞、数据丢失风险、逻辑错误 | 必须修复 |\n| 🟡 警告 | 性能问题、潜在 bug、可维护性差 | 建议修复 |\n| 🔵 建议 | 风格改进、最佳实践、优化 | 可选改进 |\n\n## ⚙️ 配置\n\n用户可以指定以下参数（通过对话自然语言）：\n\n| 参数 | 说明 | 默认值 |\n|------|------|--------|\n| 模式 | full / pr / security / quick | full |\n| 严格度 | strict（更多检查）/ normal / loose | normal |\n| 语言 | 自动检测 / 手动指定 | 自动 |\n| 关注维度 | security / performance / all | all |\n| 输出语言 | 中文 / 英文 | 中文 |\n\n## 💡 使用技巧\n\n### 结合 Git 工作流\n\n```bash\n# 审查最近一次提交\ngit show HEAD | code-review\n\n# 审查暂存区变更\ngit diff --cached\n\n# 审查某次 PR 的所有变更\ngit diff main...feature-branch\n```\n\n### 审查策略建议\n\n- **提交前**：用 quick 模式快速自查\n- **PR 审查**：用 pr 模式完整审查\n- **安全审计**：用 security 模式深度扫描\n- **上线前**：full 模式 + strict 严格度\n\n## 🚨 执行规范\n\n1. **先读规则**：每次执行前，读取 `review-rules.md` 获取最新审查规则\n2. **不遗漏**：每个维度都要检查，不要跳过\n3. **给证据**：每个问题都要指出具体代码位置\n4. **给修复**：不要只说问题，要给出修复方案\n5. **看整体**：不只是逐行审查，还要看整体架构和设计\n6. **公正评价**：也要指出做得好的地方，不只是找问题\n\n## 版本历史\n\n- **v1.0.0** (2026-05-23) — 初始版本，5 大审查维度，4 种使用模式，多语言支持\n\nFile v1.0.0:README.md\n\n# 🔍 Code Review — AI 智能代码审查\n\n> 不遗漏每一行有问题的代码。\n\n## 它是什么？\n\nCode Review 是一个 [OpenClaw](https://openclaw.ai) Skill，为你的 AI Agent 添加专业的代码审查能力。\n\n给它代码片段、diff 或 PR 内容，它就能输出：\n- 多维度代码审查报告（安全/性能/可维护性/逻辑/风格）\n- 风险评级和优先级标注\n- 具体的修复代码建议\n- PR 审查结论\n\n## ✨ 特性\n\n- ✅ **5 大审查维度** — 安全、性能、可维护性、逻辑、风格，不遗漏\n- ✅ **3 级风险标注** — 🔴 严重 / 🟡 警告 / 🔵 建议，优先级清晰\n- ✅ **4 种使用模式** — 完整审查 / PR 审查 / 安全审查 / 快速自查\n- ✅ **多语言支持** — Java / Python / Go / JavaScript / SQL / Rust\n- ✅ **修复建议** — 每个问题附带可直接使用的修复代码\n- ✅ **中文优先** — 审查报告和说明使用中文\n\n## 📦 安装\n\n```bash\n# 复制到你的 OpenClaw Skills 目录\ncp -r code-review/ ~/.openclaw/workspace/skills/\n```\n\n## 🎯 使用方式\n\n### 完整代码审查\n```\n帮我 review 这段代码：[代码片段]\n```\n\n### PR 审查\n```\n审查这个 PR：[diff 内容]\n```\n\n### 安全审查\n```\n安全审查这段代码：[代码]\n```\n\n### 快速自查\n```\n快速检查这段代码：[代码]\n```\n\n## 🧠 审查维度\n\n| 维度 | 关注点 | 示例 |\n|------|--------|------|\n| 🔒 安全 | 注入、泄露、认证、加密 | SQL注入、硬编码密码、XSS |\n| ⚡ 性能 | 算法、内存、缓存、N+1 | 循环内查询、大列表无分页 |\n| 🔧 可维护性 | 复杂度、重复、命名 | 过长方法、嵌套过深、魔法数字 |\n| 🧩 逻辑 | 边界条件、空值、并发 | null 未处理、竞态条件 |\n| 📐 风格 | 规范、格式、最佳实践 | 未使用 import、行过长 |\n\n## 📊 评级标准\n\n| 评级 | 含义 | 标准 |\n|------|------|------|\n| ⭐ | 不可合并 | 严重安全漏洞或逻辑错误 |\n| ⭐⭐ | 需要大改 | 多个严重问题 |\n| ⭐⭐⭐ | 可以更好 | 有警告级问题 |\n| ⭐⭐⭐⭐ | 良好 | 只有建议级改进 |\n| ⭐⭐⭐⭐⭐ | 优秀 | 代码质量高 |\n\n## 🏗️ 文件结构\n\n```\ncode-review/\n├── SKILL.md          # 主入口，使用说明\n├── review-rules.md   # 完整审查规则库（5大维度+多语言）\n├── test-cases.md     # 8个测试用例\n└── README.md         # 本文件\n```\n\n## 📝 版本\n\n- **v1.0.0** (2026-05-23) — 初始版本，5 大审查维度，4 种使用模式，多语言支持\n\n## 📄 License\n\nMIT\n\n---\n\n**作者**: 小摩事业部 | **Tags**: code-review, developer-tools, security, performance, quality\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7dfpp85z5fypb8h8x6f0awvd87bh9v\",\n  \"slug\": \"smart-code-review\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779615724392\n}\n\nFile v1.0.0:review-rules.md\n\n# 代码审查规则库\n\n> Code Review Rules — 按维度和语言分类的审查规则\n\n---\n\n## 一、安全维度 🔒\n\n### 通用安全规则\n\n| # | 规则 | 严重级别 | 检测模式 |\n|---|------|---------|---------|\n| S-01 | SQL 拼接而非参数化查询 | 🔴 | `SELECT.*\\+.*\\|\".*\".*\\+` |\n| S-02 | 硬编码密钥/密码/Token | 🔴 | `password\\s*=\\s*[\"']\\|api_key\\s*=\\s*[\"']\\|secret\\s*=\\s*[\"']` |\n| S-03 | 不安全的反序列化 | 🔴 | `pickle\\.load\\|unserialize\\|ObjectInputStream` |\n| S-04 | 命令注入 | 🔴 | `exec\\(|Runtime\\.getRuntime\\(\\)\\.exec\\|os\\.system\\(` |\n| S-05 | XSS 风险 — 未转义的用户输入直接输出到 HTML | 🔴 | `innerHTML\\s*=.*\\$\\|document\\.write` |\n| S-06 | 不安全的随机数生成 | 🟡 | `Math\\.random()\\|random\\.random()` (用于安全场景时) |\n| S-07 | 过于宽松的 CORS 配置 | 🟡 | `Access-Control-Allow-Origin.*\\*` |\n| S-08 | 未验证的 URL 重定向 | 🟡 | `redirect.*request\\.\\|header.*Location.*\\+` |\n| S-09 | 敏感信息写入日志 | 🟡 | `log\\.\\(.*password\\|print\\(.*token\\|console\\.log\\(.*secret` |\n| S-10 | 缺少认证/授权检查 | 🟡 | 公开 API 端点没有 auth middleware |\n\n### Java 安全规则\n\n| # | 规则 | 严重级别 |\n|---|------|---------|\n| S-J01 | 使用 `java.security.MessageDigest` 但未指定安全算法 | 🔴 |\n| S-J02 | Spring Security 配置中 `permitAll()` 使用不当 | 🔴 |\n| S-J03 | 未关闭的数据库连接/文件流（缺少 try-with-resources） | 🟡 |\n| S-J04 | 在日志中打印完整的 HttpServletRequest body | 🟡 |\n\n### Python 安全规则\n\n| # | 规则 | 严重级别 |\n|---|------|---------|\n| S-P01 | `eval()` 或 `exec()` 处理用户输入 | 🔴 |\n| S-P02 | Django `DEBUG = True` 在生产环境 | 🔴 |\n| S-P03 | Flask `secret_key` 硬编码或过弱 | 🔴 |\n| S-P04 | `subprocess` 使用 `shell=True` | 🟡 |\n\n### Go 安全规则\n\n| # | 规则 | 严重级别 |\n|---|------|---------|\n| S-G01 | `crypto/md5` 或 `crypto/sha1` 用于安全场景 | 🔴 |\n| S-G02 | `math/rand` 用于生成安全随机数 | 🔴 |\n| S-G03 | HTTP 服务未设置超时 | 🟡 |\n\n---\n\n## 二、性能维度 ⚡\n\n### 通用性能规则\n\n| # | 规则 | 严重级别 | 检测说明 |\n|---|------|---------|---------|\n| P-01 | 循环内执行数据库查询（N+1 问题） | 🔴 | for/while 循环体内有 SQL 查询或 ORM 查询 |\n| P-02 | O(n²) 或更高复杂度算法处理大数据集 | 🟡 | 嵌套循环且内层循环与外层循环使用相同数据 |\n| P-03 | 在循环内创建不可变对象（如 Java String 拼接） | 🟡 | `String += ` 在循环内 |\n| P-04 | 未使用分页的大数据量查询 | 🟡 | `SELECT *` 无 LIMIT 且无分页 |\n| P-05 | 频繁的小文件 I/O 替代批量操作 | 🔵 | 循环内 open/write/close |\n| P-06 | 可以并行但串行执行的独立任务 | 🔵 | 顺序 await 多个无依赖的异步操作 |\n| P-07 | 缓存可复用的计算结果 | 🔵 | 重复计算相同值 |\n| P-08 | 未关闭的资源（连接/流/文件） | 🟡 | 缺少 finally/close 保障 |\n\n### Java 性能规则\n\n| # | 规则 | 严重级别 |\n|---|------|---------|\n| P-J01 | HashMap 初始容量过小导致频繁扩容 | 🔵 |\n| P-J02 | 使用 `LinkedList` 而非 `ArrayList`（随机访问场景） | 🔵 |\n| P-J03 | BigDecimal 构造使用 double 而非 String | 🟡 |\n| P-J04 | 未使用连接池 | 🔴 |\n\n### Python 性能规则\n\n| # | 规则 | 严重级别 |\n|---|------|---------|\n| P-P01 | 列表推导替代 map/filter 的简单场景（可读性换性能） | 🔵 |\n| P-P02 | 使用 Python 循环替代 numpy 向量化操作（数值计算） | 🟡 |\n| P-P03 | 未使用 `__slots__` 的大量实例化类 | 🔵 |\n\n---\n\n## 三、可维护性维度 🔧\n\n### 通用可维护性规则\n\n| # | 规则 | 严重级别 | 说明 |\n|---|------|---------|------|\n| M-01 | 方法/函数超过 50 行 | 🟡 | 拆分为更小的函数 |\n| M-02 | 嵌套超过 3 层的 if/for | 🟡 | 提取方法或使用卫语句 |\n| M-03 | 重复代码块（>5 行相似） | 🟡 | 提取公共方法 |\n| M-04 | 魔法数字/字符串未提取为常量 | 🔵 | 定义命名常量 |\n| M-05 | 函数参数超过 4 个 | 🔵 | 使用对象/结构体封装 |\n| M-06 | 过于通用的命名（data/info/result/temp） | 🔵 | 使用具体描述性命名 |\n| M-07 | 缺少必要的注释（复杂逻辑/业务规则） | 🔵 | 添加为什么（why）的注释 |\n| M-08 | 过多的注释（注释掉的代码） | 🔵 | 删除无用代码，版本控制负责历史 |\n| M-09 | 上帝类/上帝函数（职责过多） | 🟡 | 单一职责原则 |\n| M-10 | 硬编码的配置值 | 🔵 | 移到配置文件 |\n\n### 命名规范\n\n| 语言 | 类/类型 | 方法/函数 | 变量 | 常量 |\n|------|--------|---------|------|------|\n| Java | PascalCase | camelCase | camelCase | UPPER_SNAKE |\n| Python | PascalCase | snake_case | snake_case | UPPER_SNAKE |\n| Go | PascalCase（导出）/ camelCase（未导出） | PascalCase/camelCase | camelCase | 不推荐常量命名 |\n| JS/TS | PascalCase | camelCase | camelCase | UPPER_SNAKE |\n\n---\n\n## 四、逻辑维度 🧩\n\n### 通用逻辑规则\n\n| # | 规则 | 严重级别 | 说明 |\n|---|------|---------|------|\n| L-01 | 未处理的 null/None/nil 返回值 | 🔴 | 空指针是头号 bug |\n| L-02 | 数组越界风险（循环边界条件） | 🔴 | off-by-one 错误 |\n| L-03 | 竞态条件（并发修改共享状态） | 🔴 | 需要同步/锁 |\n| L-04 | 浮点数精度问题（金额用 float/double） | 🟡 | 使用 BigDecimal 或整数分 |\n| L-05 | 资源泄漏（异常路径未关闭） | 🟡 | try-with-resources / finally |\n| L-06 | 错误的异常处理（吞掉异常或 catch Exception） | 🟡 | 具体异常类型 + 适当处理 |\n| L-07 | 死代码（永远不会执行的分支） | 🟡 | if (false) / 永假条件 |\n| L-08 | 边界条件未覆盖（空集合、0、负数） | 🟡 | 缺少边界检查 |\n| L-09 | 时区问题（未指定时区的日期操作） | 🔵 | 使用 UTC 或明确指定时区 |\n| L-10 | 编码问题（未指定字符集的字符串操作） | 🔵 | UTF-8 为默认 |\n\n---\n\n## 五、风格维度 📐\n\n### 通用风格规则\n\n| # | 规则 | 严重级别 |\n|---|------|---------|\n| T-01 | 不一致的缩进（Tab vs Space 混用） | 🔵 |\n| T-02 | 行长度超过 120 字符 | 🔵 |\n| T-03 | 未使用的 import / 变量 | 🔵 |\n| T-04 | 缺少文件头注释（模块/类说明） | 🔵 |\n| T-05 | TODO/FIXME/HACK 注释未关联 issue | 🔵 |\n\n### 最佳实践对照\n\n| 实践 | 说明 |\n|------|------|\n| DRY | 不要重复自己（Don't Repeat Yourself） |\n| KISS | 保持简单（Keep It Simple, Stupid） |\n| YAGNI | 你不需要它（You Aren't Gonna Need It） |\n| SOLID | 单一职责、开闭、里氏替换、接口隔离、依赖倒置 |\n| Fail Fast | 尽早失败，快速反馈 |\n\n---\n\n## 六、严重级别升级规则\n\n以下情况自动升级问题严重级别：\n\n| 情况 | 升级 |\n|------|------|\n| 问题出现在核心/关键路径代码中 | +1 级 |\n| 问题影响范围广（公共 API / 基础库） | +1 级 |\n| 问题可能影响用户数据安全 | 升至 🔴 |\n| 同一类型问题出现 3 次以上 | +1 级（系统性问题） |\n\n---\n\n## 七、审查排除规则\n\n以下情况不需要标记为问题：\n\n- 代码风格与项目现有风格一致（即使不是最佳实践）\n- 测试代码中的简化写法（如硬编码测试数据）\n- 配置文件中的默认值\n- 已经有 TODO 注释且关联了 issue\n- 框架生成的代码\n\nFile v1.0.0:skill-card.md\n\n## Description:\n\nCode Review helps agents review code snippets, diffs, and PR changes across security, performance, maintainability, logic, and style, then produce structured findings with risk ratings and fix suggestions.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[caingao](https://clawhub.ai/user/caingao)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to ask an agent for full, PR, security-focused, or quick code reviews before merge or release. It is designed to surface prioritized issues and practical remediation guidance.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill may ask the agent to inspect proprietary or sensitive source code and diffs.\n\nMitigation: Use it only with code the user is authorized to share, and keep review input within the intended agent or workspace boundary.\n\nRisk: Generated findings and fix snippets may be incomplete or wrong even when the security scan verdict is clean.\n\nMitigation: Treat results as review assistance and have a developer validate security, logic, and generated fixes before merging.\n\nRisk: The artifact is Chinese-first, which may be unsuitable for teams expecting English review output.\n\nMitigation: Request English output explicitly when needed.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/caingao/skills/smart-code-review)\n- [OpenClaw](https://openclaw.ai)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, guidance]\n\n**Output Format:** [Markdown review reports with prioritized findings, summaries, and code snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Chinese-first output by default; users can request English output explicitly.]\n\n## Skill Version(s):\n\n1.0.0 (source: server release metadata, OpenClaw metadata, README)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.0:test-cases.md\n\n# Code Review 测试用例\n\n> 版本: v1.0.0 | 更新: 2026-05-23\n\n---\n\n## 测试用例 1：SQL 注入检测（完整审查模式）\n\n**输入**：\n```java\npublic User getUser(String userId) {\n    String query = \"SELECT * FROM users WHERE id = \" + userId;\n    Statement stmt = conn.createStatement();\n    ResultSet rs = stmt.executeQuery(query);\n    if (rs.next()) {\n        User user = new User();\n        user.setId(rs.getString(\"id\"));\n        user.setName(rs.getString(\"name\"));\n        return user;\n    }\n    return null;\n}\n```\n\n**期望输出**：\n- 至少检测到 S-01（SQL 拼接）🔴 严重\n- 至少检测到 L-01（null 返回未处理）🟡 警告\n- 至少检测到 P-J04 或类似（未使用连接池/预处理）🟡\n- 给出参数化查询的修复代码\n- 总体评级 ≤ 3 星\n\n---\n\n## 测试用例 2：PR 审查模式\n\n**输入**：\n```\n审查这个 PR，变更如下：\n\ndiff --git a/auth.py b/auth.py\n+def login(username, password):\n+    if username == \"admin\" and password == \"supersecret123\":\n+        return True\n+    return False\n```\n\n**期望输出**：\n- 检测到 S-02（硬编码密码）🔴\n- 检测到逻辑问题（明文密码比较）🔴\n- 检测到缺少日志记录 🔵\n- PR 结论为 ❌ 不可合并\n- 风险等级 🔴 高\n\n---\n\n## 测试用例 3：性能问题检测\n\n**输入**：\n```java\npublic List<Order> getOrders(List<String> userIds) {\n    List<Order> allOrders = new ArrayList<>();\n    for (String userId : userIds) {\n        String sql = \"SELECT * FROM orders WHERE user_id = \" + userId;\n        List<Order> orders = jdbcTemplate.query(sql, new OrderRowMapper());\n        allOrders.addAll(orders);\n    }\n    return allOrders;\n}\n```\n\n**期望输出**：\n- 检测到 P-01（N+1 查询）🔴\n- 检测到 S-01（SQL 拼接）🔴\n- 给出批量查询的修复方案\n- 给出使用 IN 子句的修复代码\n\n---\n\n## 测试用例 4：安全审查模式\n\n**输入**：\n```\n安全审查这段 Python 代码：\n\n@app.route('/search')\ndef search():\n    query = request.args.get('q', '')\n    results = eval(f\"search_{query}()\")\n    return render_template_string(f\"<h1>Results for {query}</h1><p>{results}</p>\")\n```\n\n**期望输出**：\n- 检测到 S-P01（eval 用户输入）🔴🔴\n- 检测到 S-05（XSS — 未转义用户输入直接渲染）🔴\n- 检测到 SSTI（服务端模板注入）🔴\n- 3 个严重安全问题\n- 安全审查结论：🔴🔴🔴 高危，不可上线\n\n---\n\n## 测试用例 5：可维护性审查\n\n**输入**：\n```java\npublic void processOrder(Order order) {\n    if (order != null) {\n        if (order.getItems() != null) {\n            if (order.getItems().size() > 0) {\n                for (int i = 0; i < order.getItems().size(); i++) {\n                    Item item = order.getItems().get(i);\n                    if (item.getPrice() > 0) {\n                        if (item.getQuantity() > 0) {\n                            double total = item.getPrice() * item.getQuantity();\n                            System.out.println(\"Item: \" + item.getName() + \" Total: \" + total);\n                        }\n                    }\n                }\n            }\n        }\n    }\n}\n```\n\n**期望输出**：\n- 检测到 M-02（嵌套超过 3 层）🟡\n- 检测到 S-09（System.out.println 而非 logger）🟡\n- 检测到 P-J02（LinkedList 场景不适用，但 get(i) 在循环内）🟡\n- 检测到 M-04（魔法数字 0）或 L-08（边界条件）🔵\n- 给出卫语句重构建议\n\n---\n\n## 测试用例 6：快速自查模式\n\n**输入**：\n```\n快速检查：\nasync function deleteAllUsers() {\n    const users = await db.query('SELECT * FROM users');\n    for (const user of users) {\n        await db.query(`DELETE FROM users WHERE id = ${user.id}`);\n    }\n}\n```\n\n**期望输出**：\n- 快速格式：⚠️ 有 N 个问题\n- 至少检测到 SQL 拼接 🔴\n- 至少检测到串行删除（可批量）🟡\n- 至少检测到危险操作无确认 🔴\n- 简洁输出，不超过 10 行\n\n---\n\n## 测试用例 7：Go 语言代码审查\n\n**输入**：\n```go\nfunc (s *Server) HandleLogin(w http.ResponseWriter, r *http.Request) {\n    username := r.URL.Query().Get(\"user\")\n    password := r.URL.Query().Get(\"pass\")\n    \n    if username == \"admin\" && password == os.Getenv(\"ADMIN_PASS\") {\n        token := strconv.Itoa(rand.Int())\n        http.SetCookie(w, &http.Cookie{\n            Name:  \"session\",\n            Value: token,\n        })\n        w.Write([]byte(\"OK\"))\n    }\n    w.Write([]byte(\"FAIL\"))\n}\n```\n\n**期望输出**：\n- 检测到 S-G02（math/rand 用于生成 session token）🔴\n- 检测到 S-08（密码通过 URL 参数传递）🔴\n- 检测到 S-G03（HTTP handler 无超时）🟡\n- 检测到逻辑问题（无论登录成功失败都写入响应）🟡\n- 给出 crypto/rand 和 http.Cookie Secure/HttpOnly 的修复建议\n\n---\n\n## 测试用例 8：中文项目审查\n\n**输入**：\n```\nreview 这个 Java 方法：\n\n/**\n * 计算订单总金额\n */\npublic double 计算总价(List<商品> 商品列表) {\n    double 总额 = 0;\n    for (int i = 0; i < 商品列表.size(); i++) {\n        总额 += 商品列表.get(i).get价格() * 商品列表.get(i).get数量();\n    }\n    // 打八折\n    总额 = 总额 * 0.8;\n    return 总额;\n}\n```\n\n**期望输出**：\n- 检测到 M-04（魔法数字 0.8 折扣率）🔵\n- 检测到 L-04（金额使用 double 而非 BigDecimal）🟡\n- 检测到命名规范问题（中文方法名在 Java 中不推荐）🔵\n- 审查输出使用中文\n- 建议使用常量 `DISCOUNT_RATE = 0.8` 和 BigDecimal\n\n---\n\n## 评分标准\n\n| 维度 | 满分 | 标准 |\n|------|------|------|\n| 问题检出率 | 30 | 找到所有主要问题 |\n| 严重级别准确 | 20 | 评级与实际风险匹配 |\n| 修复建议质量 | 25 | 修复代码可直接使用 |\n| 输出格式规范 | 15 | 符合对应模式的输出格式 |\n| 做得好的指出 | 10 | 正面反馈也有 |","readmeExcerpt":"Skill: Code Review Owner: caingao Summary: AI 驱动的代码审查工具。对代码变更进行多维度审查，输出结构化的 Review 意见。 **当以下情况时使用此 Skill**: (1) 需要对代码进行 Code Review (2) 需要审查 PR/MR 的代码变更 (3) 用户提到\"code review\"、\"代码审查\"、\"帮我看看代码\"、\"这段代码有问题吗... Tags: latest:1.0.0 Version history: v1.0.0 | 2026-05-24T09:42:04.392Z | auto AI 驱动的智能代码审查工具 — 首个版本发布 - 支持五大审查维度：安全、性能、可维护性、逻辑、风格 - 提供四种审查模式：完整代码、PR 变更、安全专注、快速自查 - 风险分级：严重/警告/建议，并附带修复代码片段 - 自动根据语言切换审查规则，支持多语言 - 按模式生成结","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"帮我 review 这段代码：[代码片段]"},{"language":"markdown","snippet":"## 🔍 Code Review 报告\n\n**审查文件**: [文件名/代码片段]\n**总体评级**: ⭐⭐⭐⭐ (4/5)\n**发现**: 3 个问题（🔴 0 严重 / 🟡 1 警告 / 🔵 2 建议）\n\n### 🔴 严重问题\n（无）\n\n### 🟡 警告\n\n#### 1. [问题标题]\n- **位置**: 第 42 行\n- **维度**: 安全\n- **问题**: SQL 拼接导致注入风险\n- **修复**:"},{"language":"text","snippet":"### 🔵 建议\n\n#### 2. [建议标题]\n- **位置**: 第 15-20 行\n- **维度**: 可维护性\n- **建议**: 提取为独立方法\n- **参考**:"},{"language":"text","snippet":"### ✅ 做得好的地方\n- 异常处理完整\n- 日志记录规范"},{"language":"text","snippet":"审查这个 PR：[diff 内容]"},{"language":"text","snippet":"审查我最近的代码变更"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: code-review\ndescription: |\n  AI 驱动的代码审查工具。对代码变更进行多维度审查，输出结构化的 Review 意见。\n\n  **当以下情况时使用此 Skill**:\n  (1) 需要对代码进行 Code Review\n  (2) 需要审查 PR/MR 的代码变更\n  (3) 用户提到\"code review\"、\"代码审查\"、\"帮我看看代码\"、\"这段代码有问题吗\"\n  (4) 需要检查代码安全性、性能、可维护性\n  (5) 提交代码前的自查\n  (6) 用户提到\"PR review\"、\"代码质量\"、\"技术债务\"\nmetadata:\n  openclaw:\n    emoji: \"🔍\"\n    version: \"1.0.0\"\n    author: \"小摩事业部\"\n    tags: [\"code-review\", \"developer-tools\", \"security\", \"performance\", \"quality\", \"chinese\"]\n---\n\n# 🔍 AI Code Review — 智能代码审查\n\n> 不遗漏每一行有问题的代码。\n\n## 🎯 核心功能\n\n1. **多维度审查** — 从安全、性能、可维护性、逻辑、风格 5 个维度扫描代码\n2. **风险评级** — 🔴严重 / 🟡警告 / 🔵建议，优先级清晰\n3. **修复建议** — 每个问题附带具体的修复代码片段\n4. **PR 审查模式** — 分析 diff 输出结构化的 PR Review 报告\n5. **快速审查** — 只输出严重问题，适合紧急提交前自查\n\n## 📋 使用模式\n\n### 模式一：完整代码审查\n\n用户提交代码片段或文件内容，进行全面的代码审查。\n\n**输入格式**：\n```\n帮我 review 这段代码：[代码片段]\n```\n\n**输出格式**：\n\n```markdown\n## 🔍 Code Review 报告\n\n**审查文件**: [文件名/代码片段]\n**总体评级**: ⭐⭐⭐⭐ (4/5)\n**发现**: 3 个问题（🔴 0 严重 / 🟡 1 警告 / 🔵 2 建议）\n\n### 🔴 严重问题\n（无）\n\n### 🟡 警告\n\n#### 1. [问题标题]\n- **位置**: 第 42 行\n- **维度**: 安全\n- **问题**: SQL 拼接导致注入风险\n- **修复**:\n```语言\n// 修复前\nString query = \"SELECT * FROM users WHERE id = \" + userId;\n\n// 修复后\nString query = \"SELECT * FROM users WHERE id = ?\";\nPreparedStatement stmt = conn.prepareStatement(query);\nstmt.setString(1, userId);\n```\n\n### 🔵 建议\n\n#### 2. [建议标题]\n- **位置**: 第 15-20 行\n- **维度**: 可维护性\n- **建议**: 提取为独立方法\n- **参考**:\n```语言\n// 建议重构为\nprivate User findUserById(String userId) { ... }\n```\n\n### ✅ 做得好的地方\n- 异常处理完整\n- 日志记录规范\n```\n\n### 模式二：PR 审查\n\n用户提交 diff 或 PR 内容，进行变更审查。\n\n**输入格式**：\n```\n审查这个 PR：[diff 内容]\n```\n\n或\n\n```\n审查我最近的代码变更\n```\n\n**执行步骤**：\n1. 如用户在工作目录中，主动用 `git diff` 获取变更\n2. 分析变更文件列表和影响范围\n3. 对每个文件的变更逐一审查\n4. 汇总为 PR Review 报告\n\n**输出格式**：\n\n```markdown\n## 🔍 PR Review 报告\n\n**变更范围**: 5 个文件（+142/-38）\n**风险等级**: 🟡 中\n**审查结论**: ✅ 可以合并（修复 1 个警告后）\n\n### 📊 变更概览\n| 文件 | 变更行数 | 风险 | 评审结果 |\n|------|---------|------|---------|\n| auth/login.go | +45/-12 | 🟡 | 有 1 个警告 |\n| utils/crypto.go | +23/-5 | 🟢 | 通过 |\n| config.yaml | +8/-2 | 🟢 | 通过 |\n| tests/auth_test.go | +58/-15 | 🟢 | 通过 |\n| README.md | +8/-4 | 🟢 | 通过 |\n\n### 🟡 需要关注的问题\n[详细问题列表和修复建议]\n\n### 💡 改进建议\n[非必须但能提升代码质量的建议]\n\n### ✅ 值得肯定\n[写得好的地方]\n```\n\n### 模式三：安全审查\n\n专注于安全维度的深度审查。\n\n**输入格式**：\n```\n安全审查这段代码：[代码]\n```\n\n**审查重点**：\n- SQL 注入 / XSS / CSRF\n- 硬编码密钥/密码\n- 不安全的反序列化\n- 权限/认证绕过\n- 敏感数据泄露\n- 依赖漏洞\n\n### 模式四：快速自查\n\n提交前快速扫描，只输出严重问题。\n\n**输入格式**：\n```\n快速检查这段代码：[代码]\n```\n\n**输出格式**：\n```\n🔍 快速审查结果：✅ 可以提交 / ⚠️ 有 N 个问题\n\n[如果有问题，列出简要说明和修复建议]\n```\n\n## 🧠 审查维度详解\n\n加载 `review-rules.md` 获取完整的审查规则库。\n\n### 五大审查维度\n\n| 维度 | 关注点 | 严重级别 |\n|------|--------|---------|\n| 🔒 安全 | 注入、泄露、认证、加密 | 🔴 严重 |\n| ⚡ 性能 | 算法复杂度、内存、缓存、N+1查询 | 🟡 警告 |\n| 🔧 可维护性 | 代码复杂度、重复、命名、注释 | 🔵 建议 |\n| 🧩 逻辑 | 边界条件、空值、并发、竞态 | 🔴 严重 |\n| 📐 风格 | 编码规范、格式、最佳实践 | 🔵 建议 |\n\n### 语言特定规则\n\n根据代码语言自动切换审查规则：\n\n| 语言 | 特定关注点 |\n|------|-----------|\n| Java | 资源泄漏、空指针、并发安全、Spring 最佳实践 |\n| Python | 类型安全、GIL、装饰器滥用、异步陷阱 |\n| Go | goroutine 泄漏、error 处理、channel 死锁 |\n| JavaScript/TS | Promise 错误处理、原型污染、类型安全 |\n| SQL | 注入、索引、N+1、事务隔离级别 |\n| Rust | 生命周期、unsafe 使用、内存安全 |\n\n## 🔄 工作流程\n\n1. **读取审查规则** → 用 `read` 工具读取 `re"},{"path":"README.md","content":"# 🔍 Code Review — AI 智能代码审查\n\n> 不遗漏每一行有问题的代码。\n\n## 它是什么？\n\nCode Review 是一个 [OpenClaw](https://openclaw.ai) Skill，为你的 AI Agent 添加专业的代码审查能力。\n\n给它代码片段、diff 或 PR 内容，它就能输出：\n- 多维度代码审查报告（安全/性能/可维护性/逻辑/风格）\n- 风险评级和优先级标注\n- 具体的修复代码建议\n- PR 审查结论\n\n## ✨ 特性\n\n- ✅ **5 大审查维度** — 安全、性能、可维护性、逻辑、风格，不遗漏\n- ✅ **3 级风险标注** — 🔴 严重 / 🟡 警告 / 🔵 建议，优先级清晰\n- ✅ **4 种使用模式** — 完整审查 / PR 审查 / 安全审查 / 快速自查\n- ✅ **多语言支持** — Java / Python / Go / JavaScript / SQL / Rust\n- ✅ **修复建议** — 每个问题附带可直接使用的修复代码\n- ✅ **中文优先** — 审查报告和说明使用中文\n\n## 📦 安装\n\n```bash\n# 复制到你的 OpenClaw Skills 目录\ncp -r code-review/ ~/.openclaw/workspace/skills/\n```\n\n## 🎯 使用方式\n\n### 完整代码审查\n```\n帮我 review 这段代码：[代码片段]\n```\n\n### PR 审查\n```\n审查这个 PR：[diff 内容]\n```\n\n### 安全审查\n```\n安全审查这段代码：[代码]\n```\n\n### 快速自查\n```\n快速检查这段代码：[代码]\n```\n\n## 🧠 审查维度\n\n| 维度 | 关注点 | 示例 |\n|------|--------|------|\n| 🔒 安全 | 注入、泄露、认证、加密 | SQL注入、硬编码密码、XSS |\n| ⚡ 性能 | 算法、内存、缓存、N+1 | 循环内查询、大列表无分页 |\n| 🔧 可维护性 | 复杂度、重复、命名 | 过长方法、嵌套过深、魔法数字 |\n| 🧩 逻辑 | 边界条件、空值、并发 | null 未处理、竞态条件 |\n| 📐 风格 | 规范、格式、最佳实践 | 未使用 import、行过长 |\n\n## 📊 评级标准\n\n| 评级 | 含义 | 标准 |\n|------|------|------|\n| ⭐ | 不可合并 | 严重安全漏洞或逻辑错误 |\n| ⭐⭐ | 需要大改 | 多个严重问题 |\n| ⭐⭐⭐ | 可以更好 | 有警告级问题 |\n| ⭐⭐⭐⭐ | 良好 | 只有建议级改进 |\n| ⭐⭐⭐⭐⭐ | 优秀 | 代码质量高 |\n\n## 🏗️ 文件结构\n\n```\ncode-review/\n├── SKILL.md          # 主入口，使用说明\n├── review-rules.md   # 完整审查规则库（5大维度+多语言）\n├── test-cases.md     # 8个测试用例\n└── README.md         # 本文件\n```\n\n## 📝 版本\n\n- **v1.0.0** (2026-05-23) — 初始版本，5 大审查维度，4 种使用模式，多语言支持\n\n## 📄 License\n\nMIT\n\n---\n\n**作者**: 小摩事业部 | **Tags**: code-review, developer-tools, security, performance, quality"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7dfpp85z5fypb8h8x6f0awvd87bh9v\",\n  \"slug\": \"smart-code-review\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779615724392\n}"},{"path":"review-rules.md","content":"# 代码审查规则库\n\n> Code Review Rules — 按维度和语言分类的审查规则\n\n---\n\n## 一、安全维度 🔒\n\n### 通用安全规则\n\n| # | 规则 | 严重级别 | 检测模式 |\n|---|------|---------|---------|\n| S-01 | SQL 拼接而非参数化查询 | 🔴 | `SELECT.*\\+.*\\|\".*\".*\\+` |\n| S-02 | 硬编码密钥/密码/Token | 🔴 | `password\\s*=\\s*[\"']\\|api_key\\s*=\\s*[\"']\\|secret\\s*=\\s*[\"']` |\n| S-03 | 不安全的反序列化 | 🔴 | `pickle\\.load\\|unserialize\\|ObjectInputStream` |\n| S-04 | 命令注入 | 🔴 | `exec\\(|Runtime\\.getRuntime\\(\\)\\.exec\\|os\\.system\\(` |\n| S-05 | XSS 风险 — 未转义的用户输入直接输出到 HTML | 🔴 | `innerHTML\\s*=.*\\$\\|document\\.write` |\n| S-06 | 不安全的随机数生成 | 🟡 | `Math\\.random()\\|random\\.random()` (用于安全场景时) |\n| S-07 | 过于宽松的 CORS 配置 | 🟡 | `Access-Control-Allow-Origin.*\\*` |\n| S-08 | 未验证的 URL 重定向 | 🟡 | `redirect.*request\\.\\|header.*Location.*\\+` |\n| S-09 | 敏感信息写入日志 | 🟡 | `log\\.\\(.*password\\|print\\(.*token\\|console\\.log\\(.*secret` |\n| S-10 | 缺少认证/授权检查 | 🟡 | 公开 API 端点没有 auth middleware |\n\n### Java 安全规则\n\n| # | 规则 | 严重级别 |\n|---|------|---------|\n| S-J01 | 使用 `java.security.MessageDigest` 但未指定安全算法 | 🔴 |\n| S-J02 | Spring Security 配置中 `permitAll()` 使用不当 | 🔴 |\n| S-J03 | 未关闭的数据库连接/文件流（缺少 try-with-resources） | 🟡 |\n| S-J04 | 在日志中打印完整的 HttpServletRequest body | 🟡 |\n\n### Python 安全规则\n\n| # | 规则 | 严重级别 |\n|---|------|---------|\n| S-P01 | `eval()` 或 `exec()` 处理用户输入 | 🔴 |\n| S-P02 | Django `DEBUG = True` 在生产环境 | 🔴 |\n| S-P03 | Flask `secret_key` 硬编码或过弱 | 🔴 |\n| S-P04 | `subprocess` 使用 `shell=True` | 🟡 |\n\n### Go 安全规则\n\n| # | 规则 | 严重级别 |\n|---|------|---------|\n| S-G01 | `crypto/md5` 或 `crypto/sha1` 用于安全场景 | 🔴 |\n| S-G02 | `math/rand` 用于生成安全随机数 | 🔴 |\n| S-G03 | HTTP 服务未设置超时 | 🟡 |\n\n---\n\n## 二、性能维度 ⚡\n\n### 通用性能规则\n\n| # | 规则 | 严重级别 | 检测说明 |\n|---|------|---------|---------|\n| P-01 | 循环内执行数据库查询（N+1 问题） | 🔴 | for/while 循环体内有 SQL 查询或 ORM 查询 |\n| P-02 | O(n²) 或更高复杂度算法处理大数据集 | 🟡 | 嵌套循环且内层循环与外层循环使用相同数据 |\n| P-03 | 在循环内创建不可变对象（如 Java String 拼接） | 🟡 | `String += ` 在循环内 |\n| P-04 | 未使用分页的大数据量查询 | 🟡 | `SELECT *` 无 LIMIT 且无分页 |\n| P-05 | 频繁的小文件 I/O 替代批量操作 | 🔵 | 循环内 open/write/close |\n| P-06 | 可以并行但串行执行的独立任务 | 🔵 | 顺序 await 多个无依赖的异步操作 |\n| P-07 | 缓存可复用的计算结果 | 🔵 | 重复计算相同值 |\n| P-08 | 未关闭的资源（连接/流/文件） | 🟡 | 缺少 finally/close 保障 |\n\n### Java 性能规则\n\n| # | 规则 | 严重级别 |\n|---|------|---------|\n| P-J01 | HashMap 初始容量过小导致频繁扩容 | 🔵 |\n| P-J02 | 使用 `LinkedList` 而非 `ArrayList`（随机访问场景） | 🔵 |\n| P-J03 | BigDecimal 构造使用 double 而非 String | 🟡 |\n| P-J04 | 未使用连接池 | 🔴 |\n\n### Python 性能规则\n\n| # | 规则 | 严重级别 |\n|---|------|---------|\n| P-P01 | 列表推导替代 map/filter 的简单场景（可读性换性能） | 🔵 |\n| P-P02 | 使用 Python 循环替代 numpy 向量化操作（数值计算） | 🟡 |\n| P-P03 | 未使用 `__slots__` 的大量实例化类 | 🔵 |\n\n---\n\n## 三、可维护性维度 🔧\n\n### 通用可维护性规则\n\n| # | 规则 | 严重级别 | 说明 |\n|---|------|---------|------|\n| M-01 | 方法/函数超过 50 行 | 🟡 | 拆分为更小的函数 |\n| M-02 | 嵌套超过 3 层的 if/for | 🟡 | 提取方法或使用卫语句 |\n| M-03 | 重复代码块（>5 行相似） | 🟡 | 提取公共方法 |\n| M-04 | 魔法数字/字符串未提取为常量 | 🔵 | 定义命名常量 |\n| M-05 | 函数参数超过 4 个 | 🔵 | 使用对象/结构体封装 |\n| M-06 | 过于通用的命名（data/info/result/temp） | 🔵 | 使用具体描述性命名 |\n| M-07 | 缺少必要的注释（复杂逻辑/业务规则） | 🔵 | 添加为什么（why）的注释 |\n| M-08 | 过多的注释（注释掉的代码） | 🔵 | 删除无用代码，版本控制负责历史 |\n| M-09 | 上帝类/上帝函"},{"path":"skill-card.md","content":"## Description:\n\nCode Review helps agents review code snippets, diffs, and PR changes across security, performance, maintainability, logic, and style, then produce structured findings with risk ratings and fix suggestions.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[caingao](https://clawhub.ai/user/caingao)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and engineers use this skill to ask an agent for full, PR, security-focused, or quick code reviews before merge or release. It is designed to surface prioritized issues and practical remediation guidance.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill may ask the agent to inspect proprietary or sensitive source code and diffs.\n\nMitigation: Use it only with code the user is authorized to share, and keep review input within the intended agent or workspace boundary.\n\nRisk: Generated findings and fix snippets may be incomplete or wrong even when the security scan verdict is clean.\n\nMitigation: Treat results as review assistance and have a developer validate security, logic, and generated fixes before merging.\n\nRisk: The artifact is Chinese-first, which may be unsuitable for teams expecting English review output.\n\nMitigation: Request English output explicitly when needed.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/caingao/skills/smart-code-review)\n- [OpenClaw](https://openclaw.ai)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, guidance]\n\n**Output Format:** [Markdown review reports with prioritized findings, summaries, and code snippets]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Chinese-first output by default; users can request English output explicitly.]\n\n## Skill Version(s):\n\n1.0.0 (source: server release metadata, OpenClaw metadata, README)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"AI 驱动的代码审查工具。对代码变更进行多维度审查，输出结构化的 Review 意见。 **当以下情况时使用此 Skill**: (1) 需要对代码进行 Code Review (2) 需要审查 PR/MR 的代码变更 (3) 用户提到\"code review\"、\"代码审查\"、\"帮我看看代码\"、\"这段代码有问题吗... Skill: Code Review Owner: caingao Summary: AI 驱动的代码审查工具。对代码变更进行多维度审查，输出结构化的 Review 意见。 **当以下情况时使用此 Skill**: (1) 需要对代码进行 Code Review (2) 需要审查 PR/MR 的代码变更 (3) 用户提到\"code review\"、\"代码审查\"、\"帮我看看代码\"、\"这段代码有问题吗... Tags: latest:1.0.0 Version history: v1.0.0 | 2026-05-24T09:42:04.392Z | auto AI 驱动的智能代码审查工具 — 首个版本发布 - 支持五大审查维度：安全、性能、可维护性、逻辑、风格 - 提供四种审查模式：完整代码、PR 变更、安全专注、快速自查 - 风险分级：严重/警告/建议，并附带修复代码片段 - 自动根据语言切换审查规则，支持多语言 - 按模式生成结","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":922,"uniquenessScore":58,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T13:55:35.754Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T13:55:35.754Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:34:03.775Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}