@leejungkiin/awkit 1.6.4 → 1.6.6

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.
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: Pixel Art Creator
3
+ description: Create new pixel art sprites from scratch with canvas creation, layer management, and basic drawing primitives via Aseprite MCP Server. Supports all basic shapes, precision pixel pushing, and indexed color schemes (Retro/Gameboy/NES). Trigger on requesting pixel art creation, pixel dimensions, "from scratch", or pixel shapes.
4
+ ---
5
+
6
+ # Pixel Art Creator
7
+
8
+ ## Overview
9
+ This Skill enables creation of new pixel art sprites with full control over canvas properties, layers, and basic drawing operations. It's the foundational Skill for all pixel art workflows.
10
+
11
+ ## When to Use
12
+ Use this Skill when the user:
13
+ - Wants to "create a sprite" or "make pixel art"
14
+ - Mentions sprite dimensions (e.g., "64x64", "32 by 32", "128 pixels wide")
15
+ - Asks to "draw" basic shapes (pixels, lines, rectangles, circles)
16
+ - Needs to set up a canvas or layers
17
+ - Mentions color modes (RGB, Grayscale, Indexed)
18
+
19
+ **Trigger Keywords:** create, sprite, canvas, draw, pixel art, dimensions, layer, new sprite
20
+
21
+ ## Instructions
22
+
23
+ ### 1. Creating a Canvas
24
+ When the user requests a sprite, create the canvas first:
25
+
26
+ **Color Modes:**
27
+ - **RGB**: Full color (24-bit), best for modern pixel art
28
+ - **Grayscale**: Shades of gray only, for monochrome art
29
+ - **Indexed**: Limited palette (1-256 colors), for retro game art
30
+
31
+ **Recommended Sizes:**
32
+ - **Icons**: 16x16, 24x24, 32x32
33
+ - **Characters**: 32x32, 48x48, 64x64
34
+ - **Tiles**: 16x16, 32x32, 64x64
35
+ - **Scenes**: 128x128, 256x256, 320x240 (retro resolution)
36
+
37
+ Use `mcp__aseprite__create_canvas` (or equivalent Aseprite MCP tool) with parameters:
38
+ - `width`: 1-65535 pixels
39
+ - `height`: 1-65535 pixels
40
+ - `color_mode`: "RGB", "Grayscale", or "Indexed"
41
+
42
+ ### 2. Managing Layers
43
+ Use `mcp__aseprite__add_layer` to organize sprite elements:
44
+ - Background layer for solid colors or backgrounds
45
+ - Character layer for main subject
46
+ - Effects layer for highlights, shadows, outlines
47
+ - Detail layer for accessories or fine details
48
+
49
+ **Layer Workflow:**
50
+ 1. Create canvas
51
+ 2. Add named layers (e.g., "Background", "Character", "Effects")
52
+ 3. Draw on specific layers
53
+ 4. Use layers for organization and editing flexibility
54
+ **Important:** Cannot delete the last layer in a sprite.
55
+
56
+ ### 3. Drawing Primitives
57
+ **Draw Individual Pixels:** Use `mcp__aseprite__draw_pixels` for precise pixel placement:
58
+ - Supports batch operations (multiple pixels at once)
59
+ - Accepts colors in hex format (#RRGGBB) or palette indices
60
+
61
+ **Draw Lines:** Use `mcp__aseprite__draw_line`
62
+ **Draw Rectangles:** Use `mcp__aseprite__draw_rectangle` (Filled or outline mode)
63
+ **Draw Circles/Ellipses:** Use `mcp__aseprite__draw_circle`
64
+ **Draw Contours (Polygons):** Use `mcp__aseprite__draw_contour`
65
+ **Flood Fill:** Use `mcp__aseprite__fill_area`
66
+
67
+ ### 4. Working with Colors
68
+ **Setting Colors:**
69
+ - **Hex Format**: #RRGGBB (e.g., #FF0000 for red)
70
+ - **Palette Index**: For Indexed mode (0-255)
71
+
72
+ **Color Palettes:**
73
+ For Indexed color mode, set the palette first:
74
+ - Use `mcp__aseprite__set_palette` with array of hex colors
75
+
76
+ ### 5. Workflow Best Practices
77
+ **Typical Creation Workflow:**
78
+ 1. **Understand Requirements** (Size, Color mode, Style)
79
+ 2. **Create Canvas**
80
+ 3. **Set Up Layers** (optional but recommended)
81
+ 4. **Set Palette** (for Indexed mode like NES, Game Boy)
82
+ 5. **Draw Basic Shapes** (Start with outline -> Fill -> Detail)
83
+ 6. **Verify Result** (Use `mcp__aseprite__get_sprite_info` to check properties)
84
+ 7. **Export**
85
+
86
+ ## Error Handling
87
+ **If canvas creation fails:** Check dimensions are valid (1-65535) and color mode is spelled correctly.
88
+ **If drawing fails:** Verify coordinates are within canvas bounds and color format is valid hex (#RRGGBB).
89
+ **If layer operations fail:** Cannot delete last layer. Layer names should be descriptive strings.
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: semantic-qa-agent
3
+ description: |
4
+ Autonomous QA Agent that uses Hybrid Vision (Screenshots) and Structure (Accessibility Tree)
5
+ to perform semantic testing on mobile and web applications.
6
+ metadata:
7
+ stage: core
8
+ version: "1.0"
9
+ tags: [qa, testing, semantic, autonomous, vision, maestro, symphony]
10
+ agent: Semantic QA Engineer
11
+ allowed-tools:
12
+ - run_command
13
+ - view_file
14
+ - generate_image
15
+ - mcp_pencil_get_screenshot
16
+ trigger: symphony task status matches 'review'
17
+ invocation-type: auto
18
+ priority: 1
19
+ ---
20
+
21
+ # Semantic QA Agent Skill
22
+
23
+ > **Purpose:** Perform intelligent, autonomous QA testing without rigid scripts.
24
+ > **Philosophy:** Semantic awareness (Hybrid Tree + Vision) > Coordinate-based testing.
25
+
26
+ ## Protocol: The Semantic Scan Loop
27
+
28
+ When assigned a task in `review` status, perform the following loop:
29
+
30
+ ### 1. Perception (The Eyes)
31
+ - **Structure:** BẮT BUỘC dùng `maestro hierarchy` để lấy UI hierarchy. Tuyệt đối không dùng `adb shell uiautomator dump` hay `xcrun simctl` để lấy structure trừ khi maestro fails hoàn toàn.
32
+ - **Vision:** Capture a high-res screenshot to detect custom UI, overlays, or visual glitches (`maestro hierarchy` includes screenshot output optionally, or use OS screenshot tools as fallback).
33
+ - **Logs:** Extract system logs (Logcat/OSLog) to detect background crashes or API failures.
34
+
35
+ ### 2. Analysis (The Brain)
36
+ - Compare the current UI state against the **Acceptance Criteria** and **Project Specs**.
37
+ - Identify the next logical action to achieve the test goal.
38
+ - Handle unexpected blockers (e.g., system popups, rate prompts) gracefully.
39
+
40
+ ### 3. Action (The Hands)
41
+ - **Execution Engine:** BẮT BUỘC sử dụng Maestro để tương tác. Hãy tự write ra file `flow.yaml` và gọi lệnh `maestro test flow.yaml`.
42
+ - **Tuyệt đối CẤM:** Gọi trực tiếp `adb shell input tap ...` hoặc các lệnh tọa độ thô sơ.
43
+ - Mọi tương tác phải dựa trên ID, contentDescription, hoặc text trên màn hình để đảm bảo Semantic Flow.
44
+
45
+ ## Integration with Symphony
46
+
47
+ This agent is part of the **Auto-Healing Vòng lặp**:
48
+
49
+ 1. **Pick Task:** Pull tasks with status `review`.
50
+ 2. **Execute Test:** Run the Semantic Scan Loop.
51
+ 3. **Report Result:**
52
+ - ✅ **PASS:** Call `symphony task done <id> -m "QA Approved: Passed all semantic checks."`.
53
+ - ❌ **FAIL:** Call `symphony task reject <id> -m "Bug Report: [Details...]"`.
54
+
55
+ ## Bug Reporting Strategy (Mandatory)
56
+ When rejecting a task, follow this template for the feedback message:
57
+
58
+ ```markdown
59
+ > ⚠️ QA REJECTED ({date}):
60
+ > {Summary of failure}
61
+ >
62
+ > **Evidence:**
63
+ > - Steps to Reproduce: {step 1, step 2...}
64
+ > - Crash/Error: {stacktrace or error message}
65
+ > - Screenshot: {path_to_artifact}
66
+ ```
67
+
68
+ This report will be prepended to the task description for the developer.
@@ -65,28 +65,36 @@ auto_triggers:
65
65
  signal: Tất cả [UI] tasks đã done
66
66
  action: |
67
67
  - ⛔ TRIGGER TP1.7 (Checkpoint)
68
- - Đọc `.project-identity` -> `autoVerification`
69
- - NẾU `true`:
70
- + Chạy Auto Build check exit code 0
71
- + Dùng mcp_maestro_launch_app take_screenshot
72
- + NẾU fail DỪNG (notify_user BlockedOnUser=true)
73
- + NẾU pass Báo cáo Screenshot (BlockedOnUser=false) làm tiếp Phase C
74
- - NẾU `false` (default):
68
+ - Đọc `.project-identity` -> `automation.autoQA`
69
+ - NẾU `true` (Autonomous Dev-QA Loop):
70
+ + Tự start App / render ngầm Component.
71
+ + Tự động gọi `take_screenshot` (Maestro/CLI).
72
+ + TỰ CHẨN ĐOÁN (Vision Analysis): AI tự đối chiếu file ảnh với Specs/Thiết kế/Code.
73
+ + NẾU Fail -> Tự tạo sub-task sửa code Layout, build lại (Max 3 lần theo `maxSelfCorrectionLoops`).
74
+ + NẾU Pass (hoặc đã ráng hết 3 lần) -> In log báo cáo kèm Ảnh Screenshot ("✅ Phase B UI Verified bằng AI").
75
+ + TỰ ĐỘNG CHUYỂN SANG PHASE C (Không chờ phản hồi - BlockedOnUser=false).
76
+ - NẾU `false` (Manual mode):
75
77
  + DỪNG VÀ CHỜ user test thủ công (notify_user BlockedOnUser=true)
76
- + CHỜ user xác nhận "OK" mới đi tiếp Phase C
78
+ + CHỜ user xác nhận "Duyệt/OK" mới đi tiếp Phase C
77
79
 
78
80
  checkpoint_to_phase_c:
79
- signal: Build success & App launched (autoVerification=true) HOẶC User confirmed "OK" (autoVerification=false)
81
+ signal: UI tự verify pass (autoQA=true) HOẶC User confirmed "OK" (autoQA=false)
80
82
  action: |
81
83
  - Set phase_b_confirmed = true
82
84
  - Set current_phase = "C"
83
- - Announce: "🎨 Phase B ✅ — UI đã được duyệt. Chuyển sang Phase C (Logic)."
85
+ - Announce: "🎨 Phase B ✅ — UI đã chốt. Chuyển sang Phase C (Logic)."
84
86
 
85
87
  phase_c_per_feature:
86
88
  signal: 1 feature [LOGIC] đã done + có UI impact
87
89
  action: |
88
90
  - TRIGGER TP1.7 (mini checkpoint)
89
- - Batch các features nhỏ lại nếu có thể
91
+ - Đọc `.project-identity` -> `automation.autoQA`
92
+ - NẾU `true`:
93
+ + Chạy Auto Build -> NẾU Exit code = 0.
94
+ + Dùng Maestro MCP chạy script test cơ bản (Tap -> Input -> Cào View Hierarchy).
95
+ + NẾU không Crash & Dữ liệu đúng -> Pass (Tự đánh dấu Task Done và Commit mà không chặn).
96
+ + NẾU Crash / Lỗi ko tự sửa được -> Dừng, thông báo User.
97
+ - NẾU `false`: Batch các features nhỏ lại để User tự test bộ.
90
98
  ```
91
99
 
92
100
  ## Enforcement Rules
@@ -26,6 +26,8 @@
26
26
  "createdDate": "{{DATE}}",
27
27
  "lastUpdated": "{{DATE}}",
28
28
  "automation": {
29
+ "autoQA": true,
30
+ "maxSelfCorrectionLoops": 3,
29
31
  "telegram": {
30
32
  "enabled": true,
31
33
  "chatId": "",
@@ -22,6 +22,8 @@
22
22
  "createdDate": "{{DATE}}",
23
23
  "lastUpdated": "{{DATE}}",
24
24
  "automation": {
25
+ "autoQA": true,
26
+ "maxSelfCorrectionLoops": 3,
25
27
  "telegram": {
26
28
  "enabled": true,
27
29
  "chatId": "",
@@ -25,6 +25,8 @@
25
25
  "createdDate": "{{DATE}}",
26
26
  "lastUpdated": "{{DATE}}",
27
27
  "automation": {
28
+ "autoQA": true,
29
+ "maxSelfCorrectionLoops": 3,
28
30
  "telegram": {
29
31
  "enabled": true,
30
32
  "chatId": "",
@@ -25,6 +25,8 @@
25
25
  "createdDate": "{{DATE}}",
26
26
  "lastUpdated": "{{DATE}}",
27
27
  "automation": {
28
+ "autoQA": true,
29
+ "maxSelfCorrectionLoops": 3,
28
30
  "telegram": {
29
31
  "enabled": true,
30
32
  "chatId": "",
@@ -22,6 +22,8 @@
22
22
  "createdDate": "{{DATE}}",
23
23
  "lastUpdated": "{{DATE}}",
24
24
  "automation": {
25
+ "autoQA": true,
26
+ "maxSelfCorrectionLoops": 3,
25
27
  "telegram": {
26
28
  "enabled": true,
27
29
  "chatId": "",