@leejungkiin/awkit 1.0.0

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.
Files changed (139) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +146 -0
  3. package/VERSION +1 -0
  4. package/bin/awf.js +549 -0
  5. package/bin/awk.js +1759 -0
  6. package/core/AGENTS.md +39 -0
  7. package/core/GEMINI.md +202 -0
  8. package/core/GEMINI.md.bak +244 -0
  9. package/core/orchestrator.md +58 -0
  10. package/package.json +46 -0
  11. package/schemas/brain.schema.json +342 -0
  12. package/schemas/preferences.schema.json +95 -0
  13. package/schemas/session.schema.json +112 -0
  14. package/skill-packs/neural-memory/README.md +111 -0
  15. package/skill-packs/neural-memory/pack.json +35 -0
  16. package/skill-packs/neural-memory/schemas/brain-snapshot.json +167 -0
  17. package/skill-packs/neural-memory/skills/nm-memory-audit/SKILL.md +157 -0
  18. package/skill-packs/neural-memory/skills/nm-memory-evolution/SKILL.md +202 -0
  19. package/skill-packs/neural-memory/skills/nm-memory-intake/SKILL.md +135 -0
  20. package/skill-packs/neural-memory/skills/nm-memory-sync/SKILL.md +184 -0
  21. package/skill-packs/neural-memory/workflows/nm-import.md +73 -0
  22. package/skill-packs/neural-memory/workflows/nm-recall.md +67 -0
  23. package/skill-packs/neural-memory/workflows/nm-snapshot.md +69 -0
  24. package/skills/adaptive-language/SKILL.md +189 -0
  25. package/skills/ambient-brain/SKILL.md +314 -0
  26. package/skills/ambient-brain/brain-router.md +185 -0
  27. package/skills/ambient-brain/brain-templates.md +201 -0
  28. package/skills/auto-save/SKILL.md +223 -0
  29. package/skills/awf-adaptive-language/SKILL.md +189 -0
  30. package/skills/awf-context-help/SKILL.md +180 -0
  31. package/skills/awf-error-translator/SKILL.md +153 -0
  32. package/skills/awf-session-restore/SKILL.md +270 -0
  33. package/skills/awf-version-tracker/SKILL.md +32 -0
  34. package/skills/awf-version-tracker/scripts/snapshot.sh +22 -0
  35. package/skills/beads-manager/SKILL.md +323 -0
  36. package/skills/brainstorm-agent/SKILL.md +295 -0
  37. package/skills/context-help/SKILL.md +180 -0
  38. package/skills/error-translator/SKILL.md +153 -0
  39. package/skills/ios-engineer/SKILL.md +101 -0
  40. package/skills/memory-sync/SKILL.md +378 -0
  41. package/skills/memory-sync/memory-router.md +185 -0
  42. package/skills/memory-sync/memory-templates.md +201 -0
  43. package/skills/orchestrator/SKILL.md +193 -0
  44. package/skills/session-restore/SKILL.md +240 -0
  45. package/templates/CODEBASE.md +80 -0
  46. package/templates/brain.example.json +321 -0
  47. package/templates/preferences.example.json +21 -0
  48. package/templates/project-identity/android.json +28 -0
  49. package/templates/project-identity/backend-nestjs.json +24 -0
  50. package/templates/project-identity/expo.json +27 -0
  51. package/templates/project-identity/ios.json +27 -0
  52. package/templates/project-identity/web-nextjs.json +24 -0
  53. package/templates/session.example.json +53 -0
  54. package/templates/specs/design-template.md +166 -0
  55. package/templates/specs/requirements-template.md +65 -0
  56. package/templates/specs/tasks-template.md +132 -0
  57. package/templates/structures/android.txt +10 -0
  58. package/templates/structures/backend-nestjs.txt +6 -0
  59. package/templates/structures/expo.txt +9 -0
  60. package/templates/structures/ios.txt +9 -0
  61. package/templates/structures/web-nextjs.txt +6 -0
  62. package/templates/workflow_dual_mode_template.md +87 -0
  63. package/workflows/_uncategorized/README.md +339 -0
  64. package/workflows/_uncategorized/ads-creative.md +357 -0
  65. package/workflows/_uncategorized/ads-full-optimization.md +308 -0
  66. package/workflows/_uncategorized/ads-plan.md +247 -0
  67. package/workflows/_uncategorized/ads-user-analysis.md +337 -0
  68. package/workflows/_uncategorized/skill-health.md +35 -0
  69. package/workflows/_uncategorized/skill-rollback.md +35 -0
  70. package/workflows/ads/admob.md +62 -0
  71. package/workflows/ads/ads-analyst.md +201 -0
  72. package/workflows/ads/ads-audit.md +106 -0
  73. package/workflows/ads/ads-optimize.md +97 -0
  74. package/workflows/ads/ads-targeting.md +241 -0
  75. package/workflows/ads/adsExpert.md +160 -0
  76. package/workflows/ads/smali-ads-config.md +400 -0
  77. package/workflows/ads/smali-ads-flow.md +331 -0
  78. package/workflows/ads/smali-ads-interstitial.md +377 -0
  79. package/workflows/ads/smali-ads-native.md +382 -0
  80. package/workflows/context/auto-execution-workflow.md +291 -0
  81. package/workflows/context/auto-implement.md +211 -0
  82. package/workflows/context/codebase-sync.md +163 -0
  83. package/workflows/context/logic-reasoning-workflow.md +260 -0
  84. package/workflows/context/next.md +195 -0
  85. package/workflows/context/recap.md +212 -0
  86. package/workflows/context/save-brain.md +285 -0
  87. package/workflows/context/user-intent-analysis-workflow.md +206 -0
  88. package/workflows/expert/codeExpert.md +126 -0
  89. package/workflows/expert/debugExpert.md +136 -0
  90. package/workflows/expert/planExpert.md +112 -0
  91. package/workflows/git/cloudflare-tunnel.md +135 -0
  92. package/workflows/git/git-commit-workflow.md +75 -0
  93. package/workflows/git/hotfix.md +357 -0
  94. package/workflows/git/release-notes.md +160 -0
  95. package/workflows/git/rollback.md +52 -0
  96. package/workflows/git/smart-git-ops.md +103 -0
  97. package/workflows/lifecycle/brainstorm.md +377 -0
  98. package/workflows/lifecycle/code.md +663 -0
  99. package/workflows/lifecycle/debug.md +116 -0
  100. package/workflows/lifecycle/deploy.md +95 -0
  101. package/workflows/lifecycle/init.md +152 -0
  102. package/workflows/lifecycle/master-code-workflow.md +300 -0
  103. package/workflows/lifecycle/migration.md +196 -0
  104. package/workflows/lifecycle/plan.md +91 -0
  105. package/workflows/lifecycle/refactor.md +165 -0
  106. package/workflows/lifecycle/run.md +52 -0
  107. package/workflows/lifecycle/test.md +91 -0
  108. package/workflows/meta/customize.md +346 -0
  109. package/workflows/meta/file-protection-rules.md +129 -0
  110. package/workflows/meta/help.html +350 -0
  111. package/workflows/meta/project-identity-enforcement.md +180 -0
  112. package/workflows/mobile/app-analysis.md +64 -0
  113. package/workflows/mobile/maestro-qa-workflow.md +470 -0
  114. package/workflows/mobile/maestro-test-workflow.md +84 -0
  115. package/workflows/mobile/structure-clean-architect.md +271 -0
  116. package/workflows/mobile/turbo-mobile-build.md +190 -0
  117. package/workflows/quality/accessibility-audit.md +311 -0
  118. package/workflows/quality/audit.md +217 -0
  119. package/workflows/quality/bug-hunter.md +243 -0
  120. package/workflows/quality/code-janitor.md +209 -0
  121. package/workflows/quality/code-quality-rules.md +132 -0
  122. package/workflows/quality/performance-audit.md +343 -0
  123. package/workflows/quality/project-audit.md +61 -0
  124. package/workflows/quality/self-healing-test.md +192 -0
  125. package/workflows/quality/ui-review.md +130 -0
  126. package/workflows/quality/ux-audit.md +213 -0
  127. package/workflows/quality/visual-debug.md +34 -0
  128. package/workflows/roles/oracle.md +267 -0
  129. package/workflows/roles/product-manager-workflow.md +52 -0
  130. package/workflows/roles/qa-engineer-workflow.md +41 -0
  131. package/workflows/roles/tech-lead-workflow.md +45 -0
  132. package/workflows/roles/ui-ux-designer-workflow.md +42 -0
  133. package/workflows/roles/vibe-coding-master-workflow.md +52 -0
  134. package/workflows/ui/app-screen-analyzer.md +152 -0
  135. package/workflows/ui/create-feature.md +332 -0
  136. package/workflows/ui/create-spec-architect.md +184 -0
  137. package/workflows/ui/design-to-ui.md +308 -0
  138. package/workflows/ui/ui-first-methodology.md +279 -0
  139. package/workflows/ui/visualize.md +298 -0
