[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EKH9GFXR8NHBYX1JS5SA0G":3,"skill-same:01M6EKH9GFXR8NHBYX1JS5SA0G":78},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6EKH9GFXR8NHBYX1JS5SA0G","code-review",null,"Perform comprehensive code reviews covering security, style, performance, and best practices. Use when reviewing code changes before commit or merge, auditing existing code, or checking for vulnerabilities.","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\u002Fancplua\u002Fcode-review\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],"code review","review","code","security","performance","vulnerabilities","commit","merge","best practices","use","style","reviewing code","2026-11-10 10:12:30",false,"---\nname: code-review\ndescription: Perform comprehensive code reviews covering security, style, performance, and best practices. Use when reviewing code changes before commit or merge, auditing existing code, or checking for vulnerabilities.\n---\n\n# Skill: code-review\n\nPurpose: Perform comprehensive code reviews covering security, style, performance, and best practices.\n\n## When to use this Skill\n\nUse this Skill when:\n\n- Reviewing code changes before commit or merge.\n- Auditing existing code for issues.\n- Checking for security vulnerabilities.\n- Ensuring code follows project conventions.\n\n## Review workflow\n\n### 1. Gather context\n\nBefore reviewing:\n\n```bash\n# See what changed\ngit diff --stat\ngit diff\n\n# Or for specific files\ngit diff path\u002Fto\u002Ffile\n```\n\nUnderstand:\n\n- What is the purpose of these changes?\n- Which files are affected?\n- What is the expected behavior?\n\n### 2. Security audit\n\nCheck for:\n\n- [ ] **Injection vulnerabilities:** SQL, command, XSS.\n- [ ] **Authentication issues:** Weak auth, missing checks.\n- [ ] **Authorization flaws:** Missing permission checks.\n- [ ] **Sensitive data exposure:** Hardcoded secrets, logs.\n- [ ] **Insecure dependencies:** Known vulnerabilities.\n\nRed flags:\n\n- String concatenation in queries.\n- `eval()`, `exec()`, or similar.\n- Hardcoded credentials or API keys.\n- Missing input validation.\n- Overly permissive CORS.\n\n### 3. Style check\n\nVerify:\n\n- [ ] **Naming conventions:** Clear, consistent names.\n- [ ] **Code formatting:** Consistent indentation, spacing.\n- [ ] **Documentation:** Comments where needed.\n- [ ] **File organization:** Logical structure.\n- [ ] **Import ordering:** Consistent imports.\n\n### 4. Performance review\n\nLook for:\n\n- [ ] **N+1 queries:** Database access in loops.\n- [ ] **Unnecessary computation:** Repeated calculations.\n- [ ] **Memory issues:** Large allocations, leaks.\n- [ ] **Blocking operations:** Sync in async contexts.\n- [ ] **Inefficient algorithms:** O(n²) where O(n) possible.\n\n### 5. Best practices\n\nCheck:\n\n- [ ] **Error handling:** Proper try\u002Fcatch, error types.\n- [ ] **Logging:** Appropriate log levels.\n- [ ] **Testing:** Test coverage for changes.\n- [ ] **DRY principle:** No unnecessary duplication.\n- [ ] **Single responsibility:** Functions do one thing.\n\n### 6. Generate report\n\nSummarize findings by severity:\n\n```text\n## Code Review Summary\n\n### Critical (must fix)\n- None found\n\n### High (should fix)\n- SQL injection risk in UserService.ts:42\n\n### Medium (consider fixing)\n- Function exceeds 50 lines in ApiHandler.ts:120\n\n### Low (nice to have)\n- Consider extracting magic number to constant\n\n### Info\n- Good use of early returns in validation logic\n```\n\n## Severity levels\n\n| Level      | Description                        | Action            |\n| ---------- | ---------------------------------- | ----------------- |\n| `CRITICAL` | Security vulnerability, data loss  | Must fix now      |\n| `HIGH`     | Bugs, significant issues           | Fix before merge  |\n| `MEDIUM`   | Code quality, maintainability      | Fix soon          |\n| `LOW`      | Minor improvements                 | Nice to have      |\n| `INFO`     | Observations, positive feedback    | No action needed  |\n\n## Common patterns\n\n### SQL injection\n\n**Bad:**\n\n```typescript\nconst query = `SELECT * FROM users WHERE id = ${userId}`;\n```\n\n**Good:**\n\n```typescript\nconst query = 'SELECT * FROM users WHERE id = ?';\ndb.query(query, [userId]);\n```\n\n### XSS vulnerability\n\n**Bad:**\n\n```typescript\nelement.innerHTML = userInput;\n```\n\n**Good:**\n\n```typescript\nelement.textContent = userInput;\n```\n\n### N+1 query\n\n**Bad:**\n\n```typescript\nconst users = await getUsers();\nfor (const user of users) {\n  user.posts = await getPosts(user.id);\n}\n```\n\n**Good:**\n\n```typescript\nconst users = await getUsersWithPosts();\n```\n\n### Missing error handling\n\n**Bad:**\n\n```typescript\nconst data = JSON.parse(input);\n```\n\n**Good:**\n\n```typescript\ntry {\n  const data = JSON.parse(input);\n} catch (error) {\n  logger.error('Invalid JSON input', { error });\n  throw new ValidationError('Invalid input format');\n}\n```\n\n## Integration\n\n### With autonomous-ci\n\n1. Make changes.\n2. Run `code-review` to check.\n3. Fix issues found.\n4. Run `autonomous-ci` to verify.\n\n### With smart-commit\n\n1. Make changes.\n2. Run `code-review` to check.\n3. Fix issues.\n4. Use `smart-commit` to commit.\n\n## Checklist\n\nComplete review checklist:\n\n- [ ] Security vulnerabilities checked.\n- [ ] Code style verified.\n- [ ] Performance issues identified.\n- [ ] Error handling reviewed.\n- [ ] Test coverage assessed.\n- [ ] Documentation checked.\n- [ ] Report generated with findings.\n","# Skill: code-review\n\nPurpose: Perform comprehensive code reviews covering security, style, performance, and best practices.\n\n## When to use this Skill\n\nUse this Skill when:\n\n- Reviewing code changes before commit or merge.\n- Auditing existing code for issues.\n- Checking for security vulnerabilities.\n- Ensuring code follows project conventions.\n\n## Review workflow\n\n### 1. Gather context\n\nBefore reviewing:\n\n```bash\n# See what changed\ngit diff --stat\ngit diff\n\n# Or for specific files\ngit diff path\u002Fto\u002Ffile\n```\n\nUnderstand:\n\n- What is the purpose of these changes?\n- Which files are affected?\n- What is the expected behavior?\n\n### 2. Security audit\n\nCheck for:\n\n- [ ] **Injection vulnerabilities:** SQL, command, XSS.\n- [ ] **Authentication issues:** Weak auth, missing checks.\n- [ ] **Authorization flaws:** Missing permission checks.\n- [ ] **Sensitive data exposure:** Hardcoded secrets, logs.\n- [ ] **Insecure dependencies:** Known vulnerabilities.\n\nRed flags:\n\n- String concatenation in queries.\n- `eval()`, `exec()`, or similar.\n- Hardcoded credentials or API keys.\n- Missing input validation.\n- Overly permissive CORS.\n\n### 3. Style check\n\nVerify:\n\n- [ ] **Naming conventions:** Clear, consistent names.\n- [ ] **Code formatting:** Consistent indentation, spacing.\n- [ ] **Documentation:** Comments where needed.\n- [ ] **File organization:** Logical structure.\n- [ ] **Import ordering:** Consistent imports.\n\n### 4. Performance review\n\nLook for:\n\n- [ ] **N+1 queries:** Database access in loops.\n- [ ] **Unnecessary computation:** Repeated calculations.\n- [ ] **Memory issues:** Large allocations, leaks.\n- [ ] **Blocking operations:** Sync in async contexts.\n- [ ] **Inefficient algorithms:** O(n²) where O(n) possible.\n\n### 5. Best practices\n\nCheck:\n\n- [ ] **Error handling:** Proper try\u002Fcatch, error types.\n- [ ] **Logging:** Appropriate log levels.\n- [ ] **Testing:** Test coverage for changes.\n- [ ] **DRY principle:** No unnecessary duplication.\n- [ ] **Single responsibility:** Functions do one thing.\n\n### 6. Generate report\n\nSummarize findings by severity:\n\n```text\n## Code Review Summary\n\n### Critical (must fix)\n- None found\n\n### High (should fix)\n- SQL injection risk in UserService.ts:42\n\n### Medium (consider fixing)\n- Function exceeds 50 lines in ApiHandler.ts:120\n\n### Low (nice to have)\n- Consider extracting magic number to constant\n\n### Info\n- Good use of early returns in validation logic\n```\n\n## Severity levels\n\n| Level      | Description                        | Action            |\n| ---------- | ---------------------------------- | ----------------- |\n| `CRITICAL` | Security vulnerability, data loss  | Must fix now      |\n| `HIGH`     | Bugs, significant issues           | Fix before merge  |\n| `MEDIUM`   | Code quality, maintainability      | Fix soon          |\n| `LOW`      | Minor improvements                 | Nice to have      |\n| `INFO`     | Observations, positive feedback    | No action needed  |\n\n## Common patterns\n\n### SQL injection\n\n**Bad:**\n\n```typescript\nconst query = `SELECT * FROM users WHERE id = ${userId}`;\n```\n\n**Good:**\n\n```typescript\nconst query = 'SELECT * FROM users WHERE id = ?';\ndb.query(query, [userId]);\n```\n\n### XSS vulnerability\n\n**Bad:**\n\n```typescript\nelement.innerHTML = userInput;\n```\n\n**Good:**\n\n```typescript\nelement.textContent = userInput;\n```\n\n### N+1 query\n\n**Bad:**\n\n```typescript\nconst users = await getUsers();\nfor (const user of users) {\n  user.posts = await getPosts(user.id);\n}\n```\n\n**Good:**\n\n```typescript\nconst users = await getUsersWithPosts();\n```\n\n### Missing error handling\n\n**Bad:**\n\n```typescript\nconst data = JSON.parse(input);\n```\n\n**Good:**\n\n```typescript\ntry {\n  const data = JSON.parse(input);\n} catch (error) {\n  logger.error('Invalid JSON input', { error });\n  throw new ValidationError('Invalid input format');\n}\n```\n\n## Integration\n\n### With autonomous-ci\n\n1. Make changes.\n2. Run `code-review` to check.\n3. Fix issues found.\n4. Run `autonomous-ci` to verify.\n\n### With smart-commit\n\n1. Make changes.\n2. Run `code-review` to check.\n3. Fix issues.\n4. Use `smart-commit` to commit.\n\n## Checklist\n\nComplete review checklist:\n\n- [ ] Security vulnerabilities checked.\n- [ ] Code style verified.\n- [ ] Performance issues identified.\n- [ ] Error handling reviewed.\n- [ ] Test coverage assessed.\n- [ ] Documentation checked.\n- [ ] Report generated with findings.\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fancplua\u002Fcode-review",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":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill code-review",{"tool":64,"command":65},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill code-review",{"tool":67,"command":68},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill code-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fancplua\u002Fcode-review\u002FSKILL.md",true,[72],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"skill-report.json","REFERENCE","参考文档",13215,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fancplua\u002Fcode-review\u002Fskill-report.json",[79,89,99,108,114,121],{"skillNo":80,"name":81,"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":82,"categories":83,"keywords":85,"publishedAt":44},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[84],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[86,87,88],"model","model hierarchy","model hierarchy skill",{"skillNo":90,"name":91,"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":92,"categories":93,"keywords":95,"publishedAt":44},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[94],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[96,97,98],"MCP","zoom","zoom mcp",{"skillNo":100,"name":101,"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":102,"categories":103,"keywords":104,"publishedAt":44},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[105,106,107,97],"sdk","zoom apps sdk","apps",{"skillNo":109,"name":110,"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":111,"categories":112,"keywords":113,"publishedAt":44},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[110],{"skillNo":115,"name":116,"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":117,"categories":118,"keywords":120,"publishedAt":44},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[119],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[116],{"skillNo":122,"name":123,"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":124,"categories":125,"keywords":126,"publishedAt":44},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[123]]