bmad-method 4.42.1 → 4.43.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/CONTRIBUTING.md +2 -9
- package/README.md +0 -98
- package/bmad-core/agents/bmad-master.md +6 -6
- package/bmad-core/data/bmad-kb.md +1 -0
- package/bmad-core/tasks/validate-next-story.md +1 -1
- package/bmad-core/templates/brownfield-architecture-tmpl.yaml +5 -5
- package/dist/agents/analyst.txt +1 -0
- package/dist/agents/architect.txt +5 -5
- package/dist/agents/bmad-master.txt +12 -11
- package/dist/agents/bmad-orchestrator.txt +1 -0
- package/dist/agents/dev.txt +1 -1
- package/dist/agents/po.txt +1 -1
- package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +1 -1
- package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +1 -1
- package/dist/expansion-packs/bmad-godot-game-dev/agents/bmad-orchestrator.txt +1513 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-analyst.txt +3190 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-architect.txt +4499 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-designer.txt +3925 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-developer.txt +666 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-pm.txt +2381 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-po.txt +1612 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-qa.txt +1745 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-sm.txt +1208 -0
- package/dist/expansion-packs/bmad-godot-game-dev/agents/game-ux-expert.txt +958 -0
- package/dist/expansion-packs/bmad-godot-game-dev/teams/godot-game-team.txt +27721 -0
- package/dist/teams/team-all.txt +7 -6
- package/dist/teams/team-fullstack.txt +7 -6
- package/dist/teams/team-ide-minimal.txt +2 -1
- package/dist/teams/team-no-ui.txt +7 -6
- package/docs/GUIDING-PRINCIPLES.md +3 -3
- package/docs/expansion-packs.md +3 -83
- package/docs/flattener.md +91 -0
- package/docs/versions.md +1 -1
- package/docs/working-in-the-brownfield.md +15 -6
- package/expansion-packs/bmad-godot-game-dev/README.md +244 -0
- package/expansion-packs/bmad-godot-game-dev/agent-teams/godot-game-team.yaml +18 -0
- package/expansion-packs/bmad-godot-game-dev/agents/bmad-orchestrator.md +147 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-analyst.md +84 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-architect.md +146 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-designer.md +78 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-developer.md +124 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-pm.md +82 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-po.md +115 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-qa.md +160 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-sm.md +66 -0
- package/expansion-packs/bmad-godot-game-dev/agents/game-ux-expert.md +75 -0
- package/expansion-packs/bmad-godot-game-dev/checklists/game-architect-checklist.md +377 -0
- package/expansion-packs/bmad-godot-game-dev/checklists/game-change-checklist.md +250 -0
- package/expansion-packs/bmad-godot-game-dev/checklists/game-design-checklist.md +225 -0
- package/expansion-packs/bmad-godot-game-dev/checklists/game-po-checklist.md +448 -0
- package/expansion-packs/bmad-godot-game-dev/checklists/game-story-dod-checklist.md +202 -0
- package/expansion-packs/bmad-godot-game-dev/config.yaml +30 -0
- package/expansion-packs/bmad-godot-game-dev/data/bmad-kb.md +811 -0
- package/expansion-packs/bmad-godot-game-dev/data/brainstorming-techniques.md +36 -0
- package/expansion-packs/bmad-godot-game-dev/data/development-guidelines.md +893 -0
- package/expansion-packs/bmad-godot-game-dev/data/elicitation-methods.md +156 -0
- package/expansion-packs/bmad-godot-game-dev/data/technical-preferences.md +3 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/advanced-elicitation.md +110 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/apply-qa-fixes.md +224 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/brownfield-create-epic.md +162 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/brownfield-create-story.md +149 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/correct-course-game.md +159 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/create-deep-research-prompt.md +278 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/create-doc.md +103 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/create-game-story.md +202 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/document-project.md +343 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/execute-checklist.md +88 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/facilitate-brainstorming-session.md +136 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/game-brownfield-create-epic.md +160 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/game-brownfield-create-story.md +147 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/game-design-brainstorming.md +290 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/game-risk-profile.md +368 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/game-test-design.md +219 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/generate-ai-frontend-prompt.md +51 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/kb-mode-interaction.md +77 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/review-game-story.md +364 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/shard-doc.md +187 -0
- package/expansion-packs/bmad-godot-game-dev/tasks/validate-game-story.md +208 -0
- package/expansion-packs/bmad-godot-game-dev/templates/brainstorming-output-tmpl.yaml +156 -0
- package/expansion-packs/bmad-godot-game-dev/templates/brownfield-prd-tmpl.yaml +281 -0
- package/expansion-packs/bmad-godot-game-dev/templates/competitor-analysis-tmpl.yaml +306 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-architecture-tmpl.yaml +1111 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-brief-tmpl.yaml +356 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-design-doc-tmpl.yaml +724 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-prd-tmpl.yaml +209 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-qa-gate-tmpl.yaml +186 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-story-tmpl.yaml +406 -0
- package/expansion-packs/bmad-godot-game-dev/templates/game-ui-spec-tmpl.yaml +601 -0
- package/expansion-packs/bmad-godot-game-dev/templates/level-design-doc-tmpl.yaml +620 -0
- package/expansion-packs/bmad-godot-game-dev/templates/market-research-tmpl.yaml +418 -0
- package/expansion-packs/bmad-godot-game-dev/utils/bmad-doc-template.md +327 -0
- package/expansion-packs/bmad-godot-game-dev/utils/workflow-management.md +71 -0
- package/expansion-packs/bmad-godot-game-dev/workflows/game-dev-greenfield.yaml +245 -0
- package/expansion-packs/bmad-godot-game-dev/workflows/game-prototype.yaml +213 -0
- package/package.json +1 -1
- package/release_notes.md +19 -2
- package/tools/flattener/ignoreRules.js +2 -0
- package/tools/installer/bin/bmad.js +37 -1
- package/tools/installer/config/install.config.yaml +35 -7
- package/tools/installer/lib/ide-setup.js +285 -80
- package/tools/installer/lib/installer.js +6 -1
- package/tools/installer/package.json +1 -1
- package/tools/upgraders/v3-to-v4-upgrader.js +1 -0
- package/test.md +0 -1
- /package/{implement-fork-friendly-ci.sh → tools/implement-fork-friendly-ci.sh} +0 -0
|
@@ -0,0 +1,601 @@
|
|
|
1
|
+
template:
|
|
2
|
+
id: frontend-spec-template-v2
|
|
3
|
+
name: UI/UX Specification
|
|
4
|
+
version: 2.0
|
|
5
|
+
output:
|
|
6
|
+
format: markdown
|
|
7
|
+
filename: docs/front-end-spec.md
|
|
8
|
+
title: "{{project_name}} UI/UX Specification"
|
|
9
|
+
|
|
10
|
+
workflow:
|
|
11
|
+
mode: interactive
|
|
12
|
+
elicitation: advanced-elicitation
|
|
13
|
+
|
|
14
|
+
sections:
|
|
15
|
+
- id: introduction
|
|
16
|
+
title: Introduction
|
|
17
|
+
instruction: |
|
|
18
|
+
Review provided documents including Project Brief, PRD, and any user research to gather context. Focus on understanding user needs, pain points, and desired outcomes before beginning the specification.
|
|
19
|
+
|
|
20
|
+
Establish the document's purpose and scope. Keep the content below but ensure project name is properly substituted.
|
|
21
|
+
content: |
|
|
22
|
+
This document defines the user experience goals, information architecture, user flows, and visual design specifications for {{project_name}}'s user interface. It serves as the foundation for visual design and frontend development, ensuring a cohesive and user-centered experience.
|
|
23
|
+
sections:
|
|
24
|
+
- id: ux-goals-principles
|
|
25
|
+
title: Overall UX Goals & Principles
|
|
26
|
+
instruction: |
|
|
27
|
+
Work with the user to establish and document the following. If not already defined, facilitate a discussion to determine:
|
|
28
|
+
|
|
29
|
+
1. Target User Personas - elicit details or confirm existing ones from PRD
|
|
30
|
+
2. Key Usability Goals - understand what success looks like for users
|
|
31
|
+
3. Core Design Principles - establish 3-5 guiding principles
|
|
32
|
+
elicit: true
|
|
33
|
+
sections:
|
|
34
|
+
- id: user-personas
|
|
35
|
+
title: Target User Personas
|
|
36
|
+
template: "{{persona_descriptions}}"
|
|
37
|
+
examples:
|
|
38
|
+
- "**Power User:** Technical professionals who need advanced features and efficiency"
|
|
39
|
+
- "**Casual User:** Occasional users who prioritize ease of use and clear guidance"
|
|
40
|
+
- "**Administrator:** System managers who need control and oversight capabilities"
|
|
41
|
+
- id: usability-goals
|
|
42
|
+
title: Usability Goals
|
|
43
|
+
template: "{{usability_goals}}"
|
|
44
|
+
examples:
|
|
45
|
+
- "Ease of learning: New users can complete core tasks within 5 minutes"
|
|
46
|
+
- "Efficiency of use: Power users can complete frequent tasks with minimal clicks"
|
|
47
|
+
- "Error prevention: Clear validation and confirmation for destructive actions"
|
|
48
|
+
- "Memorability: Infrequent users can return without relearning"
|
|
49
|
+
- id: design-principles
|
|
50
|
+
title: Design Principles
|
|
51
|
+
template: "{{design_principles}}"
|
|
52
|
+
type: numbered-list
|
|
53
|
+
examples:
|
|
54
|
+
- "**Clarity over cleverness** - Prioritize clear communication over aesthetic innovation"
|
|
55
|
+
- "**Progressive disclosure** - Show only what's needed, when it's needed"
|
|
56
|
+
- "**Consistent patterns** - Use familiar UI patterns throughout the application"
|
|
57
|
+
- "**Immediate feedback** - Every action should have a clear, immediate response"
|
|
58
|
+
- "**Accessible by default** - Design for all users from the start"
|
|
59
|
+
- id: changelog
|
|
60
|
+
title: Change Log
|
|
61
|
+
type: table
|
|
62
|
+
columns: [Date, Version, Description, Author]
|
|
63
|
+
instruction: Track document versions and changes
|
|
64
|
+
|
|
65
|
+
- id: information-architecture
|
|
66
|
+
title: Information Architecture (IA)
|
|
67
|
+
instruction: |
|
|
68
|
+
Collaborate with the user to create a comprehensive information architecture:
|
|
69
|
+
|
|
70
|
+
1. Build a Site Map or Screen Inventory showing all major areas
|
|
71
|
+
2. Define the Navigation Structure (primary, secondary, breadcrumbs)
|
|
72
|
+
3. Use Mermaid diagrams for visual representation
|
|
73
|
+
4. Consider user mental models and expected groupings
|
|
74
|
+
elicit: true
|
|
75
|
+
sections:
|
|
76
|
+
- id: sitemap
|
|
77
|
+
title: Site Map / Screen Inventory
|
|
78
|
+
type: mermaid
|
|
79
|
+
mermaid_type: graph
|
|
80
|
+
template: "{{sitemap_diagram}}"
|
|
81
|
+
examples:
|
|
82
|
+
- |
|
|
83
|
+
graph TD
|
|
84
|
+
A[Homepage] --> B[Dashboard]
|
|
85
|
+
A --> C[Products]
|
|
86
|
+
A --> D[Account]
|
|
87
|
+
B --> B1[Analytics]
|
|
88
|
+
B --> B2[Recent Activity]
|
|
89
|
+
C --> C1[Browse]
|
|
90
|
+
C --> C2[Search]
|
|
91
|
+
C --> C3[Product Details]
|
|
92
|
+
D --> D1[Profile]
|
|
93
|
+
D --> D2[Settings]
|
|
94
|
+
D --> D3[Billing]
|
|
95
|
+
- id: navigation-structure
|
|
96
|
+
title: Navigation Structure
|
|
97
|
+
template: |
|
|
98
|
+
**Primary Navigation:** {{primary_nav_description}}
|
|
99
|
+
|
|
100
|
+
**Secondary Navigation:** {{secondary_nav_description}}
|
|
101
|
+
|
|
102
|
+
**Breadcrumb Strategy:** {{breadcrumb_strategy}}
|
|
103
|
+
|
|
104
|
+
- id: user-flows
|
|
105
|
+
title: User Flows
|
|
106
|
+
instruction: |
|
|
107
|
+
For each critical user task identified in the PRD:
|
|
108
|
+
|
|
109
|
+
1. Define the user's goal clearly
|
|
110
|
+
2. Map out all steps including decision points
|
|
111
|
+
3. Consider edge cases and error states
|
|
112
|
+
4. Use Mermaid flow diagrams for clarity
|
|
113
|
+
5. Link to external tools (Figma/Miro) if detailed flows exist there
|
|
114
|
+
|
|
115
|
+
Create subsections for each major flow.
|
|
116
|
+
elicit: true
|
|
117
|
+
repeatable: true
|
|
118
|
+
sections:
|
|
119
|
+
- id: flow
|
|
120
|
+
title: "{{flow_name}}"
|
|
121
|
+
template: |
|
|
122
|
+
**Player Goal:** {{flow_goal}}
|
|
123
|
+
|
|
124
|
+
**Entry Scene:** {{entry_scene}}.tscn
|
|
125
|
+
|
|
126
|
+
**Input Methods:** {{supported_inputs}}
|
|
127
|
+
|
|
128
|
+
**Performance Target:** 60+ FPS throughout
|
|
129
|
+
|
|
130
|
+
**Success Criteria:** {{success_criteria}}
|
|
131
|
+
sections:
|
|
132
|
+
- id: flow-diagram
|
|
133
|
+
title: Flow Diagram
|
|
134
|
+
type: mermaid
|
|
135
|
+
mermaid_type: graph
|
|
136
|
+
template: "{{flow_diagram}}"
|
|
137
|
+
- id: edge-cases
|
|
138
|
+
title: "Edge Cases & Error Handling:"
|
|
139
|
+
type: bullet-list
|
|
140
|
+
template: "- {{edge_case}}"
|
|
141
|
+
- id: notes
|
|
142
|
+
template: "**Notes:** {{flow_notes}}"
|
|
143
|
+
|
|
144
|
+
- id: wireframes-mockups
|
|
145
|
+
title: Wireframes & Mockups
|
|
146
|
+
instruction: |
|
|
147
|
+
Clarify where detailed visual designs will be created (Figma, Sketch, etc.) and how to reference them. If low-fidelity wireframes are needed, offer to help conceptualize layouts for key screens.
|
|
148
|
+
elicit: true
|
|
149
|
+
sections:
|
|
150
|
+
- id: design-files
|
|
151
|
+
template: "**Primary Design Files:** {{design_tool_link}}"
|
|
152
|
+
- id: key-scene-layouts
|
|
153
|
+
title: Key UI Scene Layouts
|
|
154
|
+
repeatable: true
|
|
155
|
+
sections:
|
|
156
|
+
- id: scene
|
|
157
|
+
title: "{{scene_name}}.tscn"
|
|
158
|
+
template: |
|
|
159
|
+
**Purpose:** {{scene_purpose}}
|
|
160
|
+
|
|
161
|
+
**Control Node Hierarchy:**
|
|
162
|
+
```
|
|
163
|
+
Control (root)
|
|
164
|
+
├── MarginContainer
|
|
165
|
+
│ └── VBoxContainer
|
|
166
|
+
│ ├── {{element_1}}
|
|
167
|
+
│ ├── {{element_2}}
|
|
168
|
+
│ └── {{element_3}}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Anchoring Strategy:** {{anchor_preset}}
|
|
172
|
+
|
|
173
|
+
**InputMap Actions:** {{input_actions}}
|
|
174
|
+
|
|
175
|
+
**Performance Impact:** {{fps_impact}}
|
|
176
|
+
|
|
177
|
+
**Theme Resource:** res://themes/{{theme_name}}.tres
|
|
178
|
+
|
|
179
|
+
- id: component-library
|
|
180
|
+
title: Godot UI Component Library
|
|
181
|
+
instruction: |
|
|
182
|
+
Define reusable Godot UI scenes and Control node patterns. Specify theme resources, custom Control classes, and performance considerations. Focus on scene inheritance and instancing patterns.
|
|
183
|
+
elicit: true
|
|
184
|
+
sections:
|
|
185
|
+
- id: godot-ui-approach
|
|
186
|
+
template: |
|
|
187
|
+
**Godot UI Approach:** {{ui_approach}}
|
|
188
|
+
|
|
189
|
+
**Theme Strategy:** {{theme_strategy}}
|
|
190
|
+
- Base Theme: res://themes/base_theme.tres
|
|
191
|
+
- Theme Overrides: {{override_strategy}}
|
|
192
|
+
|
|
193
|
+
**Language Choice:** {{GDScript|C#}} for UI logic
|
|
194
|
+
- Rationale: {{language_reason}}
|
|
195
|
+
- id: core-components
|
|
196
|
+
title: Core Components
|
|
197
|
+
repeatable: true
|
|
198
|
+
sections:
|
|
199
|
+
- id: component
|
|
200
|
+
title: "{{component_name}}"
|
|
201
|
+
template: |
|
|
202
|
+
**Scene Path:** res://ui/components/{{component_name}}.tscn
|
|
203
|
+
|
|
204
|
+
**Purpose:** {{component_purpose}}
|
|
205
|
+
|
|
206
|
+
**Control Type:** {{control_node_type}}
|
|
207
|
+
|
|
208
|
+
**Signals:**
|
|
209
|
+
- {{signal_1}}
|
|
210
|
+
- {{signal_2}}
|
|
211
|
+
|
|
212
|
+
**Export Variables:**
|
|
213
|
+
- @export var {{var_name}}: {{type}}
|
|
214
|
+
|
|
215
|
+
**States:** {{component_states}}
|
|
216
|
+
|
|
217
|
+
**Performance:** {{performance_notes}}
|
|
218
|
+
|
|
219
|
+
**Usage Guidelines:** {{usage_guidelines}}
|
|
220
|
+
|
|
221
|
+
- id: branding-style
|
|
222
|
+
title: Game Visual Style Guide
|
|
223
|
+
instruction: Define visual style for Godot UI using themes, stylebox resources, and shader materials. Ensure consistency across all UI scenes while maintaining 60+ FPS.
|
|
224
|
+
elicit: true
|
|
225
|
+
sections:
|
|
226
|
+
- id: visual-identity
|
|
227
|
+
title: Visual Identity
|
|
228
|
+
template: |
|
|
229
|
+
**Game Art Style:** {{art_style}}
|
|
230
|
+
|
|
231
|
+
**Godot Theme Resources:**
|
|
232
|
+
- Main Theme: res://themes/main_theme.tres
|
|
233
|
+
- Dark Theme: res://themes/dark_theme.tres
|
|
234
|
+
|
|
235
|
+
**StyleBox Resources:**
|
|
236
|
+
- Panel: res://themes/styles/panel_style.tres
|
|
237
|
+
- Button: res://themes/styles/button_style.tres
|
|
238
|
+
- id: color-palette
|
|
239
|
+
title: Color Palette
|
|
240
|
+
type: table
|
|
241
|
+
columns: ["Color Type", "Hex Code", "Usage"]
|
|
242
|
+
rows:
|
|
243
|
+
- ["Primary", "{{primary_color}}", "{{primary_usage}}"]
|
|
244
|
+
- ["Secondary", "{{secondary_color}}", "{{secondary_usage}}"]
|
|
245
|
+
- ["Accent", "{{accent_color}}", "{{accent_usage}}"]
|
|
246
|
+
- ["Success", "{{success_color}}", "Positive feedback, confirmations"]
|
|
247
|
+
- ["Warning", "{{warning_color}}", "Cautions, important notices"]
|
|
248
|
+
- ["Error", "{{error_color}}", "Errors, destructive actions"]
|
|
249
|
+
- ["Neutral", "{{neutral_colors}}", "Text, borders, backgrounds"]
|
|
250
|
+
- id: typography
|
|
251
|
+
title: Typography
|
|
252
|
+
sections:
|
|
253
|
+
- id: font-families
|
|
254
|
+
title: Font Resources
|
|
255
|
+
template: |
|
|
256
|
+
- **Primary:** res://fonts/{{primary_font}}.ttf
|
|
257
|
+
- **Secondary:** res://fonts/{{secondary_font}}.ttf
|
|
258
|
+
- **Monospace:** res://fonts/{{mono_font}}.ttf
|
|
259
|
+
|
|
260
|
+
**Dynamic Font Settings:**
|
|
261
|
+
- Use Mipmaps: true (for scaling)
|
|
262
|
+
- Antialiasing: true
|
|
263
|
+
- Hinting: Light
|
|
264
|
+
- id: type-scale
|
|
265
|
+
title: Type Scale
|
|
266
|
+
type: table
|
|
267
|
+
columns: ["Element", "Size", "Weight", "Line Height"]
|
|
268
|
+
rows:
|
|
269
|
+
- ["H1", "{{h1_size}}", "{{h1_weight}}", "{{h1_line}}"]
|
|
270
|
+
- ["H2", "{{h2_size}}", "{{h2_weight}}", "{{h2_line}}"]
|
|
271
|
+
- ["H3", "{{h3_size}}", "{{h3_weight}}", "{{h3_line}}"]
|
|
272
|
+
- ["Body", "{{body_size}}", "{{body_weight}}", "{{body_line}}"]
|
|
273
|
+
- ["Small", "{{small_size}}", "{{small_weight}}", "{{small_line}}"]
|
|
274
|
+
- id: iconography
|
|
275
|
+
title: Iconography
|
|
276
|
+
template: |
|
|
277
|
+
**Icon Atlas:** res://ui/icons/icon_atlas.png
|
|
278
|
+
|
|
279
|
+
**Icon Size Standards:**
|
|
280
|
+
- Small: 16x16
|
|
281
|
+
- Medium: 32x32
|
|
282
|
+
- Large: 64x64
|
|
283
|
+
|
|
284
|
+
**Texture Import Settings:**
|
|
285
|
+
- Filter: Linear (for smooth scaling)
|
|
286
|
+
- Mipmaps: Generate
|
|
287
|
+
|
|
288
|
+
**Usage Guidelines:** {{icon_guidelines}}
|
|
289
|
+
- id: spacing-layout
|
|
290
|
+
title: Spacing & Layout
|
|
291
|
+
template: |
|
|
292
|
+
**Container System:**
|
|
293
|
+
- MarginContainer: {{margin_values}}
|
|
294
|
+
- Separation (H/VBox): {{separation_pixels}}
|
|
295
|
+
- GridContainer columns: {{grid_columns}}
|
|
296
|
+
|
|
297
|
+
**Anchor Presets:** {{anchor_strategy}}
|
|
298
|
+
|
|
299
|
+
**Spacing Scale:** {{spacing_scale}} (in pixels)
|
|
300
|
+
|
|
301
|
+
**Safe Area Margins:** {{safe_margins}} (for mobile)
|
|
302
|
+
|
|
303
|
+
- id: accessibility
|
|
304
|
+
title: Game Accessibility Requirements
|
|
305
|
+
instruction: Define specific accessibility requirements for Godot game UI, including input remapping through InputMap, visual adjustments through themes, and performance considerations for accessibility features.
|
|
306
|
+
elicit: true
|
|
307
|
+
sections:
|
|
308
|
+
- id: compliance-target
|
|
309
|
+
title: Compliance Target
|
|
310
|
+
template: |
|
|
311
|
+
**Standard:** {{compliance_standard}}
|
|
312
|
+
|
|
313
|
+
**Godot Accessibility Features:**
|
|
314
|
+
- InputMap remapping support
|
|
315
|
+
- Theme system for high contrast
|
|
316
|
+
- Font scaling through DynamicFont
|
|
317
|
+
- Performance: Accessibility features maintain 60+ FPS
|
|
318
|
+
- id: key-requirements
|
|
319
|
+
title: Key Requirements
|
|
320
|
+
template: |
|
|
321
|
+
**Visual (Godot Theme System):**
|
|
322
|
+
- Color contrast ratios: {{contrast_requirements}}
|
|
323
|
+
- Focus indicators: Custom StyleBox for focused state
|
|
324
|
+
- Text sizing: DynamicFont with size range {{min_size}}-{{max_size}}
|
|
325
|
+
- Colorblind modes: Theme variants for different types
|
|
326
|
+
|
|
327
|
+
**Interaction (InputMap):**
|
|
328
|
+
- Full keyboard navigation through ui_* actions
|
|
329
|
+
- Gamepad support with proper button prompts
|
|
330
|
+
- Touch targets: Minimum 44x44 pixels
|
|
331
|
+
- Hold-to-confirm for destructive actions
|
|
332
|
+
- Input buffer: {{buffer_frames}} frames for combo inputs
|
|
333
|
+
|
|
334
|
+
**Performance:**
|
|
335
|
+
- Accessibility features maintain 60+ FPS
|
|
336
|
+
- No additional draw calls for focus indicators
|
|
337
|
+
- Theme switching without frame drops
|
|
338
|
+
- id: testing-strategy
|
|
339
|
+
title: Testing Strategy
|
|
340
|
+
template: |
|
|
341
|
+
**Godot-Specific Testing:**
|
|
342
|
+
- InputMap verification for all UI actions
|
|
343
|
+
- Theme contrast validation
|
|
344
|
+
- Performance testing with accessibility features enabled
|
|
345
|
+
- Touch target size verification
|
|
346
|
+
- {{additional_testing}}
|
|
347
|
+
|
|
348
|
+
- id: responsiveness
|
|
349
|
+
title: Godot UI Responsiveness Strategy
|
|
350
|
+
instruction: Define viewport scaling, anchor presets, and Control node adaptation strategies for different screen sizes. Consider Godot's stretch modes and aspect ratios while maintaining 60+ FPS.
|
|
351
|
+
elicit: true
|
|
352
|
+
sections:
|
|
353
|
+
- id: viewport-settings
|
|
354
|
+
title: Viewport Configuration
|
|
355
|
+
template: |
|
|
356
|
+
**Project Settings:**
|
|
357
|
+
- Base Resolution: {{base_width}}x{{base_height}}
|
|
358
|
+
- Stretch Mode: {{canvas_items|viewport|2d}}
|
|
359
|
+
- Stretch Aspect: {{keep|keep_width|keep_height|expand}}
|
|
360
|
+
|
|
361
|
+
**Resolution Support:**
|
|
362
|
+
| Resolution | Aspect | Platform | UI Scale |
|
|
363
|
+
|------------|--------|----------|----------|
|
|
364
|
+
| 1280x720 | 16:9 | Mobile | 1.0x |
|
|
365
|
+
| 1920x1080 | 16:9 | Desktop | 1.5x |
|
|
366
|
+
| 2560x1440 | 16:9 | Desktop | 2.0x |
|
|
367
|
+
| {{custom}} | {{asp}}| {{plat}} | {{scale}}|
|
|
368
|
+
- id: adaptation-patterns
|
|
369
|
+
title: Godot UI Adaptation Patterns
|
|
370
|
+
template: |
|
|
371
|
+
**Anchor Presets:**
|
|
372
|
+
- Mobile: Full Rect with margins
|
|
373
|
+
- Desktop: Center with fixed size
|
|
374
|
+
- Wide: Proportional margins
|
|
375
|
+
|
|
376
|
+
**Container Adjustments:**
|
|
377
|
+
- Mobile: VBoxContainer for vertical layout
|
|
378
|
+
- Desktop: HBoxContainer or GridContainer
|
|
379
|
+
|
|
380
|
+
**Control Visibility:**
|
|
381
|
+
- Hide/show nodes based on viewport size
|
|
382
|
+
- Use Control.visible property
|
|
383
|
+
|
|
384
|
+
**Font Scaling:**
|
|
385
|
+
- DynamicFont size based on viewport
|
|
386
|
+
- Maintain readability at all scales
|
|
387
|
+
|
|
388
|
+
**Performance:** All adaptations maintain 60+ FPS
|
|
389
|
+
|
|
390
|
+
- id: animation
|
|
391
|
+
title: Godot UI Animation & Transitions
|
|
392
|
+
instruction: Define AnimationPlayer and Tween-based animations for UI. Ensure all animations maintain 60+ FPS and can be disabled for accessibility.
|
|
393
|
+
elicit: true
|
|
394
|
+
sections:
|
|
395
|
+
- id: motion-principles
|
|
396
|
+
title: Motion Principles
|
|
397
|
+
template: |
|
|
398
|
+
**Godot Animation Guidelines:**
|
|
399
|
+
- Use AnimationPlayer for complex sequences
|
|
400
|
+
- Use Tweens for simple property animations
|
|
401
|
+
- All animations < 0.3s for responsiveness
|
|
402
|
+
- Maintain 60+ FPS during animations
|
|
403
|
+
- Provide animation_speed setting for accessibility
|
|
404
|
+
|
|
405
|
+
{{additional_principles}}
|
|
406
|
+
- id: key-animations
|
|
407
|
+
title: Key UI Animations
|
|
408
|
+
repeatable: true
|
|
409
|
+
template: |
|
|
410
|
+
- **{{animation_name}}:**
|
|
411
|
+
- Method: {{AnimationPlayer|Tween}}
|
|
412
|
+
- Properties: {{animated_properties}}
|
|
413
|
+
- Duration: {{duration}}s
|
|
414
|
+
- Easing: {{Trans.LINEAR|Trans.QUAD|Trans.CUBIC}}
|
|
415
|
+
- Performance Impact: {{fps_impact}}
|
|
416
|
+
- Can Disable: {{yes|no}}
|
|
417
|
+
|
|
418
|
+
- id: performance
|
|
419
|
+
title: UI Performance Requirements
|
|
420
|
+
instruction: Define Godot UI performance goals ensuring 60+ FPS is maintained. Consider draw calls, Control node count, and theme complexity.
|
|
421
|
+
sections:
|
|
422
|
+
- id: performance-goals
|
|
423
|
+
title: Performance Goals
|
|
424
|
+
template: |
|
|
425
|
+
- **Frame Rate:** 60+ FPS mandatory (frame time <16.67ms)
|
|
426
|
+
- **Scene Load:** <3 seconds for UI scene transitions
|
|
427
|
+
- **Input Response:** <50ms (3 frames at 60 FPS)
|
|
428
|
+
- **Draw Calls:** UI should add <20 draw calls
|
|
429
|
+
- **Control Nodes:** <100 active Control nodes per scene
|
|
430
|
+
- **Theme Complexity:** <10 StyleBox resources active
|
|
431
|
+
- id: optimization-strategies
|
|
432
|
+
title: Godot UI Optimization Strategies
|
|
433
|
+
template: |
|
|
434
|
+
**Node Optimization:**
|
|
435
|
+
- Use scene instancing for repeated UI elements
|
|
436
|
+
- Hide off-screen Control nodes (visible = false)
|
|
437
|
+
- Pool dynamic UI elements (popups, tooltips)
|
|
438
|
+
|
|
439
|
+
**Rendering Optimization:**
|
|
440
|
+
- Batch UI draw calls through theme consistency
|
|
441
|
+
- Use nine-patch rect for scalable backgrounds
|
|
442
|
+
- Minimize transparent overlays
|
|
443
|
+
|
|
444
|
+
**Update Optimization:**
|
|
445
|
+
- Use signals instead of polling for UI updates
|
|
446
|
+
- Update UI only when values change
|
|
447
|
+
- Batch multiple UI updates in single frame
|
|
448
|
+
|
|
449
|
+
**Language Choice:**
|
|
450
|
+
- GDScript for simple UI logic (with static typing)
|
|
451
|
+
- C# for complex UI systems (inventory, crafting)
|
|
452
|
+
|
|
453
|
+
{{additional_strategies}}
|
|
454
|
+
|
|
455
|
+
- id: godot-implementation
|
|
456
|
+
title: Godot UI Implementation Guide
|
|
457
|
+
instruction: |
|
|
458
|
+
Define specific Godot implementation details for UI developers including scene structure, script organization, and resource management.
|
|
459
|
+
sections:
|
|
460
|
+
- id: scene-organization
|
|
461
|
+
title: UI Scene Organization
|
|
462
|
+
template: |
|
|
463
|
+
**Scene Structure:**
|
|
464
|
+
```
|
|
465
|
+
res://
|
|
466
|
+
├── ui/
|
|
467
|
+
│ ├── scenes/
|
|
468
|
+
│ │ ├── main_menu.tscn
|
|
469
|
+
│ │ ├── hud.tscn
|
|
470
|
+
│ │ └── {{scene}}.tscn
|
|
471
|
+
│ ├── components/
|
|
472
|
+
│ │ ├── button.tscn
|
|
473
|
+
│ │ └── {{component}}.tscn
|
|
474
|
+
│ └── popups/
|
|
475
|
+
│ └── {{popup}}.tscn
|
|
476
|
+
```
|
|
477
|
+
|
|
478
|
+
**Script Organization:**
|
|
479
|
+
- UI Logic: GDScript with static typing
|
|
480
|
+
- Performance-critical: C# for complex systems
|
|
481
|
+
- Autoload: UI manager singleton
|
|
482
|
+
- id: theme-resources
|
|
483
|
+
title: Theme Resource Setup
|
|
484
|
+
template: |
|
|
485
|
+
**Theme Hierarchy:**
|
|
486
|
+
- Base Theme: res://themes/base_theme.tres
|
|
487
|
+
- Variations: {{theme_variations}}
|
|
488
|
+
|
|
489
|
+
**Resource Preloading:**
|
|
490
|
+
- Preload frequently used UI scenes
|
|
491
|
+
- Load themes at startup
|
|
492
|
+
- Cache StyleBox resources
|
|
493
|
+
- id: input-configuration
|
|
494
|
+
title: InputMap Configuration
|
|
495
|
+
template: |
|
|
496
|
+
**UI Actions:**
|
|
497
|
+
- ui_accept: Space, Enter, Gamepad A
|
|
498
|
+
- ui_cancel: Escape, Gamepad B
|
|
499
|
+
- ui_up/down/left/right: Arrow keys, WASD, D-pad
|
|
500
|
+
- ui_focus_next: Tab, Gamepad RB
|
|
501
|
+
- ui_focus_prev: Shift+Tab, Gamepad LB
|
|
502
|
+
- {{custom_actions}}
|
|
503
|
+
|
|
504
|
+
**Touch Gestures:**
|
|
505
|
+
- Tap: ui_accept
|
|
506
|
+
- Swipe: Navigation
|
|
507
|
+
- Pinch: Zoom (if applicable)
|
|
508
|
+
|
|
509
|
+
- id: next-steps
|
|
510
|
+
title: Next Steps
|
|
511
|
+
instruction: |
|
|
512
|
+
After completing the Godot UI/UX specification:
|
|
513
|
+
|
|
514
|
+
1. Review with game design team
|
|
515
|
+
2. Create UI mockups considering Godot's Control nodes
|
|
516
|
+
3. Prepare theme resources and StyleBoxes
|
|
517
|
+
4. Set up TDD with GUT tests for UI components
|
|
518
|
+
5. Note performance requirements (60+ FPS)
|
|
519
|
+
sections:
|
|
520
|
+
- id: immediate-actions
|
|
521
|
+
title: Immediate Actions
|
|
522
|
+
type: numbered-list
|
|
523
|
+
template: |
|
|
524
|
+
1. Create base theme resource (res://themes/base_theme.tres)
|
|
525
|
+
2. Set up UI scene templates with proper anchoring
|
|
526
|
+
3. Configure InputMap for UI navigation
|
|
527
|
+
4. Write GUT tests for UI components
|
|
528
|
+
5. Profile UI scenes to ensure 60+ FPS
|
|
529
|
+
6. {{additional_action}}
|
|
530
|
+
- id: godot-handoff-checklist
|
|
531
|
+
title: Godot UI Handoff Checklist
|
|
532
|
+
type: checklist
|
|
533
|
+
items:
|
|
534
|
+
- "All UI scenes mapped with .tscn files"
|
|
535
|
+
- "Control node hierarchies defined"
|
|
536
|
+
- "Theme resources prepared"
|
|
537
|
+
- "InputMap actions configured"
|
|
538
|
+
- "Anchor presets documented"
|
|
539
|
+
- "60+ FPS performance validated"
|
|
540
|
+
- "GUT test coverage planned"
|
|
541
|
+
- "Language strategy decided (GDScript vs C#)"
|
|
542
|
+
- "Accessibility features implemented"
|
|
543
|
+
- "Touch controls configured"
|
|
544
|
+
|
|
545
|
+
- id: godot-ui-patterns
|
|
546
|
+
title: Godot UI Design Patterns
|
|
547
|
+
instruction: Document common Godot UI patterns and best practices used in the game.
|
|
548
|
+
sections:
|
|
549
|
+
- id: common-patterns
|
|
550
|
+
title: Common UI Patterns
|
|
551
|
+
template: |
|
|
552
|
+
**Dialog System:**
|
|
553
|
+
- Use PopupPanel nodes for modal dialogs
|
|
554
|
+
- AcceptDialog/ConfirmationDialog for prompts
|
|
555
|
+
- Signal pattern: dialog.popup_hide.connect(callback)
|
|
556
|
+
|
|
557
|
+
**Menu Navigation:**
|
|
558
|
+
- TabContainer for multi-page interfaces
|
|
559
|
+
- Tree node for hierarchical menus
|
|
560
|
+
- Focus management with grab_focus()
|
|
561
|
+
|
|
562
|
+
**HUD Layout:**
|
|
563
|
+
- MarginContainer for screen edges
|
|
564
|
+
- Anchor presets for corner elements
|
|
565
|
+
- CanvasLayer for overlay UI (stays on top)
|
|
566
|
+
|
|
567
|
+
**Inventory Grid:**
|
|
568
|
+
- GridContainer with fixed columns
|
|
569
|
+
- ItemList for scrollable lists
|
|
570
|
+
- Drag and drop with Control._gui_input()
|
|
571
|
+
|
|
572
|
+
**Health/Mana Bars:**
|
|
573
|
+
- ProgressBar with custom StyleBox
|
|
574
|
+
- TextureProgressBar for themed bars
|
|
575
|
+
- Tween for smooth value changes
|
|
576
|
+
- id: signal-patterns
|
|
577
|
+
title: UI Signal Patterns
|
|
578
|
+
template: |
|
|
579
|
+
**Button Signals:**
|
|
580
|
+
```gdscript
|
|
581
|
+
button.pressed.connect(_on_button_pressed)
|
|
582
|
+
button.button_down.connect(_on_button_down)
|
|
583
|
+
button.toggled.connect(_on_button_toggled)
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
**Input Handling:**
|
|
587
|
+
```gdscript
|
|
588
|
+
func _gui_input(event: InputEvent) -> void:
|
|
589
|
+
if event.is_action_pressed("ui_accept"):
|
|
590
|
+
# Handle input with 60+ FPS maintained
|
|
591
|
+
```
|
|
592
|
+
|
|
593
|
+
**Custom Signals:**
|
|
594
|
+
```gdscript
|
|
595
|
+
signal value_changed(new_value: float)
|
|
596
|
+
signal item_selected(item_id: int)
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
- id: checklist-results
|
|
600
|
+
title: Checklist Results
|
|
601
|
+
instruction: If a Godot UI/UX checklist exists, run it against this document and report results here.
|