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.
Files changed (105) hide show
  1. package/CONTRIBUTING.md +2 -9
  2. package/README.md +0 -98
  3. package/bmad-core/agents/bmad-master.md +6 -6
  4. package/bmad-core/data/bmad-kb.md +1 -0
  5. package/bmad-core/tasks/validate-next-story.md +1 -1
  6. package/bmad-core/templates/brownfield-architecture-tmpl.yaml +5 -5
  7. package/dist/agents/analyst.txt +1 -0
  8. package/dist/agents/architect.txt +5 -5
  9. package/dist/agents/bmad-master.txt +12 -11
  10. package/dist/agents/bmad-orchestrator.txt +1 -0
  11. package/dist/agents/dev.txt +1 -1
  12. package/dist/agents/po.txt +1 -1
  13. package/dist/expansion-packs/bmad-2d-unity-game-dev/agents/game-developer.txt +1 -1
  14. package/dist/expansion-packs/bmad-2d-unity-game-dev/teams/unity-2d-game-team.txt +1 -1
  15. package/dist/expansion-packs/bmad-godot-game-dev/agents/bmad-orchestrator.txt +1513 -0
  16. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-analyst.txt +3190 -0
  17. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-architect.txt +4499 -0
  18. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-designer.txt +3925 -0
  19. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-developer.txt +666 -0
  20. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-pm.txt +2381 -0
  21. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-po.txt +1612 -0
  22. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-qa.txt +1745 -0
  23. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-sm.txt +1208 -0
  24. package/dist/expansion-packs/bmad-godot-game-dev/agents/game-ux-expert.txt +958 -0
  25. package/dist/expansion-packs/bmad-godot-game-dev/teams/godot-game-team.txt +27721 -0
  26. package/dist/teams/team-all.txt +7 -6
  27. package/dist/teams/team-fullstack.txt +7 -6
  28. package/dist/teams/team-ide-minimal.txt +2 -1
  29. package/dist/teams/team-no-ui.txt +7 -6
  30. package/docs/GUIDING-PRINCIPLES.md +3 -3
  31. package/docs/expansion-packs.md +3 -83
  32. package/docs/flattener.md +91 -0
  33. package/docs/versions.md +1 -1
  34. package/docs/working-in-the-brownfield.md +15 -6
  35. package/expansion-packs/bmad-godot-game-dev/README.md +244 -0
  36. package/expansion-packs/bmad-godot-game-dev/agent-teams/godot-game-team.yaml +18 -0
  37. package/expansion-packs/bmad-godot-game-dev/agents/bmad-orchestrator.md +147 -0
  38. package/expansion-packs/bmad-godot-game-dev/agents/game-analyst.md +84 -0
  39. package/expansion-packs/bmad-godot-game-dev/agents/game-architect.md +146 -0
  40. package/expansion-packs/bmad-godot-game-dev/agents/game-designer.md +78 -0
  41. package/expansion-packs/bmad-godot-game-dev/agents/game-developer.md +124 -0
  42. package/expansion-packs/bmad-godot-game-dev/agents/game-pm.md +82 -0
  43. package/expansion-packs/bmad-godot-game-dev/agents/game-po.md +115 -0
  44. package/expansion-packs/bmad-godot-game-dev/agents/game-qa.md +160 -0
  45. package/expansion-packs/bmad-godot-game-dev/agents/game-sm.md +66 -0
  46. package/expansion-packs/bmad-godot-game-dev/agents/game-ux-expert.md +75 -0
  47. package/expansion-packs/bmad-godot-game-dev/checklists/game-architect-checklist.md +377 -0
  48. package/expansion-packs/bmad-godot-game-dev/checklists/game-change-checklist.md +250 -0
  49. package/expansion-packs/bmad-godot-game-dev/checklists/game-design-checklist.md +225 -0
  50. package/expansion-packs/bmad-godot-game-dev/checklists/game-po-checklist.md +448 -0
  51. package/expansion-packs/bmad-godot-game-dev/checklists/game-story-dod-checklist.md +202 -0
  52. package/expansion-packs/bmad-godot-game-dev/config.yaml +30 -0
  53. package/expansion-packs/bmad-godot-game-dev/data/bmad-kb.md +811 -0
  54. package/expansion-packs/bmad-godot-game-dev/data/brainstorming-techniques.md +36 -0
  55. package/expansion-packs/bmad-godot-game-dev/data/development-guidelines.md +893 -0
  56. package/expansion-packs/bmad-godot-game-dev/data/elicitation-methods.md +156 -0
  57. package/expansion-packs/bmad-godot-game-dev/data/technical-preferences.md +3 -0
  58. package/expansion-packs/bmad-godot-game-dev/tasks/advanced-elicitation.md +110 -0
  59. package/expansion-packs/bmad-godot-game-dev/tasks/apply-qa-fixes.md +224 -0
  60. package/expansion-packs/bmad-godot-game-dev/tasks/brownfield-create-epic.md +162 -0
  61. package/expansion-packs/bmad-godot-game-dev/tasks/brownfield-create-story.md +149 -0
  62. package/expansion-packs/bmad-godot-game-dev/tasks/correct-course-game.md +159 -0
  63. package/expansion-packs/bmad-godot-game-dev/tasks/create-deep-research-prompt.md +278 -0
  64. package/expansion-packs/bmad-godot-game-dev/tasks/create-doc.md +103 -0
  65. package/expansion-packs/bmad-godot-game-dev/tasks/create-game-story.md +202 -0
  66. package/expansion-packs/bmad-godot-game-dev/tasks/document-project.md +343 -0
  67. package/expansion-packs/bmad-godot-game-dev/tasks/execute-checklist.md +88 -0
  68. package/expansion-packs/bmad-godot-game-dev/tasks/facilitate-brainstorming-session.md +136 -0
  69. package/expansion-packs/bmad-godot-game-dev/tasks/game-brownfield-create-epic.md +160 -0
  70. package/expansion-packs/bmad-godot-game-dev/tasks/game-brownfield-create-story.md +147 -0
  71. package/expansion-packs/bmad-godot-game-dev/tasks/game-design-brainstorming.md +290 -0
  72. package/expansion-packs/bmad-godot-game-dev/tasks/game-risk-profile.md +368 -0
  73. package/expansion-packs/bmad-godot-game-dev/tasks/game-test-design.md +219 -0
  74. package/expansion-packs/bmad-godot-game-dev/tasks/generate-ai-frontend-prompt.md +51 -0
  75. package/expansion-packs/bmad-godot-game-dev/tasks/kb-mode-interaction.md +77 -0
  76. package/expansion-packs/bmad-godot-game-dev/tasks/review-game-story.md +364 -0
  77. package/expansion-packs/bmad-godot-game-dev/tasks/shard-doc.md +187 -0
  78. package/expansion-packs/bmad-godot-game-dev/tasks/validate-game-story.md +208 -0
  79. package/expansion-packs/bmad-godot-game-dev/templates/brainstorming-output-tmpl.yaml +156 -0
  80. package/expansion-packs/bmad-godot-game-dev/templates/brownfield-prd-tmpl.yaml +281 -0
  81. package/expansion-packs/bmad-godot-game-dev/templates/competitor-analysis-tmpl.yaml +306 -0
  82. package/expansion-packs/bmad-godot-game-dev/templates/game-architecture-tmpl.yaml +1111 -0
  83. package/expansion-packs/bmad-godot-game-dev/templates/game-brief-tmpl.yaml +356 -0
  84. package/expansion-packs/bmad-godot-game-dev/templates/game-design-doc-tmpl.yaml +724 -0
  85. package/expansion-packs/bmad-godot-game-dev/templates/game-prd-tmpl.yaml +209 -0
  86. package/expansion-packs/bmad-godot-game-dev/templates/game-qa-gate-tmpl.yaml +186 -0
  87. package/expansion-packs/bmad-godot-game-dev/templates/game-story-tmpl.yaml +406 -0
  88. package/expansion-packs/bmad-godot-game-dev/templates/game-ui-spec-tmpl.yaml +601 -0
  89. package/expansion-packs/bmad-godot-game-dev/templates/level-design-doc-tmpl.yaml +620 -0
  90. package/expansion-packs/bmad-godot-game-dev/templates/market-research-tmpl.yaml +418 -0
  91. package/expansion-packs/bmad-godot-game-dev/utils/bmad-doc-template.md +327 -0
  92. package/expansion-packs/bmad-godot-game-dev/utils/workflow-management.md +71 -0
  93. package/expansion-packs/bmad-godot-game-dev/workflows/game-dev-greenfield.yaml +245 -0
  94. package/expansion-packs/bmad-godot-game-dev/workflows/game-prototype.yaml +213 -0
  95. package/package.json +1 -1
  96. package/release_notes.md +19 -2
  97. package/tools/flattener/ignoreRules.js +2 -0
  98. package/tools/installer/bin/bmad.js +37 -1
  99. package/tools/installer/config/install.config.yaml +35 -7
  100. package/tools/installer/lib/ide-setup.js +285 -80
  101. package/tools/installer/lib/installer.js +6 -1
  102. package/tools/installer/package.json +1 -1
  103. package/tools/upgraders/v3-to-v4-upgrader.js +1 -0
  104. package/test.md +0 -1
  105. /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.