flutter-pro-max-cli 2.3.2 → 2.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -23,7 +23,7 @@ def _get_data_dir() -> Path:
23
23
  script_dir.parent.parent / "data",
24
24
  # When running from root/scripts/
25
25
  script_dir.parent / ".shared" / "data",
26
- # When running from .agent/workflows/scripts/ (nested 3 levels deep)
26
+ # When running from .agents/workflows/scripts/ (nested 3 levels deep)
27
27
  script_dir.parent.parent.parent / ".shared" / "data",
28
28
  # When running from .claude/skills/flutter-pro-max/scripts/ (reference mode)
29
29
  script_dir.parent.parent.parent.parent / ".shared" / "data",
@@ -19,4 +19,4 @@
19
19
  User request → Search skill (≥2 domains) → Đọc kết quả → Áp dụng vào code
20
20
  ```
21
21
 
22
- > ⚠️ Viết code Flutter mà không tham khảo skill trước = thiếu context = code chất lượng thấp.
22
+ > ⚠️ Viết code Flutter mà không tham khảo skill trước = thiếu context = code chất lượng thấp.
@@ -47,4 +47,4 @@
47
47
  | Hardcode colors, padding, font sizes | Dùng `Theme.of(context)`, design tokens, constants |
48
48
  | Business logic trong Widget `build()` | Tách vào UseCase / Service / Provider |
49
49
 
50
- > 🔴 **REUSE > CREATE.** Không bao giờ tạo file mới mà không kiểm tra codebase hiện tại trước.
50
+ > 🔴 **REUSE > CREATE.** Không bao giờ tạo file mới mà không kiểm tra codebase hiện tại trước.
@@ -18,4 +18,4 @@ Khi nhận request liên quan đến code hiện tại, luôn tuân thủ quy tr
18
18
  | User yêu cầu tạo file mới | ⚠️ Chỉ AUDIT các file liên quan |
19
19
  | User hỏi kiến thức chung | ❌ Không cần ABCR |
20
20
 
21
- > 💡 **Mục đích:** Không bao giờ thêm code rác lên code rác. Fix nền tảng trước.
21
+ > 💡 **Mục đích:** Không bao giờ thêm code rác lên code rác. Fix nền tảng trước.
@@ -55,4 +55,4 @@ abstract class AppSpacing {
55
55
  }
56
56
  ```
57
57
 
