[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M715PMEGARCBDX6G0NSN0CD3":3,"skill-same:01M715PMEGARCBDX6G0NSN0CD3":69},{"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":28,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":14,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M715PMEGARCBDX6G0NSN0CD3","code-review-checklist",null,"Comprehensive checklist for conducting thorough code reviews covering functionality, security, performance, and maintainability","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fcode-review-checklist\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42],"code review","review","code","review checklist","code review checklist","checklist","security","performance","community","maintainability","reviews","for","unknown","2026","2026-11-10 10:12:30",false,"---\nname: code-review-checklist\ndescription: \"Comprehensive checklist for conducting thorough code reviews covering functionality, security, performance, and maintainability\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Code Review Checklist\n\n## Overview\n\nProvide a systematic checklist for conducting thorough code reviews. This skill helps reviewers ensure code quality, catch bugs, identify security issues, and maintain consistency across the codebase.\n\n## When to Use This Skill\n\n- Use when reviewing pull requests\n- Use when conducting code audits\n- Use when establishing code review standards for a team\n- Use when training new developers on code review practices\n- Use when you want to ensure nothing is missed in reviews\n- Use when creating code review documentation\n\n## How It Works\n\n### Step 1: Understand the Context\n\nBefore reviewing code, I'll help you understand:\n- What problem does this code solve?\n- What are the requirements?\n- What files were changed and why?\n- Are there related issues or tickets?\n- What's the testing strategy?\n\n### Step 2: Review Functionality\n\nCheck if the code works correctly:\n- Does it solve the stated problem?\n- Are edge cases handled?\n- Is error handling appropriate?\n- Are there any logical errors?\n- Does it match the requirements?\n\n### Step 3: Review Code Quality\n\nAssess code maintainability:\n- Is the code readable and clear?\n- Are names descriptive?\n- Is it properly structured?\n- Are functions\u002Fmethods focused?\n- Is there unnecessary complexity?\n\n### Step 4: Review Security\n\nCheck for security issues:\n- Are inputs validated?\n- Is sensitive data protected?\n- Are there SQL injection risks?\n- Is authentication\u002Fauthorization correct?\n- Are dependencies secure?\n\n### Step 5: Review Performance\n\nLook for performance issues:\n- Are there unnecessary loops?\n- Is database access optimized?\n- Are there memory leaks?\n- Is caching used appropriately?\n- Are there N+1 query problems?\n\n### Step 6: Review Tests\n\nVerify test coverage:\n- Are there tests for new code?\n- Do tests cover edge cases?\n- Are tests meaningful?\n- Do all tests pass?\n- Is test coverage adequate?\n\n## Examples\n\n### Example 1: Functionality Review Checklist\n\n```markdown\n## Functionality Review\n\n### Requirements\n- [ ] Code solves the stated problem\n- [ ] All acceptance criteria are met\n- [ ] Edge cases are handled\n- [ ] Error cases are handled\n- [ ] User input is validated\n\n### Logic\n- [ ] No logical errors or bugs\n- [ ] Conditions are correct (no off-by-one errors)\n- [ ] Loops terminate correctly\n- [ ] Recursion has proper base cases\n- [ ] State management is correct\n\n### Error Handling\n- [ ] Errors are caught appropriately\n- [ ] Error messages are clear and helpful\n- [ ] Errors don't expose sensitive information\n- [ ] Failed operations are rolled back\n- [ ] Logging is appropriate\n\n### Example Issues to Catch:\n\n**❌ Bad - Missing validation:**\n\\`\\`\\`javascript\nfunction createUser(email, password) {\n  \u002F\u002F No validation!\n  return db.users.create({ email, password });\n}\n\\`\\`\\`\n\n**✅ Good - Proper validation:**\n\\`\\`\\`javascript\nfunction createUser(email, password) {\n  if (!email || !isValidEmail(email)) {\n    throw new Error('Invalid email address');\n  }\n  if (!password || password.length \u003C 8) {\n    throw new Error('Password must be at least 8 characters');\n  }\n  return db.users.create({ email, password });\n}\n\\`\\`\\`\n```\n\n### Example 2: Security Review Checklist\n\n```markdown\n## Security Review\n\n### Input Validation\n- [ ] All user inputs are validated\n- [ ] SQL injection is prevented (use parameterized queries)\n- [ ] XSS is prevented (escape output)\n- [ ] CSRF protection is in place\n- [ ] File uploads are validated (type, size, content)\n\n### Authentication & Authorization\n- [ ] Authentication is required where needed\n- [ ] Authorization checks are present\n- [ ] Passwords are hashed (never stored plain text)\n- [ ] Sessions are managed securely\n- [ ] Tokens expire appropriately\n\n### Data Protection\n- [ ] Sensitive data is encrypted\n- [ ] API keys are not hardcoded\n- [ ] Environment variables are used for secrets\n- [ ] Personal data follows privacy regulations\n- [ ] Database credentials are secure\n\n### Dependencies\n- [ ] No known vulnerable dependencies\n- [ ] Dependencies are up to date\n- [ ] Unnecessary dependencies are removed\n- [ ] Dependency versions are pinned\n\n### Example Issues to Catch:\n\n**❌ Bad - SQL injection risk:**\n\\`\\`\\`javascript\nconst query = \\`SELECT * FROM users WHERE email = '\\${email}'\\`;\ndb.query(query);\n\\`\\`\\`\n\n**✅ Good - Parameterized query:**\n\\`\\`\\`javascript\nconst query = 'SELECT * FROM users WHERE email = $1';\ndb.query(query, [email]);\n\\`\\`\\`\n\n**❌ Bad - Hardcoded secret:**\n\\`\\`\\`javascript\nconst API_KEY = 'sk_live_abc123xyz';\n\\`\\`\\`\n\n**✅ Good - Environment variable:**\n\\`\\`\\`javascript\nconst API_KEY = process.env.API_KEY;\nif (!API_KEY) {\n  throw new Error('API_KEY environment variable is required');\n}\n\\`\\`\\`\n```\n\n### Example 3: Code Quality Review Checklist\n\n```markdown\n## Code Quality Review\n\n### Readability\n- [ ] Code is easy to understand\n- [ ] Variable names are descriptive\n- [ ] Function names explain what they do\n- [ ] Complex logic has comments\n- [ ] Magic numbers are replaced with constants\n\n### Structure\n- [ ] Functions are small and focused\n- [ ] Code follows DRY principle (Don't Repeat Yourself)\n- [ ] Proper separation of concerns\n- [ ] Consistent code style\n- [ ] No dead code or commented-out code\n\n### Maintainability\n- [ ] Code is modular and reusable\n- [ ] Dependencies are minimal\n- [ ] Changes are backwards compatible\n- [ ] Breaking changes are documented\n- [ ] Technical debt is noted\n\n### Example Issues to Catch:\n\n**❌ Bad - Unclear naming:**\n\\`\\`\\`javascript\nfunction calc(a, b, c) {\n  return a * b + c;\n}\n\\`\\`\\`\n\n**✅ Good - Descriptive naming:**\n\\`\\`\\`javascript\nfunction calculateTotalPrice(quantity, unitPrice, tax) {\n  return quantity * unitPrice + tax;\n}\n\\`\\`\\`\n\n**❌ Bad - Function doing too much:**\n\\`\\`\\`javascript\nfunction processOrder(order) {\n  \u002F\u002F Validate order\n  if (!order.items) throw new Error('No items');\n  \n  \u002F\u002F Calculate total\n  let total = 0;\n  for (let item of order.items) {\n    total += item.price * item.quantity;\n  }\n  \n  \u002F\u002F Apply discount\n  if (order.coupon) {\n    total *= 0.9;\n  }\n  \n  \u002F\u002F Process payment\n  const payment = stripe.charge(total);\n  \n  \u002F\u002F Send email\n  sendEmail(order.email, 'Order confirmed');\n  \n  \u002F\u002F Update inventory\n  updateInventory(order.items);\n  \n  return { orderId: order.id, total };\n}\n\\`\\`\\`\n\n**✅ Good - Separated concerns:**\n\\`\\`\\`javascript\nfunction processOrder(order) {\n  validateOrder(order);\n  const total = calculateOrderTotal(order);\n  const payment = processPayment(total);\n  sendOrderConfirmation(order.email);\n  updateInventory(order.items);\n  \n  return { orderId: order.id, total };\n}\n\\`\\`\\`\n```\n\n## Best Practices\n\n### ✅ Do This\n\n- **Review Small Changes** - Smaller PRs are easier to review thoroughly\n- **Check Tests First** - Verify tests pass and cover new code\n- **Run the Code** - Test it locally when possible\n- **Ask Questions** - Don't assume, ask for clarification\n- **Be Constructive** - Suggest improvements, don't just criticize\n- **Focus on Important Issues** - Don't nitpick minor style issues\n- **Use Automated Tools** - Linters, formatters, security scanners\n- **Review Documentation** - Check if docs are updated\n- **Consider Performance** - Think about scale and efficiency\n- **Check for Regressions** - Ensure existing functionality still works\n\n### ❌ Don't Do This\n\n- **Don't Approve Without Reading** - Actually review the code\n- **Don't Be Vague** - Provide specific feedback with examples\n- **Don't Ignore Security** - Security issues are critical\n- **Don't Skip Tests** - Untested code will cause problems\n- **Don't Be Rude** - Be respectful and professional\n- **Don't Rubber Stamp** - Every review should add value\n- **Don't Review When Tired** - You'll miss important issues\n- **Don't Forget Context** - Understand the bigger picture\n\n## Complete Review Checklist\n\n### Pre-Review\n- [ ] Read the PR description and linked issues\n- [ ] Understand what problem is being solved\n- [ ] Check if tests pass in CI\u002FCD\n- [ ] Pull the branch and run it locally\n\n### Functionality\n- [ ] Code solves the stated problem\n- [ ] Edge cases are handled\n- [ ] Error handling is appropriate\n- [ ] User input is validated\n- [ ] No logical errors\n\n### Security\n- [ ] No SQL injection vulnerabilities\n- [ ] No XSS vulnerabilities\n- [ ] Authentication\u002Fauthorization is correct\n- [ ] Sensitive data is protected\n- [ ] No hardcoded secrets\n\n### Performance\n- [ ] No unnecessary database queries\n- [ ] No N+1 query problems\n- [ ] Efficient algorithms used\n- [ ] No memory leaks\n- [ ] Caching used appropriately\n\n### Code Quality\n- [ ] Code is readable and clear\n- [ ] Names are descriptive\n- [ ] Functions are focused and small\n- [ ] No code duplication\n- [ ] Follows project conventions\n\n### Tests\n- [ ] New code has tests\n- [ ] Tests cover edge cases\n- [ ] Tests are meaningful\n- [ ] All tests pass\n- [ ] Test coverage is adequate\n\n### Documentation\n- [ ] Code comments explain why, not what\n- [ ] API documentation is updated\n- [ ] README is updated if needed\n- [ ] Breaking changes are documented\n- [ ] Migration guide provided if needed\n\n### Git\n- [ ] Commit messages are clear\n- [ ] No merge conflicts\n- [ ] Branch is up to date with main\n- [ ] No unnecessary files committed\n- [ ] .gitignore is properly configured\n\n## Common Pitfalls\n\n### Problem: Missing Edge Cases\n**Symptoms:** Code works for happy path but fails on edge cases\n**Solution:** Ask \"What if...?\" questions\n- What if the input is null?\n- What if the array is empty?\n- What if the user is not authenticated?\n- What if the network request fails?\n\n### Problem: Security Vulnerabilities\n**Symptoms:** Code exposes security risks\n**Solution:** Use security checklist\n- Run security scanners (npm audit, Snyk)\n- Check OWASP Top 10\n- Validate all inputs\n- Use parameterized queries\n- Never trust user input\n\n### Problem: Poor Test Coverage\n**Symptoms:** New code has no tests or inadequate tests\n**Solution:** Require tests for all new code\n- Unit tests for functions\n- Integration tests for features\n- Edge case tests\n- Error case tests\n\n### Problem: Unclear Code\n**Symptoms:** Reviewer can't understand what code does\n**Solution:** Request improvements\n- Better variable names\n- Explanatory comments\n- Smaller functions\n- Clear structure\n\n## Review Comment Templates\n\n### Requesting Changes\n```markdown\n**Issue:** [Describe the problem]\n\n**Current code:**\n\\`\\`\\`javascript\n\u002F\u002F Show problematic code\n\\`\\`\\`\n\n**Suggested fix:**\n\\`\\`\\`javascript\n\u002F\u002F Show improved code\n\\`\\`\\`\n\n**Why:** [Explain why this is better]\n```\n\n### Asking Questions\n```markdown\n**Question:** [Your question]\n\n**Context:** [Why you're asking]\n\n**Suggestion:** [If you have one]\n```\n\n### Praising Good Code\n```markdown\n**Nice!** [What you liked]\n\nThis is great because [explain why]\n```\n\n## Related Skills\n\n- `@requesting-code-review` - Prepare code for review\n- `@receiving-code-review` - Handle review feedback\n- `@systematic-debugging` - Debug issues found in review\n- `@test-driven-development` - Ensure code has tests\n\n## Additional Resources\n\n- [Google Code Review Guidelines](https:\u002F\u002Fgoogle.github.io\u002Feng-practices\u002Freview\u002F)\n- [OWASP Top 10](https:\u002F\u002Fowasp.org\u002Fwww-project-top-ten\u002F)\n- [Code Review Best Practices](https:\u002F\u002Fgithub.com\u002Fthoughtbot\u002Fguides\u002Ftree\u002Fmain\u002Fcode-review)\n- [How to Review Code](https:\u002F\u002Fwww.kevinlondon.com\u002F2015\u002F05\u002F05\u002Fcode-review-best-practices.html)\n\n---\n\n**Pro Tip:** Use a checklist template for every review to ensure consistency and thoroughness. Customize it for your team's specific needs!\n","# Code Review Checklist\n\n## Overview\n\nProvide a systematic checklist for conducting thorough code reviews. This skill helps reviewers ensure code quality, catch bugs, identify security issues, and maintain consistency across the codebase.\n\n## When to Use This Skill\n\n- Use when reviewing pull requests\n- Use when conducting code audits\n- Use when establishing code review standards for a team\n- Use when training new developers on code review practices\n- Use when you want to ensure nothing is missed in reviews\n- Use when creating code review documentation\n\n## How It Works\n\n### Step 1: Understand the Context\n\nBefore reviewing code, I'll help you understand:\n- What problem does this code solve?\n- What are the requirements?\n- What files were changed and why?\n- Are there related issues or tickets?\n- What's the testing strategy?\n\n### Step 2: Review Functionality\n\nCheck if the code works correctly:\n- Does it solve the stated problem?\n- Are edge cases handled?\n- Is error handling appropriate?\n- Are there any logical errors?\n- Does it match the requirements?\n\n### Step 3: Review Code Quality\n\nAssess code maintainability:\n- Is the code readable and clear?\n- Are names descriptive?\n- Is it properly structured?\n- Are functions\u002Fmethods focused?\n- Is there unnecessary complexity?\n\n### Step 4: Review Security\n\nCheck for security issues:\n- Are inputs validated?\n- Is sensitive data protected?\n- Are there SQL injection risks?\n- Is authentication\u002Fauthorization correct?\n- Are dependencies secure?\n\n### Step 5: Review Performance\n\nLook for performance issues:\n- Are there unnecessary loops?\n- Is database access optimized?\n- Are there memory leaks?\n- Is caching used appropriately?\n- Are there N+1 query problems?\n\n### Step 6: Review Tests\n\nVerify test coverage:\n- Are there tests for new code?\n- Do tests cover edge cases?\n- Are tests meaningful?\n- Do all tests pass?\n- Is test coverage adequate?\n\n## Examples\n\n### Example 1: Functionality Review Checklist\n\n```markdown\n## Functionality Review\n\n### Requirements\n- [ ] Code solves the stated problem\n- [ ] All acceptance criteria are met\n- [ ] Edge cases are handled\n- [ ] Error cases are handled\n- [ ] User input is validated\n\n### Logic\n- [ ] No logical errors or bugs\n- [ ] Conditions are correct (no off-by-one errors)\n- [ ] Loops terminate correctly\n- [ ] Recursion has proper base cases\n- [ ] State management is correct\n\n### Error Handling\n- [ ] Errors are caught appropriately\n- [ ] Error messages are clear and helpful\n- [ ] Errors don't expose sensitive information\n- [ ] Failed operations are rolled back\n- [ ] Logging is appropriate\n\n### Example Issues to Catch:\n\n**❌ Bad - Missing validation:**\n\\`\\`\\`javascript\nfunction createUser(email, password) {\n  \u002F\u002F No validation!\n  return db.users.create({ email, password });\n}\n\\`\\`\\`\n\n**✅ Good - Proper validation:**\n\\`\\`\\`javascript\nfunction createUser(email, password) {\n  if (!email || !isValidEmail(email)) {\n    throw new Error('Invalid email address');\n  }\n  if (!password || password.length \u003C 8) {\n    throw new Error('Password must be at least 8 characters');\n  }\n  return db.users.create({ email, password });\n}\n\\`\\`\\`\n```\n\n### Example 2: Security Review Checklist\n\n```markdown\n## Security Review\n\n### Input Validation\n- [ ] All user inputs are validated\n- [ ] SQL injection is prevented (use parameterized queries)\n- [ ] XSS is prevented (escape output)\n- [ ] CSRF protection is in place\n- [ ] File uploads are validated (type, size, content)\n\n### Authentication & Authorization\n- [ ] Authentication is required where needed\n- [ ] Authorization checks are present\n- [ ] Passwords are hashed (never stored plain text)\n- [ ] Sessions are managed securely\n- [ ] Tokens expire appropriately\n\n### Data Protection\n- [ ] Sensitive data is encrypted\n- [ ] API keys are not hardcoded\n- [ ] Environment variables are used for secrets\n- [ ] Personal data follows privacy regulations\n- [ ] Database credentials are secure\n\n### Dependencies\n- [ ] No known vulnerable dependencies\n- [ ] Dependencies are up to date\n- [ ] Unnecessary dependencies are removed\n- [ ] Dependency versions are pinned\n\n### Example Issues to Catch:\n\n**❌ Bad - SQL injection risk:**\n\\`\\`\\`javascript\nconst query = \\`SELECT * FROM users WHERE email = '\\${email}'\\`;\ndb.query(query);\n\\`\\`\\`\n\n**✅ Good - Parameterized query:**\n\\`\\`\\`javascript\nconst query = 'SELECT * FROM users WHERE email = $1';\ndb.query(query, [email]);\n\\`\\`\\`\n\n**❌ Bad - Hardcoded secret:**\n\\`\\`\\`javascript\nconst API_KEY = 'sk_live_abc123xyz';\n\\`\\`\\`\n\n**✅ Good - Environment variable:**\n\\`\\`\\`javascript\nconst API_KEY = process.env.API_KEY;\nif (!API_KEY) {\n  throw new Error('API_KEY environment variable is required');\n}\n\\`\\`\\`\n```\n\n### Example 3: Code Quality Review Checklist\n\n```markdown\n## Code Quality Review\n\n### Readability\n- [ ] Code is easy to understand\n- [ ] Variable names are descriptive\n- [ ] Function names explain what they do\n- [ ] Complex logic has comments\n- [ ] Magic numbers are replaced with constants\n\n### Structure\n- [ ] Functions are small and focused\n- [ ] Code follows DRY principle (Don't Repeat Yourself)\n- [ ] Proper separation of concerns\n- [ ] Consistent code style\n- [ ] No dead code or commented-out code\n\n### Maintainability\n- [ ] Code is modular and reusable\n- [ ] Dependencies are minimal\n- [ ] Changes are backwards compatible\n- [ ] Breaking changes are documented\n- [ ] Technical debt is noted\n\n### Example Issues to Catch:\n\n**❌ Bad - Unclear naming:**\n\\`\\`\\`javascript\nfunction calc(a, b, c) {\n  return a * b + c;\n}\n\\`\\`\\`\n\n**✅ Good - Descriptive naming:**\n\\`\\`\\`javascript\nfunction calculateTotalPrice(quantity, unitPrice, tax) {\n  return quantity * unitPrice + tax;\n}\n\\`\\`\\`\n\n**❌ Bad - Function doing too much:**\n\\`\\`\\`javascript\nfunction processOrder(order) {\n  \u002F\u002F Validate order\n  if (!order.items) throw new Error('No items');\n  \n  \u002F\u002F Calculate total\n  let total = 0;\n  for (let item of order.items) {\n    total += item.price * item.quantity;\n  }\n  \n  \u002F\u002F Apply discount\n  if (order.coupon) {\n    total *= 0.9;\n  }\n  \n  \u002F\u002F Process payment\n  const payment = stripe.charge(total);\n  \n  \u002F\u002F Send email\n  sendEmail(order.email, 'Order confirmed');\n  \n  \u002F\u002F Update inventory\n  updateInventory(order.items);\n  \n  return { orderId: order.id, total };\n}\n\\`\\`\\`\n\n**✅ Good - Separated concerns:**\n\\`\\`\\`javascript\nfunction processOrder(order) {\n  validateOrder(order);\n  const total = calculateOrderTotal(order);\n  const payment = processPayment(total);\n  sendOrderConfirmation(order.email);\n  updateInventory(order.items);\n  \n  return { orderId: order.id, total };\n}\n\\`\\`\\`\n```\n\n## Best Practices\n\n### ✅ Do This\n\n- **Review Small Changes** - Smaller PRs are easier to review thoroughly\n- **Check Tests First** - Verify tests pass and cover new code\n- **Run the Code** - Test it locally when possible\n- **Ask Questions** - Don't assume, ask for clarification\n- **Be Constructive** - Suggest improvements, don't just criticize\n- **Focus on Important Issues** - Don't nitpick minor style issues\n- **Use Automated Tools** - Linters, formatters, security scanners\n- **Review Documentation** - Check if docs are updated\n- **Consider Performance** - Think about scale and efficiency\n- **Check for Regressions** - Ensure existing functionality still works\n\n### ❌ Don't Do This\n\n- **Don't Approve Without Reading** - Actually review the code\n- **Don't Be Vague** - Provide specific feedback with examples\n- **Don't Ignore Security** - Security issues are critical\n- **Don't Skip Tests** - Untested code will cause problems\n- **Don't Be Rude** - Be respectful and professional\n- **Don't Rubber Stamp** - Every review should add value\n- **Don't Review When Tired** - You'll miss important issues\n- **Don't Forget Context** - Understand the bigger picture\n\n## Complete Review Checklist\n\n### Pre-Review\n- [ ] Read the PR description and linked issues\n- [ ] Understand what problem is being solved\n- [ ] Check if tests pass in CI\u002FCD\n- [ ] Pull the branch and run it locally\n\n### Functionality\n- [ ] Code solves the stated problem\n- [ ] Edge cases are handled\n- [ ] Error handling is appropriate\n- [ ] User input is validated\n- [ ] No logical errors\n\n### Security\n- [ ] No SQL injection vulnerabilities\n- [ ] No XSS vulnerabilities\n- [ ] Authentication\u002Fauthorization is correct\n- [ ] Sensitive data is protected\n- [ ] No hardcoded secrets\n\n### Performance\n- [ ] No unnecessary database queries\n- [ ] No N+1 query problems\n- [ ] Efficient algorithms used\n- [ ] No memory leaks\n- [ ] Caching used appropriately\n\n### Code Quality\n- [ ] Code is readable and clear\n- [ ] Names are descriptive\n- [ ] Functions are focused and small\n- [ ] No code duplication\n- [ ] Follows project conventions\n\n### Tests\n- [ ] New code has tests\n- [ ] Tests cover edge cases\n- [ ] Tests are meaningful\n- [ ] All tests pass\n- [ ] Test coverage is adequate\n\n### Documentation\n- [ ] Code comments explain why, not what\n- [ ] API documentation is updated\n- [ ] README is updated if needed\n- [ ] Breaking changes are documented\n- [ ] Migration guide provided if needed\n\n### Git\n- [ ] Commit messages are clear\n- [ ] No merge conflicts\n- [ ] Branch is up to date with main\n- [ ] No unnecessary files committed\n- [ ] .gitignore is properly configured\n\n## Common Pitfalls\n\n### Problem: Missing Edge Cases\n**Symptoms:** Code works for happy path but fails on edge cases\n**Solution:** Ask \"What if...?\" questions\n- What if the input is null?\n- What if the array is empty?\n- What if the user is not authenticated?\n- What if the network request fails?\n\n### Problem: Security Vulnerabilities\n**Symptoms:** Code exposes security risks\n**Solution:** Use security checklist\n- Run security scanners (npm audit, Snyk)\n- Check OWASP Top 10\n- Validate all inputs\n- Use parameterized queries\n- Never trust user input\n\n### Problem: Poor Test Coverage\n**Symptoms:** New code has no tests or inadequate tests\n**Solution:** Require tests for all new code\n- Unit tests for functions\n- Integration tests for features\n- Edge case tests\n- Error case tests\n\n### Problem: Unclear Code\n**Symptoms:** Reviewer can't understand what code does\n**Solution:** Request improvements\n- Better variable names\n- Explanatory comments\n- Smaller functions\n- Clear structure\n\n## Review Comment Templates\n\n### Requesting Changes\n```markdown\n**Issue:** [Describe the problem]\n\n**Current code:**\n\\`\\`\\`javascript\n\u002F\u002F Show problematic code\n\\`\\`\\`\n\n**Suggested fix:**\n\\`\\`\\`javascript\n\u002F\u002F Show improved code\n\\`\\`\\`\n\n**Why:** [Explain why this is better]\n```\n\n### Asking Questions\n```markdown\n**Question:** [Your question]\n\n**Context:** [Why you're asking]\n\n**Suggestion:** [If you have one]\n```\n\n### Praising Good Code\n```markdown\n**Nice!** [What you liked]\n\nThis is great because [explain why]\n```\n\n## Related Skills\n\n- `@requesting-code-review` - Prepare code for review\n- `@receiving-code-review` - Handle review feedback\n- `@systematic-debugging` - Debug issues found in review\n- `@test-driven-development` - Ensure code has tests\n\n## Additional Resources\n\n- [Google Code Review Guidelines](https:\u002F\u002Fgoogle.github.io\u002Feng-practices\u002Freview\u002F)\n- [OWASP Top 10](https:\u002F\u002Fowasp.org\u002Fwww-project-top-ten\u002F)\n- [Code Review Best Practices](https:\u002F\u002Fgithub.com\u002Fthoughtbot\u002Fguides\u002Ftree\u002Fmain\u002Fcode-review)\n- [How to Review Code](https:\u002F\u002Fwww.kevinlondon.com\u002F2015\u002F05\u002F05\u002Fcode-review-best-practices.html)\n\n---\n\n**Pro Tip:** Use a checklist template for every review to ensure consistency and thoroughness. Customize it for your team's specific needs!\n",{"name":5,"risk":41,"source":37,"date_added":48,"description":7},"2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fcursor\u002Fcode-review-checklist","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill code-review-checklist",{"tool":61,"command":62},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill code-review-checklist",{"tool":64,"command":65},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill code-review-checklist","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcursor\u002Fcode-review-checklist\u002FSKILL.md",true,[],[70,92,118,128,141,158],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":79,"publishedAt":43},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[76],{"categoryNo":77,"categoryName":78,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000037","律师与法务",[80,81,82,83,84,85,86,87,88,89,90,91],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch","with",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":43},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[99,100,101,102,103,104,82,105,106,107,108,109,110,111,112,113,114,115,116,117],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","google","install","read","across","api",{"skillNo":119,"name":120,"nameZh":6,"description":121,"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":43},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[125,126,99,110,111,112,113,103,82,115,127,116,117,109,107,106,105,114,104,102],"trend radar","radar","pulse",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":43},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[135,136,137,138,139,140],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":150,"publishedAt":43},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[147],{"categoryNo":148,"categoryName":149,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[143,88,151,152,153,91,110,154,155,156,101,157,114],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":159,"name":160,"nameZh":6,"description":161,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":164,"publishedAt":43},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[160,165,166,167,114,168,155,169,170,171,172,173],"status","play","go","latest","github","discover","control","cmd","volume"]