@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.
- package/README.md +121 -130
- package/bin/awk.js +70 -5
- package/bin/claude-generators.js +2 -2
- package/bin/cursor-generators.js +256 -0
- package/core/CURSOR.md +47 -0
- package/core/CURSOR_DETAILED.md +102 -0
- package/package.json +2 -2
- package/scripts/automation-gate.js +18 -0
- package/scripts/obsidian-sync.js +494 -0
- package/skills/app-store-screenshots/SKILL.md +86 -0
- package/skills/app-store-screenshots/resources/mockup.png +0 -0
- package/skills/aseprite-artist/SKILL.md +346 -0
- package/skills/aseprite-artist/resources/examples.md +188 -0
- package/skills/aseprite-artist/resources/palettes.md +133 -0
- package/skills/pixel-art-creator/SKILL.md +89 -0
- package/skills/semantic-qa-agent/SKILL.md +68 -0
- package/skills/symphony-enforcer/examples/three-phase.md +19 -11
- package/templates/project-identity/android.json +2 -0
- package/templates/project-identity/backend-nestjs.json +2 -0
- package/templates/project-identity/expo.json +2 -0
- package/templates/project-identity/ios.json +2 -0
- package/templates/project-identity/web-nextjs.json +2 -0
|
@@ -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` -> `
|
|
69
|
-
- NẾU `true
|
|
70
|
-
+
|
|
71
|
-
+
|
|
72
|
-
+
|
|
73
|
-
+ NẾU
|
|
74
|
-
|
|
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:
|
|
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 đã
|
|
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
|
-
-
|
|
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
|