58
- > 🔴 **Khi có nghi ngờ:** Mở screen hiện tại có cùng chức năng → copy exact spacing và layout pattern. **Không sáng tạo riêng.**
58
+ > 🔴 **Khi có nghi ngờ:** Mở screen hiện tại có cùng chức năng → copy exact spacing và layout pattern. **Không sáng tạo riêng.**
@@ -40,4 +40,4 @@ Future<Result<User>> fetchUser(String id) async {
40
40
  | Throw generic `Exception('Error')` | Tạo custom exceptions có context |
41
41
  | Ignore `StackTrace` | Luôn log cả `stackTrace` để debug |
42
42
 
43
- > 🔴 **Mỗi `try` phải có `catch` có ý nghĩa.** Log + User message + Recovery action.
43
+ > 🔴 **Mỗi `try` phải có `catch` có ý nghĩa.** Log + User message + Recovery action.
@@ -45,4 +45,4 @@ test('should return user when API succeeds', () async {
45
45
  - Mỗi test case chỉ test 1 behavior
46
46
  - Tên test mô tả behavior: `should [expected] when [condition]`
47
47
 
48
- > 🔴 **Fix bug?** Viết test reproduce bug TRƯỚC, rồi mới fix.
48
+ > 🔴 **Fix bug?** Viết test reproduce bug TRƯỚC, rồi mới fix.
@@ -44,4 +44,4 @@ ValueListenableBuilder<int>(
44
44
  - [ ] Không có `print()` còn sót (dùng `developer.log`)
45
45
  - [ ] Images có loading/error builders
46
46
 
47
- > 🔴 **Nếu list > 20 items → BẮT BUỘC dùng `.builder`.** Không exceptions.
47
+ > 🔴 **Nếu list > 20 items → BẮT BUỘC dùng `.builder`.** Không exceptions.
@@ -38,4 +38,4 @@
38
38
  - Timeout cho mọi API call (30s max)
39
39
  - Không trust user input từ deep links
40
40
 
41
- > 🔴 **Mỗi lần thêm API key hay xử lý auth**, kiểm tra checklist trên.
41
+ > 🔴 **Mỗi lần thêm API key hay xử lý auth**, kiểm tra checklist trên.
@@ -51,4 +51,4 @@ class CartNotifier extends ChangeNotifier {
51
51
  }
52
52
  ```
53
53
 
54
- > ⚠️ **KHÔNG tự ý thêm Riverpod/Bloc/GetX.** Hỏi user trước nếu cần escalate.
54
+ > ⚠️ **KHÔNG tự ý thêm Riverpod/Bloc/GetX.** Hỏi user trước nếu cần escalate.
@@ -67,4 +67,4 @@ test(auth): add login use case unit tests
67
67
  | `test` | Thêm/sửa tests |
68
68
  | `chore` | Config, dependencies, tooling |
69
69
 
70
- > 🔴 **Đặt tên file/class sai convention?** Rename ngay, không để nợ.
70
+ > 🔴 **Đặt tên file/class sai convention?** Rename ngay, không để nợ.
@@ -53,4 +53,4 @@ Image.network(
53
53
  | Navigation | Focus order hợp lý |
54
54
  | Colors | Không dùng màu là cách duy nhất truyền thông tin |
55
55
 
56
- > 🔴 **Mỗi `IconButton` PHẢI có `tooltip`.** Mỗi `Image` PHẢI có `semanticLabel`.
56
+ > 🔴 **Mỗi `IconButton` PHẢI có `tooltip`.** Mỗi `Image` PHẢI có `semanticLabel`.
@@ -3,7 +3,7 @@
3
3
  "displayName": "Antigravity / Generic Agent",
4
4
  "installType": "full",
5
5
  "folderStructure": {
6
- "root": ".agent",
6
+ "root": ".agents",
7
7
  "skillPath": "skills/flutter-pro-max",
8
8
  "filename": "SKILL.md"
9
9
  },
@@ -20,7 +20,7 @@
20
20
  "description": "Flutter development guide with widgets, packages, patterns, architecture, performance, and UI/UX best practices.",
21
21
  "skillOrWorkflow": "Skill",
22
22
  "rulesFile": {
23
- "path": ".agent/rules/flutter-pro-max.md",
23
+ "path": ".agents/rules/flutter-pro-max.md",
24
24
  "mode": "create"
25
25
  }
26
26
  }
@@ -4,7 +4,7 @@ export const AI_FOLDERS = {
4
4
  claude: ['.claude', '.shared'],
5
5
  cursor: ['.cursor', '.shared'],
6
6
  windsurf: ['.windsurf', '.shared'],
7
- antigravity: ['.agent', '.shared'],
7
+ antigravity: ['.agents', '.shared'],
8
8
  copilot: ['.github', '.shared'],
9
9
  kiro: ['.kiro', '.shared'],
10
10
  codex: ['.codex', '.shared'],
@@ -11,7 +11,7 @@ export function detectAIType(cwd = process.cwd()) {
11
11
  if (existsSync(join(cwd, '.windsurf'))) {
12
12
  detected.push('windsurf');
13
13
  }
14
- if (existsSync(join(cwd, '.agent'))) {
14
+ if (existsSync(join(cwd, '.agents'))) {
15
15
  detected.push('antigravity');
16
16
  }
17
17
  if (existsSync(join(cwd, '.github'))) {
@@ -63,7 +63,7 @@ export function getAITypeDescription(aiType) {
63
63
  case 'windsurf':
64
64
  return 'Windsurf (.windsurf/workflows/)';
65
65
  case 'antigravity':
66
- return 'Antigravity / Generic Agent (.agent/skills/)';
66
+ return 'Antigravity / Generic Agent (.agents/skills/)';
67
67
  case 'copilot':
68
68
  return 'GitHub Copilot (.github/skills/)';
69
69
  case 'kiro':
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flutter-pro-max-cli",
3
- "version": "2.3.2",
3
+ "version": "2.3.4",
4
4
  "description": "CLI to install Flutter Pro Max skill for AI coding assistants",
5
5
  "type": "module",
6
6
  "bin": {