mirror of
https://github.com/R0m1k3/xtremflow.git
synced 2026-10-24 15:38:04 +02:00
feat: security overhaul (proxy ssrf fix, streaming sanitization, docker optimization)
This commit is contained in:
1 parent
6d87ada2b8
commit
8df9a37baa
810 files changed
+131090
-151
No files matched your search
@@ -0,0 +1,291 @@
|
||||
---
|
||||
name: 'step-03-starter'
|
||||
description: 'Discover and evaluate game engine and starter template options'
|
||||
|
||||
# Path Definitions
|
||||
workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture'
|
||||
|
||||
# File References
|
||||
thisStepFile: '{workflow_path}/steps/step-03-starter.md'
|
||||
nextStepFile: '{workflow_path}/steps/step-04-decisions.md'
|
||||
workflowFile: '{workflow_path}/workflow.md'
|
||||
outputFile: '{output_folder}/game-architecture.md'
|
||||
|
||||
# Task References
|
||||
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||||
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||||
---
|
||||
|
||||
# Step 3: Engine & Starter Selection
|
||||
|
||||
**Progress: Step 3 of 9** - Next: Architectural Decisions
|
||||
|
||||
## STEP GOAL:
|
||||
|
||||
Discover and evaluate game engine options and starter templates based on project requirements. Modern engines/starters make many architectural decisions automatically.
|
||||
|
||||
## MANDATORY EXECUTION RULES (READ FIRST):
|
||||
|
||||
### Universal Rules:
|
||||
|
||||
- NEVER generate content without user input
|
||||
- CRITICAL: Read the complete step file before taking any action
|
||||
- CRITICAL: When loading next step with 'C', ensure entire file is read
|
||||
- YOU ARE A FACILITATOR, not a content generator
|
||||
- NEVER mention time estimates
|
||||
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
||||
|
||||
### Role Reinforcement:
|
||||
|
||||
- You are a veteran game architect facilitator
|
||||
- Modern starters/engines provide many architectural decisions out of the box
|
||||
- Verify current versions via web search - NEVER trust hardcoded versions
|
||||
|
||||
### Step-Specific Rules:
|
||||
|
||||
- ALWAYS search web for current versions
|
||||
- Document which decisions the engine provides
|
||||
- Help user understand engine trade-offs
|
||||
|
||||
## EXECUTION PROTOCOLS:
|
||||
|
||||
- Show your analysis before taking any action
|
||||
- Present A/P/C menu after engine selection
|
||||
- ONLY proceed when user chooses C (Continue)
|
||||
- Update frontmatter `stepsCompleted: [1, 2, 3]` before loading next step
|
||||
|
||||
## COLLABORATION MENUS (A/P/C):
|
||||
|
||||
- **A (Advanced Elicitation)**: Explore alternative engines
|
||||
- **P (Party Mode)**: Get perspectives on engine choice
|
||||
- **C (Continue)**: Confirm selection and proceed
|
||||
|
||||
## Sequence of Instructions (Do not deviate, skip, or optimize)
|
||||
|
||||
### 1. Identify Engine Requirements
|
||||
|
||||
**Based on project context, determine engine needs:**
|
||||
|
||||
"Let's determine the right engine/framework for **{{game_name}}**.
|
||||
|
||||
**Your Requirements:**
|
||||
|
||||
- Platform: {{platform}}
|
||||
- Genre: {{genre}}
|
||||
- Key systems: {{key_systems}}
|
||||
|
||||
**Engine Considerations:**
|
||||
|
||||
| Requirement | Implications |
|
||||
| ------------------- | --------------------- |
|
||||
| **2D vs 3D** | {{2d_or_3d}} |
|
||||
| **Performance** | {{performance_needs}} |
|
||||
| **Networking** | {{networking_needs}} |
|
||||
| **Platform Export** | {{platform_targets}} |
|
||||
|
||||
What engine or framework are you considering, or would you like recommendations?"
|
||||
|
||||
### 2. Research Engine Options
|
||||
|
||||
**If user has an engine in mind:**
|
||||
|
||||
Search the web to verify:
|
||||
|
||||
- Current stable version
|
||||
- Platform support status
|
||||
- Recent updates and roadmap
|
||||
|
||||
**If user wants recommendations:**
|
||||
|
||||
Based on requirements, search for appropriate options:
|
||||
|
||||
| Game Type | Recommended Options |
|
||||
| ------------ | --------------------------- |
|
||||
| **2D Indie** | Godot, Unity 2D, Phaser |
|
||||
| **3D Indie** | Godot, Unity, Unreal |
|
||||
| **Web Game** | Phaser, PixiJS, Three.js |
|
||||
| **Mobile** | Unity, Godot, Flutter Flame |
|
||||
| **VR/AR** | Unity, Unreal |
|
||||
|
||||
Search web: "{{recommended_engine}} game engine {{current_year}} version features"
|
||||
|
||||
### 3. Present Engine Options
|
||||
|
||||
**Present findings to user:**
|
||||
|
||||
"Based on your requirements, here are the engine options:
|
||||
|
||||
**Option 1: {{engine_1}}**
|
||||
|
||||
- Version: {{verified_version}}
|
||||
- Strengths: {{strengths}}
|
||||
- Considerations: {{considerations}}
|
||||
- Best for: {{best_use_case}}
|
||||
|
||||
**Option 2: {{engine_2}}**
|
||||
|
||||
- Version: {{verified_version}}
|
||||
- Strengths: {{strengths}}
|
||||
- Considerations: {{considerations}}
|
||||
- Best for: {{best_use_case}}
|
||||
|
||||
**Option 3: {{engine_3}}**
|
||||
|
||||
- Version: {{verified_version}}
|
||||
- Strengths: {{strengths}}
|
||||
- Considerations: {{considerations}}
|
||||
- Best for: {{best_use_case}}
|
||||
|
||||
Which engine would you like to use for {{game_name}}?"
|
||||
|
||||
### 4. Document Engine Selection
|
||||
|
||||
**After user selects engine:**
|
||||
|
||||
"**Engine Selected:** {{selected_engine}} v{{version}}
|
||||
|
||||
**Decisions Provided by Engine:**
|
||||
|
||||
| Category | Decision | Provided By |
|
||||
| -------------------- | ---------------------- | ----------- |
|
||||
| **Rendering** | {{rendering_approach}} | Engine |
|
||||
| **Physics** | {{physics_system}} | Engine |
|
||||
| **Audio** | {{audio_system}} | Engine |
|
||||
| **Input** | {{input_system}} | Engine |
|
||||
| **Scene Management** | {{scene_approach}} | Engine |
|
||||
| **Build System** | {{build_approach}} | Engine |
|
||||
|
||||
**Remaining Decisions:**
|
||||
These architectural decisions still need to be made:
|
||||
{{list_of_remaining_decisions}}
|
||||
|
||||
Does this look correct?"
|
||||
|
||||
### 5. Discover Starter Templates
|
||||
|
||||
**Search for project templates:**
|
||||
|
||||
Search web: "{{engine}} starter template {{game_type}} {{current_year}}"
|
||||
|
||||
**If templates found:**
|
||||
|
||||
"I found some starter templates for {{engine}}:
|
||||
|
||||
**{{template_1}}:**
|
||||
|
||||
- What it provides: {{features}}
|
||||
- Setup command: `{{command}}`
|
||||
|
||||
**{{template_2}}:**
|
||||
|
||||
- What it provides: {{features}}
|
||||
- Setup command: `{{command}}`
|
||||
|
||||
Would you like to use a starter template, or start from scratch?"
|
||||
|
||||
### 6. Generate Engine Section
|
||||
|
||||
Based on the conversation, prepare the content:
|
||||
|
||||
````markdown
|
||||
## Engine & Framework
|
||||
|
||||
### Selected Engine
|
||||
|
||||
**{{engine_name}}** v{{version}}
|
||||
|
||||
**Rationale:** {{why_selected}}
|
||||
|
||||
### Project Initialization
|
||||
|
||||
{{if_starter_template}}
|
||||
|
||||
```bash
|
||||
{{initialization_command}}
|
||||
```
|
||||
````
|
||||
|
||||
{{/if_starter_template}}
|
||||
|
||||
### Engine-Provided Architecture
|
||||
|
||||
| Component | Solution | Notes |
|
||||
| --------- | -------- | ----- |
|
||||
|
||||
{{engine_provided_table}}
|
||||
|
||||
### Remaining Architectural Decisions
|
||||
|
||||
The following decisions must be made explicitly:
|
||||
|
||||
{{remaining_decisions_list}}
|
||||
|
||||
```
|
||||
|
||||
### 7. Present Content and Menu
|
||||
|
||||
Show the generated content to the user and present:
|
||||
|
||||
"I've drafted the Engine & Framework section.
|
||||
|
||||
**Here's what I'll add to the document:**
|
||||
|
||||
[Show the complete markdown content from step 6]
|
||||
|
||||
**Validation Check:**
|
||||
- Is the engine version current?
|
||||
- Are the engine-provided decisions accurate?
|
||||
- Have we identified all remaining decisions?
|
||||
|
||||
**Select an Option:**
|
||||
[A] Advanced Elicitation - Explore alternative engines
|
||||
[P] Party Mode - Get perspectives on engine choice
|
||||
[C] Continue - Save this and move to Architectural Decisions (Step 4 of 9)"
|
||||
|
||||
### 8. Handle Menu Selection
|
||||
|
||||
#### IF A (Advanced Elicitation):
|
||||
- Execute {advancedElicitationTask} with the current content
|
||||
- Ask user: "Accept these changes? (y/n)"
|
||||
- If yes: Update content, return to A/P/C menu
|
||||
- If no: Keep original, return to A/P/C menu
|
||||
|
||||
#### IF P (Party Mode):
|
||||
- Execute {partyModeWorkflow} with the current content
|
||||
- Ask user: "Accept these changes? (y/n)"
|
||||
- If yes: Update content, return to A/P/C menu
|
||||
- If no: Keep original, return to A/P/C menu
|
||||
|
||||
#### IF C (Continue):
|
||||
- Append the final content to `{outputFile}`
|
||||
- Update frontmatter: `stepsCompleted: [1, 2, 3]`
|
||||
- Load `{nextStepFile}`
|
||||
|
||||
## CRITICAL STEP COMPLETION NOTE
|
||||
|
||||
ONLY WHEN [C continue option] is selected and [engine content saved with frontmatter updated], will you then load and read fully `{nextStepFile}`.
|
||||
|
||||
---
|
||||
|
||||
## SYSTEM SUCCESS/FAILURE METRICS
|
||||
|
||||
### SUCCESS:
|
||||
|
||||
- Engine requirements clearly identified
|
||||
- Current versions verified via web search
|
||||
- Engine-provided decisions documented
|
||||
- Remaining decisions identified
|
||||
- Starter template evaluated if applicable
|
||||
- A/P/C menu presented and handled correctly
|
||||
- Frontmatter updated with stepsCompleted: [1, 2, 3]
|
||||
|
||||
### SYSTEM FAILURE:
|
||||
|
||||
- Using hardcoded versions without verification
|
||||
- Not documenting engine-provided decisions
|
||||
- Proceeding without user engine selection
|
||||
- Not presenting A/P/C menu after selection
|
||||
- Proceeding without user selecting 'C'
|
||||
|
||||
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.
|
||||
```
|
||||
Reference in new issue
Block a user