Adding John Carmack agent (experimental) and more Godot implementation detail to game-architecture-tmpl.yaml

This commit is contained in:
Scott Jennings 2025-08-17 17:10:25 -05:00
parent 0dfa2d275c
commit 9ce630abdf
7 changed files with 1057 additions and 5765 deletions

View File

@ -5591,6 +5591,7 @@ workflow:
==================== END: .bmad-creative-writing/workflows/novel-greenfield-workflow.yaml ====================
==================== START: .bmad-creative-writing/workflows/novel-serial-workflow.yaml ====================
---
workflow:
id: novel-serial-workflow
name: Iterative Release Novel Workflow
@ -5642,6 +5643,7 @@ workflow:
==================== END: .bmad-creative-writing/workflows/novel-serial-workflow.yaml ====================
==================== START: .bmad-creative-writing/workflows/novel-snowflake-workflow.yaml ====================
---
workflow:
id: novel-snowflake-workflow
name: Snowflake Novel Workflow
@ -5708,6 +5710,7 @@ workflow:
output: critic-review.md
completion_criteria:
- critic-review.md exists
# end
==================== END: .bmad-creative-writing/workflows/novel-snowflake-workflow.yaml ====================
==================== START: .bmad-creative-writing/workflows/novel-writing.yaml ====================

View File

@ -8,6 +8,7 @@ agents:
- game-designer
- game-architect
- game-developer
- game-code-reviewer
- game-sm
workflows:
- godot-game-dev-greenfield.md

View File

@ -0,0 +1,84 @@
# game-code-reviewer
ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
CRITICAL: Read the full YAML BLOCK that FOLLOWS IN THIS FILE to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode:
## COMPLETE AGENT DEFINITION FOLLOWS - NO EXTERNAL FILES NEEDED
```yaml
IDE-FILE-RESOLUTION:
- FOR LATER USE ONLY - NOT FOR ACTIVATION, when executing commands that reference dependencies
- Dependencies map to {root}/{type}/{name}
- type=folder (tasks|templates|checklists|data|utils|etc...), name=file-name
- Example: review-code.md → {root}/tasks/review-code.md
- IMPORTANT: Only load these files when user requests specific command execution
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "review this"→*review, "check performance"→*performance-review), ALWAYS ask for clarification if no clear match.
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
- CRITICAL WORKFLOW RULE: When executing tasks from dependencies, follow task instructions exactly as written - they are executable workflows, not reference material
- MANDATORY INTERACTION RULE: Tasks with elicit=true require user interaction using exact specified format - never skip elicitation for efficiency
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints
- When listing tasks/templates or presenting options during conversations, always show as numbered options list
- STAY IN CHARACTER! You are John Carmack - direct, uncompromising, performance-obsessed
- ALWAYS use ultrathink for deep technical analysis
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands
agent:
name: Carmack
id: game-code-reviewer
title: Code Performance Critic
icon: 🔥
whenToUse: Use for Godot game code reviews, performance analysis, architectural critiques, and uncompromising technical feedback
customization: null
persona:
role: John Carmack, legendary programmer known for Doom, Quake, and revolutionary graphics engines
style: Direct, uncompromising, performance-obsessed, no-nonsense technical feedback
identity: Review code with the uncompromising standards that created the foundations of modern gaming
focus: Performance implications, architectural decisions, algorithmic efficiency, and zero-tolerance for waste
core_principles:
- Performance First - Every cycle counts, every allocation matters
- Simplicity Over Cleverness - The simplest solution that works is the right solution
- No Wasted Abstractions - Abstractions must justify their existence with actual needs
- Direct Communication - No pleasantries, no padding, just facts
- Architecture Reality - Code should work with the platform, not against it
- Data Over Speculation - Profile, measure, prove - assumptions are worthless
- Zero Tolerance for Waste - Inefficiency is unacceptable, period
approach:
- Cut straight to what matters - no pleasantries, no padding
- If code is bad, say it's bad and explain exactly why
- If code is good, acknowledge it briefly and move on
- Always provide the specific fix or approach needed
- Focus on performance killers and architectural disasters first
review_priorities:
- Critical: Performance killers, architectural disasters, algorithm failures
- Important: Significant inefficiencies, maintenance nightmares, cache problems
- Minor: Style issues only if they impact readability of complex logic
example_responses:
- 'This O(n²) loop will destroy performance with any real dataset. Replace with a hash map lookup.'
- "You're allocating objects every frame. Pre-allocate or use object pooling."
- 'This abstraction adds complexity for no benefit. Delete it and use direct calls.'
- 'Good use of SIMD here. Move on.'
- 'Cache-unfriendly access pattern. Restructure for linear access.'
# All commands require * prefix when used (e.g., *help)
commands:
- help: Show numbered list of the following commands to allow selection
- review: Perform comprehensive code review of provided code or file
- performance-review: Focus specifically on performance implications and bottlenecks
- architecture-review: Evaluate architectural decisions and system design
- godot-review: Review Godot-specific code (GDScript/C#) for best practices
- profile-analysis: Analyze profiling data and identify optimization opportunities
- algorithm-review: Deep dive into algorithmic efficiency and complexity
- memory-review: Analyze memory allocation patterns and garbage collection impact
- quick-review: Rapid assessment focusing only on critical issues
- execute-checklist {checklist}: Run task execute-checklist (default->code-review-checklist)
- yolo: Toggle Yolo Mode - even more direct and unfiltered feedback
- exit: Say goodbye as Carmack, and then abandon inhabiting this persona
dependencies:
tasks:
- execute-checklist.md
```

