code-quality
2
总安装量
2
周安装量
#75007
全站排名
安装命令
npx skills add https://github.com/aidenreed937/comet --skill code-quality
Agent 安装分布
mcpjam
2
roo
2
kilo
2
claude-code
2
junie
2
windsurf
2
Skill 文档
Flutter 代ç è´¨éæ£æµ
ç¡®ä¿ Flutter/Dart 代ç 符å项ç®è§èï¼èªå¨æ£æµåä¿®å¤é®é¢ã
ð¤ 使ç¨åä»£çæ§è¡ï¼æ¨èï¼
代ç è´¨éæ£æ¥å¯è½äº§ç大éè¾åºï¼å»ºè®®éè¿åä»£çæ§è¡
为ä»ä¹ä½¿ç¨å代ç
代ç è´¨éæ£æ¥çè¾åºç¹ç¹ï¼
- â éè¿æ¶ï¼è¾åºç®æ´ï¼å è¡ï¼
- â 失败æ¶ï¼å¯è½äº§ç大éé误信æ¯
- Dart åæé误ï¼5k-10k tokens
- æ ¼å¼åé®é¢ï¼2k-5k tokens
- æµè¯å¤±è´¥ä¿¡æ¯ï¼3k-5k tokens
- æ»è®¡å¯è¾¾ 10k-20k tokens
使ç¨å»ºè®®
| åºæ¯ | 建议 | åå |
|---|---|---|
| 宿´è´¨éæ£æ¥ | ð¤ å代ç | å¯è½æå¤§éé误éè¦ä¿®å¤ |
| åé¡¹æ£æ¥ï¼å¦ analyzeï¼ | ð¤ å代ç | é误è¾åºå¯è½å¾å¤ |
æ ¼å¼å代ç (dart format) |
ð 主çªå£ | è¾åºç®æ´ |
| å¿«éæ£æ¥ï¼ç¡®å®æ éè¯¯ï¼ | ð 主çªå£ | è¾åºå° |
åä»£çæ§è¡ç¤ºä¾
Task({
subagent_type: 'general-purpose',
description: 'è¿è¡ Flutter 代ç è´¨éæ£æ¥',
prompt: `
è¿è¡å®æ´ä»£ç è´¨éæ£æ¥ï¼
1. æ§è¡ flutter analyze, dart format, flutter test
2. 妿é误ï¼åæå¹¶ä¿®å¤
3. 忬¡éªè¯ç´å°å
¨é¨éè¿
4. è¿åæç»æ£æ¥ç»ææè¦
éµå¾ª .claude/skills/code-quality/SKILL.md ä¸çè§èã
`,
})
æ£æµå·¥å ·
1. Dart Analyzer – 代ç åæ
é
ç½®: analysis_options.yaml
主è¦è§å:
- Dart/Flutter è¯æ³è§è
- ç±»åå®å ¨æ£æ¥
- æªä½¿ç¨åé/å¯¼å ¥æ£æµ
- å½åè§èæ£æ¥
- 空å®å ¨æ£æ¥
å½ä»¤:
flutter analyze # åææ´ä¸ªé¡¹ç®
dart analyze lib/ # åææå®ç®å½
2. Dart Format – ä»£ç æ ¼å¼å
æ ¼å¼è§å:
- 2 ç©ºæ ¼ç¼©è¿
- è¡å®½ 80 å符ï¼å¯é ç½®ï¼
- èªå¨æ´çå¯¼å ¥è¯å¥
å½ä»¤:
dart format . # æ ¼å¼åæææä»¶
dart format lib/ test/ # æ ¼å¼åæå®ç®å½
dart format --set-exit-if-changed . # æ£æ¥æ ¼å¼ï¼CIç¨ï¼
3. Flutter Test – åå æµè¯
æµè¯ç±»å:
- åå æµè¯ (Unit Tests)
- Widget æµè¯ (Widget Tests)
- éææµè¯ (Integration Tests)
å½ä»¤:
flutter test # è¿è¡æææµè¯
flutter test test/unit/ # è¿è¡æå®ç®å½æµè¯
flutter test --coverage # çæè¦ççæ¥å
flutter test --reporter=expanded # 详ç»è¾åº
4. Pub ä¾èµæ£æ¥
å½ä»¤:
flutter pub outdated # æ£æ¥è¿æä¾èµ
flutter pub upgrade # å级ä¾èµ
dart pub global run pana . # å
è´¨éè¯åï¼åå¸å
æ¶ï¼
宿´è´¨éæ£æ¥
è¿è¡æææ£æµï¼
# 1. 代ç åæ
flutter analyze
# 2. æ ¼å¼æ£æ¥
dart format --set-exit-if-changed .
# 3. è¿è¡æµè¯
flutter test
# 4. æ£æ¥ä¾èµ
flutter pub outdated
å®å ¨æ§æ£æ¥æ¸ å
ææä¿¡æ¯æ£æ¥
æå¨æ£æ¥ä»£ç 䏿¯å¦å å«ï¼
- â 硬ç¼ç ç API å¯é¥ãAccess Token
- â 硬ç¼ç çå¯ç ãSecret Key
- â 个人身份信æ¯ï¼PIIï¼
- â å é¨ URLãIP å°å
- â 使ç¨ç¯å¢åéæé ç½®æä»¶
常è§å®å ¨æ¼æ´
| æ¼æ´ç±»å | æ£æ¥æ¹æ³ | é¢é²æªæ½ |
|---|---|---|
| SQL æ³¨å ¥ | æ£æ¥ API åæ°æ¼æ¥ | å端使ç¨åæ°åæ¥è¯¢ |
| æææä½ | æ£æ¥æééªè¯ | å é¤/ä¿®æ¹æä½éè¦æéæ£æ¥ |
| æ°æ®æ³é² | æç´¢ print/log |
ç§»é¤æè±ææææ¥å¿ |
| æ¬å°åå¨ | æ£æ¥ SharedPreferences | å å¯æææ°æ® |
| ç½ç»è¯·æ± | æ£æ¥ HTTP ä½¿ç¨ | 强å¶ä½¿ç¨ HTTPS |
ä¾èµå®å ¨
å®ææ£æ¥ï¼
flutter pub outdated
dart pub upgrade --dry-run
å¤ç建议ï¼
- Critical/Highï¼ç«å³å级
- Moderateï¼è¯ä¼°å½±åï¼è®¡åå级
- Lowï¼å¯éå级
æ§è½æ£æ¥æ¸ å
ä»£ç æ§è½
| æ£æ¥é¡¹ | æ å | å·¥å · |
|---|---|---|
| æä»¶å¤§å° | åæä»¶ < 500 è¡ | wc -l <file> |
| Widget åµå¥ | åµå¥å±çº§ < 10 | æå¨æ£æ¥ Widget æ |
| å表ä¼å | ä½¿ç¨ ListView.builder | 代ç å®¡æ¥ |
| ç¶æç®¡ç | é¿å è¿åº¦ setState | Flutter DevTools |
| 弿¥æä½ | æ£ç¡®å¤ç async/await | Dart Analyzer |
æå»ºæ§è½
# Android APK 大尿£æ¥
flutter build apk --release
ls -lh build/app/outputs/flutter-apk/
# iOS æå»ºå¤§å°æ£æ¥
flutter build ios --release
æ£æ¥é¡¹ï¼
- APK < 50MBï¼æªåå ï¼
- ç§»é¤æªä½¿ç¨çèµæº
- å¯ç¨ä»£ç æ··æ·åå缩
è¿è¡æ¶æ§è½
ä½¿ç¨ Flutter DevTools æ£æ¥ï¼
flutter run --profile
# æå¼ DevTools æ¥çæ§è½
æ£æ¥è¦ç¹ï¼
- é¿å ä¸å¿ è¦ç rebuild
- ä½¿ç¨ const æé 彿°
- åè¡¨ä½¿ç¨ ListView.builder
- é¿å å¨ build æ¹æ³ä¸å建大对象
èªå¨åæµç¨
Pre-commit Hook
å¯é ç½® Git Hook å¨æäº¤åè¿è¡ï¼
# .git/hooks/pre-commit
#!/bin/bash
flutter analyze
dart format --set-exit-if-changed .
flutter test
CI/CD éæ
# .github/workflows/flutter.yml 示ä¾
- name: Analyze
run: flutter analyze
- name: Format Check
run: dart format --set-exit-if-changed .
- name: Test
run: flutter test --coverage
常è§é®é¢ä¿®å¤
Dart Analyzer é误
// â éè¯¯ï¼æªä½¿ç¨ç导å
¥
import 'package:flutter/material.dart';
import 'package:unused/unused.dart';
// â
ä¿®å¤ï¼ç§»é¤æªä½¿ç¨ç导å
¥
import 'package:flutter/material.dart';
æ ¼å¼é®é¢
// â éè¯¯ï¼æ ¼å¼ä¸è§è
class MyWidget extends StatelessWidget{
Widget build(BuildContext context){
return Container();}
}
// â
ä¿®å¤ï¼è¿è¡ dart format
class MyWidget extends StatelessWidget {
Widget build(BuildContext context) {
return Container();
}
}
æäº¤ä¿¡æ¯
# â é误
git commit -m "ä¿®å¤bug"
# â
æ£ç¡®
git commit -m "fix: ä¿®å¤ç»å½é¡µé¢éªè¯é®é¢"
git commit -m "feat(ui): æ·»å ç¨æ·å¤´åä¸ä¼ åè½"
使ç¨åºæ¯
- ç¼åä»£ç æ¶: Claude ä¼æç¤ºä¸ç¬¦åè§èç代ç
- æäº¤å: è¿è¡è´¨éæ£æ¥ç¡®ä¿ä»£ç 符åè§è
- CI/CD: 卿µæ°´çº¿ä¸èªå¨è¿è¡æ£æ¥