[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M72B6XTYZCWRFN1D1X3EXDA0":3,"skill-same:01M72B6XTYZCWRFN1D1X3EXDA0":49},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":23,"commitSha":24,"skillDirectory":25,"forksCount":13,"repositoryHtmlUrl":26,"repositoryHomepageUrl":6,"ownerHtmlUrl":27,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":28,"install":29,"resources":42},"01M72B6XTYZCWRFN1D1X3EXDA0","code-review-checklist",null,"Comprehensive checklist for conducting thorough code reviews covering functionality, security, performance, and maintainability","Sansar35\u002Fclaude-agent","Sansar35","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F145020281?v=4","01M724CQ2SCC86MGNSD87D0D4K","01M724CQ3965G9WJ3QXE3AJ5YY",1,"MIT","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fcode-review-checklist\u002FSKILL.md",[],[],"2026-11-10 18:39:20",false,"---\nname: code-review-checklist\ndescription: \"Comprehensive checklist for conducting thorough code reviews covering functionality, security, performance, and maintainability\"\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,"description":7},"main","d046d088ce5a79a083f0abc0fe1b7ded73bc5b1f","claude-config\u002Fskills\u002Fcode-review-checklist","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent","https:\u002F\u002Fgithub.com\u002FSansar35","2026-05-10 16:04:53",{"source":8,"skillName":5,"commands":30,"prompt":40,"zipAvailable":41},[31,34,37],{"tool":32,"command":33},"npx","npx skills add Sansar35\u002Fclaude-agent --skill code-review-checklist",{"tool":35,"command":36},"bunx","bunx skills add Sansar35\u002Fclaude-agent --skill code-review-checklist",{"tool":38,"command":39},"pnpm","pnpm dlx skills add Sansar35\u002Fclaude-agent --skill code-review-checklist","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fcode-review-checklist\u002FSKILL.md",true,[43],{"path":44,"resourceType":45,"resourceTypeDesc":46,"sizeBytes":47,"sourceHtmlUrl":48},".skill-source.json","REFERENCE","参考文档",370,"https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fcode-review-checklist\u002F.skill-source.json",[50,57,64,71,78,86],{"skillNo":51,"name":52,"nameZh":6,"description":53,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":54,"categories":55,"keywords":56,"publishedAt":18},"01M72DVAN1JYEA302MT0C5MGD6","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzustand-store-ts\u002FSKILL.md",[],[],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":18},"01M72DV8J5NBRRM4RPDFRV95N7","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzod-validation-expert\u002FSKILL.md",[],[],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":18},"01M72DV5EMHW0BHP9BZ167MDCB","zinc-database","Access ZINC (230M+ purchasable compounds). Search by ZINC ID\u002FSMILES, similarity searches, 3D-ready structures for docking, analog discovery, for virtual screening and drug discovery.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzinc-database\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":18},"01M72DV216QY0E693ZPEVQ0DBS","zarr-python","Chunked N-D arrays for cloud storage. Compressed arrays, parallel I\u002FO, S3\u002FGCS integration, NumPy\u002FDask\u002FXarray compatible, for large-scale scientific computing pipelines.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzarr-python\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":82,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":18},"01M72DTXQREMCRKA8NHCVKHN4W","zapier-workflows","Manage and trigger pre-built Zapier workflows and MCP tool orchestration. Use when user mentions workflows, Zaps, automations, daily digest, research, search, lead tracking, expenses, or asks to \"run\" any process. Also handles Perplexity-based research and Google Sheets data tracking.","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzapier-workflows\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzapier-workflows\u002FSKILL.md",[],[],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":18},"01M72DTT17TBSJ0Y8J2XZ4C9TZ","zapier-make-patterns","No-code automation democratizes workflow building. Zapier and Make (formerly Integromat) let non-developers automate business processes without writing code. But no-code doesn't mean no-complexity - these platforms have their own patterns, pitfalls, and breaking points.  This skill covers when to use which platform, how to build reliable automations, and when to graduate to code-based solutions. Key insight: Zapier optimizes for simplicity and integrations (7000+ apps), Make optimizes for power","https:\u002F\u002Fgithub.com\u002FSansar35\u002Fclaude-agent\u002Fblob\u002Fmain\u002Fclaude-config\u002Fskills\u002Fzapier-make-patterns\u002FSKILL.md",[],[]]