360 Secure SkillHub
360 安全技能中心

Code Review Plus

核心功能:从安全、性能、正确性、可维护性、测试、AI/ML、语言特性七大维度开展代码评审,配备各维度检查清单,规范评审流程、反馈原则及问题 severity 级别。典型场景:代码提交PR后的评审环节,助力发现漏洞、逻辑错误、性能瓶颈等。输入为待评审代码,输出带 severity 标签的具体评审反馈,含问题点、风险及修复建议。

534422530
534422530
热度 16.02
最近更新 2026-06-05 12:23:46
分类:开发依赖:纯提示词应用场景:代码审查 / 安全 / 调试排错 / DevOps

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add code-review-plus
Metadata
name
code-review-plus
description
Enhanced code review with AI/ML-specific checks, multi-language support, security vulnerability patterns, and integration with automated testing. Covers security, performance, correctness, maintainability, testing, AI/ML, and language-specific best practices.
metadata
{"author":"opencode","version":2,"tags":"code-review, security, testing, ai-ml, multi-language","compatibility":"opencode","license":"MIT"}

Code Review Plus

Enhanced code review covering security, performance, correctness, maintainability, testing, AI/ML, and language-specific best practices.

Review Dimensions

Dimension Focus Priority
Security Vulnerabilities, auth, data exposure Critical
Performance Speed, memory, scalability bottlenecks High
Correctness Logic errors, edge cases, data integrity High
Maintainability Readability, structure, future-proofing Medium
Testing Coverage, quality, reliability of tests Medium
AI/ML Model safety, data leakage, bias High
Language Idiomatic patterns, best practices Medium

Security Checklist

  • SQL Injection — All queries use parameterized statements or ORM
  • XSS — User content escaped/sanitized before rendering
  • CSRF Protection — State-changing requests require valid CSRF tokens
  • Authentication — Protected endpoints verify authentication
  • Authorization — Resource access scoped to requesting user
  • Input Validation — All external input validated server-side
  • Secrets Management — No credentials in source code
  • Dependency Safety — Dependencies from trusted sources, no known CVEs
  • Sensitive Data — PII/tokens never logged or in error messages
  • Rate Limiting — Public/auth endpoints have rate limits
  • File Upload Safety — Files validated for type/size, stored outside webroot
  • HTTP Security Headers — CSP, X-Content-Type-Options, HSTS set

AI/ML-Specific Checklist

  • Data Leakage — Training data not exposed in predictions
  • Prompt Injection — User input not injected into prompts without sanitization
  • Model Safety — Output filtering for harmful content
  • Bias Detection — Model outputs checked for demographic bias
  • Cost Control — API calls budgeted, loops prevented
  • Fallback Handling — Graceful degradation when AI services fail
  • Token Limits — Input/output token limits enforced
  • Caching — Expensive AI calls cached where appropriate
  • Rate Limiting — AI API calls rate-limited
  • Logging — AI interactions logged for debugging/audit

Performance Checklist

  • N+1 Queries — Database access patterns batched/joined
  • Unnecessary Re-renders — Components re-render only when needed
  • Memory Leaks — Event listeners, subscriptions cleaned up
  • Bundle Size — Dependencies tree-shakeable, large libs loaded dynamically
  • Lazy Loading — Heavy components use code splitting
  • Caching Strategy — Expensive computations use caching
  • Database Indexing — Queries filter/sort on indexed columns
  • Pagination — List endpoints use pagination
  • Async Operations — Long tasks offloaded to background jobs
  • Image Optimization — Proper sizing, modern formats, CDN

Correctness Checklist

  • Edge Cases — Empty arrays, zero values, max values handled
  • Null/Undefined — Nullable values checked before access
  • Off-by-One — Loop bounds, pagination offsets verified
  • Race Conditions — Concurrent access uses locks/transactions
  • Timezone Handling — Dates stored in UTC
  • Unicode — String ops handle multi-byte characters
  • Integer Overflow — Large number arithmetic uses BigInt/Decimal
  • Error Propagation — Async errors caught and handled
  • State Consistency — Multi-step mutations transactional
  • Boundary Validation — Boundary values tested

Maintainability Checklist

  • Naming Clarity — Descriptive names revealing intent
  • Single Responsibility — Each function/class does one thing
  • DRY — Duplicated logic extracted to utilities
  • Cyclomatic Complexity — Low branching complexity
  • Error Handling — Errors caught, logged, surfaced meaningfully
  • Dead Code — Commented code, unused imports removed
  • Magic Numbers — Literals extracted to named constants
  • Consistent Patterns — New code follows codebase conventions
  • Function Length — Short enough to understand at a glance
  • Dependency Direction — Dependencies point inward

Testing Checklist

  • Test Coverage — New logic paths have tests
  • Edge Case Tests — Boundary values, empty inputs tested
  • No Flaky Tests — Deterministic, no timing reliance
  • Test Independence — Tests set up/tear down own state
  • Meaningful Assertions — Assert on behavior, not implementation
  • Test Readability — Arrange-Act-Assert pattern
  • Mocking Discipline — Only external boundaries mocked
  • Regression Tests — Bug fixes include reproducing tests

Language-Specific Patterns

Python

  • Type hints for public functions
  • Context managers for resource cleanup
  • Virtual environments for dependency isolation
  • Black/flake8 formatting
  • Docstrings for public APIs

JavaScript/TypeScript

  • ESLint/Prettier formatting
  • TypeScript strict mode
  • Async/await over raw promises
  • Optional chaining for null safety
  • Proper error boundaries in React

Go

  • Error handling with errors.Is/As
  • Context propagation
  • Proper goroutine lifecycle
  • gofmt/goimports formatting
  • Interface design patterns

Review Process

Pass Focus Time What to Look For
First High-level structure 2-5 min Architecture, file organization, API design
Second Line-by-line detail Bulk Logic, security, performance, edge cases
Third Edge cases & hardening 5 min Failure modes, concurrency, boundary values

Severity Levels

Level Label Meaning Blocks Merge?
Critical [CRITICAL] Security vulnerability, data loss, crash Yes
Major [MAJOR] Bug, logic error, performance regression Yes
Minor [MINOR] Future maintenance cost reduction No
Nitpick [NIT] Style preference, naming suggestion No

Giving Feedback

Principles

  • Be specific — Point to exact line and explain issue
  • Explain why — State risk or consequence
  • Suggest a fix — Offer concrete alternative or code snippet
  • Ask, don't demand — Use questions for subjective points
  • Acknowledge good work — Call out clean solutions
  • Separate blocking from non-blocking — Use severity labels

Example Comments

Bad:

This is wrong. Fix it.

Good:

[MAJOR] This query interpolates user input directly into SQL (line 42), vulnerable to SQL injection. Consider:

SELECT * FROM users WHERE id = $1

Anti-Patterns

Anti-Pattern Description
Rubber-Stamping Approving without reading
Bikeshedding Debating variable names while ignoring bugs
Blocking on Style Refusing over formatting a linter should enforce
Gatekeeping Requiring personal preferred approach
Drive-by Reviews One vague comment and disappearing
Scope Creep Requesting unrelated refactors
Stale Reviews Letting PRs sit for days
Emotional Language "This is terrible" or "obviously wrong"

NEVER Do

  1. NEVER approve without reading every changed line
  2. NEVER block a PR solely for style preferences
  3. NEVER leave feedback without severity level
  4. NEVER request changes without explaining why
  5. NEVER review more than 400 lines in one sitting
  6. NEVER skip the security checklist
  7. NEVER make it personal