@@ -0,0 +1,180 @@
1
+ ---
2
+ name: awf-context-help
3
+ description: >-
4
+ Context-aware help based on current workflow state. Keywords: help, what,
5
+ how, confused, stuck, lost, guide, tutorial, explain.
6
+ Activates on /help or when user asks questions.
7
+ version: 1.0.0
8
+ ---
9
+
10
+ # AWF Context Help
11
+
12
+ Trợ giúp thông minh dựa trên context hiện tại.
13
+
14
+ ## Trigger Conditions
15
+
16
+ **Activates when:**
17
+ - User runs `/help`
18
+ - User types "?", "giúp", "help", "làm sao"
19
+ - User seems confused (repeated errors, long pause)
20
+
21
+ ## Execution Logic
22
+
23
+ ### Step 1: Read Context
24
+
25
+ ```
26
+ context = {}
27
+
28
+ if exists(".brain/session.json"):
29
+ context.workflow = session.working_on.feature
30
+ context.task = session.working_on.task
31
+ context.status = session.working_on.status
32
+ context.pending = session.pending_tasks
33
+
34
+ if exists(".brain/brain.json"):
35
+ context.project = brain.project.name
36
+ context.tech = brain.tech_stack
37
+ ```
38
+
39
+ ### Step 2: Detect State
40
+
41
+ | State | Detection | Response |
42
+ |-------|-----------|----------|
43
+ | `no_project` | No .brain/ folder | Show onboarding |
44
+ | `planning` | workflow contains "plan" | Planning help |
45
+ | `coding` | workflow contains "code" | Coding help |
46
+ | `debugging` | workflow contains "debug" | Debug help |
47
+ | `deploying` | workflow contains "deploy" | Deploy help |
48
+ | `stuck` | status = "blocked" or pending > 5 | Stuck help |
49
+ | `idle` | No active workflow | General help |
50
+
51
+ ### Step 3: Show Contextual Help
52
+
53
+ ## Help Templates
54
+
55
+ ### No Project State
56
+ ```
57
+ 🆕 Chưa có dự án
58
+
59
+ Bạn có thể:
60
+ 1. /brainstorm - Bàn ý tưởng trước
61
+ 2. /init - Tạo dự án mới
62
+ 3. Mô tả ý tưởng cho em nghe
63
+
64
+ Em sẽ hướng dẫn từng bước!
65
+ ```
66
+
67
+ ### Planning State
68
+ ```
69
+ 📋 Đang lập kế hoạch: {context.workflow}
70
+
71
+ Bạn có thể:
72
+ 1. Tiếp tục plan hiện tại
73
+ 2. /code - Bắt đầu code phase đầu tiên
74
+ 3. Hỏi em về cách thiết kế
75
+
76
+ 💡 Mẹo: Plan tốt = Code nhanh hơn!
77
+ ```
78
+
79
+ ### Coding State
80
+ ```
81
+ 💻 Đang code: {context.task}
82
+ Status: {context.status}
83
+
84
+ Bạn có thể:
85
+ 1. Tiếp tục code
86
+ 2. /test - Kiểm tra code vừa viết
87
+ 3. /debug - Nếu gặp lỗi
88
+ 4. /save-brain - Lưu tiến độ
89
+
90
+ 💡 Pending tasks: {context.pending.length}
91
+ ```
92
+
93
+ ### Debugging State
94
+ ```
95
+ 🔧 Đang debug: {context.task}
96
+
97
+ Bạn có thể:
98
+ 1. Mô tả lỗi chi tiết hơn
99
+ 2. Paste error message
100
+ 3. /code - Quay lại code sau khi fix
101
+
102
+ 💡 Mẹo: Copy paste lỗi giúp em hiểu nhanh hơn!
103
+ ```
104
+
105
+ ### Deploying State
106
+ ```
107
+ 🚀 Đang deploy: {context.workflow}
108
+
109
+ Bạn có thể:
110
+ 1. Tiếp tục deploy process
111
+ 2. /rollback - Quay về bản trước nếu lỗi
112
+ 3. Kiểm tra logs sau deploy
113
+
114
+ ⚠️ Nhớ test kỹ trước khi deploy production!
115
+ ```
116
+
117
+ ### Stuck State
118
+ ```
119
+ 😅 Có vẻ bạn đang bị kẹt
120
+
121
+ Thử những cách này:
122
+ 1. /recap - Xem lại đang làm gì
123
+ 2. /debug - Nếu có lỗi
124
+ 3. Nghỉ 5 phút rồi quay lại
125
+ 4. Hỏi em cụ thể vấn đề
126
+
127
+ 💡 {context.pending.length} tasks đang chờ.
128
+ Có thể tạm skip task khó, làm cái khác trước?
129
+ ```
130
+
131
+ ### Idle/General State
132
+ ```
133
+ 👋 Em có thể giúp gì?
134
+
135
+ Lệnh phổ biến:
136
+ ┌─────────────────────────────────────┐
137
+ │ /next │ Gợi ý việc tiếp theo │
138
+ │ /recap │ Nhớ lại context │
139
+ │ /brainstorm │ Bàn ý tưởng mới │
140
+ │ /plan │ Lập kế hoạch │
141
+ │ /code │ Viết code │
142
+ └─────────────────────────────────────┘
143
+
144
+ Hoặc hỏi em bất cứ điều gì!
145
+ ```
146
+
147
+ ## Adaptive Language
148
+
149
+ Help responses adapt to `technical_level`:
150
+
151
+ **newbie:**
152
+ - Dùng tiếng Việt thuần
153
+ - Giải thích mọi khái niệm
154
+ - Bước nhỏ, chi tiết
155
+
156
+ **basic:**
157
+ - Mix Việt-Anh
158
+ - Giải thích term lần đầu
159
+ - Bước vừa phải
160
+
161
+ **technical:**
162
+ - Dùng thuật ngữ chuẩn
163
+ - Không cần giải thích
164
+ - Tập trung action
165
+
166
+ ## Fallback
167
+
168
+ If context unreadable:
169
+ ```
170
+ 👋 Em ở đây giúp bạn!
171
+
172
+ Gõ /next để em gợi ý việc cần làm,
173
+ hoặc mô tả vấn đề cho em nghe.
174
+ ```
175
+
176
+ ## Performance
177
+
178
+ - Context read: < 200ms
179
+ - Response generation: Instant
180
+ - No external API calls
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: awf-error-translator
3
+ description: >-
4
+ Translate technical errors to human-friendly language. Keywords: error,
5
+ translate, explain, help, fix, fail, broken, crash, bug.
6
+ Activates on /debug, /code, /test when errors detected.
7
+ version: 1.0.0
8
+ ---
9
+
10
+ # AWF Error Translator
11
+
12
+ Dịch lỗi kỹ thuật sang ngôn ngữ đời thường cho non-tech users.
13
+
14
+ ## Trigger Conditions
15
+
16
+ **Post-hook for:** `/debug`, `/code`, `/test`
17
+
18
+ **When:** Error message detected in output
19
+
20
+ ## Execution Logic
21
+
22
+ ### Step 1: Detect Error
23
+
24
+ ```
25
+ if output contains error patterns:
26
+ → Activate translation
27
+ else:
28
+ → Skip (no error)
29
+ ```
30
+
31
+ ### Step 2: Match & Translate
32
+
33
+ Match error against database, return human message + action.
34
+
35
+ ### Step 3: Display
36
+
37
+ ```
38
+ ❌ Lỗi: [human message]
39
+ 💡 Gợi ý: [action]
40
+ ```
41
+
42
+ ## Error Translation Database
43
+
44
+ ### Database Errors
45
+
46
+ | Pattern | Human Message | Action |
47
+ |---------|---------------|--------|
48
+ | `ECONNREFUSED` | Database chưa chạy | Khởi động PostgreSQL/MySQL |
49
+ | `ETIMEDOUT` | Database phản hồi chậm quá | Kiểm tra kết nối mạng |
50
+ | `ER_ACCESS_DENIED` | Sai mật khẩu database | Kiểm tra file .env |
51
+ | `relation .* does not exist` | Bảng chưa tồn tại | Chạy migration: `/run migrate` |
52
+ | `duplicate key` | Dữ liệu bị trùng | Kiểm tra unique constraint |
53
+
54
+ ### JavaScript/TypeScript Errors
55
+
56
+ | Pattern | Human Message | Action |
57
+ |---------|---------------|--------|
58
+ | `TypeError: Cannot read` | Đang đọc biến chưa có giá trị | Kiểm tra null/undefined |
59
+ | `ReferenceError` | Dùng biến chưa khai báo | Kiểm tra tên biến |
60
+ | `SyntaxError` | Code viết sai cú pháp | Kiểm tra dấu ngoặc, chấm phẩy |
61
+ | `Maximum call stack` | Vòng lặp vô hạn | Kiểm tra điều kiện dừng |
62
+ | `Cannot find module` | Thiếu package | Chạy `npm install` |
63
+
64
+ ### Network Errors
65
+
66
+ | Pattern | Human Message | Action |
67
+ |---------|---------------|--------|
68
+ | `fetch failed` | Không kết nối được server | Kiểm tra URL và internet |
69
+ | `CORS` | Website chặn request | Cấu hình CORS trên server |
70
+ | `ERR_CERT` | Chứng chỉ SSL lỗi | Dùng HTTP thay HTTPS (dev only) |
71
+ | `timeout` | Request quá lâu | Tăng timeout hoặc kiểm tra server |
72
+ | `ENOTFOUND` | Domain không tồn tại | Kiểm tra lại URL |
73
+
74
+ ### Package Errors
75
+
76
+ | Pattern | Human Message | Action |
77
+ |---------|---------------|--------|
78
+ | `npm ERR!` | Cài package bị lỗi | Xóa node_modules, cài lại |
79
+ | `peer dep` | Phiên bản không tương thích | Cập nhật package.json |
80
+ | `EACCES` | Không có quyền truy cập | Chạy với sudo hoặc sửa quyền |
81
+ | `ENOSPC` | Hết dung lượng ổ đĩa | Dọn dẹp disk |
82
+ | `gyp ERR!` | Lỗi build native module | Cài build tools |
83
+
84
+ ### Test Errors
85
+
86
+ | Pattern | Human Message | Action |
87
+ |---------|---------------|--------|
88
+ | `Expected .* but received` | Test thất bại - kết quả sai | Sửa code hoặc update test |
89
+ | `Timeout` | Test chạy quá lâu | Tăng timeout hoặc optimize |
90
+ | `before each hook` | Setup test bị lỗi | Kiểm tra beforeEach |
91
+ | `snapshot` | UI thay đổi | Update snapshot nếu đúng |
92
+ | `coverage` | Thiếu test coverage | Viết thêm test |
93
+
94
+ ### Build Errors
95
+
96
+ | Pattern | Human Message | Action |
97
+ |---------|---------------|--------|
98
+ | `tsc.*error` | Lỗi TypeScript | Sửa type errors |
99
+ | `ESLint` | Code không đúng style | Chạy lint fix |
100
+ | `Build failed` | Build thất bại | Đọc log chi tiết |
101
+ | `Out of memory` | Hết RAM | Tăng memory limit |
102
+ | `FATAL ERROR` | Lỗi nghiêm trọng | Restart và thử lại |
103
+
104
+ ### Git Errors
105
+
106
+ | Pattern | Human Message | Action |
107
+ |---------|---------------|--------|
108
+ | `conflict` | Code bị xung đột | Merge conflict manually |
109
+ | `rejected` | Push bị từ chối | Pull trước khi push |
110
+ | `detached HEAD` | Không ở branch nào | Checkout về branch |
111
+ | `not a git repo` | Chưa init git | Chạy `git init` |
112
+
113
+ ### Deploy Errors
114
+
115
+ | Pattern | Human Message | Action |
116
+ |---------|---------------|--------|
117
+ | `502 Bad Gateway` | Server không phản hồi | Restart server |
118
+ | `503 Service` | Server quá tải | Scale up resources |
119
+ | `permission denied` | Không có quyền deploy | Kiểm tra credentials |
120
+ | `quota exceeded` | Hết quota | Nâng cấp plan |
121
+
122
+ ## Output Format
123
+
124
+ ```
125
+ 🔍 Translating error...
126
+
127
+ ❌ Lỗi: [human_message]
128
+ └─ Gốc: [original_error_snippet]
129
+
130
+ 💡 Gợi ý: [action]
131
+ └─ Hoặc chạy: /debug để tìm hiểu thêm
132
+
133
+ ────────────────────────────────
134
+ ```
135
+
136
+ ## Fallback
137
+
138
+ If no pattern matches:
139
+ ```
140
+ ❌ Lỗi: Có vấn đề xảy ra
141
+ 💡 Gợi ý: Chạy /debug để em phân tích chi tiết
142
+ ```
143
+
144
+ ## Performance
145
+
146
+ - Translation: < 100ms
147
+ - Pattern matching: Simple regex
148
+ - No external API calls
149
+
150
+ ## Security
151
+
152
+ - Sanitize error messages (remove credentials, paths)
153
+ - Never expose sensitive info in translations
@@ -0,0 +1,101 @@
1
+ ---
2
+ name: ios-engineer
3
+ description: Expert iOS Development specialist. Handles Xcode, Swift, SwiftUI, Dependency Management (SPM/CocoaPods), and iOS-specific SDK integrations.
4
+ author: Antigravity Team
5
+ version: 2.0.0
6
+ ---
7
+
8
+ # iOS Engineer Skill
9
+
10
+ This skill transforms the agent into an Expert iOS Engineer. It provides standardized guidelines for Architecture, Code Quality, UI/UX, and Troubleshooting.
11
+
12
+ ## 1. 🏗️ Architecture & Design Patterns
13
+
14
+ ### 1.1. Default Architecture: MVVM (Model-View-ViewModel)
15
+ - **View (SwiftUI):** Pure UI. No business logic. Binds to ViewModel.
16
+ - **ViewModel (`ObservableObject`):** Handles state, business logic, and prepares data for View.
17
+ - **Model:** Data structures (Structs).
18
+ - **Service/Repository Layer:** Handles API calls, Database, and data fetching. **Dependency Injection** is preferred.
19
+
20
+ ### 1.2. Code Style & Conventions
21
+ - **SwiftLint:** Adhere to standard SwiftLint rules.
22
+ - **Naming:** CamelCase for variables/functions, PascalCase for types.
23
+ - **Access Control:** Default to `private` or `private(set)` for properties unless external access is needed.
24
+ - **Extensions:** Use extensions to organize code and conform to protocols.
25
+
26
+ ## 2. 📱 UI/UX Engineering (SwiftUI)
27
+
28
+ ### 2.1. Componentization
29
+ - Break down complex views into smaller, reusable `View` components.
30
+ - Use `@ViewBuilder` for flexible layouts.
31
+ - Avoid massive `body` properties (> 50 lines is a warning sign).
32
+
33
+ ### 2.2. State Management
34
+ - `@State`: Local view state only.
35
+ - `@ObservedObject`: For external data sources (careful with lifecycle).
36
+ - `@StateObject`: For ViewModel ownership (lifecycle managed by View).
37
+ - `@EnvironmentObject`: For global dependencies (Auth, Settings).
38
+
39
+ ### 2.3. Performance
40
+ - Use `LazyVStack` / `LazyHStack` for lists.
41
+ - Avoid expensive computations in `body`.
42
+ - Use `.drawingGroup()` for complex rendering only when necessary.
43
+
44
+ ## 3. 🛠️ Project Management & Dependencies
45
+
46
+ ### 3.1. Dependency Verification Protocol (CRITICAL)
47
+ Before running any dependency command, **IDENTIFY** the manager:
48
+ 1. **Check `Podfile`**: `ls Podfile` -> Use CocoaPods (`pod install`).
49
+ 2. **Check `Cartfile`**: `ls Cartfile` -> Use Carthage.
50
+ 3. **Default (No config file)**: Assume **Swift Package Manager (SPM)** inside `.xcodeproj`.
51
+ - **Action**: Use `xcodebuild -resolvePackageDependencies`.
52
+ - **Forbidden**: DO NOT run `pod init` unless verifying migration with User.
53
+
54
+ ### 3.2. Signing & Entitlements
55
+ - **Entitlements:** Always read `.entitlements` before adding capabilities.
56
+ - **Certificates:** Respect local signing settings (Development/Distribution).
57
+
58
+ ## 4. 🧪 Testing Strategy
59
+
60
+ ### 4.1. Unit Testing
61
+ - Focus on **ViewModels** and **Services**.
62
+ - Mock external dependencies (Network, Database).
63
+ - Naming: `test_Mechanism_Condition_Expectation`.
64
+
65
+ ### 4.2. UI Testing
66
+ - Use **Maestro** (via `maestro` tool) for end-to-end flows.
67
+ - Use Xcode UI Tests for native component integration.
68
+
69
+ ## 5. 🚑 Troubleshooting Protocols
70
+
71
+ ### 5.1. SDK & Compiler Issues
72
+ - **"Unavailable in Swift"**: Often version mismatch or header issue (e.g., Firebase).
73
+ - **Action**: Check SDK version. **Do not** trial-and-error syntax changes.
74
+ - **Fallback**: Comment out breaking code, notify user, and provide solution steps.
75
+
76
+ ### 5.2. Build Failures
77
+ - **Clean Build**: `xcodebuild clean` is the first step.
78
+ - **DerivedData**: Suggest clearing if phantom errors persist.
79
+
80
+ ### 5.3. Build Verification
81
+
82
+ **Note:** `grep error` returns nothing when build succeeds. Check exit code or use `tee` to capture output first, then analyze conditionally.
83
+
84
+ ## 6. 📂 Project Structure Standard
85
+
86
+ ```
87
+ App/
88
+ ├── App.swift
89
+ ├── Assets.xcassets
90
+ ├── Core/
91
+ │ ├── Domain/ (Models, Entities)
92
+ │ ├── Data/ (Repositories, API Services)
93
+ │ └── Utilities/ (Extensions, Helpers)
94
+ ├── Presentation/
95
+ │ ├── Common/ (Reusable Components, Styles)
96
+ │ ├── Modules/ (Feature A, Feature B...)
97
+ │ │ ├── Views/
98
+ │ │ └── ViewModels/
99
+ │ └── Navigation/
100
+ └── Resources/ (Localization, Fonts, Configs)
101
+ ```