@musashishao/agent-kit 1.9.0 → 1.9.1
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/.agent/agents/ai-asset-factory.md +700 -0
- package/.agent/agents/ai-audio-factory.md +503 -0
- package/.agent/agents/game-developer.md +4 -4
- package/.agent/agents/orchestrator.md +113 -3
- package/.agent/agents/project-planner.md +67 -0
- package/.agent/agents/unity-mobile-master.md +949 -0
- package/.agent/mcp/config/registry.json +65 -51
- package/.agent/mcp/servers/notebooklm/README.md +114 -0
- package/.agent/mcp/servers/notebooklm/package.json +35 -0
- package/.agent/mcp/servers/notebooklm/src/auth/chrome.ts +225 -0
- package/.agent/mcp/servers/notebooklm/src/auth/index.ts +1 -0
- package/.agent/mcp/servers/notebooklm/src/index.ts +516 -0
- package/.agent/mcp/servers/notebooklm/src/services/index.ts +3 -0
- package/.agent/mcp/servers/notebooklm/src/services/library.ts +217 -0
- package/.agent/mcp/servers/notebooklm/src/services/notebooklm.ts +380 -0
- package/.agent/mcp/servers/notebooklm/tsconfig.json +15 -0
- package/.agent/mcp-gateway/README.md +169 -20
- package/.agent/mcp-gateway/package.json +22 -7
- package/.agent/mcp-gateway/src/auth/index.ts +55 -0
- package/.agent/mcp-gateway/src/auth/middleware.ts +242 -0
- package/.agent/mcp-gateway/src/auth/oauth.ts +462 -0
- package/.agent/mcp-gateway/src/auth/scopes.ts +227 -0
- package/.agent/mcp-gateway/src/index.ts +252 -105
- package/.agent/mcp-gateway/src/observability/index.ts +5 -0
- package/.agent/mcp-gateway/src/observability/otel.ts +405 -0
- package/.agent/mcp-gateway/src/transports/index.ts +5 -0
- package/.agent/mcp-gateway/src/transports/streamableHttp.ts +235 -0
- package/.agent/rules/CODEX.md +89 -0
- package/.agent/rules/CODE_RULES.md +73 -0
- package/.agent/rules/GEMINI.md +25 -0
- package/.agent/rules/MEMORY_STATE.md +110 -0
- package/.agent/rules/REFERENCE.md +33 -141
- package/.agent/rules/REF_SKILLS.md +116 -0
- package/.agent/rules/REF_WORKFLOWS.md +81 -0
- package/.agent/scripts/ak_cli.py +106 -5
- package/.agent/scripts/memory_manager.py +48 -9
- package/.agent/skills/anti-hallucination/SKILL.md +295 -0
- package/.agent/skills/anti-hallucination/scripts/check_hallucination.py +299 -0
- package/.agent/skills/bifurcation-analysis/SKILL.md +56 -0
- package/.agent/skills/brainstorming/SKILL.md +80 -6
- package/.agent/skills/decision-memory/SKILL.md +317 -0
- package/.agent/skills/emergence-detector/SKILL.md +230 -0
- package/.agent/skills/emergence-detector/scripts/check_emergence.py +265 -0
- package/.agent/skills/explained-qa/SKILL.md +142 -0
- package/.agent/skills/explained-qa/game-terminology.md +214 -0
- package/.agent/skills/game-development/ai-dialogue-engine/SKILL.md +442 -0
- package/.agent/skills/game-development/ai-graphics-generator/SKILL.md +463 -0
- package/.agent/skills/game-development/ai-playtest-framework/SKILL.md +570 -0
- package/.agent/skills/game-development/camera-systems/SKILL.md +607 -0
- package/.agent/skills/game-development/card-battle-engine/SKILL.md +618 -0
- package/.agent/skills/game-development/character-controller-3d/SKILL.md +908 -0
- package/.agent/skills/game-development/cloud-save-sync/SKILL.md +527 -0
- package/.agent/skills/game-development/combat-system/SKILL.md +748 -0
- package/.agent/skills/game-development/compliance-rating/SKILL.md +277 -0
- package/.agent/skills/game-development/crossplatform-build/SKILL.md +386 -0
- package/.agent/skills/game-development/cultivation-progression/SKILL.md +520 -0
- package/.agent/skills/game-development/data-driven-balance/SKILL.md +535 -0
- package/.agent/skills/game-development/game-analytics-integrator/SKILL.md +410 -0
- package/.agent/skills/game-development/game-audio-advanced/SKILL.md +646 -0
- package/.agent/skills/game-development/game-economy-designer/SKILL.md +375 -0
- package/.agent/skills/game-development/game-marketing/SKILL.md +85 -0
- package/.agent/skills/game-development/game-state-manager/SKILL.md +883 -0
- package/.agent/skills/game-development/hybrid-game-spec/SKILL.md +220 -0
- package/.agent/skills/game-development/inventory-quest/SKILL.md +747 -0
- package/.agent/skills/game-development/liveops/SKILL.md +308 -0
- package/.agent/skills/game-development/localization/SKILL.md +286 -0
- package/.agent/skills/game-development/mobile-input-patterns/SKILL.md +343 -0
- package/.agent/skills/game-development/monetization-strategy/SKILL.md +94 -0
- package/.agent/skills/game-development/multiplayer-master/SKILL.md +727 -0
- package/.agent/skills/game-development/narrative-branching/SKILL.md +593 -0
- package/.agent/skills/game-development/procedural-level-ai/SKILL.md +367 -0
- package/.agent/skills/game-development/prototyping-rapid/SKILL.md +205 -0
- package/.agent/skills/game-development/spec-ecosystem/SKILL.md +155 -0
- package/.agent/skills/game-development/spec-ecosystem/decision-log-format.md +129 -0
- package/.agent/skills/game-development/spec-ecosystem/templates/PLAN-template.md +178 -0
- package/.agent/skills/game-development/spec-ecosystem/templates/SPEC-template.md +110 -0
- package/.agent/skills/game-development/spec-ecosystem/templates/TASKS-template.md +156 -0
- package/.agent/skills/game-development/survival-systems/SKILL.md +493 -0
- package/.agent/skills/game-development/testing-qa/SKILL.md +270 -0
- package/.agent/skills/game-development/unity-mobile-optimization/SKILL.md +271 -0
- package/.agent/skills/intent-capture/SKILL.md +65 -0
- package/.agent/skills/mcp-composition/SKILL.md +362 -0
- package/.agent/skills/mcp-observability/SKILL.md +323 -0
- package/.agent/skills/mcp-security/SKILL.md +314 -0
- package/.agent/skills/trust-spectrum/SKILL.md +291 -0
- package/.agent/skills/vibe-coding-guard/SKILL.md +328 -0
- package/.agent/templates/AGENTS.game.md +63 -0
- package/.agent/templates/docs/WORKFLOW_GUIDE.en.md +100 -0
- package/.agent/templates/docs/WORKFLOW_GUIDE.vi.md +100 -0
- package/.agent/workflows/ai-agent.md +2 -0
- package/.agent/workflows/autofix.md +1 -0
- package/.agent/workflows/brainstorm.md +1 -0
- package/.agent/workflows/context.md +1 -0
- package/.agent/workflows/create.md +39 -8
- package/.agent/workflows/dashboard.md +1 -0
- package/.agent/workflows/debug.md +14 -0
- package/.agent/workflows/deploy.md +14 -0
- package/.agent/workflows/enhance.md +44 -0
- package/.agent/workflows/gamekit-init.md +177 -0
- package/.agent/workflows/gamekit-launch.md +338 -0
- package/.agent/workflows/gamekit-plan.md +204 -0
- package/.agent/workflows/gamekit-qa.md +153 -0
- package/.agent/workflows/gamekit-spec.md +243 -0
- package/.agent/workflows/gamekit-tasks.md +208 -0
- package/.agent/workflows/marketing.md +2 -0
- package/.agent/workflows/next.md +1 -0
- package/.agent/workflows/orchestrate.md +12 -0
- package/.agent/workflows/pentest.md +2 -0
- package/.agent/workflows/plan.md +42 -0
- package/.agent/workflows/preview.md +1 -0
- package/.agent/workflows/quality.md +1 -0
- package/.agent/workflows/saas.md +2 -0
- package/.agent/workflows/spec.md +42 -0
- package/.agent/workflows/status.md +1 -0
- package/.agent/workflows/test.md +14 -0
- package/.agent/workflows/ui-ux-pro-max.md +1 -0
- package/bin/cli.js +411 -111
- package/package.json +1 -2
- package/.agent/agents/game-asset-curator.md +0 -317
- package/.agent/agents/game-narrative-designer.md +0 -310
- package/.agent/agents/game-qa-agent.md +0 -441
- package/.agent/workflows/game-prototype.md +0 -154
- package/docs/AI_DATA_INFRASTRUCTURE.md +0 -288
- package/docs/CHANGELOG_AI_INFRA.md +0 -141
- package/docs/MIGRATION_GUIDE_V1.9.md +0 -55
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-ecosystem
|
|
3
|
+
description: Comprehensive spec writing system for game development. Templates, decision logging, and structured documentation. Use when creating game specifications, plans, or task breakdowns.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Game Spec Ecosystem Skill
|
|
8
|
+
|
|
9
|
+
> **Purpose:** Provide structured templates and workflows for professional game development documentation.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## When to Use This Skill
|
|
14
|
+
|
|
15
|
+
| Scenario | Action |
|
|
16
|
+
|----------|--------|
|
|
17
|
+
| Starting new game project | Use `/gamekit.init` |
|
|
18
|
+
| Writing game specification | Use `/gamekit.spec` + templates |
|
|
19
|
+
| Creating implementation plan | Use `/gamekit.plan` + templates |
|
|
20
|
+
| Breaking down into tasks | Use `/gamekit.tasks` |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 4-Layer Documentation System
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
┌──────────────────────────────────────────────────────────┐
|
|
28
|
+
│ LAYER 4: SESSION STATE (Real-time) │
|
|
29
|
+
│ → .agent/memory/session.json, SESSION_SUMMARY.md │
|
|
30
|
+
├──────────────────────────────────────────────────────────┤
|
|
31
|
+
│ LAYER 3: DECISION LOG (Q&A History) │
|
|
32
|
+
│ → .agent/memory/decisions.md, .agent/adr/ADR-xxx.md │
|
|
33
|
+
├──────────────────────────────────────────────────────────┤
|
|
34
|
+
│ LAYER 2: SPEC & PLAN (Static) │
|
|
35
|
+
│ → SPEC-{game}.md, PLAN-{game}.md, TASKS-{game}.md │
|
|
36
|
+
├──────────────────────────────────────────────────────────┤
|
|
37
|
+
│ LAYER 1: CONSTITUTION & CHANGELOG (Foundation) │
|
|
38
|
+
│ → constitution.md, CHANGELOG.md, VERSION.md │
|
|
39
|
+
└──────────────────────────────────────────────────────────┘
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Document Types
|
|
45
|
+
|
|
46
|
+
### SPEC (Specification)
|
|
47
|
+
**Purpose:** Define WHAT and WHY
|
|
48
|
+
**Contains:** Problem, User Stories, Acceptance Criteria, Out of Scope, Constraints
|
|
49
|
+
**Template:** See `templates/SPEC-template.md`
|
|
50
|
+
|
|
51
|
+
### PLAN (Implementation Plan)
|
|
52
|
+
**Purpose:** Define HOW and WHO
|
|
53
|
+
**Contains:** File structure, Task breakdown, Agent assignments, Dependencies
|
|
54
|
+
**Template:** See `templates/PLAN-template.md`
|
|
55
|
+
|
|
56
|
+
### TASKS (Task List)
|
|
57
|
+
**Purpose:** Executable checklist
|
|
58
|
+
**Contains:** Ordered tasks with status, verification criteria
|
|
59
|
+
**Template:** See `templates/TASKS-template.md`
|
|
60
|
+
|
|
61
|
+
### DECISIONS (Decision Log)
|
|
62
|
+
**Purpose:** Record all Q&A with rationale
|
|
63
|
+
**Contains:** Questions, Answers, Reasoning, Technical Impact
|
|
64
|
+
**Template:** See `decision-log-format.md`
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Workflow Integration
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
/gamekit.init
|
|
72
|
+
│
|
|
73
|
+
▼
|
|
74
|
+
constitution.md (Project principles)
|
|
75
|
+
│
|
|
76
|
+
▼
|
|
77
|
+
/gamekit.spec (Use explained-qa skill)
|
|
78
|
+
│
|
|
79
|
+
▼
|
|
80
|
+
SPEC-{game}.md ──────┬──────── decisions.md
|
|
81
|
+
│ │
|
|
82
|
+
▼ │ (logged)
|
|
83
|
+
/gamekit.plan │
|
|
84
|
+
│ │
|
|
85
|
+
▼ │
|
|
86
|
+
PLAN-{game}.md ──────┘
|
|
87
|
+
│
|
|
88
|
+
▼
|
|
89
|
+
/gamekit.tasks
|
|
90
|
+
│
|
|
91
|
+
▼
|
|
92
|
+
TASKS-{game}.md
|
|
93
|
+
│
|
|
94
|
+
▼
|
|
95
|
+
/game-hybrid (Implementation)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Naming Conventions
|
|
101
|
+
|
|
102
|
+
| Document | Naming Pattern | Example |
|
|
103
|
+
|----------|----------------|---------|
|
|
104
|
+
| Specification | `SPEC-{game-slug}.md` | `SPEC-dungeon-crawler.md` |
|
|
105
|
+
| Plan | `PLAN-{game-slug}.md` | `PLAN-dungeon-crawler.md` |
|
|
106
|
+
| Tasks | `TASKS-{game-slug}.md` | `TASKS-dungeon-crawler.md` |
|
|
107
|
+
| Decisions | `decisions.md` (single file) | Append per session |
|
|
108
|
+
| ADR | `ADR-{number}-{short-title}.md` | `ADR-001-use-ecs.md` |
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Quality Gates
|
|
113
|
+
|
|
114
|
+
### Before SPEC Approval
|
|
115
|
+
- [ ] Problem statement has measurable impact
|
|
116
|
+
- [ ] All user stories have clear benefits
|
|
117
|
+
- [ ] Acceptance criteria are testable
|
|
118
|
+
- [ ] Out of scope section exists
|
|
119
|
+
- [ ] No implementation details in SPEC
|
|
120
|
+
|
|
121
|
+
### Before PLAN Approval
|
|
122
|
+
- [ ] All tasks have INPUT → OUTPUT → VERIFY
|
|
123
|
+
- [ ] Dependencies are explicit
|
|
124
|
+
- [ ] Agent assignments are correct
|
|
125
|
+
- [ ] File structure is complete
|
|
126
|
+
- [ ] Phase X verification defined
|
|
127
|
+
|
|
128
|
+
### Before Implementation
|
|
129
|
+
- [ ] SPEC approved by user
|
|
130
|
+
- [ ] PLAN approved by user
|
|
131
|
+
- [ ] All decisions logged
|
|
132
|
+
- [ ] No blocking questions remain
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Integration with Existing Workflows
|
|
137
|
+
|
|
138
|
+
| Existing Workflow | Integration Point |
|
|
139
|
+
|-------------------|-------------------|
|
|
140
|
+
| `/game-from-idea` | Phase 1 uses `explained-qa` for ideation |
|
|
141
|
+
| `/game-hybrid` | Tier 1 Macro Spec uses SPEC template |
|
|
142
|
+
| `/brainstorm` | Uses `explained-qa` for all game questions |
|
|
143
|
+
| `/spec` | Extended by `gamekit.spec` for games |
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## Anti-Patterns (AVOID)
|
|
148
|
+
|
|
149
|
+
| ❌ Don't | ✅ Do |
|
|
150
|
+
|----------|-------|
|
|
151
|
+
| Skip SPEC, jump to code | Always SPEC → PLAN → CODE |
|
|
152
|
+
| Put HOW in SPEC | SPEC = WHAT, PLAN = HOW |
|
|
153
|
+
| Forget decision log | Log EVERY significant decision |
|
|
154
|
+
| Use generic templates | Use game-specific templates |
|
|
155
|
+
| Start without constitution | Define principles first |
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# Decision Log Format
|
|
2
|
+
|
|
3
|
+
> Format for recording all Q&A decisions during game development.
|
|
4
|
+
> Append to `.agent/memory/decisions.md` after each session.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
1. **Prevent re-asking** - AI reads this before asking questions
|
|
11
|
+
2. **Preserve rationale** - Future developers understand WHY
|
|
12
|
+
3. **Enable handoff** - New team members understand decisions
|
|
13
|
+
4. **Support rollback** - If decision needs reverting, context is preserved
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## File Location
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
.agent/memory/decisions.md
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Entry Format
|
|
26
|
+
|
|
27
|
+
```markdown
|
|
28
|
+
## Session: [YYYY-MM-DD]
|
|
29
|
+
|
|
30
|
+
### Q[N]: [Topic Title]
|
|
31
|
+
- **Câu hỏi:** [Original technical question]
|
|
32
|
+
- **Giải thích:** [Analogy/explanation provided to user]
|
|
33
|
+
- **Trả lời:** [User's choice - A/B/C or custom]
|
|
34
|
+
- **Lý do:** "[User's reasoning, quoted if provided]"
|
|
35
|
+
- **Ảnh hưởng:** [Technical impact on project]
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Example Entries
|
|
43
|
+
|
|
44
|
+
```markdown
|
|
45
|
+
## Session: 2026-01-29
|
|
46
|
+
|
|
47
|
+
### Q1: Timestep Mode
|
|
48
|
+
- **Câu hỏi:** Fixed Timestep hay Variable Timestep?
|
|
49
|
+
- **Giải thích:** Như đồng hồ cơ (fixed) vs nhịp tim (variable)
|
|
50
|
+
- **Trả lời:** A (Fixed Timestep)
|
|
51
|
+
- **Lý do:** "Game này có multiplayer, cần công bằng"
|
|
52
|
+
- **Ảnh hưởng:** Sử dụng FixedUpdate() cho physics, Time.fixedDeltaTime = 0.02f
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
### Q2: Art Style
|
|
57
|
+
- **Câu hỏi:** Phong cách đồ họa?
|
|
58
|
+
- **Giải thích:** Pixel Art vs Vector vs 3D Low-Poly
|
|
59
|
+
- **Trả lời:** Pixel Art
|
|
60
|
+
- **Lý do:** "Muốn retro vibe, team quen làm pixel"
|
|
61
|
+
- **Ảnh hưởng:** Texture Import = Point Filter, Pixels Per Unit = 16
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### Q3: Save System
|
|
66
|
+
- **Câu hỏi:** PlayerPrefs hay JSON file?
|
|
67
|
+
- **Giải thích:** Post-it note (PlayerPrefs) vs Hồ sơ (JSON)
|
|
68
|
+
- **Trả lời:** C (Để AI quyết định)
|
|
69
|
+
- **AI quyết định:** JSON vì game có inventory phức tạp
|
|
70
|
+
- **Ảnh hưởng:** Sử dụng JsonUtility + Application.persistentDataPath
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Session: 2026-01-30
|
|
75
|
+
|
|
76
|
+
### Q4: Monetization Model
|
|
77
|
+
- **Câu hỏi:** F2P với ads, IAP, hay Premium?
|
|
78
|
+
- **Giải thích:** Miễn phí xem quảng cáo vs Mua đồ vs Mua game 1 lần
|
|
79
|
+
- **Trả lời:** F2P với Rewarded Ads
|
|
80
|
+
- **Lý do:** "Thị trường mobile casual phù hợp F2P"
|
|
81
|
+
- **Ảnh hưởng:** Integrate Unity Ads, design reward structures
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## AI Reading Protocol
|
|
89
|
+
|
|
90
|
+
Before asking ANY question, AI MUST:
|
|
91
|
+
|
|
92
|
+
1. **Read** `.agent/memory/decisions.md`
|
|
93
|
+
2. **Check** if topic already decided
|
|
94
|
+
3. **If decided** → Use existing decision, don't re-ask
|
|
95
|
+
4. **If not decided** → Ask using `explained-qa` format
|
|
96
|
+
|
|
97
|
+
```markdown
|
|
98
|
+
🔍 **Checking decisions.md...**
|
|
99
|
+
- Timestep: ✅ Fixed (Q1)
|
|
100
|
+
- Art Style: ✅ Pixel Art (Q2)
|
|
101
|
+
- Save System: ✅ JSON (Q3)
|
|
102
|
+
- Monetization: ✅ F2P + Rewarded Ads (Q4)
|
|
103
|
+
- Multiplayer: ❓ Not decided yet → ASKING...
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Categories for Organization
|
|
109
|
+
|
|
110
|
+
| Category | Topics |
|
|
111
|
+
|----------|--------|
|
|
112
|
+
| **Architecture** | Timestep, ECS vs OOP, Event system |
|
|
113
|
+
| **Art** | Style, resolution, animation |
|
|
114
|
+
| **Audio** | Music style, SFX approach |
|
|
115
|
+
| **Gameplay** | Core loop, difficulty, progression |
|
|
116
|
+
| **Technical** | Engine, platform, performance targets |
|
|
117
|
+
| **Business** | Monetization, analytics, launch strategy |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Integration Points
|
|
122
|
+
|
|
123
|
+
| Workflow/Skill | How It Uses decisions.md |
|
|
124
|
+
|----------------|--------------------------|
|
|
125
|
+
| `/gamekit.spec` | Appends decisions during spec creation |
|
|
126
|
+
| `/game-from-idea` | Records ideation choices |
|
|
127
|
+
| `/game-hybrid` | Records architecture decisions in Tier 1 |
|
|
128
|
+
| `explained-qa` | Logs every answered question |
|
|
129
|
+
| `project-planner` | Reads to understand context |
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# PLAN Template for Game Projects
|
|
2
|
+
|
|
3
|
+
> Template for creating implementation plans from approved specs. Replace placeholders with actual content.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📋 Overview
|
|
8
|
+
|
|
9
|
+
[Brief description of what this plan implements, referencing the SPEC.]
|
|
10
|
+
|
|
11
|
+
**Based on:** `SPEC-{game-slug}.md`
|
|
12
|
+
**Project Type:** [MOBILE / WEB / PC / VR-AR]
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## ✅ Success Criteria
|
|
17
|
+
|
|
18
|
+
| # | Criterion | Verification Method |
|
|
19
|
+
|---|-----------|---------------------|
|
|
20
|
+
| 1 | [From SPEC AC1] | [How to verify] |
|
|
21
|
+
| 2 | [From SPEC AC2] | [How to verify] |
|
|
22
|
+
| 3 | [From SPEC AC3] | [How to verify] |
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 🛠️ Tech Stack
|
|
27
|
+
|
|
28
|
+
| Component | Technology | Rationale |
|
|
29
|
+
|-----------|------------|-----------|
|
|
30
|
+
| **Engine** | [Unity/Godot/etc] | [Why chosen] |
|
|
31
|
+
| **Language** | [C#/GDScript/etc] | [Why chosen] |
|
|
32
|
+
| **Backend** | [Firebase/Supabase/None] | [Why chosen] |
|
|
33
|
+
| **Analytics** | [Firebase/GameAnalytics/etc] | [Why chosen] |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 📁 File Structure
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
Assets/
|
|
41
|
+
├── _Project/
|
|
42
|
+
│ ├── Scripts/
|
|
43
|
+
│ │ ├── Core/ # Managers, Events, Utils
|
|
44
|
+
│ │ ├── Gameplay/ # Game mechanics
|
|
45
|
+
│ │ ├── UI/ # UI controllers
|
|
46
|
+
│ │ └── Input/ # Input handling
|
|
47
|
+
│ ├── Prefabs/
|
|
48
|
+
│ ├── Scenes/
|
|
49
|
+
│ │ ├── Bootstrap.unity
|
|
50
|
+
│ │ ├── MainMenu.unity
|
|
51
|
+
│ │ └── Game.unity
|
|
52
|
+
│ └── ScriptableObjects/
|
|
53
|
+
│ ├── Config/
|
|
54
|
+
│ └── Data/
|
|
55
|
+
├── Art/
|
|
56
|
+
│ ├── Sprites/
|
|
57
|
+
│ ├── UI/
|
|
58
|
+
│ └── Animations/
|
|
59
|
+
├── Audio/
|
|
60
|
+
│ ├── Music/
|
|
61
|
+
│ └── SFX/
|
|
62
|
+
└── Addressables/
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 📊 Task Breakdown
|
|
68
|
+
|
|
69
|
+
### Phase 1: Core Systems
|
|
70
|
+
|
|
71
|
+
| Task ID | Name | Agent | Priority | Dependencies | INPUT → OUTPUT → VERIFY |
|
|
72
|
+
|---------|------|-------|----------|--------------|-------------------------|
|
|
73
|
+
| 1.1 | [Task name] | [agent] | P0 | None | [I] → [O] → [V] |
|
|
74
|
+
| 1.2 | [Task name] | [agent] | P0 | 1.1 | [I] → [O] → [V] |
|
|
75
|
+
|
|
76
|
+
### Phase 2: Gameplay
|
|
77
|
+
|
|
78
|
+
| Task ID | Name | Agent | Priority | Dependencies | INPUT → OUTPUT → VERIFY |
|
|
79
|
+
|---------|------|-------|----------|--------------|-------------------------|
|
|
80
|
+
| 2.1 | [Task name] | [agent] | P1 | 1.x | [I] → [O] → [V] |
|
|
81
|
+
| 2.2 | [Task name] | [agent] | P1 | 2.1 | [I] → [O] → [V] |
|
|
82
|
+
|
|
83
|
+
### Phase 3: UI & Polish
|
|
84
|
+
|
|
85
|
+
| Task ID | Name | Agent | Priority | Dependencies | INPUT → OUTPUT → VERIFY |
|
|
86
|
+
|---------|------|-------|----------|--------------|-------------------------|
|
|
87
|
+
| 3.1 | [Task name] | [agent] | P2 | 2.x | [I] → [O] → [V] |
|
|
88
|
+
| 3.2 | [Task name] | [agent] | P2 | 3.1 | [I] → [O] → [V] |
|
|
89
|
+
|
|
90
|
+
### Phase 4: Audio & Effects
|
|
91
|
+
|
|
92
|
+
| Task ID | Name | Agent | Priority | Dependencies | INPUT → OUTPUT → VERIFY |
|
|
93
|
+
|---------|------|-------|----------|--------------|-------------------------|
|
|
94
|
+
| 4.1 | [Task name] | [agent] | P2 | None | [I] → [O] → [V] |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 🔀 Parallel Execution Groups
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
GROUP A (Core - Sequential):
|
|
102
|
+
├── 1.1 [First task]
|
|
103
|
+
└── 1.2 [Depends on 1.1]
|
|
104
|
+
|
|
105
|
+
GROUP B (Can parallel with A):
|
|
106
|
+
├── Art assets
|
|
107
|
+
└── Audio assets
|
|
108
|
+
|
|
109
|
+
GROUP C (After A):
|
|
110
|
+
├── 2.1 Gameplay
|
|
111
|
+
└── 2.2 Features
|
|
112
|
+
|
|
113
|
+
GROUP D (Final):
|
|
114
|
+
├── 3.x UI Polish
|
|
115
|
+
└── 4.x Audio integration
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## ⚡ Agent Assignments Summary
|
|
121
|
+
|
|
122
|
+
| Agent | Tasks | Total |
|
|
123
|
+
|-------|-------|-------|
|
|
124
|
+
| `unity-mobile-master` | [list] | X |
|
|
125
|
+
| `game-developer` | [list] | X |
|
|
126
|
+
| `ai-asset-factory` | [list] | X |
|
|
127
|
+
| `ai-audio-factory` | [list] | X |
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Phase X: Verification
|
|
132
|
+
|
|
133
|
+
### Build Check
|
|
134
|
+
```bash
|
|
135
|
+
# Unity build
|
|
136
|
+
Unity -batchmode -buildTarget Android -executeMethod BuildScript.BuildAndroid
|
|
137
|
+
|
|
138
|
+
# Or Godot export
|
|
139
|
+
godot --export-release "Android" ./builds/game.apk
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Automated Tests
|
|
143
|
+
- [ ] Unit tests pass
|
|
144
|
+
- [ ] Integration tests pass
|
|
145
|
+
- [ ] No compiler warnings
|
|
146
|
+
|
|
147
|
+
### Manual Verification
|
|
148
|
+
- [ ] Core loop playable
|
|
149
|
+
- [ ] No game-breaking bugs
|
|
150
|
+
- [ ] Performance target met (60 FPS)
|
|
151
|
+
- [ ] Device testing (low-end + high-end)
|
|
152
|
+
|
|
153
|
+
### Regression Check
|
|
154
|
+
- [ ] All features from SPEC work
|
|
155
|
+
- [ ] Audio plays correctly
|
|
156
|
+
- [ ] Save/Load works
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## ✅ PHASE X COMPLETION MARKER
|
|
161
|
+
|
|
162
|
+
> Add after all checks pass:
|
|
163
|
+
```
|
|
164
|
+
## ✅ PHASE X COMPLETE
|
|
165
|
+
- Build: Success
|
|
166
|
+
- Tests: All pass
|
|
167
|
+
- Performance: 60 FPS on target device
|
|
168
|
+
- Date: [Current Date]
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## ✅ Approval
|
|
174
|
+
|
|
175
|
+
> [!IMPORTANT]
|
|
176
|
+
> Plan này cần được User approve trước khi bắt đầu Implementation.
|
|
177
|
+
|
|
178
|
+
**Approved by:** [Name/Date]
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# SPEC Template for Game Projects
|
|
2
|
+
|
|
3
|
+
> Template for creating game specifications. Replace placeholders with actual content.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 📝 Problem Statement
|
|
8
|
+
|
|
9
|
+
### Vấn đề hiện tại
|
|
10
|
+
[Describe the problem this game/feature solves. Include measurable impact if available.]
|
|
11
|
+
|
|
12
|
+
**Example:**
|
|
13
|
+
> Người chơi mobile thường bỏ game casual sau 3-5 phút vì gameplay lặp lại.
|
|
14
|
+
> Cần game có core loop hấp dẫn giữ người chơi ít nhất 15 phút/session.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 👥 User Stories
|
|
19
|
+
|
|
20
|
+
| Priority | User Story |
|
|
21
|
+
|----------|------------|
|
|
22
|
+
| **P0** | Là **[user type]**, tôi muốn **[action]** để **[benefit]**. |
|
|
23
|
+
| **P1** | Là **[user type]**, tôi muốn **[action]** để **[benefit]**. |
|
|
24
|
+
| **P2** | Là **[user type]**, tôi muốn **[action]** để **[benefit]**. |
|
|
25
|
+
|
|
26
|
+
**Example:**
|
|
27
|
+
| Priority | User Story |
|
|
28
|
+
|----------|------------|
|
|
29
|
+
| **P0** | Là **người chơi casual**, tôi muốn **gameplay one-hand** để **chơi trên bus/metro**. |
|
|
30
|
+
| **P1** | Là **người chơi**, tôi muốn **xem tiến độ rõ ràng** để **biết mình đang ở đâu**. |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## ✅ Acceptance Criteria
|
|
35
|
+
|
|
36
|
+
| ID | Criterion | Testable? |
|
|
37
|
+
|----|-----------|-----------|
|
|
38
|
+
| AC1 | [Specific, measurable criterion] | ✅/❌ |
|
|
39
|
+
| AC2 | [Specific, measurable criterion] | ✅/❌ |
|
|
40
|
+
| AC3 | [Specific, measurable criterion] | ✅/❌ |
|
|
41
|
+
|
|
42
|
+
**Example:**
|
|
43
|
+
| ID | Criterion | Testable? |
|
|
44
|
+
|----|-----------|-----------|
|
|
45
|
+
| AC1 | Game load trong < 3 giây trên device 2GB RAM | ✅ |
|
|
46
|
+
| AC2 | Tutorial hoàn thành trong < 60 giây | ✅ |
|
|
47
|
+
| AC3 | Core loop rõ ràng: Action → Reward → Progression | ✅ |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 🚫 Out of Scope
|
|
52
|
+
|
|
53
|
+
| Item | Lý do |
|
|
54
|
+
|------|-------|
|
|
55
|
+
| [Feature NOT included] | [Why deferred] |
|
|
56
|
+
| [Edge case NOT handled] | [Why excluded] |
|
|
57
|
+
| [Platform NOT supported] | [Why not MVP] |
|
|
58
|
+
|
|
59
|
+
**Example:**
|
|
60
|
+
| Item | Lý do |
|
|
61
|
+
|------|-------|
|
|
62
|
+
| Multiplayer | Quá phức tạp cho MVP, xem xét v2 |
|
|
63
|
+
| Cloud save | Chỉ cần local save cho prototype |
|
|
64
|
+
| IAP | Chưa cần monetization cho soft launch |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 🔧 Technical Constraints
|
|
69
|
+
|
|
70
|
+
| Constraint | Requirement |
|
|
71
|
+
|------------|-------------|
|
|
72
|
+
| **Target Platform** | [iOS/Android/Web/PC] |
|
|
73
|
+
| **Engine** | [Unity/Godot/Phaser] |
|
|
74
|
+
| **Min Spec** | [Device requirements] |
|
|
75
|
+
| **Integration** | [Must work with X] |
|
|
76
|
+
|
|
77
|
+
**Example:**
|
|
78
|
+
| Constraint | Requirement |
|
|
79
|
+
|------------|-------------|
|
|
80
|
+
| **Target Platform** | Android 8+ & iOS 14+ |
|
|
81
|
+
| **Engine** | Unity 6 LTS |
|
|
82
|
+
| **Min Spec** | 2GB RAM, GPU OpenGL ES 3.0 |
|
|
83
|
+
| **Integration** | Firebase Analytics |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## 🎮 Game-Specific Details
|
|
88
|
+
|
|
89
|
+
### Core Loop
|
|
90
|
+
```
|
|
91
|
+
[Action] → [Reward] → [Progression]
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Art Direction
|
|
95
|
+
[Brief description of visual style]
|
|
96
|
+
|
|
97
|
+
### Audio Direction
|
|
98
|
+
[Brief description of sound/music style]
|
|
99
|
+
|
|
100
|
+
### Monetization (if applicable)
|
|
101
|
+
[F2P/Premium/Hybrid + high-level strategy]
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## ✅ Approval
|
|
106
|
+
|
|
107
|
+
> [!IMPORTANT]
|
|
108
|
+
> Spec này cần được User approve trước khi chuyển sang PLAN.
|
|
109
|
+
|
|
110
|
+
**Approved by:** [Name/Date]
|