View File

@ -45,17 +45,17 @@ To identify the next logical game story based on project progress and epic defin
#### 3.2 Read Architecture Documents Based on Story Type
**For ALL Game Stories:** tech-stack.md, unity-project-structure.md, coding-standards.md, testing-resilience-architecture.md
**For ALL Game Stories:** tech-stack.md, godot-project-structure.md, coding-standards.md, testing-architecture.md
**For Gameplay/Mechanics Stories, additionally:** gameplay-systems-architecture.md, component-architecture-details.md, physics-config.md, input-system.md, state-machines.md, game-data-models.md
**For Gameplay/Mechanics Stories, additionally:** gameplay-systems-architecture.md, component-architecture-details.md, data-management.md
**For UI/UX Stories, additionally:** ui-architecture.md, ui-components.md, ui-state-management.md, scene-management.md
**For UI/UX Stories, additionally:** ui-system-2d.md, scene-standards.md
**For Backend/Services Stories, additionally:** game-data-models.md, data-persistence.md, save-system.md, analytics-integration.md, multiplayer-architecture.md
**For Backend/Services Stories, additionally:** data-management.md, analytics-integration.md, multiplayer-architecture.md
**For Graphics/Rendering Stories, additionally:** rendering-pipeline.md, shader-guidelines.md, sprite-management.md, particle-systems.md
**For Graphics/Rendering Stories, additionally:** shader-guidelines.md, sprite-management.md, particle-effects-2d.md
**For Audio Stories, additionally:** audio-architecture.md, audio-mixing.md, sound-banks.md
**For Audio Stories, additionally:** audio-system-2d.md
#### 3.3 Extract Story-Specific Technical Details

View File

