pre-commit-validator
16
总安装量
4
周安装量
#21127
全站排名
安装命令
npx skills add https://github.com/cityfish91159/maihouses --skill pre-commit-validator
Agent 安装分布
opencode
3
codex
3
claude-code
2
antigravity
2
gemini-cli
2
windsurf
1
Skill 文档
Pre-Commit Validator Skill
å¨ Git commit åå·è¡å®æ´ç代碼å質é©èï¼ç¢ºä¿ææä¿®æ¹ç¬¦åæé«è¦æ ¼æ¨æºã
ð¯ å·è¡ææ©
- ç¨æ¶æå°è¦ãcommitãæãæäº¤ä»£ç¢¼ã
- ç¨æ¶æå°è¦ãpushãå°é 端
- 宿éè¦åè½éç¼å¾
- ç¨æ¶æç¢ºè¦æ±ã檢æ¥ãæãé©èãå¨æäº¤å
ð 宿´æª¢æ¥æ¸ å®
1. Git çæ æª¢æ¥
git status
確èªï¼
- â ææªæäº¤çä¿®æ¹
- â 卿£ç¢ºç忝ä¸
- â æ²ææªè¿½è¹¤çéè¦æªæ¡è¢«éºæ¼
2. TypeScript é¡å檢æ¥
npm run typecheck
å¿ é ééï¼ç¡ä»»ä½é¯èª¤
妿æé¯èª¤ï¼
- 使ç¨
type-checkerskill 修復 - éæ°å·è¡é©è
- ä¸å¯è·³éæå¿½ç¥
3. ESLint ä»£ç¢¼é¢¨æ ¼æª¢æ¥
npm run lint
å¿ é ééï¼ç¡ä»»ä½è¦åæé¯èª¤
妿æé¯èª¤ï¼
- åªå
使ç¨èªå修復:
npm run lint -- --fix - æåä¿®å¾©ç¡æ³èªåèççåé¡
- éæ°å·è¡é©è
4. å®å 測試ï¼å¦ææï¼
npm test
æææ¸¬è©¦å¿ é ééã
5. Build æ§å»ºæª¢æ¥
npm run build
å¿ é æåæ§å»ºï¼ç¡ä»»ä½é¯èª¤
é確ä¿ï¼
- ææ import/export æ£ç¢º
- ææä¾è³´å¯è§£æ
- çç¢ç°å¢ä»£ç¢¼å¯ç¨
6. ç¦æ¢æ¨¡å¼æå°
ä½¿ç¨ Grep æå°çµå°ç¦æ¢åºç¾ç模å¼ï¼
# æå° console.log (å
卿°ä¿®æ¹çæªæ¡ä¸)
git diff --name-only | xargs grep -n "console\.log"
# æå° debugger èªå¥
git diff --name-only | xargs grep -n "debugger"
# æå° TODO/FIXME æ¨è¨
git diff --name-only | xargs grep -n "TODO\|FIXME"
妿ç¼ç¾ï¼
console.logâ å¿ é ç§»é¤ææ¹ç¨ loggerdebuggerâ å¿ é ç§»é¤TODO/FIXMEâ ç¢ºèªæ¯å¦éè¦å¨æ¤ commit 宿
7. ææè³è¨æª¢æ¥
# æª¢æ¥æ¯å¦å
å« API keys, tokens, passwords
git diff --cached | grep -iE "(api[_-]?key|secret|password|token|credential)"
妿ç¼ç¾ææè³è¨ï¼
- ð¨ ç«å³åæ¢ commit
- ç§»é¤ææè³è¨
- 使ç¨ç°å¢è®æ¸æé ç½®æªæ¡
8. æªæ¡å¤§å°æª¢æ¥
# æª¢æ¥æ¯å¦æå¤§æªæ¡ï¼>1MBï¼
git diff --cached --name-only | xargs ls -lh | awk '$5 ~ /M/ {print}'
å¤§æªæ¡æè©²ï¼
- åç/åªé« â ä½¿ç¨ CDN æå£ç¸®
- è³ææªæ¡ â 䏿æäº¤å° git
9. ç¸ä¾æ§æª¢æ¥
# æª¢æ¥ package.json æ¯å¦æè®æ´
git diff --name-only | grep "package.json"
妿 package.json æè®æ´ï¼
- 確èª
package-lock.jsonä¹æè®æ´ - å·è¡
npm install確ä¿ä¾è³´æ£ç¢º
ð é©èå ±åæ ¼å¼
## Pre-Commit é©èå ±å
### Git çæ
- 忝: `feature/xxx`
- ä¿®æ¹æªæ¡: 5 å
- æ°å¢æªæ¡: 2 å
### é©èçµæ
â
TypeScript é¡å檢æ¥éé
â
ESLint ä»£ç¢¼é¢¨æ ¼æª¢æ¥éé
â
å®å
測試éé (12/12)
â
Build æ§å»ºæå
â
ç¡ç¦æ¢æ¨¡å¼
â
ç¡ææè³è¨
â
ç¡ç°å¸¸å¤§æªæ¡
â
ç¸ä¾æ§æ£ç¢º
### å¯ä»¥å®å
¨æäº¤ â
å»ºè° commit message:
feat: 實ä½ç¨æ¶èªèåè½
- æ°å¢ Login çµä»¶
- å¯¦ä½ JWT é©è
- å å ¥é¯èª¤èç
ð¨ 妿é©è失æ
## Pre-Commit é©èå ±å
### é©èçµæ
â TypeScript é¡å檢æ¥å¤±æ
- src/components/Login.tsx:42 - TS7006
- src/api/auth.ts:15 - TS2345
â
ESLint ä»£ç¢¼é¢¨æ ¼æª¢æ¥éé
â ï¸ ç¼ç¾ 3 å console.log
- src/utils/debug.ts:12
- src/components/Form.tsx:45
- src/hooks/useAuth.ts:88
### â ä¸å¯æäº¤ï¼
å¿
é å
修復以ä¸åé¡ã
èçæ¥é©ï¼
- 使ç¨ç¸æç skill 修復åé¡ï¼å¦
type-checkerï¼ - éæ°å·è¡å®æ´é©è
- ç´å°æææª¢æ¥éé
â ï¸ çµå°ç¦æ¢
# â æ°¸é ä¸è¦é樣å
git commit --no-verify
git push --force
git commit -m "wip" # æ²ææè¿°æ§ç message
â æä½³å¯¦è¸
Commit Message æ ¼å¼
<type>(<scope>): <subject>
<body>
<footer>
Type é¡åï¼
feat: æ°åè½fix: 修復 bugrefactor: éæ§docs: ææªstyle: æ ¼å¼ï¼ä¸å½±é¿ä»£ç¢¼éè¡ï¼test: 測試chore: æ§å»ºéç¨æè¼å©å·¥å ·è®å
ç¯ä¾ï¼
feat(auth): å¯¦ä½ JWT èªè
- æ°å¢ login API endpoint
- å¯¦ä½ token é©è middleware
- å å
¥ refresh token æ©å¶
Closes #123
ð 宿´ Commit æµç¨
# 1. å·è¡ pre-commit é©èï¼ä½¿ç¨æ¤ skillï¼
# 2. æææª¢æ¥ééå¾
git add .
# 3. æäº¤ï¼ä½¿ç¨æè¿°æ§ messageï¼
git commit -m "feat: 實ä½åè½"
# 4. Push å忬¡ç¢ºèª
git log -1 --stat
# 5. Push
git push origin branch-name
ð æª¢æ¥çµ±è¨
宿é©èå¾ï¼æä¾çµ±è¨è³è¨ï¼
### ä¿®æ¹çµ±è¨
- ä¿®æ¹: 8 æªæ¡
- æ°å¢: 245 è¡
- åªé¤: 102 è¡
- 測試è¦èç: 87%
### åè³ªææ¨
- TypeScript é¯èª¤: 0
- ESLint è¦å: 0
- 測試ééç: 100%
- Build æé: 12.3s
ð¯ é©èæ¨æº
æææª¢æ¥å¿ é 100% ééï¼æ²æä¾å¤ã
è¨ä½ï¼å¯§å¯å¤è±æé確ä¿å質ï¼ä¹ä¸è¦æäº¤æåé¡ç代碼ã