@leejungkiin/awkit 1.6.5 → 1.6.8
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/README.md +121 -130
- package/bin/awk.js +111 -8
- package/package.json +5 -3
- package/schemas/onboarding-screen.schema.json +108 -0
- package/scripts/__pycache__/openrouter_image_gen.cpython-311.pyc +0 -0
- package/scripts/cockpit-quota.js +93 -0
- package/scripts/openrouter_image_gen.py +772 -0
- package/scripts/video-analyzer.js +172 -0
- package/skills/CATALOG.md +2 -1
- package/skills/ai-sprite-maker/SKILL.md +27 -6
- package/skills/ai-sprite-maker/scripts/__pycache__/remove_chroma_key.cpython-311.pyc +0 -0
- package/skills/ai-sprite-maker/scripts/remove_chroma_key.py +440 -0
- package/skills/awf-caveman/SKILL.md +65 -0
- package/skills/expo-build-optimizer/SKILL.md +33 -0
- package/skills/ios-app-store-audit/SKILL.md +48 -0
- package/skills/ios-expert-coder/SKILL.md +45 -0
- package/skills/mascot-designer/SKILL.md +66 -0
- package/skills/mascot-designer/examples/witny-case-study.md +35 -0
- package/skills/orchestrator/SKILL.md +20 -0
- package/skills/short-maker/scripts/google-flow-cli/README.md +227 -115
- package/skills/short-maker/scripts/google-flow-cli/gflow/api/client.py +32 -3
- package/skills/short-maker/scripts/google-flow-cli/gflow/api/models.py +4 -2
- package/skills/short-maker/scripts/google-flow-cli/gflow/cli/main.py +33 -6
- package/skills/short-maker/scripts/google-flow-cli/pyproject.toml +1 -1
- package/skills/verification-gate/SKILL.md +4 -0
- package/templates/help.html +21 -0
- package/templates/project-identity/android.json +24 -0
- package/templates/project-identity/backend-nestjs.json +24 -0
- package/templates/project-identity/expo.json +24 -0
- package/templates/project-identity/ios.json +24 -0
- package/templates/project-identity/web-nextjs.json +24 -0
- package/templates/specs/design-template.md +71 -161
- package/templates/specs/requirements-template.md +133 -65
- package/workflows/ui/create-spec-architect.md +80 -50
- package/workflows/ui/image-gen.md +118 -0
|
@@ -49,80 +49,110 @@ Hỏi người dùng các câu hỏi:
|
|
|
49
49
|
mkdir -p docs/specs/[feature-name]
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
-
### 3.2. Requirements Template
|
|
52
|
+
### 3.2. Detailed Concept/Requirements Template (Theo chuẩn Đẹp Tướng)
|
|
53
53
|
|
|
54
54
|
**File:** `docs/specs/[feature]/requirements.md`
|
|
55
55
|
|
|
56
56
|
```markdown
|
|
57
|
-
# [
|
|
57
|
+
# Concept Document — [Tính Năng/Giao Diện]
|
|
58
|
+
> "[Slogan hoặc câu định vị ngắn gọn]"
|
|
59
|
+
|
|
60
|
+
[⚠️ AI INSTRUCTION: BẮT BUỘC sử dụng cấu trúc cực kỳ chi tiết, dùng ASCII Diagram (Plain text) cho các kiến trúc/luồng xử lý và bảng biểu như template chuẩn.]
|
|
61
|
+
|
|
62
|
+
## 1. Tầm nhìn & Lý do tồn tại
|
|
63
|
+
* **Tóm tắt dự án:** ...
|
|
64
|
+
* **Vấn đề được giải quyết:** ...
|
|
65
|
+
* **Đối tượng người dùng cốt lõi:** ...
|
|
66
|
+
|
|
67
|
+
## 2. Triết lý cốt lõi
|
|
68
|
+
### 2.1 Các lớp phân tích / Nền tảng (Bắt buộc vẽ ASCII logic block)
|
|
69
|
+
```text
|
|
70
|
+
┌─────────────────────────────────────────────────┐
|
|
71
|
+
│ [LỚP 1] │
|
|
72
|
+
├─────────────────────────────────────────────────┤
|
|
73
|
+
│ [LỚP 2] │
|
|
74
|
+
└─────────────────────────────────────────────────┘
|
|
75
|
+
↓
|
|
76
|
+
[ĐỘNG CƠ XỬ LÝ CHÍNH]
|
|
77
|
+
```
|
|
78
|
+
### 2.2 Nguyên tắc thiết kế tính năng (Tối thiểu 5 nguyên tắc)
|
|
58
79
|
|
|
59
|
-
##
|
|
60
|
-
|
|
80
|
+
## 3. Kiến trúc ứng dụng
|
|
81
|
+
### 3.1 Stack kỹ thuật (Bảng ánh xạ UI, AI, DB, BaaS)
|
|
82
|
+
### 3.2 Cấu trúc màn hình (Vẽ sơ đồ Folder Tree routing)
|
|
61
83
|
|
|
62
|
-
##
|
|
63
|
-
- **Term**: Definition
|
|
84
|
+
## 4. Luồng xử lý cốt lõi (Vẽ ASCII Flowchain logic)
|
|
64
85
|
|
|
65
|
-
##
|
|
86
|
+
## 5. Onboarding — Mindset & Thiết kế
|
|
87
|
+
* Triết lý: Value trước, đăng ký sau
|
|
88
|
+
* Cấu trúc Slides (Slide 0 -> 3): Chi tiết animation, thông điệp.
|
|
89
|
+
* Design Patterns: Count-up, Stagger, v.v.
|
|
66
90
|
|
|
67
|
-
|
|
68
|
-
|
|
91
|
+
## 6. Gợi ý tính năng — Mindset (Logic mapping, Không Generic)
|
|
92
|
+
* Đưa ví dụ ❌ Text chung chung vs ✅ Text phân tích chiều sâu.
|
|
69
93
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
3. WHILE [state], THEN [constraint]
|
|
94
|
+
## 7. Design System
|
|
95
|
+
* Palette màu (Bảng Hex + Tên)
|
|
96
|
+
* Animation & Icon conventions
|
|
74
97
|
|
|
75
|
-
|
|
76
|
-
|
|
98
|
+
## 8. Vòng lặp tăng trưởng & Engagement
|
|
99
|
+
* Vẽ ASCII Loop tuần hoàn giữ chân user
|
|
100
|
+
* Bảng Trigger Notifications
|
|
77
101
|
|
|
78
|
-
|
|
79
|
-
|
|
102
|
+
## 9. Mô hình kinh doanh (Cây tính năng Free vs Premium)
|
|
103
|
+
## 10. Nguyên tắc kỹ thuật (Performance, Data flow, Error handling)
|
|
104
|
+
## 11. Roadmap (Phase MVP -> Depth -> Growth)
|
|
105
|
+
## 12. Điều Không Được Làm (Anti-patterns - 7 quy tắc cấm kỵ)
|
|
80
106
|
```
|
|
81
107
|
|
|
82
|
-
### 3.3. Design Template
|
|
108
|
+
### 3.3. Design Template (Theo chuẩn Đồ Họa & UI)
|
|
83
109
|
|
|
84
110
|
**File:** `docs/specs/[feature]/design.md`
|
|
85
111
|
|
|
86
112
|
```markdown
|
|
87
|
-
# [
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
113
|
+
# UI/Visual Design Document — [Tính Năng/Giao Diện]
|
|
114
|
+
> "[Slogan hoặc Nguyên tắc chủ đạo của giao diện: "Ví dụ: Mỗi tab một sứ mệnh – không overlap"]"
|
|
115
|
+
|
|
116
|
+
## 1. Tổng Quan & Metadata
|
|
117
|
+
* **Phiên bản & Thời gian:** ...
|
|
118
|
+
* **Mục tiêu:** [Lý do thay đổi/Kết quả đồ họa mong muốn]
|
|
119
|
+
|
|
120
|
+
## 2. Nguyên Tắc Thiết Kế (Design Principles)
|
|
121
|
+
1. [Tình trạng hiển thị / Phân cấp Animation theo tier]
|
|
122
|
+
2. [Sử dụng hệ thống thông báo/Badge thông minh]
|
|
123
|
+
|
|
124
|
+
## 3. Đặc Tả Hình Ảnh (Component Specs)
|
|
125
|
+
### 3.1 Thông số kỹ thuật (Thẩm mỹ)
|
|
126
|
+
* **Kích thước:** [Ví dụ: Height: 60px + SafeArea]
|
|
127
|
+
* **Màu sắc & Shadow:** [Mã màu Hex, Elevation, Border]
|
|
128
|
+
* **Trạng thái:** [Màu Active/Inactive, Font Weight]
|
|
129
|
+
|
|
130
|
+
### 3.2 Danh sách Element
|
|
131
|
+
* Mô tả chi tiết Icon, Label, Mức hiển thị.
|
|
132
|
+
|
|
133
|
+
## 4. Chi Tiết Các Màn Hình (Screen Breakdown)
|
|
134
|
+
### 4.1 Layout: [Tên Màn Hình]
|
|
135
|
+
* Theo chiều dọc:
|
|
136
|
+
- Header / Hero Section
|
|
137
|
+
- Grid / Danh sách
|
|
138
|
+
- Action Buttons (Bottom)
|
|
139
|
+
### 4.2 Component Hierarchy (Cấu trúc giao diện)
|
|
140
|
+
```text
|
|
141
|
+
FeatureView (Root)
|
|
95
142
|
├── HeaderComponent
|
|
96
143
|
├── ContentSection
|
|
97
|
-
│ ├── ItemList
|
|
98
|
-
│ └── ItemDetail
|
|
99
144
|
└── ActionButtons
|
|
100
145
|
```
|
|
101
146
|
|
|
102
|
-
##
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
let property: String
|
|
107
|
-
}
|
|
147
|
+
## 5. Đặc Tả Chuyển Động (Animation & Graphic Logic)
|
|
148
|
+
* **Animation Spec:** [Kiểu: Spring, Ease. Damping/Duration cụ thể]
|
|
149
|
+
* **Haptic:** [Rung khi chạm/thành công]
|
|
150
|
+
* **Badge Graphic Logic:** [Vị trí chấm đỏ, điều kiện nhấp nháy/biến mất]
|
|
108
151
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
152
|
+
## 6. Sơ Đồ Routing (Màn Hình)
|
|
153
|
+
* **Cấu trúc Thư mục UI:** [Sơ đồ App Router, ví dụ: app/(tabs)/explore]
|
|
154
|
+
* Không đi sâu vào Database. Chỉ liệt kê File UI mới.
|
|
112
155
|
```
|
|
113
|
-
|
|
114
|
-
## Key Interfaces
|
|
115
|
-
| Component | Purpose | Dependencies |
|
|
116
|
-
|-----------|---------|--------------|
|
|
117
|
-
| ViewModel | State management | Repository |
|
|
118
|
-
| Repository | Data access | API, Cache |
|
|
119
|
-
|
|
120
|
-
## UI Specs
|
|
121
|
-
- **Colors:** [Primary, Secondary, Accent]
|
|
122
|
-
- **Typography:** [Title, Body, Caption sizes]
|
|
123
|
-
- **Animations:** [Duration, Easing]
|
|
124
|
-
```
|
|
125
|
-
|
|
126
156
|
### 3.4. Task Generation (Symphony)
|
|
127
157
|
|
|
128
158
|
**Script:** `docs/specs/[feature]/init_tasks.sh`
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: 🎨 Image Generator — Tạo App Icons, Mascots và Pets (Hatch-style) với chất lượng Studio (Soft-Edge & Hole-Aware)
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# /image-gen — High-Quality Asset Production Workflow
|
|
6
|
+
|
|
7
|
+
> Quy trình tạo Asset chuyên nghiệp, tự động tách nền và xử lý cạnh mượt mà (PicWish Style).
|
|
8
|
+
> Hỗ trợ tạo Pet Bundle (Trứng + Thú cưng) tương tự Codex nhưng chất lượng cao hơn.
|
|
9
|
+
|
|
10
|
+
// turbo-all
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Sub-commands
|
|
15
|
+
|
|
16
|
+
### `/image-gen:icon` — Tạo bộ App Icon
|
|
17
|
+
|
|
18
|
+
1. Hỏi user về chủ đề (Theme), phong cách (Style - mặc định: `vector`), và **Kích thước lưới** (Grid - mặc định: `3x3`).
|
|
19
|
+
2. Tự động tính toán số lượng `{count}` dựa trên lưới (vd: 3x3 -> 9 icons).
|
|
20
|
+
3. Thông báo user: "🎨 Đang phác thảo bộ Icon Set {grid} cho chủ đề: {theme}..."
|
|
21
|
+
4. Thực thi lệnh tạo:
|
|
22
|
+
```bash
|
|
23
|
+
create-icon {theme} {grid} {style}
|
|
24
|
+
```
|
|
25
|
+
5. Sau khi ảnh được tạo, thông báo: "✅ Đã tạo xong và xử lý Soft-Edge. File lưu tại: `assets/generated/`."
|
|
26
|
+
|
|
27
|
+
### `/image-gen:mascot` — Tạo bộ Linh vật / Mascot
|
|
28
|
+
|
|
29
|
+
1. Hỏi user về nhân vật (Character), phong cách (Style - mặc định: `chibi`), và **Kích thước lưới** (Grid - mặc định: `3x3`).
|
|
30
|
+
2. Tự động tính toán số lượng `{count}` dựa trên lưới.
|
|
31
|
+
3. Thông báo user: "🧸 Đang thiết kế bộ Mascot {grid} cho: {character}..."
|
|
32
|
+
4. Thực thi lệnh tạo:
|
|
33
|
+
```bash
|
|
34
|
+
create-mascot {character} {grid} {style}
|
|
35
|
+
```
|
|
36
|
+
5. Sau khi ảnh được tạo, thông báo: "✅ Mascot đã sẵn sàng với nền trong suốt hoàn hảo!"
|
|
37
|
+
|
|
38
|
+
### `/image-gen:pet` — Tạo Pet Bundle (Ấp trứng)
|
|
39
|
+
|
|
40
|
+
1. Hỏi user về loại Pet (ví dụ: `fire dragon`, `ice phoenix`) và **Kích thước lưới** (Grid - mặc định: `4x4` cho đầy đủ trạng thái).
|
|
41
|
+
2. Thông báo user: "🐣 Đang tạo Pet Bundle ({grid}) cho: {pet_type}..."
|
|
42
|
+
3. Thực thi lệnh tạo:
|
|
43
|
+
```bash
|
|
44
|
+
create-pet {pet_type} {grid}
|
|
45
|
+
```
|
|
46
|
+
4. Tạo thư mục cấu hình: `mkdir -p assets/pets/{pet_id}`
|
|
47
|
+
5. Ghi file `pet.json` mẫu tương thích hệ thống Hatch Pet.
|
|
48
|
+
6. Thông báo: "✨ Pet Bundle đã được đóng gói tại `assets/pets/{pet_id}/`."
|
|
49
|
+
|
|
50
|
+
### `/image-gen:process` — Xử lý ảnh có sẵn (Hole-Aware)
|
|
51
|
+
|
|
52
|
+
1. User cung cấp đường dẫn ảnh nguồn (`input_path`).
|
|
53
|
+
2. Xác định tên file đầu ra (`output_name.webp`).
|
|
54
|
+
3. Thực thi lệnh xử lý với thuật toán v3.1:
|
|
55
|
+
```bash
|
|
56
|
+
process-image {input_path} assets/generated/{output_name}.webp 15
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### `/image-gen:openrouter` — Tạo ảnh qua OpenRouter (GPT-5.4-Image)
|
|
60
|
+
|
|
61
|
+
Quy trình sử dụng script `openrouter_image_gen.py` (Codex-grade) hỗ trợ 3 chế độ:
|
|
62
|
+
|
|
63
|
+
#### 1. Chế độ `generate` (Text-to-Image)
|
|
64
|
+
Dùng để tạo mới asset từ mô tả văn bản, hỗ trợ các tham số Art Direction cực mạnh:
|
|
65
|
+
```bash
|
|
66
|
+
python3 ~/.gemini/antigravity/scripts/openrouter_image_gen.py generate \
|
|
67
|
+
--prompt "{chủ_thể}" \
|
|
68
|
+
--style "{phong_cách}" \
|
|
69
|
+
--lighting "{ánh_sáng}" \
|
|
70
|
+
--palette "{tông_màu}" \
|
|
71
|
+
--out "assets/generated/{filename}.webp"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
#### 2. Chế độ `edit` (Image-to-Image / Style Transfer)
|
|
75
|
+
Dùng để biến đổi ảnh có sẵn (Local path hoặc URL) sang phong cách khác hoặc chỉnh sửa chi tiết:
|
|
76
|
+
```bash
|
|
77
|
+
python3 ~/.gemini/antigravity/scripts/openrouter_image_gen.py edit \
|
|
78
|
+
--image "{đường_dẫn_ảnh_gốc}" \
|
|
79
|
+
--prompt "{mô_tả_chỉnh_sửa}" \
|
|
80
|
+
--style "{phong_cách_mới}" \
|
|
81
|
+
--out "assets/generated/{filename}.webp"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
#### 3. Chế độ `generate-batch` (Chạy hàng loạt)
|
|
85
|
+
Dùng để sinh hàng loạt asset từ file `.jsonl` (tối đa 100 jobs) với cơ chế Retry tự động:
|
|
86
|
+
```bash
|
|
87
|
+
python3 ~/.gemini/antigravity/scripts/openrouter_image_gen.py generate-batch \
|
|
88
|
+
--input "jobs.jsonl" \
|
|
89
|
+
--out-dir "assets/generated/batch/" \
|
|
90
|
+
--concurrency 3
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
> **Note**: Script tự động xử lý Upload ảnh local lên `tmpfiles.org` và có cơ chế Exponential Backoff để chống lỗi nghẽn (429).
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## 🛠 Quality Standards (Codex Hatch Pet Technique)
|
|
98
|
+
|
|
99
|
+
- **🚫 CẤM DÙNG "Nền trong suốt / Transparent Background"**: TUYỆT ĐỐI KHÔNG thêm các từ khóa "transparent background", "nền trong suốt", "alpha channel" vào prompt sinh ảnh. Việc này sẽ khiến AI (như DALL-E, Midjourney, OpenRouter) sinh ra **nền caro giả (fake checkerboard)** bám dính vào nhân vật, cực kỳ khó xoá.
|
|
100
|
+
- **✅ Background**: LUÔN ưu tiên sử dụng `solid bright green background #00FF00` hoặc `solid white background #FFFFFF` (nếu nhân vật có màu xanh) để AI render chi tiết tốt nhất, không bị đổ bóng (no shadows cast on the background).
|
|
101
|
+
- **🛠 Hậu kỳ (Post-Processing)**: Sau khi sinh ảnh thô có nền Solid, BẮT BUỘC sử dụng công cụ Python Chroma-key cục bộ (process-image hoặc process_sprites.py) để gỡ nền.
|
|
102
|
+
- **Edges & Holes**: Script Python sẽ tự động áp dụng Alpha Feathering (Blur 0x3) để triệt tiêu răng cưa, và xóa các vùng kẹt trong cánh/tay nhưng bảo vệ đôi mắt (Morphology Close).
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Communication
|
|
107
|
+
|
|
108
|
+
Mỗi khi bắt đầu một lượt generate:
|
|
109
|
+
```
|
|
110
|
+
🎨 [Antigravity Artist] Đang khởi tạo xưởng vẽ cho {asset_type}...
|
|
111
|
+
🚀 Chiến lược: Neutral White + Soft-Edge Alpha.
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Sau khi hoàn tất:
|
|
115
|
+
```
|
|
116
|
+
✅ Hoàn tất! Asset của bạn đã được tối ưu hóa WebP và tách nền sạch sẽ.
|
|
117
|
+
📍 Vị trí: [đường dẫn]
|
|
118
|
+
```
|