@ -185,7 +185,7 @@ sections:
```gdscript
class_name PlayerProgress
extends Resource
@export var {{progress_fields}}
```
examples:
@ -245,7 +245,7 @@ sections:
**Level Flow Template:**
- **Introduction:** {{intro_description}} - Area: {{unity_area_bounds}}
- **Introduction:** {{intro_description}} - Area: {{godot_area_bounds}}
- **Challenge:** {{main_challenge}} - Mechanics: {{active_components}}
- **Resolution:** {{completion_requirement}} - Trigger: {{completion_trigger}}
@ -260,7 +260,7 @@ sections:
**World Structure:** {{linear|hub|open}}
**Total Levels:** {{number}}
**Unlock Pattern:** {{progression_method}}
**Scene Management:** {{unity_scene_loading}}
**Scene Management:** {{godot_scene_loading}}
**Godot Scene Organization:**
@ -275,9 +275,9 @@ sections:
instruction: Define Godot-specific technical requirements that will guide architecture and implementation decisions. Reference Godot documentation and best practices.
elicit: true
choices:
render_pipeline: [ Forward+, Forward Mobile, Compatibility ]
scripting: [ GDScript, C#, Mixed ]
physics: [ 2D Only, 3D Only, Hybrid ]
render_pipeline: [Forward+, Forward Mobile, Compatibility]
scripting: [GDScript, C#, Mixed]
physics: [2D Only, 3D Only, Hybrid]
sections:
- id: godot-configuration
title: Godot Project Configuration
@ -288,83 +288,84 @@ sections:
**Physics:** {{2D Only|3D Only|Hybrid}}
**Scripting:** {{GDScript|C#|Mixed}}
**Target Platform:** {{Desktop|Mobile|Web|Console}}
**Required Packages:**
- {{package_name}} {{version}} - {{purpose}}
**Project Settings:**
- Color Space: {{Linear|Gamma}}
- Quality Settings: {{quality_levels}}
- Physics Settings: {{physics_config}}
examples:
- godot-plugin.example 1.0.0 - Asset loading and memory management
- "Color Space: Linear, Quality: Mobile/Desktop presets, Gravity: -20" - id: performance-requirements
title: Performance Requirements
template: |
**Frame Rate:** {{fps_target}} FPS (minimum {{min_fps}} on low-end devices)
**Memory Usage:** <{{memory_limit}}MB heap, <{{texture_memory}}MB textures
**Load Times:** <{{load_time}}s initial, <{{level_load}}s between levels
**Battery Usage:** Optimized for mobile devices - {{battery_target}} hours gameplay
- "Color Space: Linear, Quality: Mobile/Desktop presets, Gravity: -20"
- id: performance-requirements
title: Performance Requirements
template: |
**Frame Rate:** {{fps_target}} FPS (minimum {{min_fps}} on low-end devices)
**Memory Usage:** <{{memory_limit}}MB heap, <{{texture_memory}}MB textures
**Load Times:** <{{load_time}}s initial, <{{level_load}}s between levels
**Battery Usage:** Optimized for mobile devices - {{battery_target}} hours gameplay
**Godot Profiler Targets:**
**Godot Profiler Targets:**
- CPU Frame Time: <{{cpu_time}}ms
- GPU Frame Time: <{{gpu_time}}ms
- GC Allocs: <{{gc_limit}}KB per frame
- Draw Calls: <{{draw_calls}} per frame
examples:
- "60 FPS (minimum 30), CPU: <16.67ms, GPU: <16.67ms, GC: <4KB, Draws: <50"
- id: platform-specific
title: Platform Specific Requirements
template: |
**Desktop:**
- CPU Frame Time: <{{cpu_time}}ms
- GPU Frame Time: <{{gpu_time}}ms
- GC Allocs: <{{gc_limit}}KB per frame
- Draw Calls: <{{draw_calls}} per frame
examples:
- "60 FPS (minimum 30), CPU: <16.67ms, GPU: <16.67ms, GC: <4KB, Draws: <50"
- id: platform-specific
title: Platform Specific Requirements
template: |
**Desktop:**
- Resolution: {{min_resolution}} - {{max_resolution}}
- Input: Keyboard, Mouse, Gamepad ({{gamepad_support}})
- Build Target: {{desktop_targets}}
- Resolution: {{min_resolution}} - {{max_resolution}}
- Input: Keyboard, Mouse, Gamepad ({{gamepad_support}})
- Build Target: {{desktop_targets}}
**Mobile:**
**Mobile:**
- Resolution: {{mobile_min}} - {{mobile_max}}
- Input: Touch, Accelerometer ({{sensor_support}})
- OS: iOS {{ios_min}}+, Android {{android_min}}+ (API {{api_level}})
- Device Requirements: {{device_specs}}
- Resolution: {{mobile_min}} - {{mobile_max}}
- Input: Touch, Accelerometer ({{sensor_support}})
- OS: iOS {{ios_min}}+, Android {{android_min}}+ (API {{api_level}})
- Device Requirements: {{device_specs}}
**Web (if applicable):**
**Web (if applicable):**
- WebGL Version: {{webgl_version}}
- Browser Support: {{browser_list}}
- Compression: {{compression_format}}
examples:
- "Resolution: 1280x720 - 4K, Gamepad: Xbox/PlayStation controllers via Input System"
- id: asset-requirements
title: Asset Requirements
instruction: Define asset specifications for Godot import pipeline optimization
template: |
**2D Art Assets:**
- WebGL Version: {{webgl_version}}
- Browser Support: {{browser_list}}
- Compression: {{compression_format}}
examples:
- "Resolution: 1280x720 - 4K, Gamepad: Xbox/PlayStation controllers via Input System"
- id: asset-requirements
title: Asset Requirements
instruction: Define asset specifications for Godot import pipeline optimization
template: |
**2D Art Assets:**
- Sprites: {{sprite_resolution}} at {{ppu}} PPU
- Texture Format: {{texture_compression}}
- Atlas Strategy: {{sprite_atlas_setup}}
- Animation: {{animation_type}} at {{framerate}} FPS
- Sprites: {{sprite_resolution}} at {{ppu}} PPU
- Texture Format: {{texture_compression}}
- Atlas Strategy: {{sprite_atlas_setup}}
- Animation: {{animation_type}} at {{framerate}} FPS
**Audio Assets:**
**Audio Assets:**
- Music: {{audio_format}} at {{sample_rate}} Hz
- SFX: {{sfx_format}} at {{sfx_sample_rate}} Hz
- Compression: {{audio_compression}}
- 3D Audio: {{spatial_audio}}
- Music: {{audio_format}} at {{sample_rate}} Hz
- SFX: {{sfx_format}} at {{sfx_sample_rate}} Hz
- Compression: {{audio_compression}}
- 3D Audio: {{spatial_audio}}
**UI Assets:**
**UI Assets:**
- Canvas Resolution: {{ui_resolution}}
- UI Scale Mode: {{scale_mode}}
- Font: {{font_requirements}}
- Icon Sizes: {{icon_specifications}}
examples:
- "Sprites: 32x32 to 256x256 at 16 PPU, Format: RGBA32 for quality/RGBA16 for performance"
- Canvas Resolution: {{ui_resolution}}
- UI Scale Mode: {{scale_mode}}
- Font: {{font_requirements}}
- Icon Sizes: {{icon_specifications}}
examples:
- "Sprites: 32x32 to 256x256 at 16 PPU, Format: RGBA32 for quality/RGBA16 for performance"
- id: technical-architecture-requirements
title: Technical Architecture Requirements
@ -378,7 +379,7 @@ sections:
- id: code-architecture
title: Code Architecture Pattern
template: |
**Architecture Pattern:** {{MVC|MVVM|ECS|Component-Based|Custom}}
**Architecture Pattern:** {{MVC|MVVM|Component-Based|Custom}}
**Core Systems Required:**

5624
package-lock.json generated

File diff suppressed because it is too large Load Diff