pr-review-analysis
3
总安装量
3
周安装量
#59875
全站排名
安装命令
npx skills add https://github.com/penkzhou/swiss-army-knife-plugin --skill pr-review-analysis
Agent 安装分布
mcpjam
2
droid
2
antigravity
2
qwen-code
2
windsurf
2
zencoder
2
Skill 文档
PR Review åæ Skill
æ¬ Skill æä¾ PR Code Review è¯è®ºåæçç¥è¯åºï¼ç¨äºæ¯æ /fix-pr-review 工使µã
1. 置信度è¯ä¼°ä½ç³»
1.1 è¯åå ç´
置信度表示è¯è®ºç”坿使§”ï¼åæ°èå´ 0-100ã
| å ç´ | æé | 说æ |
|---|---|---|
| æç¡®æ§ (clarity) | 40% | è¯è®ºæ¯å¦æ¸ æ°æåºé®é¢åä½ç½® |
| å ·ä½æ§ (specificity) | 30% | æ¯å¦æå ·ä½ç¤ºä¾ææµè¯åºæ¯ |
| ä¸ä¸æ (context) | 20% | æ¯å¦ç解代ç ä¸ä¸æåå½±å |
| å¯å¤ç° (reproducibility) | 10% | æ¯å¦æå¤ç°æ¥éª¤ |
1.2 è¯åææ
æç¡®æ§ (Clarity) – æé 40%
| ææ | åå¼ | ç¤ºä¾ |
|---|---|---|
| æå ·ä½æä»¶ä½ç½® | +30 | “src/auth.py:42” |
| æè¡å· | +10 | “第 42 è¡” |
| æææè¡ä¸ºæè¿° | +30 | “åºè¯¥è¿å 401” |
| æä»£ç ç¤ºä¾ | +20 | `if token.expired:` |
| è¯è®ºé¿åº¦ > 50 å | +10 | è¯¦ç»æè¿° |
å ·ä½æ§ (Specificity) – æé 30%
| ææ | åå¼ | ç¤ºä¾ |
|---|---|---|
| ææµè¯å»ºè®® | +40 | “æ·»å æµè¯ç¨ä¾éªè¯…” |
| æå ·ä½å¼/ç¤ºä¾ | +30 | “è¿å {"error": "expired"}“ |
| æå¯¹æ¯è¯´æ | +30 | “åºè¯¥ç¨ X è䏿¯ Y” |
ä¸ä¸æ (Context) – æé 20%
| ææ | åå¼ | ç¤ºä¾ |
|---|---|---|
| å¼ç¨å ¶ä»ä»£ç ä½ç½® | +25 | “è¿ä¼å½±å UserService“ |
| 讨论影åèå´ | +25 | “å¯è½å¯¼è´æ°æ®ä¸ä¸è´” |
| åºç¡å | 50 | – |
å¯å¤ç° (Reproducibility) – æé 10%
| ææ | åå¼ | ç¤ºä¾ |
|---|---|---|
| ææ¥éª¤æè¿° | +30 | “1. ç»å½ 2. è®¿é® /api” |
| æè¾å ¥è¾åºæè¿° | +20 | “å½ token è¿ææ¶…” |
| åºç¡å | 50 | – |
1.3 置信度ç级
| åæ°èå´ | ç级 | å¤çæ¹å¼ |
|---|---|---|
| 80-100 | é« (high) | èªå¨å¤ç |
| 60-79 | ä¸ (medium) | 询é®ç¨æ·åå¤ç |
| 40-59 | ä½ (low) | æ è®°éæ¾æ¸ |
| 0-39 | æä½ (very_low) | è·³è¿ï¼åå¤ reviewer |
2. ä¼å 级åç±»ä½ç³»
2.1 ä¼å 级å®ä¹
| ä¼å 级 | åç§° | æè¿° | å¤çè¦æ± |
|---|---|---|---|
| P0 | Blocker | é»å¡ä¸çº¿çå®å ¨/æ°æ®é®é¢ | å¿ é¡»ç«å³å¤ç |
| P1 | Critical | æ ¸å¿åè½ç¼ºé· | å½å PR å¿ é¡»ä¿®å¤ |
| P2 | Major | éè¦æ¹è¿ | å»ºè®®æ¬ PR ä¿®å¤ |
| P3 | Minor | 建议/飿 ¼é®é¢ | å¯éå¤ç |
2.2 åç±»å ³é®è¯
P0 (Blocker) å ³é®è¯
å®å ¨ç¸å ³ï¼èªå¨å级 2 个ä¼å 级ï¼ï¼
security,vulnerability,injectionXSS,CSRF,leak,exposedsensitive,password,token,secretå®å ¨,æ¼æ´,æ³é²,æ´é²
å ³é®ç¼ºé·ï¼
crash,data loss,downtimeblocker,production,urgentå´©æº,æ°æ®ä¸¢å¤±,ç´§æ¥,é»å¡
P1 (Critical) å ³é®è¯
bug,broken,fail,errorincorrect,doesn't work,not workingwrong,invalid,missingé误,失败,䏿£ç¡®,缺失
P2 (Major) å ³é®è¯
should,better,improveoptimize,refactor,performancecleanup,simplifyåºè¯¥,æ¹è¿,ä¼å,éæ
P3 (Minor) å ³é®è¯
consider,maybe,couldnit,style,minor,typonitpick,suggestion建议,飿 ¼,å°é®é¢
2.3 ä¼å 级æåè§å
| æ¡ä»¶ | æå |
|---|---|
| å å«å®å ¨å ³é®è¯ | +2 级 |
| å 嫿°æ®ç¸å ³å ³é®è¯ | +1 级 |
| æä»¶å¨æ ¸å¿è·¯å¾ (auth, payment) | +1 级 |
3. ææ¯æ è¯å«
3.1 è·¯å¾æ¨¡å¼å¹é
Backend
patterns:
- "src/api/**"
- "src/models/**"
- "src/services/**"
- "app/**"
- "tests/backend/**"
- "tests/unit/**"
- "**/*.py"
Frontend
patterns:
- "src/components/**"
- "src/pages/**"
- "src/hooks/**"
- "src/stores/**"
- "tests/frontend/**"
- "**/*.tsx"
- "**/*.jsx"
E2E
patterns:
- "tests/e2e/**"
- "e2e/**"
- "playwright/**"
- "cypress/**"
3.2 æä»¶æ©å±åæ¨æ
| æ©å±å | ææ¯æ |
|---|---|
.py |
Backend |
.tsx, .ts, .jsx, .js |
Frontend |
.spec.ts, .test.ts (å¨ e2e ç®å½) |
E2E |
4. 常è§è¯è®ºæ¨¡å¼
4.1 Backend 常è§è¯è®º
æ°æ®åºç¸å ³
| æ¨¡å¼ | ç½®ä¿¡åº¦å æ | ä¼å 级 |
|---|---|---|
| “äºå¡/transaction” | +15 | P1 |
| “N+1 æ¥è¯¢” | +20 | P1 |
| “ç´¢å¼/index” | +10 | P2 |
| “æ»é/deadlock” | +20 | P0 |
API ç¸å ³
| æ¨¡å¼ | ç½®ä¿¡åº¦å æ | ä¼å 级 |
|---|---|---|
| “ç¶æç é误” | +15 | P1 |
| “ååºæ ¼å¼” | +10 | P2 |
| “åæ°éªè¯” | +15 | P1 |
| “é误å¤ç” | +15 | P1 |
认è¯ç¸å ³
| æ¨¡å¼ | ç½®ä¿¡åº¦å æ | ä¼å 级 |
|---|---|---|
| “token è¿æ” | +20 | P0 |
| “æéæ£æ¥” | +20 | P0 |
| “ä¼è¯ç®¡ç” | +15 | P1 |
4.2 Frontend 常è§è¯è®º
React ç¸å ³
| æ¨¡å¼ | ç½®ä¿¡åº¦å æ | ä¼å 级 |
|---|---|---|
| “useEffect ä¾èµ” | +15 | P1 |
| “ç¶æç®¡ç” | +10 | P2 |
| “memo/useMemo” | +10 | P2 |
| “key 屿§” | +15 | P1 |
æµè¯ç¸å ³
| æ¨¡å¼ | ç½®ä¿¡åº¦å æ | ä¼å 级 |
|---|---|---|
| “mock å²çª” | +20 | P1 |
| “弿¥æµè¯” | +15 | P1 |
| “æµè¯è¦ç” | +10 | P2 |
4.3 E2E 常è§è¯è®º
| æ¨¡å¼ | ç½®ä¿¡åº¦å æ | ä¼å 级 |
|---|---|---|
| “éæ©å¨ä¸ç¨³å®” | +15 | P1 |
| “è¶ æ¶é®é¢” | +15 | P1 |
| “çå¾ æ¡ä»¶” | +15 | P1 |
| “æè¨ä¸åç¡®” | +10 | P2 |
5. å夿佳å®è·µ
5.1 åå¤åå
- æè°¢ Reviewerï¼å§ç»è¡¨ç¤ºæè°¢
- 说æè¡å¨ï¼æ¸ æ¥æè¿°åäºä»ä¹
- æä¾è¯æ®ï¼é¾æ¥å°ä¿®å¤ä»£ç /æµè¯
- 弿¾æ²éï¼é请è¿ä¸æ¥è®¨è®º
5.2 å夿¨¡æ¿
已修å¤
â
已修å¤
æè°¢æåºï¼å·²å¨ `{commit}` ä¸å®æä¿®å¤ã
**åæ´**ï¼
- {åæ´æè¿°}
**æµè¯**ï¼
- â
{æµè¯åç§°} éè¿
éè¦æ¾æ¸
â¸ï¸ éè¦æ´å¤ä¿¡æ¯
æè°¢å»ºè®®ï¼ä¸ºäºæ´å¥½å°çè§£ï¼è½å¦æä¾ï¼
1. {é®é¢ 1}
2. {é®é¢ 2}
ä¸éçº³ï¼æçç±ï¼
â¹ï¸ æä¸ä¿®æ¹
æè°¢å»ºè®®ï¼ç»è¿åæï¼å½åå®ç°æ¯é¢æè¡ä¸ºï¼åå ï¼
- {åå }
å¦ææ¨æä¸åçæ³ï¼æ¬¢è¿ç»§ç»è®¨è®ºã
5.3 é¿å çåå¤
- â “ä½ ç建议ä¸å¯¹”
- ⠓代ç å·²ç»è¿æ ·å五
- â 䏿ä¾ä»»ä½è§£éç “å·²ä¿®å¤”
- â é²å¾¡æ§è¯æ°
6. æ¶é´çªå£è¿æ»¤
6.1 è¿æ»¤è§å
ææè¯è®ºæ¡ä»¶ï¼
- è¯è®ºå建æ¶é´ > æå commit æ¶é´
- æè¯è®ºæ´æ°æ¶é´ > æå commit æ¶é´ï¼ææ°åå¤ï¼
6.2 æ¶åºå¤ç
- æææ¶é´ä½¿ç¨ UTC
- GitHub API è¿åçæ¶é´å·²æ¯ UTC
- æ¯è¾åç¡®ä¿æ¶åºä¸è´
6.3 è¾¹çæ åµ
| æ åµ | å¤ç |
|---|---|
| è¯è®ºä¸ commit åæ¶ | ä¿å®ä¿ç |
| æ´æ°æ¶é´ > å建æ¶é´ | æ£æ¥æ´æ°å 容 |
| è¯è®ºå¨ commit å使æ°åå¤ | ä¿ç |
7. TDD éæ
7.1 ä¿®å¤æµç¨
ææ PR Review ä¿®å¤å¿ é¡»éµå¾ª TDDï¼
- REDï¼ç¼åè½å¤ç°è¯è®ºé®é¢çæµè¯
- GREENï¼æå°å®ç°ä½¿æµè¯éè¿
- REFACTORï¼ä¼å代ç
7.2 æµè¯å½å
# æ ¼å¼: test_{åè½}_{è¯è®ºæè¿°}
def test_token_validation_returns_401_when_expired():
"""
PR Review: rc_123456
Reviewer: @alice_dev
"""
pass
7.3 è¦ççè¦æ±
- æ°å¢ä»£ç ï¼100% è¦ç
- ä¿®æ¹ä»£ç ï¼ä¸ä½äºåè¦çç
- æ»ä½è¦çï¼>= 90%
8. ç¥è¯æ²æ·
8.1 使¶æ²æ·
- P0/P1 è¯è®ºçä¿®å¤
- 置信度 >= 85 çè¯è®º
- æ°åç°çé®é¢æ¨¡å¼
8.2 æ²æ·å 容
## {é®é¢æ¨¡å¼åç§°}
**é¢ç**: â
â
â
ââ
**ææ¯æ **: Backend/Frontend/E2E
**å
³é®è¯**: token, expire, validation
### é®é¢æè¿°
{æè¿°}
### è§£å³æ¹æ¡
{TDD ä¿®å¤ä»£ç 示ä¾}
### æ£æ¥æ¸
å
- [ ] æ£æ¥é¡¹ 1
- [ ] æ£æ¥é¡¹ 2
8.3 æ²æ·ä½ç½®
- éç¨æ¨¡å¼ï¼
docs/best-practices/pr-review-patterns.md - ææ¯æ ç¹å®ï¼
docs/best-practices/{stack}/*.md