code-review
npx skills add https://github.com/xtone/ai_development_tools --skill code-review
Agent 安装分布
Skill 文档
ã³ã¼ãã¬ãã¥ã¼
PRãã³ã¼ã夿´ãä½ç³»çã«ã¬ãã¥ã¼ããããã®æ±ç¨ã¹ãã«ã§ãã è¨èªéä¾åã®å ±éã¬ãã¥ã¼åºæºã¨ãè¨èª/ãã¬ã¼ã ã¯ã¼ã¯åºæã®ãã¹ããã©ã¯ãã£ã¹ãçµã¿åããã¦ä½¿ç¨ãã¾ãã
ãã£ã¬ã¯ããªæ§æ
code-review/
âââ SKILL.md (ãã®ãã¡ã¤ã«)
âââ references/
âââ typescript-best-practices.md # TypeScriptåºæã®ãã§ãã¯
âââ authorization-review-general.md # èªå¯ã¬ãã¥ã¼è¦³ç¹ï¼ä¸è¬ç·¨ï¼
âââ authorization-review-postgres-rls.md # èªå¯ã¬ãã¥ã¼è¦³ç¹ï¼PostgreSQL RLSç·¨ï¼
âââ github-pr-review-actions.md # GitHub PRã¬ãã¥ã¼ã¢ã¯ã·ã§ã³
å¤é¨ã¹ãã«é£æº
React / Next.js ã®ãã¹ããã©ã¯ãã£ã¹ã¯ãVercelæä¾ã® react-best-practices ã¹ãã«ã使ç¨ããã
- ãªãã¸ããª: https://github.com/vercel-labs/agent-skills/tree/main/skills/react-best-practices
- ã¤ã³ã¹ãã¼ã«:
npx add-skill vercel-labs/agent-skills - ã«ãã¼ç¯å²: éåæã¦ã©ã¼ã¿ã¼ãã©ã¼ã«æé¤ããã³ãã«ãµã¤ãºæé©åããµã¼ãã¼å´ããã©ã¼ãã³ã¹ãã¯ã©ã¤ã¢ã³ãå´ãã¼ã¿åå¾ãåã¬ã³ããªã³ã°æé©åãã¬ã³ããªã³ã°ããã©ã¼ãã³ã¹ãé«åº¦ãªãã¿ã¼ã³ãJavaScriptããã©ã¼ãã³ã¹ï¼8ã«ãã´ãªã40以ä¸ã®ã«ã¼ã«ï¼
ã¬ãã¥ã¼ã¯ã¼ã¯ããã¼
以ä¸ã®ãã§ãã¯ãªã¹ããã³ãã¼ãã¦é²è¡ç¶æ³ã追跡ãã¾ãï¼
ã¬ãã¥ã¼é²æï¼
- [ ] ã¹ããã1: 夿´æ¦è¦ã®ææ¡
- [ ] ã¹ããã2: å
±éå質ãã§ãã¯
- [ ] ã¹ããã3: è¨èª/ãã¬ã¼ã ã¯ã¼ã¯åºæãã§ãã¯
- [ ] ã¹ããã4: approve/rejectå¤å®
- [ ] ã¹ããã5: ã¬ãã¥ã¼çµæã®åºå
ã¹ããã1: 夿´æ¦è¦ã®ææ¡
夿´å 容ãçè§£ããã
- 夿´ãã¡ã¤ã«ä¸è¦§ãç¢ºèª – 夿´ã®ç¯å²ã¨ã¹ã³ã¼ããææ¡
- ã³ã¼ãå·®åãç¢ºèª – 追å ã»å¤æ´ã»åé¤ãããå å®¹ãææ¡
- 夿´ã®æå³ãçè§£ – PR説æãã³ãããã¡ãã»ã¼ã¸ããç®çã確èª
確èªãã¹ããã¤ã³ãï¼
- 夿´ã¯åä¸ã®ç®çã«ãã©ã¼ã«ã¹ãã¦ããã
- ã¹ã³ã¼ããé©åãï¼1ã¤ã®PRã§å¤ããã夿´ããã¦ããªããï¼
- é¢é£ãã夿´ãæ¼ããªãå«ã¾ãã¦ããã
ã¹ããã2: å ±éå質ãã§ãã¯
è¨èªã«ä¾åããªãæ±ç¨çãªãã§ãã¯ã宿½ããã
2-1. ã»ãã¥ãªãã£
| ãã§ãã¯é ç® | éè¦åº¦ |
|---|---|
| ãã¼ãã³ã¼ããããç§å¯æ å ±ï¼APIãã¼ããã¹ã¯ã¼ãããã¼ã¯ã³ï¼ããªãã | Critical |
| ã¦ã¼ã¶ã¼å ¥åã®é©åãªããªãã¼ã·ã§ã³ã»ãµãã¿ã¤ãºãããã | Critical |
| SQLã¤ã³ã¸ã§ã¯ã·ã§ã³ãXSSãã³ãã³ãã¤ã³ã¸ã§ã¯ã·ã§ã³ã®èå¼±æ§ããªãã | Critical |
| èªè¨¼ã»èªå¯ã®ãã§ãã¯ãé©åã«å®è£ ããã¦ããã | Critical |
| æ©å¯ãã¼ã¿ãä¸ç¨æã«ãã°åºåããã¦ããªãã | Major |
| CORSè¨å®ãé©åã | Major |
èªå¯ï¼Authorizationï¼ã®è©³ç´°ã¬ãã¥ã¼ï¼èªå¯ã«é¢ãã夿´ãããå ´åã¯ãreferences/authorization-review-general.md ãåç §ãã¦è©³ç´°ãªãã§ãã¯ãè¡ããPostgreSQL RLSã使ç¨ãã¦ããå ´åã¯ã追å ã§ references/authorization-review-postgres-rls.md ãåç §ããã
2-2. ãã¸ãã¯ã»æ£ç¢ºæ§
| ãã§ãã¯é ç® | éè¦åº¦ |
|---|---|
| ã¨ãã¸ã±ã¼ã¹ãé©åã«å¦çããã¦ãããï¼nullã空é åãå¢çå¤ï¼ | Major |
| ã¨ã©ã¼ãã³ããªã³ã°ãé©åãï¼ä¾å¤ã®æ¡ãã¤ã¶ããä¸é©åãªcatchï¼ | Major |
| æ¡ä»¶åå²ã®ãã¸ãã¯ãæ£ãããï¼off-by-oneãè«çæ¼ç®åã®èª¤ãï¼ | Major |
| éåæå¦çã®ç«¶åç¶æ ï¼race conditionï¼ããªãã | Major |
| ãªã½ã¼ã¹ã®ç¢ºå®ãªè§£æ¾ï¼ãã¡ã¤ã«ãæ¥ç¶ãããã¯ï¼ | Major |
2-3. è¨è¨ã»ä¿å®æ§
| ãã§ãã¯é ç® | éè¦åº¦ |
|---|---|
| 颿°/ã¡ã½ããã®è²¬åãåä¸ã | Minor |
| DRYåå: ä¸è¦ãªéè¤ã³ã¼ãããªãã | Minor |
| å½åãæå³ãæ£ç¢ºã«è¡¨ãã¦ããã | Minor |
| ãã¸ãã¯ãã³ãã¼ãæå³ä¸æãªæååãªãã©ã«ããªãã | Minor |
| é©åãªæ½è±¡åº¦ã§è¨è¨ããã¦ãããï¼éå°ãªæ½è±¡åã»ä¸è¶³ï¼ | Minor |
| 循ç°åç §ã»ä¸é©åãªä¾åé¢ä¿ããªãã | Major |
2-4. ããã©ã¼ãã³ã¹
| ãã§ãã¯é ç® | éè¦åº¦ |
|---|---|
| N+1ã¯ã¨ãªãªã©éå¹çãªãã¼ã¿ã¢ã¯ã»ã¹ãã¿ã¼ã³ããªãã | Major |
| ä¸è¦ãªã«ã¼ãããã¹ããè¨ç®éã®å¤§ããå¦çããªãã | Minor |
| ã¡ã¢ãªãªã¼ã¯ã®å¯è½æ§ããªãã | Major |
| 大éãã¼ã¿ã®é©åãªãã¼ã¸ãã¼ã·ã§ã³ã»ã¹ããªã¼ãã³ã°å¦ç | Minor |
2-5. ãã¹ã
| ãã§ãã¯é ç® | éè¦åº¦ |
|---|---|
| 夿´ã«å¯¾å¿ãããã¹ãã追å /æ´æ°ããã¦ããã | Major |
| ã¨ãã¸ã±ã¼ã¹ã®ãã¹ããå«ã¾ãã¦ããã | Minor |
| ãã¹ããå®è£ 詳細ã§ãªãæ¯ãèãããã¹ããã¦ããã | Minor |
| ãã¹ãåããã¹ãå¯¾è±¡ã®æ¯ãèããæç¢ºã«è¡¨ãã¦ããã | Suggestion |
ã¹ããã3: è¨èª/ãã¬ã¼ã ã¯ã¼ã¯åºæãã§ãã¯
夿´ãã¡ã¤ã«ã®è¨èª/ãã¬ã¼ã ã¯ã¼ã¯ã«å¿ãã¦ã対å¿ãããªãã¡ã¬ã³ã¹ãã¡ã¤ã«ãåç §ããã
åç §å¯è½ãªãªãã¡ã¬ã³ã¹ï¼
| è¨èª/FW | åç §å | ç¨®å¥ |
|---|---|---|
| TypeScript | references/typescript-best-practices.md | å é¨ãªãã¡ã¬ã³ã¹ |
| React / Next.js | react-best-practices ã¹ãã«ï¼Vercelæä¾ï¼ |
å¤é¨ã¹ãã« |
| è¦³ç¹ | åç §å | ç¨®å¥ |
|---|---|---|
| èªå¯ï¼ä¸è¬ï¼ | references/authorization-review-general.md | å é¨ãªãã¡ã¬ã³ã¹ |
| èªå¯ï¼PostgreSQL RLSï¼ | references/authorization-review-postgres-rls.md | å é¨ãªãã¡ã¬ã³ã¹ |
| GitHub PRã¬ãã¥ã¼ | references/github-pr-review-actions.md | å é¨ãªãã¡ã¬ã³ã¹ |
åç §ã«ã¼ã«ï¼
- TypeScriptã®å¤æ´ â å é¨ãªãã¡ã¬ã³ã¹ãèªã¿è¾¼ã
- React / Next.js ã®å¤æ´ â
react-best-practicesã¹ãã«ãä½µç¨ããï¼ã¤ã³ã¹ãã¼ã«æ¸ã¿ã®å ´åï¼ - èªå¯ã«é¢ãã夿´ï¼èªè¨¼/権éãã§ãã¯ããã¼ã¿ã¢ã¯ã»ã¹å¶å¾¡çï¼ â èªå¯ãªãã¡ã¬ã³ã¹ï¼ä¸è¬ç·¨ï¼ãåç §
- PostgreSQL RLSã使ç¨ãã¦ããå ´å â èªå¯ãªãã¡ã¬ã³ã¹ï¼RLSç·¨ï¼ã追å ã§åç §
- GitHub Actionsçã®CIç°å¢ã§PRã¬ãã¥ã¼ãå®è¡ããå ´å â GitHub PRã¬ãã¥ã¼ã¢ã¯ã·ã§ã³ãåç §ï¼ã³ã¡ã³ãæç¨¿ã»è©ä¾¡æ¹æ³ï¼
- è¤æ°ã®è¨èª/FWã«ã¾ããã夿´ã®å ´åã¯ããã¹ã¦ã®è©²å½ãªãã¡ã¬ã³ã¹ãåç §ãã
- ãªãã¡ã¬ã³ã¹ãåå¨ããªãè¨èªã®å ´åã¯ãã¹ããã2ã®å ±éãã§ãã¯ã®ã¿ã§å¤æãã
ã¹ããã4: approve/rejectå¤å®
ãã¹ã¦ã®ãã§ãã¯çµæã«åºã¥ãã以ä¸ã®åºæºã§approve/rejectãå¤å®ããã
åé¡ã®éè¦åº¦ã¨æ¸ç¹
| éè¦åº¦ | 説æ | æ¸ç¹ |
|---|---|---|
| Critical | ãã¼ã¸åã«å¿ ãä¿®æ£ãå¿ è¦ãã»ãã¥ãªãã£èå¼±æ§ããã¼ã¿æå¤±ãªã¹ã¯ãé大ãªãã° | -3ç¹/ä»¶ |
| Major | åªå çã«ä¿®æ£ãã¹ãããã¸ãã¯ã®åé¡ãããã©ã¼ãã³ã¹å£åããã¹ãä¸è¶³ | -2ç¹/ä»¶ |
| Minor | æ¹åãæã¾ãããè¨è¨æ¹åãå¯èªæ§åä¸ã軽微ãªåé¡ | -1ç¹/ä»¶ |
| Suggestion | ææ¡ããã¹ããã©ã¯ãã£ã¹ã®æ¨å¥¨ãããè¯ãã¢ããã¼ãã®æç¤º | -0.5ç¹/ä»¶ |
å¤å®åºæº
æºç¹ã¯10ç¹ã¨ãã以ä¸ã®åºæºã§å¤å®ããã
| å¤å® | æ¡ä»¶ | ã¢ã¯ã·ã§ã³ |
|---|---|---|
| Reject | Criticalåé¡ã1件以ä¸ãã | REQUEST_CHANGES |
| Reject | Majoråé¡ã3件以ä¸ãã | REQUEST_CHANGES |
| Reject | ã¹ã³ã¢ã5ç¹æªæº | REQUEST_CHANGES |
| Conditional Approve | Criticalåé¡ãªããMajor 1-2ä»¶ãã¹ã³ã¢5ç¹ä»¥ä¸ | APPROVEï¼æ¹åç¹ãã³ã¡ã³ãï¼ |
| Approve | Critical/Majoråé¡ãªããã¹ã³ã¢8ç¹ä»¥ä¸ | APPROVE |
å¤å®ããã¼ãã£ã¼ã
Criticalåé¡ããï¼ â Yes â Rejectï¼REQUEST_CHANGESï¼
â No
Majoråé¡ã3件以ä¸ï¼ â Yes â Rejectï¼REQUEST_CHANGESï¼
â No
ã¹ã³ã¢5ç¹æªæºï¼ â Yes â Rejectï¼REQUEST_CHANGESï¼
â No
Majoråé¡ã1-2ä»¶ï¼ â Yes â Conditional Approve
â No
ã¹ã³ã¢8ç¹ä»¥ä¸ï¼ â Yes â Approve
â No
Conditional Approve
ã¹ããã5: ã¬ãã¥ã¼çµæã®åºå
以ä¸ã®ãã©ã¼ãããã§ã¬ãã¥ã¼çµæãåºåããã
GitHubä¸ã§ã®ã¬ãã¥ã¼æç¨¿ï¼GitHub Actionsçã®CIç°å¢ã§PRã¬ãã¥ã¼ãå®è¡ãã¦ããå ´åã®ã¿ãreferences/github-pr-review-actions.md ãåç §ãã¦ã
ghã³ãã³ããã¤ã³ã©ã¤ã³ã³ã¡ã³ãã使ç¨ãã¦ã¬ãã¥ã¼çµæãGitHubä¸ã«æç¨¿ããããã¼ã«ã«ç°å¢ã§ã®å®è¡æã¯ãçµæãæ¨æºåºåã«è¡¨ç¤ºããã®ã¿ã¨ããã
## Code Review: [å¤å®çµæ]
### 夿´æ¦è¦
- **ã¹ã³ã¼ã**: [夿´ã®æ¦è¦ã1-2æã§]
- **夿´ãã¡ã¤ã«æ°**: [N]ãã¡ã¤ã«
- **主ãªè¨èª/FW**: [æ¤åºãããè¨èª/FW]
### ã¹ã³ã¢: X/10
### æ¤åºãããåé¡
| # | éè¦åº¦ | ãã¡ã¤ã« | åé¡ | æ¨å¥¨ãããå¯¾å¿ |
|---|--------|---------|------|---------------|
| 1 | [Critical/Major/Minor/Suggestion] | [ãã¡ã¤ã«ãã¹:è¡çªå·] | [åé¡ã®èª¬æ] | [å¯¾å¿æ¹æ³] |
### è¯ãç¹
- [ã³ã¼ãã®è¯ãç¹ãå
·ä½çã«è¨è¼]
### å¤å®
- **çµæ**: [Approve / Conditional Approve / Reject]
- **çç±**: [å¤å®çç±ã®è¦ç´]
### 次ã®ã¹ããã
- [ä¿®æ£ãå¿
è¦ãªå ´åã®å
·ä½çãªã¢ã¯ã·ã§ã³]
éè¦ãªæ³¨æäºé
- ã¬ãã¥ã¼ã¯ã³ã¼ãã®å質åä¸ãç®çã§ãããæ¹å¤ã§ã¯ãªãã建è¨çãªãã£ã¼ãããã¯ãå¿ããã
- åé¡ã®ææã«ã¯å¿ ãå ·ä½çãªæ¹åæ¡ãæ·»ãã
- 夿´ã®æå³ãå°éããã¹ã¿ã¤ã«ã®å¥½ã¿ã§ã¯ãªã客観çãªåºæºã§å¤æãã
- èªåæ¤åºãå°é£ãªãã¡ã¤ã³ç¥èããã¸ãã¹ãã¸ãã¯ã®å¤æã¯ã人éã®ã¬ãã¥ã¢ã¼ã«å§ãã
- Suggestionã¯å¼·å¶ã§ã¯ãªããæ¡ç¨ãããã©ããã¯èè ã®å¤æã«ä»»ãã