[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ESHREVG7YW30TZ8XZDFX8D":3,"skill-same:01M6ESHREVG7YW30TZ8XZDFX8D":89},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":31,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":60,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":65,"ownerHtmlUrl":66,"ownerBlogUrl":6,"ownerDescription":67,"updatedAt":68,"install":69,"resources":82},"01M6ESHREVG7YW30TZ8XZDFX8D","code-review-assistant",null,"Comprehensive PR review using multi-agent swarm with specialized reviewers for security, performance, style, tests, and documentation. Provides detailed feedback with auto-fix suggestions and merge readiness assessment.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fdnyoussef\u002Fcode-review-assistant\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"assistant","review","code review","code","code review assistant","tier-1","with","multi","tests","essential","auto","fix","specialized","feedback","swarm","assessment","pr","documentation","pr review","performance","2026-11-10 10:12:30",false,"---\nname: code-review-assistant\ndescription: Comprehensive PR review using multi-agent swarm with specialized reviewers for security, performance, style, tests, and documentation. Provides detailed feedback with auto-fix suggestions and merge readiness assessment.\ntags: [review, pr, github, swarm, essential, tier-1]\nversion: 1.0.0\n---\n\n# Code Review Assistant\n\n## Purpose\n\nAutomated comprehensive code review using specialized multi-agent swarm for PRs.\n\n## Specialist Agent\n\nI am a code review coordinator managing specialized review agents.\n\n**Methodology** (Multi-Agent Swarm Review Pattern):\n1. Initialize review swarm with specialized agents\n2. Parallel comprehensive review (security, performance, style, tests, docs)\n3. Run complete quality audit pipeline\n4. Aggregate findings with severity ranking\n5. Generate fix suggestions with Codex\n6. Assess merge readiness with quality gates\n7. Create detailed review comment\n\n**Review Agents** (5 specialists):\n- **Security Reviewer**: Vulnerabilities, unsafe patterns, secrets\n- **Performance Analyst**: Bottlenecks, optimization opportunities\n- **Style Reviewer**: Code style, best practices, maintainability\n- **Test Specialist**: Test coverage, quality, edge cases\n- **Documentation Reviewer**: Comments, API docs, README updates\n\n## Input Contract\n\n```yaml\ninput:\n  pr_number: number (required) or\n  changed_files: array[string] (file paths)\n  focus_areas: array[enum] (default: all)\n    - security\n    - performance\n    - style\n    - tests\n    - documentation\n  suggest_fixes: boolean (default: true)\n  auto_merge_if_passing: boolean (default: false)\n```\n\n## Output Contract\n\n```yaml\noutput:\n  review_summary:\n    overall_score: number (0-100)\n    merge_ready: boolean\n    blocking_issues: number\n    warnings: number\n    suggestions: number\n  detailed_reviews:\n    security: object\n    performance: object\n    style: object\n    tests: object\n    documentation: object\n  fix_suggestions: array[code_change]\n  merge_decision: enum[approve, request_changes, needs_work]\n```\n\n## Execution Flow\n\n```bash\n#!\u002Fbin\u002Fbash\nset -e\n\nPR_NUMBER=\"$1\"\nFOCUS_AREAS=\"${2:-security,performance,style,tests,documentation}\"\nSUGGEST_FIXES=\"${3:-true}\"\n\nREVIEW_DIR=\"pr-review-$PR_NUMBER\"\nmkdir -p \"$REVIEW_DIR\"\n\necho \"================================================================\"\necho \"Code Review Assistant: PR #$PR_NUMBER\"\necho \"================================================================\"\n\n# PHASE 1: PR Information Gathering\necho \"[1\u002F8] Gathering PR information...\"\ngh pr view \"$PR_NUMBER\" --json title,body,files,additions,deletions > \"$REVIEW_DIR\u002Fpr-info.json\"\n\nPR_TITLE=$(cat \"$REVIEW_DIR\u002Fpr-info.json\" | jq -r '.title')\nCHANGED_FILES=$(cat \"$REVIEW_DIR\u002Fpr-info.json\" | jq -r '.files[].path' | tr '\\n' ' ')\n\necho \"PR: $PR_TITLE\"\necho \"Files changed: $(echo $CHANGED_FILES | wc -w)\"\n\n# Checkout PR branch\ngh pr checkout \"$PR_NUMBER\"\n\n# PHASE 2: Initialize Review Swarm\necho \"[2\u002F8] Initializing multi-agent review swarm...\"\nnpx claude-flow coordination swarm-init \\\n  --topology mesh \\\n  --max-agents 5 \\\n  --strategy specialized\n\n# Spawn specialized review agents\nnpx claude-flow automation auto-agent \\\n  --task \"Comprehensive code review of PR#$PR_NUMBER focusing on: $FOCUS_AREAS\" \\\n  --strategy optimal \\\n  --max-agents 5\n\n# PHASE 3: Parallel Specialized Reviews\necho \"[3\u002F8] Executing specialized reviews in parallel...\"\n\n# Security Review\nif [[ \"$FOCUS_AREAS\" == *\"security\"* ]]; then\n  echo \"  → Security Specialist reviewing...\"\n  npx claude-flow security-scan . \\\n    --deep true \\\n    --check-secrets true \\\n    --output \"$REVIEW_DIR\u002Fsecurity-review.json\" &\n  SEC_PID=$!\nfi\n\n# Performance Review\nif [[ \"$FOCUS_AREAS\" == *\"performance\"* ]]; then\n  echo \"  → Performance Analyst reviewing...\"\n  npx claude-flow analysis bottleneck-detect \\\n    --threshold 10 \\\n    --output \"$REVIEW_DIR\u002Fperformance-review.json\" &\n  PERF_PID=$!\nfi\n\n# Style Review\nif [[ \"$FOCUS_AREAS\" == *\"style\"* ]]; then\n  echo \"  → Style Reviewer checking...\"\n  npx claude-flow style-audit . \\\n    --fix false \\\n    --output \"$REVIEW_DIR\u002Fstyle-review.json\" &\n  STYLE_PID=$!\nfi\n\n# Test Review\nif [[ \"$FOCUS_AREAS\" == *\"tests\"* ]]; then\n  echo \"  → Test Specialist analyzing...\"\n  npx claude-flow test-coverage . \\\n    --detailed true \\\n    --output \"$REVIEW_DIR\u002Ftest-review.json\" &\n  TEST_PID=$!\nfi\n\n# Documentation Review\nif [[ \"$FOCUS_AREAS\" == *\"documentation\"* ]]; then\n  echo \"  → Documentation Reviewer checking...\"\n  # Check for README updates, JSDoc comments, etc.\n  npx claude-flow docs-checker . \\\n    --output \"$REVIEW_DIR\u002Fdocs-review.json\" &\n  DOCS_PID=$!\nfi\n\n# Wait for all reviews to complete\nwait $SEC_PID $PERF_PID $STYLE_PID $TEST_PID $DOCS_PID 2>\u002Fdev\u002Fnull || true\n\n# PHASE 4: Complete Quality Audit\necho \"[4\u002F8] Running complete quality audit...\"\nnpx claude-flow audit-pipeline . \\\n  --phase all \\\n  --model codex-auto \\\n  --output \"$REVIEW_DIR\u002Fquality-audit.json\"\n\n# PHASE 5: Aggregate Review Findings\necho \"[5\u002F8] Aggregating review findings...\"\ncat > \"$REVIEW_DIR\u002Faggregated-review.json\" \u003C\u003CEOF\n{\n  \"pr_number\": $PR_NUMBER,\n  \"pr_title\": \"$PR_TITLE\",\n  \"reviews\": {\n    \"security\": $(cat \"$REVIEW_DIR\u002Fsecurity-review.json\" 2>\u002Fdev\u002Fnull || echo \"{}\"),\n    \"performance\": $(cat \"$REVIEW_DIR\u002Fperformance-review.json\" 2>\u002Fdev\u002Fnull || echo \"{}\"),\n    \"style\": $(cat \"$REVIEW_DIR\u002Fstyle-review.json\" 2>\u002Fdev\u002Fnull || echo \"{}\"),\n    \"tests\": $(cat \"$REVIEW_DIR\u002Ftest-review.json\" 2>\u002Fdev\u002Fnull || echo \"{}\"),\n    \"documentation\": $(cat \"$REVIEW_DIR\u002Fdocs-review.json\" 2>\u002Fdev\u002Fnull || echo \"{}\"),\n    \"quality_audit\": $(cat \"$REVIEW_DIR\u002Fquality-audit.json\")\n  }\n}\nEOF\n\n# Calculate scores\nSECURITY_SCORE=$(cat \"$REVIEW_DIR\u002Fsecurity-review.json\" 2>\u002Fdev\u002Fnull | jq '.score \u002F\u002F 100')\nPERF_SCORE=$(cat \"$REVIEW_DIR\u002Fperformance-review.json\" 2>\u002Fdev\u002Fnull | jq '.score \u002F\u002F 100')\nSTYLE_SCORE=$(cat \"$REVIEW_DIR\u002Fstyle-review.json\" 2>\u002Fdev\u002Fnull | jq '.quality_score \u002F\u002F 100')\nTEST_SCORE=$(cat \"$REVIEW_DIR\u002Ftest-review.json\" 2>\u002Fdev\u002Fnull | jq '.coverage_percent \u002F\u002F 100')\nQUALITY_SCORE=$(cat \"$REVIEW_DIR\u002Fquality-audit.json\" | jq '.overall_score \u002F\u002F 100')\n\nOVERALL_SCORE=$(echo \"($SECURITY_SCORE + $PERF_SCORE + $STYLE_SCORE + $TEST_SCORE + $QUALITY_SCORE) \u002F 5\" | bc)\n\n# PHASE 6: Generate Fix Suggestions\nif [ \"$SUGGEST_FIXES\" = \"true\" ]; then\n  echo \"[6\u002F8] Generating fix suggestions with Codex...\"\n\n  # Collect all issues\n  ISSUES=$(cat \"$REVIEW_DIR\u002Faggregated-review.json\" | jq '[.reviews[] | .issues? \u002F\u002F [] | .[]]')\n\n  if [ \"$(echo $ISSUES | jq 'length')\" -gt 0 ]; then\n    codex --reasoning-mode \"Suggest fixes for code review issues\" \\\n      --context \"$REVIEW_DIR\u002Faggregated-review.json\" \\\n      --output \"$REVIEW_DIR\u002Ffix-suggestions.md\"\n  fi\nfi\n\n# PHASE 7: Assess Merge Readiness\necho \"[7\u002F8] Assessing merge readiness...\"\n\nCRITICAL_SECURITY=$(cat \"$REVIEW_DIR\u002Fsecurity-review.json\" 2>\u002Fdev\u002Fnull | jq '.critical_issues \u002F\u002F 0')\nTESTS_PASSING=$(cat \"$REVIEW_DIR\u002Fquality-audit.json\" | jq '.functionality_audit.all_passed \u002F\u002F false')\n\nMERGE_READY=\"false\"\nMERGE_DECISION=\"request_changes\"\n\nif [ \"$CRITICAL_SECURITY\" -eq 0 ] && [ \"$TESTS_PASSING\" = \"true\" ] && [ \"$OVERALL_SCORE\" -ge 80 ]; then\n  MERGE_READY=\"true\"\n  if [ \"$OVERALL_SCORE\" -ge 90 ]; then\n    MERGE_DECISION=\"approve\"\n  else\n    MERGE_DECISION=\"approve_with_suggestions\"\n  fi\nfi\n\n# PHASE 8: Create Review Comment\necho \"[8\u002F8] Creating review comment...\"\n\ncat > \"$REVIEW_DIR\u002Freview-comment.md\" \u003C\u003CEOF\n# ? Automated Code Review\n\n**Overall Score**: $OVERALL_SCORE\u002F100\n**Merge Ready**: $([ \"$MERGE_READY\" = \"true\" ] && echo \"✅ Yes\" || echo \"⚠️ No\")\n\n## Review Summary\n\n| Category | Score | Status |\n|----------|-------|--------|\n| ? Security | $SECURITY_SCORE\u002F100 | $([ \"$SECURITY_SCORE\" -ge 80 ] && echo \"✅\" || echo \"⚠️\") |\n| ⚡ Performance | $PERF_SCORE\u002F100 | $([ \"$PERF_SCORE\" -ge 80 ] && echo \"✅\" || echo \"⚠️\") |\n| ? Style | $STYLE_SCORE\u002F100 | $([ \"$STYLE_SCORE\" -ge 80 ] && echo \"✅\" || echo \"⚠️\") |\n| ? Tests | $TEST_SCORE\u002F100 | $([ \"$TEST_SCORE\" -ge 80 ] && echo \"✅\" || echo \"⚠️\") |\n| ? Quality | $QUALITY_SCORE\u002F100 | $([ \"$QUALITY_SCORE\" -ge 80 ] && echo \"✅\" || echo \"⚠️\") |\n\n## Detailed Findings\n\n### ? Security Review\n$(cat \"$REVIEW_DIR\u002Fsecurity-review.json\" 2>\u002Fdev\u002Fnull | jq -r '.summary \u002F\u002F \"No issues found ✅\"')\n\n### ⚡ Performance Review\n$(cat \"$REVIEW_DIR\u002Fperformance-review.json\" 2>\u002Fdev\u002Fnull | jq -r '.summary \u002F\u002F \"No bottlenecks detected ✅\"')\n\n### ? Style Review\n$(cat \"$REVIEW_DIR\u002Fstyle-review.json\" 2>\u002Fdev\u002Fnull | jq -r '.summary \u002F\u002F \"Code style looks good ✅\"')\n\n### ? Test Review\n- Test Coverage: $TEST_SCORE%\n- All Tests Passing: $([ \"$TESTS_PASSING\" = \"true\" ] && echo \"✅ Yes\" || echo \"❌ No\")\n\n## Fix Suggestions\n\n$(cat \"$REVIEW_DIR\u002Ffix-suggestions.md\" 2>\u002Fdev\u002Fnull || echo \"No suggestions needed - code looks great! ?\")\n\n---\n\n? Generated by Claude Code Review Assistant\nEOF\n\n# Post review comment\ngh pr comment \"$PR_NUMBER\" --body-file \"$REVIEW_DIR\u002Freview-comment.md\"\n\n# Approve or request changes\nif [ \"$MERGE_DECISION\" = \"approve\" ]; then\n  gh pr review \"$PR_NUMBER\" --approve --body \"Code review passed! Overall score: $OVERALL_SCORE\u002F100 ✅\"\nelif [ \"$MERGE_DECISION\" = \"approve_with_suggestions\" ]; then\n  gh pr review \"$PR_NUMBER\" --approve --body \"Approved with suggestions. See detailed review comment. Score: $OVERALL_SCORE\u002F100 ✅\"\nelse\n  gh pr review \"$PR_NUMBER\" --request-changes --body \"Please address review findings before merging. Score: $OVERALL_SCORE\u002F100\"\nfi\n\necho \"\"\necho \"================================================================\"\necho \"Code Review Complete!\"\necho \"================================================================\"\necho \"\"\necho \"Overall Score: $OVERALL_SCORE\u002F100\"\necho \"Merge Ready: $MERGE_READY\"\necho \"Decision: $MERGE_DECISION\"\necho \"\"\necho \"Review artifacts in: $REVIEW_DIR\u002F\"\necho \"Review comment posted to PR #$PR_NUMBER\"\necho \"\"\n```\n\n## Integration Points\n\n### Cascades\n- Part of `\u002Fgithub-automation-workflow` cascade\n- Used by `\u002Fpr-quality-gate` cascade\n- Invoked by `\u002Freview-pr` command\n\n### Commands\n- Uses: `\u002Fswarm-init`, `\u002Fauto-agent`, `\u002Fsecurity-scan`\n- Uses: `\u002Fbottleneck-detect`, `\u002Fstyle-audit`, `\u002Ftest-coverage`\n- Uses: `\u002Faudit-pipeline`, `\u002Fcodex-reasoning`\n- Uses GitHub CLI: `gh pr view`, `gh pr checkout`, `gh pr comment`, `gh pr review`\n\n### Other Skills\n- Invokes: `quick-quality-check`, `smart-bug-fix` (if issues)\n- Output to: `merge-decision-maker`, `pr-enhancer`\n\n## Usage Example\n\n```bash\n# Review PR with all checks\ncode-review-assistant 123\n\n# Review focusing on security\ncode-review-assistant 123 security\n\n# Review with auto-merge\ncode-review-assistant 123 \"security,tests\" true --auto-merge true\n```\n\n## Failure Modes\n\n- **PR not found**: Verify PR number and repository access\n- **Critical security issues**: Block merge, escalate to security team\n- **Tests failing**: Request changes, provide fix suggestions\n- **GitHub CLI not authenticated**: Guide user to authenticate\n","# Code Review Assistant\n\n## Purpose\n\nAutomated comprehensive code review using specialized multi-agent swarm for PRs.\n\n## Specialist Agent\n\nI am a code review coordinator managing specialized review agents.\n\n**Methodology** (Multi-Agent Swarm Review Pattern):\n1. Initialize review swarm with specialized agents\n2. Parallel comprehensive review (security, performance, style, tests, docs)\n3. Run complete quality audit pipeline\n4. Aggregate findings with severity ranking\n5. Generate fix suggestions with Codex\n6. Assess merge readiness with quality gates\n7. Create detailed review comment\n\n**Review Agents** (5 specialists):\n- **Security Reviewer**: Vulnerabilities, unsafe patterns, secrets\n- **Performance Analyst**: Bottlenecks, optimization opportunities\n- **Style Reviewer**: Code style, best practices, maintainability\n- **Test Specialist**: Test coverage, quality, edge cases\n- **Documentation Reviewer**: Comments, API docs, README updates\n\n## Input Contract\n\n```yaml\ninput:\n  pr_number: number (required) or\n  changed_files: array[string] (file paths)\n  focus_areas: array[enum] (default: all)\n    - security\n    - performance\n    - style\n    - tests\n    - documentation\n  suggest_fixes: boolean (default: true)\n  auto_merge_if_passing: boolean (default: false)\n```\n\n## Output Contract\n\n```yaml\noutput:\n  review_summary:\n    overall_score: number (0-100)\n    merge_ready: boolean\n    blocking_issues: number\n    warnings: number\n    suggestions: number\n  detailed_reviews:\n    security: object\n    performance: object\n    style: object\n    tests: object\n    documentation: object\n  fix_suggestions: array[code_change]\n  merge_decision: enum[approve, request_changes, needs_work]\n```\n\n## Execution Flow\n\n```bash\n#!\u002Fbin\u002Fbash\nset -e\n\nPR_NUMBER=\"$1\"\nFOCUS_AREAS=\"${2:-security,performance,style,tests,documentation}\"\nSUGGEST_FIXES=\"${3:-true}\"\n\nREVIEW_DIR=\"pr-review-$PR_NUMBER\"\nmkdir -p \"$REVIEW_DIR\"\n\necho \"================================================================\"\necho \"Code Review Assistant: PR #$PR_NUMBER\"\necho \"================================================================\"\n\n# PHASE 1: PR Information Gathering\necho \"[1\u002F8] Gathering PR information...\"\ngh pr view \"$PR_NUMBER\" --json title,body,files,additions,deletions > \"$REVIEW_DIR\u002Fpr-info.json\"\n\nPR_TITLE=$(cat \"$REVIEW_DIR\u002Fpr-info.json\" | jq -r '.title')\nCHANGED_FILES=$(cat \"$REVIEW_DIR\u002Fpr-info.json\" | jq -r '.files[].path' | tr '\\n' ' ')\n\necho \"PR: $PR_TITLE\"\necho \"Files changed: $(echo $CHANGED_FILES | wc -w)\"\n\n# Checkout PR branch\ngh pr checkout \"$PR_NUMBER\"\n\n# PHASE 2: Initialize Review Swarm\necho \"[2\u002F8] Initializing multi-agent review swarm...\"\nnpx claude-flow coordination swarm-init \\\n  --topology mesh \\\n  --max-agents 5 \\\n  --strategy specialized\n\n# Spawn specialized review agents\nnpx claude-flow automation auto-agent \\\n  --task \"Comprehensive code review of PR#$PR_NUMBER focusing on: $FOCUS_AREAS\" \\\n  --strategy optimal \\\n  --max-agents 5\n\n# PHASE 3: Parallel Specialized Reviews\necho \"[3\u002F8] Executing specialized reviews in parallel...\"\n\n# Security Review\nif [[ \"$FOCUS_AREAS\" == *\"security\"* ]]; then\n  echo \"  → Security Specialist reviewing...\"\n  npx claude-flow security-scan . \\\n    --deep true \\\n    --check-secrets true \\\n    --output \"$REVIEW_DIR\u002Fsecurity-review.json\" &\n  SEC_PID=$!\nfi\n\n# Performance Review\nif [[ \"$FOCUS_AREAS\" == *\"performance\"* ]]; then\n  echo \"  → Performance Analyst reviewing...\"\n  npx claude-flow analysis bottleneck-detect \\\n    --threshold 10 \\\n    --output \"$REVIEW_DIR\u002Fperformance-review.json\" &\n  PERF_PID=$!\nfi\n\n# Style Review\nif [[ \"$FOCUS_AREAS\" == *\"style\"* ]]; then\n  echo \"  → Style Reviewer checking...\"\n  npx claude-flow style-audit . \\\n    --fix false \\\n    --output \"$REVIEW_DIR\u002Fstyle-review.json\" &\n  STYLE_PID=$!\nfi\n\n# Test Review\nif [[ \"$FOCUS_AREAS\" == *\"tests\"* ]]; then\n  echo \"  → Test Specialist analyzing...\"\n  npx claude-flow test-coverage . \\\n    --detailed true \\\n    --output \"$REVIEW_DIR\u002Ftest-review.json\" &\n  TEST_PID=$!\nfi\n\n# Documentation Review\nif [[ \"$FOCUS_AREAS\" == *\"documentation\"* ]]; then\n  echo \"  → Documentation Reviewer checking...\"\n  # Check for README updates, JSDoc comments, etc.\n  npx claude-flow docs-checker . \\\n    --output \"$REVIEW_DIR\u002Fdocs-review.json\" &\n  DOCS_PID=$!\nfi\n\n# Wait for all reviews to complete\nwait $SEC_PID $PERF_PID $STYLE_PID $TEST_PID $DOCS_PID 2>\u002Fdev\u002Fnull || true\n\n# PHASE 4: Complete Quality Audit\necho \"[4\u002F8] Running complete quality audit...\"\nnpx claude-flow audit-pipeline . \\\n  --phase all \\\n  --model codex-auto \\\n  --output \"$REVIEW_DIR\u002Fquality-audit.json\"\n\n# PHASE 5: Aggregate Review Findings\necho \"[5\u002F8] Aggregating review findings...\"\ncat > \"$REVIEW_DIR\u002Faggregated-review.json\" \u003C\u003CEOF\n{\n  \"pr_number\": $PR_NUMBER,\n  \"pr_title\": \"$PR_TITLE\",\n  \"reviews\": {\n    \"security\": $(cat \"$REVIEW_DIR\u002Fsecurity-review.json\" 2>\u002Fdev\u002Fnull || echo \"{}\"),\n    \"performance\": $(cat \"$REVIEW_DIR\u002Fperformance-review.json\" 2>\u002Fdev\u002Fnull || echo \"{}\"),\n    \"style\": $(cat \"$REVIEW_DIR\u002Fstyle-review.json\" 2>\u002Fdev\u002Fnull || echo \"{}\"),\n    \"tests\": $(cat \"$REVIEW_DIR\u002Ftest-review.json\" 2>\u002Fdev\u002Fnull || echo \"{}\"),\n    \"documentation\": $(cat \"$REVIEW_DIR\u002Fdocs-review.json\" 2>\u002Fdev\u002Fnull || echo \"{}\"),\n    \"quality_audit\": $(cat \"$REVIEW_DIR\u002Fquality-audit.json\")\n  }\n}\nEOF\n\n# Calculate scores\nSECURITY_SCORE=$(cat \"$REVIEW_DIR\u002Fsecurity-review.json\" 2>\u002Fdev\u002Fnull | jq '.score \u002F\u002F 100')\nPERF_SCORE=$(cat \"$REVIEW_DIR\u002Fperformance-review.json\" 2>\u002Fdev\u002Fnull | jq '.score \u002F\u002F 100')\nSTYLE_SCORE=$(cat \"$REVIEW_DIR\u002Fstyle-review.json\" 2>\u002Fdev\u002Fnull | jq '.quality_score \u002F\u002F 100')\nTEST_SCORE=$(cat \"$REVIEW_DIR\u002Ftest-review.json\" 2>\u002Fdev\u002Fnull | jq '.coverage_percent \u002F\u002F 100')\nQUALITY_SCORE=$(cat \"$REVIEW_DIR\u002Fquality-audit.json\" | jq '.overall_score \u002F\u002F 100')\n\nOVERALL_SCORE=$(echo \"($SECURITY_SCORE + $PERF_SCORE + $STYLE_SCORE + $TEST_SCORE + $QUALITY_SCORE) \u002F 5\" | bc)\n\n# PHASE 6: Generate Fix Suggestions\nif [ \"$SUGGEST_FIXES\" = \"true\" ]; then\n  echo \"[6\u002F8] Generating fix suggestions with Codex...\"\n\n  # Collect all issues\n  ISSUES=$(cat \"$REVIEW_DIR\u002Faggregated-review.json\" | jq '[.reviews[] | .issues? \u002F\u002F [] | .[]]')\n\n  if [ \"$(echo $ISSUES | jq 'length')\" -gt 0 ]; then\n    codex --reasoning-mode \"Suggest fixes for code review issues\" \\\n      --context \"$REVIEW_DIR\u002Faggregated-review.json\" \\\n      --output \"$REVIEW_DIR\u002Ffix-suggestions.md\"\n  fi\nfi\n\n# PHASE 7: Assess Merge Readiness\necho \"[7\u002F8] Assessing merge readiness...\"\n\nCRITICAL_SECURITY=$(cat \"$REVIEW_DIR\u002Fsecurity-review.json\" 2>\u002Fdev\u002Fnull | jq '.critical_issues \u002F\u002F 0')\nTESTS_PASSING=$(cat \"$REVIEW_DIR\u002Fquality-audit.json\" | jq '.functionality_audit.all_passed \u002F\u002F false')\n\nMERGE_READY=\"false\"\nMERGE_DECISION=\"request_changes\"\n\nif [ \"$CRITICAL_SECURITY\" -eq 0 ] && [ \"$TESTS_PASSING\" = \"true\" ] && [ \"$OVERALL_SCORE\" -ge 80 ]; then\n  MERGE_READY=\"true\"\n  if [ \"$OVERALL_SCORE\" -ge 90 ]; then\n    MERGE_DECISION=\"approve\"\n  else\n    MERGE_DECISION=\"approve_with_suggestions\"\n  fi\nfi\n\n# PHASE 8: Create Review Comment\necho \"[8\u002F8] Creating review comment...\"\n\ncat > \"$REVIEW_DIR\u002Freview-comment.md\" \u003C\u003CEOF\n# ? Automated Code Review\n\n**Overall Score**: $OVERALL_SCORE\u002F100\n**Merge Ready**: $([ \"$MERGE_READY\" = \"true\" ] && echo \"✅ Yes\" || echo \"⚠️ No\")\n\n## Review Summary\n\n| Category | Score | Status |\n|----------|-------|--------|\n| ? Security | $SECURITY_SCORE\u002F100 | $([ \"$SECURITY_SCORE\" -ge 80 ] && echo \"✅\" || echo \"⚠️\") |\n| ⚡ Performance | $PERF_SCORE\u002F100 | $([ \"$PERF_SCORE\" -ge 80 ] && echo \"✅\" || echo \"⚠️\") |\n| ? Style | $STYLE_SCORE\u002F100 | $([ \"$STYLE_SCORE\" -ge 80 ] && echo \"✅\" || echo \"⚠️\") |\n| ? Tests | $TEST_SCORE\u002F100 | $([ \"$TEST_SCORE\" -ge 80 ] && echo \"✅\" || echo \"⚠️\") |\n| ? Quality | $QUALITY_SCORE\u002F100 | $([ \"$QUALITY_SCORE\" -ge 80 ] && echo \"✅\" || echo \"⚠️\") |\n\n## Detailed Findings\n\n### ? Security Review\n$(cat \"$REVIEW_DIR\u002Fsecurity-review.json\" 2>\u002Fdev\u002Fnull | jq -r '.summary \u002F\u002F \"No issues found ✅\"')\n\n### ⚡ Performance Review\n$(cat \"$REVIEW_DIR\u002Fperformance-review.json\" 2>\u002Fdev\u002Fnull | jq -r '.summary \u002F\u002F \"No bottlenecks detected ✅\"')\n\n### ? Style Review\n$(cat \"$REVIEW_DIR\u002Fstyle-review.json\" 2>\u002Fdev\u002Fnull | jq -r '.summary \u002F\u002F \"Code style looks good ✅\"')\n\n### ? Test Review\n- Test Coverage: $TEST_SCORE%\n- All Tests Passing: $([ \"$TESTS_PASSING\" = \"true\" ] && echo \"✅ Yes\" || echo \"❌ No\")\n\n## Fix Suggestions\n\n$(cat \"$REVIEW_DIR\u002Ffix-suggestions.md\" 2>\u002Fdev\u002Fnull || echo \"No suggestions needed - code looks great! ?\")\n\n---\n\n? Generated by Claude Code Review Assistant\nEOF\n\n# Post review comment\ngh pr comment \"$PR_NUMBER\" --body-file \"$REVIEW_DIR\u002Freview-comment.md\"\n\n# Approve or request changes\nif [ \"$MERGE_DECISION\" = \"approve\" ]; then\n  gh pr review \"$PR_NUMBER\" --approve --body \"Code review passed! Overall score: $OVERALL_SCORE\u002F100 ✅\"\nelif [ \"$MERGE_DECISION\" = \"approve_with_suggestions\" ]; then\n  gh pr review \"$PR_NUMBER\" --approve --body \"Approved with suggestions. See detailed review comment. Score: $OVERALL_SCORE\u002F100 ✅\"\nelse\n  gh pr review \"$PR_NUMBER\" --request-changes --body \"Please address review findings before merging. Score: $OVERALL_SCORE\u002F100\"\nfi\n\necho \"\"\necho \"================================================================\"\necho \"Code Review Complete!\"\necho \"================================================================\"\necho \"\"\necho \"Overall Score: $OVERALL_SCORE\u002F100\"\necho \"Merge Ready: $MERGE_READY\"\necho \"Decision: $MERGE_DECISION\"\necho \"\"\necho \"Review artifacts in: $REVIEW_DIR\u002F\"\necho \"Review comment posted to PR #$PR_NUMBER\"\necho \"\"\n```\n\n## Integration Points\n\n### Cascades\n- Part of `\u002Fgithub-automation-workflow` cascade\n- Used by `\u002Fpr-quality-gate` cascade\n- Invoked by `\u002Freview-pr` command\n\n### Commands\n- Uses: `\u002Fswarm-init`, `\u002Fauto-agent`, `\u002Fsecurity-scan`\n- Uses: `\u002Fbottleneck-detect`, `\u002Fstyle-audit`, `\u002Ftest-coverage`\n- Uses: `\u002Faudit-pipeline`, `\u002Fcodex-reasoning`\n- Uses GitHub CLI: `gh pr view`, `gh pr checkout`, `gh pr comment`, `gh pr review`\n\n### Other Skills\n- Invokes: `quick-quality-check`, `smart-bug-fix` (if issues)\n- Output to: `merge-decision-maker`, `pr-enhancer`\n\n## Usage Example\n\n```bash\n# Review PR with all checks\ncode-review-assistant 123\n\n# Review focusing on security\ncode-review-assistant 123 security\n\n# Review with auto-merge\ncode-review-assistant 123 \"security,tests\" true --auto-merge true\n```\n\n## Failure Modes\n\n- **PR not found**: Verify PR number and repository access\n- **Critical security issues**: Block merge, escalate to security team\n- **Tests failing**: Request changes, provide fix suggestions\n- **GitHub CLI not authenticated**: Guide user to authenticate\n",{"name":5,"tags":57,"version":59,"description":7},[33,48,58,46,41,37],"github","1.0.0","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fdnyoussef\u002Fcode-review-assistant",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":81},[71,74,77],{"tool":72,"command":73},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill code-review-assistant",{"tool":75,"command":76},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill code-review-assistant",{"tool":78,"command":79},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill code-review-assistant","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fdnyoussef\u002Fcode-review-assistant\u002FSKILL.md",true,[83],{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"skill-report.json","REFERENCE","参考文档",8792,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fdnyoussef\u002Fcode-review-assistant\u002Fskill-report.json",[90,100,110,119,125,132],{"skillNo":91,"name":92,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":96,"publishedAt":52},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[95],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[97,98,99],"model","model hierarchy","model hierarchy skill",{"skillNo":101,"name":102,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":106,"publishedAt":52},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[105],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[107,108,109],"MCP","zoom","zoom mcp",{"skillNo":111,"name":112,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":52},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[116,117,118,108],"sdk","zoom apps sdk","apps",{"skillNo":120,"name":121,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":52},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[121],{"skillNo":126,"name":127,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":131,"publishedAt":52},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[130],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[127],{"skillNo":133,"name":134,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":52},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[134]]