@leejungkiin/awkit 1.7.0 → 1.7.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.
- package/bin/awk.js +576 -84
- package/core/CLAUDE.md +1 -1
- package/core/GEMINI.md +148 -167
- package/core/GEMINI.md.bak +149 -116
- package/core/skill-runtime-manifest.json +3 -0
- package/docs/Claude Fable 5.md +3826 -0
- package/docs/android_kotlin_system_instruction.md +210 -0
- package/docs/brainstorm_ponytail_integration.md +146 -0
- package/docs/brainstorm_smart_setup.md +113 -0
- package/docs/deep-research-report (1).md +293 -0
- package/docs/history/GEMINI.v1.md +135 -0
- package/docs/history/brainstorm_antigravity_unified_architecture.v1.md +105 -0
- package/docs/history/implementation_plan.v1.md +58 -0
- package/package.json +4 -1
- package/scripts/artifact-storage.js +130 -0
- package/scripts/automation-gate.js +40 -7
- package/scripts/claude-plan.js +76 -0
- package/scripts/dependency-manager.js +210 -0
- package/scripts/exec-rtk.js +11 -5
- package/scripts/i18n-helper.js +381 -0
- package/scripts/multi-model-pipeline.js +144 -0
- package/skill-packs/mobile-ios/pack.json +4 -2
- package/skill-packs/reverse-engineering/pack.json +1 -0
- package/skills/CATALOG.md +20 -0
- package/skills/GEMINI.md +9 -1
- package/skills/TRIGGER_INDEX.md +10 -0
- package/skills/ai-music/SKILL.md +275 -0
- package/skills/android-re-analyzer/SKILL.md +238 -0
- package/skills/android-re-analyzer/references/api-extraction-patterns.md +119 -0
- package/skills/android-re-analyzer/references/call-flow-analysis.md +176 -0
- package/skills/android-re-analyzer/references/fernflower-usage.md +115 -0
- package/skills/android-re-analyzer/references/jadx-usage.md +116 -0
- package/skills/android-re-analyzer/references/setup-guide.md +221 -0
- package/skills/android-re-analyzer/scripts/check-deps.sh +129 -0
- package/skills/android-re-analyzer/scripts/decompile.sh +375 -0
- package/skills/android-re-analyzer/scripts/find-api-calls.sh +118 -0
- package/skills/android-re-analyzer/scripts/install-dep.sh +448 -0
- package/skills/animal-island-ui-style/SKILL.md +1450 -0
- package/skills/app-store-review-agent/SKILL.md +164 -0
- package/skills/app-store-review-agent/references/guidelines/README.md +154 -0
- package/skills/app-store-review-agent/references/guidelines/by-app-type/ai_apps.md +37 -0
- package/skills/app-store-review-agent/references/guidelines/by-app-type/all_apps.md +50 -0
- package/skills/app-store-review-agent/references/guidelines/by-app-type/crypto_finance.md +31 -0
- package/skills/app-store-review-agent/references/guidelines/by-app-type/games.md +31 -0
- package/skills/app-store-review-agent/references/guidelines/by-app-type/health_fitness.md +31 -0
- package/skills/app-store-review-agent/references/guidelines/by-app-type/kids.md +27 -0
- package/skills/app-store-review-agent/references/guidelines/by-app-type/macos.md +38 -0
- package/skills/app-store-review-agent/references/guidelines/by-app-type/social_ugc.md +32 -0
- package/skills/app-store-review-agent/references/guidelines/by-app-type/subscription_iap.md +34 -0
- package/skills/app-store-review-agent/references/guidelines/by-app-type/vpn.md +18 -0
- package/skills/app-store-review-agent/references/rules/design/minimum_functionality.md +96 -0
- package/skills/app-store-review-agent/references/rules/design/sign_in_with_apple.md +54 -0
- package/skills/app-store-review-agent/references/rules/entitlements/unused_entitlements.md +83 -0
- package/skills/app-store-review-agent/references/rules/metadata/accurate_metadata.md +54 -0
- package/skills/app-store-review-agent/references/rules/metadata/apple_trademark.md +99 -0
- package/skills/app-store-review-agent/references/rules/metadata/china_storefront.md +72 -0
- package/skills/app-store-review-agent/references/rules/metadata/competitor_terms.md +56 -0
- package/skills/app-store-review-agent/references/rules/metadata/subscription_metadata.md +81 -0
- package/skills/app-store-review-agent/references/rules/privacy/privacy_manifest.md +84 -0
- package/skills/app-store-review-agent/references/rules/privacy/unnecessary_data.md +60 -0
- package/skills/app-store-review-agent/references/rules/subscription/misleading_pricing.md +63 -0
- package/skills/app-store-review-agent/references/rules/subscription/missing_tos_pp.md +54 -0
- package/skills/awf-ponytail/SKILL.md +91 -0
- package/skills/awf-ponytail-review/SKILL.md +67 -0
- package/skills/awf-session-restore/SKILL.md +3 -3
- package/skills/brainstorm-agent/SKILL.md +11 -2
- package/skills/brainstorm-agent/templates/brief-template.md +8 -0
- package/skills/claude-planner/SKILL.md +47 -0
- package/skills/code-review/SKILL.md +87 -0
- package/skills/expo-game-development/SKILL.md +163 -0
- package/skills/flutter/LICENSE.txt +202 -0
- package/skills/flutter/SKILL.md +127 -0
- package/skills/flutter-project-creater/LICENSE.txt +202 -0
- package/skills/flutter-project-creater/SKILL.md +106 -0
- package/skills/game-developer/SKILL.md +163 -0
- package/skills/game-developer/references/ecs-patterns.md +501 -0
- package/skills/game-developer/references/multiplayer-networking.md +475 -0
- package/skills/game-developer/references/performance-optimization.md +422 -0
- package/skills/game-developer/references/unity-patterns.md +271 -0
- package/skills/game-developer/references/unreal-cpp.md +352 -0
- package/skills/generate-gui-assets/SKILL.md +305 -0
- package/skills/generate-gui-assets/agents/openai.yaml +4 -0
- package/skills/generate-gui-assets/references/catalog-schema.md +58 -0
- package/skills/generate-gui-assets/references/extraction-techniques.md +21 -0
- package/skills/generate-gui-assets/references/prompt-patterns.md +58 -0
- package/skills/generate-gui-assets/scripts/__pycache__/clean_chroma_edges.cpython-311.pyc +0 -0
- package/skills/generate-gui-assets/scripts/build_gui_contact_sheet.py +51 -0
- package/skills/generate-gui-assets/scripts/clean_chroma_edges.py +262 -0
- package/skills/generate-gui-assets/scripts/copy_approved_icons.py +64 -0
- package/skills/generate-gui-assets/scripts/prepare_gui_asset_run.py +91 -0
- package/skills/generate-gui-assets/scripts/suggest_grid_options.py +63 -0
- package/skills/generate-gui-assets/scripts/validate_gui_catalog.py +50 -0
- package/skills/godot-game-development/SKILL.md +142 -0
- package/skills/hatch-pet/LICENSE.txt +201 -0
- package/skills/hatch-pet/SKILL.md +420 -0
- package/skills/hatch-pet/agents/openai.yaml +4 -0
- package/skills/hatch-pet/references/animation-rows.md +29 -0
- package/skills/hatch-pet/references/codex-pet-contract.md +35 -0
- package/skills/hatch-pet/references/qa-rubric.md +60 -0
- package/skills/hatch-pet/scripts/__pycache__/clean_chroma_edges.cpython-311.pyc +0 -0
- package/skills/hatch-pet/scripts/clean_chroma_edges.py +262 -0
- package/skills/hatch-pet/scripts/compose_atlas.py +150 -0
- package/skills/hatch-pet/scripts/derive_running_left_from_running_right.py +143 -0
- package/skills/hatch-pet/scripts/extract_strip_frames.py +323 -0
- package/skills/hatch-pet/scripts/finalize_pet_run.py +382 -0
- package/skills/hatch-pet/scripts/generate_pet_images.py +287 -0
- package/skills/hatch-pet/scripts/inspect_frames.py +246 -0
- package/skills/hatch-pet/scripts/make_contact_sheet.py +96 -0
- package/skills/hatch-pet/scripts/package_custom_pet.py +108 -0
- package/skills/hatch-pet/scripts/pet_job_status.py +117 -0
- package/skills/hatch-pet/scripts/prepare_pet_run.py +673 -0
- package/skills/hatch-pet/scripts/queue_pet_repairs.py +172 -0
- package/skills/hatch-pet/scripts/record_imagegen_result.py +250 -0
- package/skills/hatch-pet/scripts/render_animation_videos.py +134 -0
- package/skills/hatch-pet/scripts/render_animation_videos.sh +5 -0
- package/skills/hatch-pet/scripts/validate_atlas.py +139 -0
- package/skills/i18n-orchestrator/SKILL.md +37 -0
- package/skills/ios-simulator-skill/SKILL.md +390 -0
- package/skills/ios-simulator-skill/scripts/accessibility_audit.py +300 -0
- package/skills/ios-simulator-skill/scripts/app_launcher.py +326 -0
- package/skills/ios-simulator-skill/scripts/app_state_capture.py +400 -0
- package/skills/ios-simulator-skill/scripts/appearance.py +385 -0
- package/skills/ios-simulator-skill/scripts/build_and_test.py +348 -0
- package/skills/ios-simulator-skill/scripts/clipboard.py +103 -0
- package/skills/ios-simulator-skill/scripts/common/__init__.py +61 -0
- package/skills/ios-simulator-skill/scripts/common/cache_utils.py +289 -0
- package/skills/ios-simulator-skill/scripts/common/device_utils.py +462 -0
- package/skills/ios-simulator-skill/scripts/common/env_config.py +35 -0
- package/skills/ios-simulator-skill/scripts/common/hang_pipeline.py +862 -0
- package/skills/ios-simulator-skill/scripts/common/hang_sessions.py +490 -0
- package/skills/ios-simulator-skill/scripts/common/idb_utils.py +180 -0
- package/skills/ios-simulator-skill/scripts/common/screenshot_utils.py +338 -0
- package/skills/ios-simulator-skill/scripts/container.py +668 -0
- package/skills/ios-simulator-skill/scripts/gesture.py +394 -0
- package/skills/ios-simulator-skill/scripts/hang_watcher.py +1533 -0
- package/skills/ios-simulator-skill/scripts/keyboard.py +391 -0
- package/skills/ios-simulator-skill/scripts/localization_audit.py +483 -0
- package/skills/ios-simulator-skill/scripts/location.py +467 -0
- package/skills/ios-simulator-skill/scripts/log_monitor.py +493 -0
- package/skills/ios-simulator-skill/scripts/model_inspector.py +645 -0
- package/skills/ios-simulator-skill/scripts/navigator.py +461 -0
- package/skills/ios-simulator-skill/scripts/privacy_manager.py +310 -0
- package/skills/ios-simulator-skill/scripts/push_notification.py +240 -0
- package/skills/ios-simulator-skill/scripts/screen_mapper.py +296 -0
- package/skills/ios-simulator-skill/scripts/sim_health_check.sh +245 -0
- package/skills/ios-simulator-skill/scripts/sim_list.py +299 -0
- package/skills/ios-simulator-skill/scripts/simctl_boot.py +312 -0
- package/skills/ios-simulator-skill/scripts/simctl_create.py +316 -0
- package/skills/ios-simulator-skill/scripts/simctl_delete.py +357 -0
- package/skills/ios-simulator-skill/scripts/simctl_erase.py +351 -0
- package/skills/ios-simulator-skill/scripts/simctl_shutdown.py +290 -0
- package/skills/ios-simulator-skill/scripts/simulator_selector.py +375 -0
- package/skills/ios-simulator-skill/scripts/status_bar.py +250 -0
- package/skills/ios-simulator-skill/scripts/test_recorder.py +323 -0
- package/skills/ios-simulator-skill/scripts/visual_diff.py +235 -0
- package/skills/ios-simulator-skill/scripts/xcode/__init__.py +13 -0
- package/skills/ios-simulator-skill/scripts/xcode/builder.py +397 -0
- package/skills/ios-simulator-skill/scripts/xcode/cache.py +204 -0
- package/skills/ios-simulator-skill/scripts/xcode/config.py +178 -0
- package/skills/ios-simulator-skill/scripts/xcode/reporter.py +343 -0
- package/skills/ios-simulator-skill/scripts/xcode/xcresult.py +451 -0
- package/skills/ios-visual-qa-strategist/SKILL.md +111 -0
- package/skills/ios-visual-qa-strategist/agents/openai.yaml +4 -0
- package/skills/ios-visual-qa-strategist/references/ios-tool-selection.md +61 -0
- package/skills/ios-visual-qa-strategist/references/minimal-capture-policy.md +56 -0
- package/skills/ios-visual-qa-strategist/references/visual-reasoning-heuristics.md +53 -0
- package/skills/orchestrator/SKILL.md +0 -20
- package/skills/persistent-storage/SKILL.md +55 -0
- package/skills/short-maker/SKILL.md +23 -0
- package/skills/short-maker/scripts/effects.js +56 -0
- package/skills/short-maker/scripts/shortmaker-bridge.js +332 -0
- package/skills/short-maker/scripts/videomix.js +601 -0
- package/skills/short-maker/templates/hyperframes/cinematic-character.template.html +172 -0
- package/skills/short-maker/templates/hyperframes/index.template.html +194 -0
- package/skills/smali-to-kotlin/SKILL.md +128 -0
- package/skills/smali-to-kotlin/examples/getting-started/tech-stack.md +58 -0
- package/skills/smali-to-kotlin/examples/pipeline/data-ui-parity.md +118 -0
- package/skills/smali-to-kotlin/examples/pipeline/scanner-and-bootstrap.md +106 -0
- package/skills/smali-to-kotlin/library-patterns.md +189 -0
- package/skills/smali-to-kotlin/phase-0-discovery.md +128 -0
- package/skills/smali-to-kotlin/phase-1-architecture.md +166 -0
- package/skills/smali-to-kotlin/phase-2-blueprint-ui.md +347 -0
- package/skills/smali-to-kotlin/phase-2-blueprint.md +228 -0
- package/skills/smali-to-kotlin/phase-3-build.md +248 -0
- package/skills/smali-to-kotlin/phase-3-logic-build.md +268 -0
- package/skills/smali-to-kotlin/smali-reading-guide.md +310 -0
- package/skills/smali-to-kotlin/templates/app-map.md +101 -0
- package/skills/smali-to-kotlin/templates/architecture.md +142 -0
- package/skills/smali-to-kotlin/templates/blueprint.md +145 -0
- package/skills/spec-gate/SKILL.md +6 -2
- package/skills/symphony-enforcer/SKILL.md +8 -0
- package/skills/symphony-enforcer/examples/mindful-stop.md +2 -0
- package/skills/symphony-enforcer/examples/three-phase.md +16 -0
- package/skills/symphony-enforcer/examples/trigger-points.md +7 -1
- package/skills/unity-game-development/SKILL.md +231 -0
- package/skills/verification-gate/SKILL.md +4 -2
- package/skills/video-edit/SKILL.md +36 -0
- package/skills/video-edit/scripts/video_edit.py +324 -0
- package/templates/setup-mapping.json +48 -0
- package/templates/specs/design-template.md +161 -71
- package/templates/specs/requirements-template.md +65 -133
- package/templates/specs/task-spec-template.xml +3 -0
- package/workflows/_uncategorized/critic.md +40 -0
- package/workflows/_uncategorized/git-rebase-flow.md +81 -0
- package/workflows/_uncategorized/image-gen.md +118 -0
- package/workflows/_uncategorized/multi-model-pipeline.md +60 -0
- package/workflows/_uncategorized/pixel-gen.md +86 -0
- package/workflows/_uncategorized/pixel-setup.md +90 -0
- package/workflows/_uncategorized/ponytail-review.md +59 -0
- package/workflows/_uncategorized/reverse-android-build.md +222 -0
- package/workflows/_uncategorized/reverse-android-design.md +139 -0
- package/workflows/_uncategorized/reverse-android-discover.md +150 -0
- package/workflows/_uncategorized/reverse-android-scan.md +158 -0
- package/workflows/_uncategorized/reverse-android.md +143 -0
- package/workflows/_uncategorized/reverse-ios-build.md +240 -0
- package/workflows/_uncategorized/reverse-ios-design.md +112 -0
- package/workflows/_uncategorized/reverse-ios-discover.md +120 -0
- package/workflows/_uncategorized/reverse-ios-scan.md +155 -0
- package/workflows/_uncategorized/reverse-ios.md +152 -0
- package/workflows/_uncategorized/safety-router.md +34 -0
- package/workflows/_uncategorized/teach.md +89 -0
- package/workflows/_uncategorized/verify-ui.md +53 -0
- package/workflows/_uncategorized/visualize-screenshots.md +34 -0
- package/workflows/ads/ads-analyst.md +201 -0
- package/workflows/ads/ads-audit.md +106 -0
- package/workflows/ads/ads-optimize.md +97 -0
- package/workflows/ads/ads-targeting.md +241 -0
- package/workflows/ads/adsExpert.md +160 -0
- package/workflows/ads/smali-ads-config.md +400 -0
- package/workflows/ads/smali-ads-flow.md +331 -0
- package/workflows/ads/smali-ads-interstitial.md +377 -0
- package/workflows/ads/smali-ads-native.md +382 -0
- package/workflows/context/teach.md +89 -0
- package/workflows/gitnexus.md +8 -8
- package/workflows/lifecycle/brainstorm.md +43 -0
- package/workflows/lifecycle/code.md +5 -0
- package/workflows/lifecycle/init.md +23 -5
- package/workflows/lifecycle/multi-model-pipeline.md +60 -0
- package/workflows/quality/ponytail-review.md +59 -0
- package/workflows/roles/critic.md +40 -0
- package/workflows/roles/safety-router.md +34 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 🗺️ RE iOS Phase 0 — Discovery & App Map (NO CODE output)
|
|
3
|
+
parent: reverse-ios
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /re-ios-discover — Discovery & App Map
|
|
7
|
+
|
|
8
|
+
> **Parent:** [`/reverse-ios`](reverse-ios.md) → Phase 0
|
|
9
|
+
> **Skill:** `smali-to-swift` → `phase-0-discovery.md`
|
|
10
|
+
> **Zoom Level:** 0 — Satellite View
|
|
11
|
+
> **Output:** App Map (diagrams, tables, NO CODE)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ⛔ ZOOM 0 RULE
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
This workflow produces NO CODE output.
|
|
19
|
+
Only: diagrams, tables, bullet lists, bash scan commands.
|
|
20
|
+
If you are about to write Swift code → STOP → wrong zoom level.
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 📦 Step 0: Framework Scanner
|
|
26
|
+
|
|
27
|
+
### 0.1: Quét IPA structure
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Embedded frameworks
|
|
31
|
+
ls [app_bundle]/Frameworks/ 2>/dev/null
|
|
32
|
+
|
|
33
|
+
# Non-system linked libs
|
|
34
|
+
otool -L [app_bundle]/[AppName] | grep -v /System | grep -v /usr/lib
|
|
35
|
+
|
|
36
|
+
# Header imports
|
|
37
|
+
grep -rh "#import <" [headers_dir]/ | sort -u | head -30
|
|
38
|
+
grep -rh "@import " [headers_dir]/ | sort -u
|
|
39
|
+
|
|
40
|
+
# VC count
|
|
41
|
+
grep -rl "UIViewController" [headers_dir]/ | wc -l
|
|
42
|
+
|
|
43
|
+
# Resources
|
|
44
|
+
ls [app_bundle]/*.car [app_bundle]/*.momd [app_bundle]/*.storyboardc 2>/dev/null
|
|
45
|
+
find [app_bundle] -name "*.json" -o -name "*.plist" | grep -v Info.plist | sort
|
|
46
|
+
|
|
47
|
+
# SDK markers
|
|
48
|
+
strings [app_bundle]/[AppName] | grep -i "cocoapods\|carthage\|firebase\|facebook" | head -20
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 0.2: Phân loại frameworks
|
|
52
|
+
|
|
53
|
+
| Category | Action |
|
|
54
|
+
|----------|--------|
|
|
55
|
+
| ✅ Reuse | Add via SPM |
|
|
56
|
+
| 🔄 Replace | Map to modern Swift |
|
|
57
|
+
| 🍏 Apple | Use SwiftUI equivalents |
|
|
58
|
+
| 📱 Native | Keep, bridging header |
|
|
59
|
+
| 🏷️ App Code | Rebuild in Swift |
|
|
60
|
+
|
|
61
|
+
### 0.3: User approval
|
|
62
|
+
|
|
63
|
+
> **GATE:** Framework Report → User approve.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 📄 Step 1: Info.plist & Entitlements
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
plutil -p [app_bundle]/Info.plist
|
|
71
|
+
codesign -d --entitlements :- [app_bundle]/[AppName] 2>/dev/null
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 1.1: Trích xuất
|
|
75
|
+
|
|
76
|
+
- Bundle ID, Display Name, Min iOS
|
|
77
|
+
- Privacy permissions (NSCameraUsageDescription, etc.)
|
|
78
|
+
- URL Schemes, Universal Links
|
|
79
|
+
- Capabilities (push, Apple Pay, Sign In with Apple)
|
|
80
|
+
|
|
81
|
+
### 1.2: Screen Map
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
grep -rl "UIViewController" [headers_dir]/ | sort
|
|
85
|
+
grep -rl "UITabBarController" [headers_dir]/
|
|
86
|
+
grep -rl "UINavigationController" [headers_dir]/
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Mapping VCs → SwiftUI screens + navigation flow.
|
|
90
|
+
|
|
91
|
+
### 1.3: Complexity Estimate
|
|
92
|
+
|
|
93
|
+
| Area | Rating | Notes |
|
|
94
|
+
|------|--------|-------|
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 📊 Output: App Map
|
|
99
|
+
|
|
100
|
+
Template: `skills/smali-to-swift/templates/app-map.md`
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## ✅ Gate
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
"🗺️ App Map xong! Anh review → OK → Phase 1 (Architecture)."
|
|
108
|
+
→ /re-ios-design
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 🔗 Related
|
|
114
|
+
|
|
115
|
+
- **Next:** [`/re-ios-design`](reverse-ios-design.md)
|
|
116
|
+
- **Parent:** [`/reverse-ios`](reverse-ios.md)
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
*re-ios-discover v3.0.0 — Phase 0: Discovery & App Map*
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 📦 RE iOS Phase 1 — Framework Scanner + Info.plist Analysis + Project Bootstrap
|
|
3
|
+
parent: reverse-ios
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /re-ios-scan — Framework Scanner & Plist Analysis
|
|
7
|
+
|
|
8
|
+
> **Parent:** [`/reverse-ios`](reverse-ios.md) → Step 0 + Step 1
|
|
9
|
+
> **Skill:** `smali-to-swift` | **Reference:** `skills/smali-to-swift/framework-patterns.md`
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 📦 Step 0: Framework Scanner (BẮT BUỘC)
|
|
14
|
+
|
|
15
|
+
> Nhận diện toàn bộ frameworks **trước khi code bất kỳ thứ gì**.
|
|
16
|
+
|
|
17
|
+
### 0.3: Quét IPA structure
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Embedded frameworks
|
|
21
|
+
ls [app_bundle]/Frameworks/
|
|
22
|
+
|
|
23
|
+
# Linked libraries (Mach-O)
|
|
24
|
+
otool -L [app_bundle]/App | grep -v /System | grep -v /usr/lib
|
|
25
|
+
|
|
26
|
+
# Header imports
|
|
27
|
+
grep -rh "#import <" [headers_dir]/ | sort -u
|
|
28
|
+
grep -rh "@import " [headers_dir]/ | sort -u
|
|
29
|
+
|
|
30
|
+
# SDK identifiers
|
|
31
|
+
strings [app_bundle]/App | grep -i "cocoapods\|carthage\|firebase\|facebook\|google"
|
|
32
|
+
|
|
33
|
+
# Assets & resources
|
|
34
|
+
ls [app_bundle]/*.car [app_bundle]/*.momd [app_bundle]/*.storyboardc 2>/dev/null
|
|
35
|
+
find [app_bundle] -name "*.json" -o -name "*.plist" | grep -v Info.plist | sort
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 0.4: Tạo Framework Detection Report
|
|
39
|
+
|
|
40
|
+
Dùng patterns từ `framework-patterns.md`:
|
|
41
|
+
|
|
42
|
+
```markdown
|
|
43
|
+
## 📦 Framework Detection Report — [App Name]
|
|
44
|
+
|
|
45
|
+
### ✅ Reuse (Add via SPM)
|
|
46
|
+
| Framework | Detected | Version | Notes |
|
|
47
|
+
|-----------|----------|---------|-------|
|
|
48
|
+
|
|
49
|
+
### 🔄 Replace (Legacy → Modern Swift)
|
|
50
|
+
| Old Framework | Detected | Replacement |
|
|
51
|
+
|---------------|----------|-------------|
|
|
52
|
+
| AFNetworking | Frameworks/ | URLSession async/await |
|
|
53
|
+
| SDWebImage | imports | AsyncImage + Kingfisher |
|
|
54
|
+
| SnapKit | imports | SwiftUI layout |
|
|
55
|
+
|
|
56
|
+
### 🍏 Apple Frameworks
|
|
57
|
+
| Framework | Purpose | SwiftUI Equivalent |
|
|
58
|
+
|-----------|---------|-------------------|
|
|
59
|
+
| MapKit | Maps | Map (SwiftUI) |
|
|
60
|
+
| CoreData | Database | SwiftData |
|
|
61
|
+
|
|
62
|
+
### 📱 Native Libraries
|
|
63
|
+
| File | Notes |
|
|
64
|
+
|------|-------|
|
|
65
|
+
|
|
66
|
+
### 🏷️ App Code (Rewrite in Swift)
|
|
67
|
+
| Class Prefix | Module |
|
|
68
|
+
|-------------|--------|
|
|
69
|
+
|
|
70
|
+
### ❓ Unknown
|
|
71
|
+
| Framework | Notes |
|
|
72
|
+
|-----------|-------|
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 0.5: User approval
|
|
76
|
+
|
|
77
|
+
> **GATE:** Không tiếp tục khi chưa có user approval.
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 📄 Step 1: Info.plist & Entitlements + Project Bootstrap
|
|
82
|
+
|
|
83
|
+
> **Input:** `[app_bundle]/Info.plist` + entitlements
|
|
84
|
+
|
|
85
|
+
### 1.1: Đọc Info.plist
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
plutil -p [app_bundle]/Info.plist
|
|
89
|
+
codesign -d --entitlements :- [app_bundle]/App 2>/dev/null
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Trích xuất:
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
extract:
|
|
96
|
+
- bundle_id, display_name, min_ios_version
|
|
97
|
+
- permissions: [camera, photos, location, microphone, notifications, tracking]
|
|
98
|
+
- url_schemes, universal_links
|
|
99
|
+
- capabilities: [push, apple_pay, sign_in_apple, app_groups]
|
|
100
|
+
- supported_orientations
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### 1.2: Phân tích class hierarchy
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
grep -rl "UIViewController" [headers_dir]/ | sort
|
|
107
|
+
grep -rl "UITabBarController" [headers_dir]/
|
|
108
|
+
grep -rl "UINavigationController" [headers_dir]/
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Mapping VCs → SwiftUI:
|
|
112
|
+
```
|
|
113
|
+
SplashViewController → SplashScreen.swift
|
|
114
|
+
LoginViewController → Auth/LoginScreen.swift
|
|
115
|
+
MainTabBarController → TabView in ContentView.swift
|
|
116
|
+
HomeViewController → Home/HomeScreen.swift
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 1.3: Xcode project structure
|
|
120
|
+
|
|
121
|
+
Đề xuất Clean Architecture structure (xem SKILL.md Step 1).
|
|
122
|
+
|
|
123
|
+
### 1.4: SPM Dependencies (từ Framework Report)
|
|
124
|
+
|
|
125
|
+
```swift
|
|
126
|
+
// Firebase: firebase/firebase-ios-sdk 11.0+
|
|
127
|
+
// Kingfisher: onevcat/Kingfisher 7.12+
|
|
128
|
+
// KeychainAccess: kishikawakatsumi/KeychainAccess 4.2+
|
|
129
|
+
// Lottie: airbnb/lottie-ios 4.4+
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### ✅ Checkpoint Step 1
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
## ✅ Step 1 Complete
|
|
136
|
+
|
|
137
|
+
- Bundle ID: [bundle_id]
|
|
138
|
+
- Permissions: [count] | Screens: [count]
|
|
139
|
+
- URL Schemes: [list]
|
|
140
|
+
|
|
141
|
+
⏭️ Next: `/re-ios-build` — Step 2 (Data Layer)
|
|
142
|
+
Cung cấp headers: *Service, *Manager, *Client, *API, *Model
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 🔗 Related
|
|
148
|
+
|
|
149
|
+
- **Next:** [`/re-ios-build`](reverse-ios-build.md) (Step 2-6)
|
|
150
|
+
- **Parent:** [`/reverse-ios`](reverse-ios.md)
|
|
151
|
+
- **Framework patterns:** `skills/smali-to-swift/framework-patterns.md`
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
*re-ios-scan v2.0.0 — Phase 1: Discovery & Bootstrap*
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 🍎 Dịch ngược IPA iOS (class-dump, Hopper output) → App Swift hiện đại với SwiftUI, Clean Architecture, và UI-First methodology.
|
|
3
|
+
skill: smali-to-swift
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /reverse-ios — iOS IPA Reverse Engineering Workflow
|
|
7
|
+
|
|
8
|
+
> **Skill:** `smali-to-swift` v2.0 | **Tech:** Swift + SwiftUI + async/await + URLSession + SwiftData
|
|
9
|
+
> **Philosophy:** "Map → Blueprint → UI First → Logic Behind"
|
|
10
|
+
> **Key:** UI is designed and approved BEFORE coding any business logic.
|
|
11
|
+
> **Sibling:** `/reverse-android`
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## ⚡ QUICK START
|
|
16
|
+
|
|
17
|
+
User cung cấp: Decrypted `.app` bundle, class-dump headers, Hopper pseudo-code, hoặc nói "reverse engineer IPA này".
|
|
18
|
+
Workflow dẫn dắt qua **5 phases** — UI-First approach, **không bao giờ nhảy cóc**.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 🔵 Session Setup
|
|
23
|
+
|
|
24
|
+
### Bước 0.1: Khởi tạo session state
|
|
25
|
+
|
|
26
|
+
```yaml
|
|
27
|
+
reverse_ios_session:
|
|
28
|
+
project_name: "[TBD - từ Info.plist]"
|
|
29
|
+
app_bundle_dir: "[path]"
|
|
30
|
+
headers_dir: "[class-dump output]"
|
|
31
|
+
current_phase: 0
|
|
32
|
+
current_feature: null
|
|
33
|
+
phase_2_status:
|
|
34
|
+
contracts: pending
|
|
35
|
+
ui_shell: pending
|
|
36
|
+
resources: pending
|
|
37
|
+
completed_features: []
|
|
38
|
+
pending_features: []
|
|
39
|
+
decisions: []
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Bước 0.2: Xác nhận input
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
🍎 iOS Reverse Engineering v2.0 — UI-First Pipeline
|
|
46
|
+
|
|
47
|
+
Em cần biết:
|
|
48
|
+
1. Decrypted .app bundle ở đâu?
|
|
49
|
+
2. Class-dump headers ở đâu?
|
|
50
|
+
3. Tên app gốc? Bundle ID?
|
|
51
|
+
|
|
52
|
+
Chưa chuẩn bị?
|
|
53
|
+
→ bagbak -o ~/decrypted/ com.example.app
|
|
54
|
+
→ class-dump -H ~/decrypted/App.app -o ~/headers/
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 📋 Pipeline Overview (5 Phases — UI-First)
|
|
60
|
+
|
|
61
|
+
| Phase | Name | Sub-workflow | Code? | Gate |
|
|
62
|
+
|-------|------|-------------|-------|------|
|
|
63
|
+
| 0 | 🗺️ Discovery | [`/re-ios-discover`](reverse-ios-discover.md) | ❌ | User approves Map |
|
|
64
|
+
| 1 | 🏗️ Architecture | [`/re-ios-design`](reverse-ios-design.md) | ❌ | User approves Architecture |
|
|
65
|
+
| 2 | 📐🎨 Blueprint + UI | [`/re-ios-build`](reverse-ios-build.md) | UI code | User approves UI + Contracts |
|
|
66
|
+
| 3 | 🔨 Logic Build | [`/re-ios-build`](reverse-ios-build.md) | Full logic | Feature checkpoint |
|
|
67
|
+
| 4 | ✅ Final Parity | [`/re-ios-build`](reverse-ios-build.md) | — | Final check |
|
|
68
|
+
|
|
69
|
+
### Execution Flow
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
Session Setup
|
|
73
|
+
↓
|
|
74
|
+
Phase 0: Discovery (/re-ios-discover) → App Map
|
|
75
|
+
↓ [User approves]
|
|
76
|
+
Phase 1: Architecture (/re-ios-design) → Architecture Blueprint
|
|
77
|
+
↓ [User approves + picks feature]
|
|
78
|
+
Feature Loop (/re-ios-build):
|
|
79
|
+
Phase 2: Blueprint + UI (contracts + visual shell + resources)
|
|
80
|
+
↓ 🚦 GATE: User approves UI + contracts
|
|
81
|
+
Phase 3: Logic Build (domain → data → DI → VM → wire UI)
|
|
82
|
+
↓ 📊 CHECKPOINT: Feature done
|
|
83
|
+
→ Repeat for next feature
|
|
84
|
+
↓
|
|
85
|
+
Phase 4: Final Parity Check & Quality Gate
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 🔭 ZOOM CONTROL
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
pre_output_check:
|
|
94
|
+
- "Đang ở phase nào?"
|
|
95
|
+
- "Output có đúng phase rule không?"
|
|
96
|
+
- "Phase 0/1: NO CODE BODIES"
|
|
97
|
+
- "Phase 2: UI code + signatures (no logic bodies)"
|
|
98
|
+
- "Phase 3: Full implementation code"
|
|
99
|
+
|
|
100
|
+
phase_rules:
|
|
101
|
+
phase_0: "NO CODE. Only diagrams, tables, maps."
|
|
102
|
+
phase_1: "NO CODE BODIES. Only architecture, file lists."
|
|
103
|
+
phase_2_contracts: "SIGNATURES ONLY. Protocols, structs, enums."
|
|
104
|
+
phase_2_ui: "FULL UI CODE. SwiftUI with hardcoded mock data + #Preview."
|
|
105
|
+
phase_3: "FULL LOGIC CODE. Domain → Data → DI → VM → Wire UI."
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 🚫 WORKFLOW RULES
|
|
111
|
+
|
|
112
|
+
```yaml
|
|
113
|
+
never_skip:
|
|
114
|
+
- Phase 0 (Discovery) — always first
|
|
115
|
+
- Phase 1 (Architecture) — design before coding
|
|
116
|
+
- Phase 2 UI Gate — user MUST approve UI before Phase 3
|
|
117
|
+
- Per-feature Blueprint before Logic Build
|
|
118
|
+
|
|
119
|
+
never_do:
|
|
120
|
+
- Write logic code before UI is approved
|
|
121
|
+
- Mass-copy assets from IPA (on-demand only)
|
|
122
|
+
- Use UIKit when SwiftUI equivalent exists
|
|
123
|
+
- Use GCD for new async code (use async/await)
|
|
124
|
+
- Use ObjC in new code (Swift only)
|
|
125
|
+
- Modify UI significantly in Phase 3 (only wire, don't redesign)
|
|
126
|
+
- Implement multiple features simultaneously
|
|
127
|
+
|
|
128
|
+
always_do:
|
|
129
|
+
- Extract resources BEFORE coding UI (Phase 2.7 → 2.8)
|
|
130
|
+
- Create #Preview for ALL states
|
|
131
|
+
- Keep stateless View (LoginScreenContent) after wiring
|
|
132
|
+
- XCTest all crypto/hash functions
|
|
133
|
+
- Use @Observable for ViewModels
|
|
134
|
+
- Use NavigationStack, SPM
|
|
135
|
+
- Checkpoint after each feature
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## 🔗 Related
|
|
141
|
+
|
|
142
|
+
- **Sub-workflows:**
|
|
143
|
+
- [`/re-ios-discover`](reverse-ios-discover.md) — Phase 0: Discovery
|
|
144
|
+
- [`/re-ios-design`](reverse-ios-design.md) — Phase 1: Architecture
|
|
145
|
+
- [`/re-ios-build`](reverse-ios-build.md) — Phase 2+3+4: Blueprint + UI + Build
|
|
146
|
+
- **Skill:** `smali-to-swift` v2.0 (UI-First pipeline)
|
|
147
|
+
- **Sibling:** `/reverse-android`
|
|
148
|
+
- **After RE done:** `/test`, `/deploy`, `/code-janitor`
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
*reverse-ios workflow v4.0.0 — UI-First RE Pipeline*
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 🛡️ Safety Router Subagent - Phân loại và Định tuyến An toàn
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# SUBAGENT: safety-router
|
|
6
|
+
|
|
7
|
+
Bạn là **Antigravity Safety Classifier**. Nhiệm vụ của bạn là rà soát các yêu cầu hoặc hành động nhạy cảm để đảm bảo tính an toàn, bảo mật và tuân thủ chính sách trước khi hệ thống thực thi.
|
|
8
|
+
|
|
9
|
+
## 🎯 Chỉ dẫn Vai trò (System Instructions)
|
|
10
|
+
|
|
11
|
+
- **Mục tiêu:** Nhận diện các tác vụ có khả năng gây hại (viết mã độc, can thiệp database không an toàn, truy cập mạng ngoài danh sách cho phép, rò rỉ prompt nhạy cảm).
|
|
12
|
+
- **Nguyên tắc:**
|
|
13
|
+
- Định tuyến yêu cầu rủi ro cao sang chế độ fallback an toàn (safe mode) hoặc yêu cầu xin phê duyệt từ user.
|
|
14
|
+
- Phân tích rủi ro dựa trên ranh giới công cụ (Tool Boundary) và ranh giới phê duyệt (Approval Boundary).
|
|
15
|
+
|
|
16
|
+
## 🛠️ Ranh giới Công cụ (Tool Boundaries)
|
|
17
|
+
|
|
18
|
+
- Bạn **CHỈ** được phép sử dụng các công cụ **Read-Only** để phân tích.
|
|
19
|
+
- **CẤM TUYỆT ĐỐI** tự ý thực thi các lệnh có side-effect hoặc sửa đổi tệp tin.
|
|
20
|
+
|
|
21
|
+
## 📊 Định dạng Kết quả đầu ra (Output Schema)
|
|
22
|
+
|
|
23
|
+
Trả về kết quả dạng JSON có cấu trúc sau cho Manager:
|
|
24
|
+
|
|
25
|
+
```json
|
|
26
|
+
{
|
|
27
|
+
"risk_level": "low | medium | high",
|
|
28
|
+
"risk_flags": [
|
|
29
|
+
"Các điểm nghi vấn rủi ro (e.g. dual-use, network access, prompt leak risk)"
|
|
30
|
+
],
|
|
31
|
+
"action": "allow | block | require_approval",
|
|
32
|
+
"reason": "Lý do chi tiết cho quyết định phân loại"
|
|
33
|
+
}
|
|
34
|
+
```
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 🏫 Chế độ giảng dạy cuốn chiếu thông thái (Wise Teacher)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# WORKFLOW: /teach - The Wise Interactive Mentor
|
|
6
|
+
|
|
7
|
+
> **Mục tiêu:** Giúp con người thấu hiểu sâu sắc toàn bộ buổi làm việc (vấn đề, giải pháp, bối cảnh rộng) một cách cuốn chiếu thông qua tự tóm tắt, giải thích đa cấp độ và câu hỏi trắc nghiệm tương tác.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Giai đoạn 1: Khởi tạo Phiên Học (Setup Learning Session)
|
|
12
|
+
|
|
13
|
+
### 1.1. Khởi tạo Checklist học tập
|
|
14
|
+
AI tạo hoặc cập nhật file checklist học tập tại `.brain/teach_checklist.md`.
|
|
15
|
+
Cấu trúc checklist bao gồm:
|
|
16
|
+
- `[ ]` **Mục 1: The Problem (Vấn đề)**
|
|
17
|
+
- Tại sao vấn đề tồn tại?
|
|
18
|
+
- Các nhánh hướng đi để giải quyết.
|
|
19
|
+
- `[ ]` **Mục 2: The Solution (Giải pháp)**
|
|
20
|
+
- Tại sao giải quyết theo cách này?
|
|
21
|
+
- Quyết định thiết kế & Các trường hợp biên (edge cases).
|
|
22
|
+
- `[ ]` **Mục 3: Broader Context (Bối cảnh rộng)**
|
|
23
|
+
- Tại sao việc này quan trọng?
|
|
24
|
+
- Tác động lâu dài của thay đổi.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Giai đoạn 2: Xác minh Cuốn chiếu (Incremental Mastery Cycle)
|
|
29
|
+
|
|
30
|
+
Với từng mục trong checklist, thực hiện chu trình kiểm tra sau trước khi đánh dấu hoàn thành:
|
|
31
|
+
|
|
32
|
+
```mermaid
|
|
33
|
+
graph TD
|
|
34
|
+
A[Bắt đầu mục] --> B[User tự trình bày hiểu biết - Restatement]
|
|
35
|
+
B --> C[AI phân tích & lấp đầy lỗ hổng kiến thức]
|
|
36
|
+
C --> D[Quiz kiểm tra bằng AskUserQuestion]
|
|
37
|
+
D -->|Sai/Chưa hiểu sâu| C
|
|
38
|
+
D -->|Đúng/Master| E[Đánh dấu hoàn thành mục]
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2.1. Yêu cầu User tự trình bày (Proactive Restatement)
|
|
42
|
+
Trước khi giải thích bất kỳ điều gì, AI bắt buộc phải yêu cầu User tự tóm tắt hiểu biết của mình về mục hiện tại.
|
|
43
|
+
> **Ví dụ:** *"Bạn hãy thử tự giải thích xem tại sao hệ thống lại gặp lỗi tràn bộ nhớ trước đó?"*
|
|
44
|
+
|
|
45
|
+
### 2.2. Giải thích thích ứng theo yêu cầu (Adaptive Explanation Levels)
|
|
46
|
+
Dựa trên phản hồi của User, AI giải thích các phần còn thiếu bằng cách sử dụng các cấp độ phù hợp:
|
|
47
|
+
- **ELI5 (Explain Like I'm 5):** Dành cho động lực cốt lõi hoặc khái niệm siêu trừu tượng.
|
|
48
|
+
- **ELI14 (Explain Like I'm 14):** Dành cho logic nghiệp vụ tổng thể và kiến trúc.
|
|
49
|
+
- **ELII (Explain Like I'm Intern):** Dành cho mã nguồn chi tiết, edge cases và các lệnh debug cụ thể.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Giai đoạn 3: Kiểm tra Đánh giá (Interactive Quizzing)
|
|
54
|
+
|
|
55
|
+
### 3.1. Sử dụng công cụ đố vui
|
|
56
|
+
BẮT BUỘC sử dụng công cụ `AskUserQuestion` (hoặc đặt câu hỏi trắc nghiệm trực quan) để xác nhận mức độ hiểu bài.
|
|
57
|
+
|
|
58
|
+
**Quy tắc ra đề:**
|
|
59
|
+
- Sử dụng câu hỏi trắc nghiệm hoặc câu hỏi mở.
|
|
60
|
+
- Đảo lộn thứ tự đáp án đúng để tránh suy đoán.
|
|
61
|
+
- KHÔNG tiết lộ đáp án đúng cho đến khi User nộp câu trả lời (hoặc submit lựa chọn).
|
|
62
|
+
- Nếu User trả lời sai, quay lại Giai đoạn 2.2 để giảng lại phần kiến thức đó.
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Giai đoạn 4: Cập nhật Tiến độ & Kết thúc
|
|
67
|
+
|
|
68
|
+
- Khi một mục được Master, cập nhật trạng thái mục đó thành `[x]` trong `.brain/teach_checklist.md`.
|
|
69
|
+
- Trình bày trực quan phần checklist còn lại.
|
|
70
|
+
- **Quy tắc Kết thúc (`/goal`):** Phiên học chỉ thực sự kết thúc khi tất cả các mục trong checklist đã được đánh dấu Master `[x]`.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Output Format (Mẫu phản hồi của AI)
|
|
75
|
+
|
|
76
|
+
```markdown
|
|
77
|
+
🏫 **WISE TEACHER SESSION ACTIVATED**
|
|
78
|
+
|
|
79
|
+
Em đã thiết lập checklist học tập tại `.brain/teach_checklist.md`:
|
|
80
|
+
- [ ] **Mục 1: The Problem** - Vấn đề đang giải quyết.
|
|
81
|
+
- [ ] **Mục 2: The Solution** - Cách giải quyết và edge cases.
|
|
82
|
+
- [ ] **Mục 3: Broader Context** - Tác động lâu dài của thay đổi.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### 1️⃣ BƯỚC 1: THE PROBLEM
|
|
87
|
+
Để bắt đầu, xin bạn hãy tự tóm tắt lại theo hiểu biết của bạn: **Tại sao vấn đề này xuất hiện và nó gây ra hậu quả gì?**
|
|
88
|
+
*(Bạn có thể yêu cầu em giải thích sâu hơn dưới dạng ELI5, ELI14 hoặc ELII bất cứ lúc nào!)*
|
|
89
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Tự động cô lập UI, chạy app, chụp ảnh màn hình và thẩm định.
|
|
3
|
+
safe_auto_run: false
|
|
4
|
+
category: workflow
|
|
5
|
+
priority: high
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Autonomous UI Visual Verification Flow
|
|
9
|
+
|
|
10
|
+
> **Mindset**: Mọi màn hình UI code ra cần phải được verified bằng cách nhìn vào thực tế, không chỉ dựa trên việc 'build thành công'.
|
|
11
|
+
|
|
12
|
+
Workflow này cho phép AI chủ động biến ứng dụng thành "Sân khấu thử nghiệm", ép Boot trực tiếp màn hình mục tiêu, tự chụp ảnh, thẩm định Layout và sau đó "dọn dẹp" (revert) không để lại rác trên source code.
|
|
13
|
+
|
|
14
|
+
## Cách gọi
|
|
15
|
+
- Dùng lệnh: `/verify-ui`
|
|
16
|
+
- Dán kèm parameters nếu cần: `component=TênMànHình`
|
|
17
|
+
|
|
18
|
+
## Quy trình Thực thi (5-Steps Mandatory Protocol)
|
|
19
|
+
|
|
20
|
+
### 1. [ISOLATION] Cấu hình Boot trực tiếp
|
|
21
|
+
- **Goal**: Render component ngay khi app khởi động để không phải click qua nhiều màn hình phụ.
|
|
22
|
+
- AI sẽ xác định file **Root Entry** của Project (VD: `App.tsx`, `MainActivity.kt`, `ContentView.swift`).
|
|
23
|
+
- Chèn Component cần verify vào vị trí mặc định. Cung cấp mock data/state giả nếu Component đó request tham số `props` từ navigation.
|
|
24
|
+
- Nhớ đánh dấu đoạn code mình vừa thêm (VD: `// UI-VERIFY-INJECT`).
|
|
25
|
+
|
|
26
|
+
### 2. [BOOT] Build & Run
|
|
27
|
+
- Chạy terminal command build & run tương ứng:
|
|
28
|
+
- **Android**: `./gradlew installDebug` -> `adb shell am start -n <package>/<Main Activity>`
|
|
29
|
+
- **iOS**: `xcodebuild -scheme <Scheme> ...` -> `xcrun simctl install` -> `xcrun simctl launch`
|
|
30
|
+
- **React Native / Expo**: Chạy lệnh `npm run ios` hoặc `npm run android`
|
|
31
|
+
- Đợi 3-5s cho app render đầy đủ state (tránh loading spinners).
|
|
32
|
+
|
|
33
|
+
### 3. [CAPTURE & VERIFY] Vision Analysis
|
|
34
|
+
- Gọi công cụ dòng lệnh (hoặc Maestro MCP) để chụp ảnh màn hình hiện tại lưu ở thư mục gốc giả lập, sau đó pull về (hoặc lưu path máy):
|
|
35
|
+
- `xcrun simctl io booted screenshot ./ui_temp.png` (iOS)
|
|
36
|
+
- `adb shell screencap -p /sdcard/ui_temp.png && adb pull /sdcard/ui_temp.png ./ui_temp.png` (Android)
|
|
37
|
+
- Lập tức sư dụng `view_file` tải file `./ui_temp.png` lên Vision Context.
|
|
38
|
+
- **Tiêu chí Verify (The 4 Pillars)**:
|
|
39
|
+
1. Dữ liệu (Mock Data có lên chữ đủ không, chữ có gãy vỡ do thiếu Width không?)
|
|
40
|
+
2. Màu sắc và font (Có bị áp lộn Theming System không?)
|
|
41
|
+
3. Padding/Margin và căn giữa (Sát lề, rớt dòng).
|
|
42
|
+
4. Safe Area (Status bar & Navigation Bar có đè content không?)
|
|
43
|
+
|
|
44
|
+
### 4. [MANDATORY REVERT] Phục hồi trạng thái Root Entry
|
|
45
|
+
- 🚨 **BẮT BUỘC:** Chạy lệnh `git checkout -- <RootEntryFile>` HOẶC gỡ bỏ tay (tay xoá comment) toàn bộ code đã Inject bước 1.
|
|
46
|
+
- Nếu ở bước 2 app build bị Crash, AI VẪN PHẢI REVERT lại code trước khi kết thúc phiên báo lỗi. Tránh phá codebase.
|
|
47
|
+
|
|
48
|
+
### 5. [FEEDBACK & FIX LOOP] Vòng lặp báo cáo
|
|
49
|
+
- Nếu ảnh hoàn hảo -> Xóa `ui_temp.png`, kết thúc workflow và chuyển sang task mới.
|
|
50
|
+
- Nếu phát hiện lỗi UI -> AI tự tóm tắt ("Nội dung bị margin-top -20px đè bar") -> Thực hiện sửa CSS/Modifiers -> Lặp lại Vòng 1.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
**Lưu ý Antigravity**: Khi `symphony-enforcer` ở chế độ `autoVerification=true` trong `Gate 4 (Phase B)`, nó sẽ tự động chạy Workflow 5 bước này thay vì phải đợi User tự test bằng mắt thường.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# /screenshots — App Store Screenshot Generator
|
|
2
|
+
|
|
3
|
+
**Purpose**: Kích hoạt quy trình thiết kế và tạo bộ ảnh Screenshot cho App Store và Google Play.
|
|
4
|
+
|
|
5
|
+
## 🚀 Workflow
|
|
6
|
+
|
|
7
|
+
### 1. Thu thập thông tin (Discovery)
|
|
8
|
+
- AI sẽ chào mừng người dùng và yêu cầu các thông tin cần thiết:
|
|
9
|
+
- Screenshot thực tế của App (PNG).
|
|
10
|
+
- App Icon.
|
|
11
|
+
- Màu sắc thương hiệu và Font mong muốn.
|
|
12
|
+
- Danh sách tính năng cốt lõi (theo thứ tự ưu tiên).
|
|
13
|
+
- Số lượng Slide mục tiêu.
|
|
14
|
+
|
|
15
|
+
### 2. Thiết kế nội dung (Copywriting)
|
|
16
|
+
- AI đề xuất các Headline cho từng Slide dựa trên quy tắc **"Một tích tắc - Một ý tưởng"**.
|
|
17
|
+
- Chờ người dùng duyệt nội dung trước khi chuyển sang bước Code.
|
|
18
|
+
|
|
19
|
+
### 3. Triển khai kỹ thuật (Scaffolding)
|
|
20
|
+
- AI khởi tạo dự án Next.js (nếu cần) hoặc tạo file `src/app/screenshots/page.tsx` trong dự án hiện tại.
|
|
21
|
+
- Cài đặt dependency `html-to-image`.
|
|
22
|
+
- Cấu hình layout, device frames và logic export.
|
|
23
|
+
|
|
24
|
+
### 4. Kiểm thử và Xuất bản (Export)
|
|
25
|
+
- Chụp ảnh màn hình thử nghiệm.
|
|
26
|
+
- Kiểm tra độ phân giải của file export (6.9", 6.5", Tablet, v.v.).
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
> [!TIP]
|
|
31
|
+
> **Pro-tip**: Screenshots là quảng cáo, không phải hướng dẫn sử dụng. Để AI tập trung vào "Cảm xúc" và "Kết quả" mà ứng dụng mang lại.
|
|
32
|
+
|
|
33
|
+
> [!IMPORTANT]
|
|
34
|
+
> **Trigger**: Lệnh này sẽ tự động kích hoạt skill `app-store-screenshots`.
|