feat: security overhaul (proxy ssrf fix, streaming sanitization, docker optimization)

This commit is contained in:
Michael committed 2026-01-07 08:43:33 +01:00
1 parent 6d87ada2b8
commit 8df9a37baa
810 files changed
+131090 -151

No files matched your search

@@ -0,0 +1,224 @@
---
name: 'step-01-init'
description: 'Initialize the architecture workflow, validate readiness, and discover input documents'
# Path Definitions
workflow_path: '{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture'
# File References
thisStepFile: '{workflow_path}/steps/step-01-init.md'
continueStepFile: '{workflow_path}/steps/step-01b-continue.md'
nextStepFile: '{workflow_path}/steps/step-02-context.md'
workflowFile: '{workflow_path}/workflow.md'
outputFile: '{output_folder}/game-architecture.md'
templateFile: '{workflow_path}/templates/architecture-template.md'
# Knowledge Bases
decisionCatalog: '{workflow_path}/decision-catalog.yaml'
architecturePatterns: '{workflow_path}/architecture-patterns.yaml'
patternCategories: '{workflow_path}/pattern-categories.csv'
---
# Step 1: Initialize Architecture Workflow
**Progress: Step 1 of 9** - Next: Project Context
## STEP GOAL:
Validate workflow readiness, check for existing architecture work, discover input documents (GDD, Epics), and initialize the output document with proper frontmatter.
## 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
- Focus on architectural decisions that prevent AI agent conflicts
- This is a decision-focused workflow, not an implementation spec
### Step-Specific Rules:
- Check for existing architecture before starting fresh
- Validate that required input documents exist (GDD at minimum)
- Initialize document with proper frontmatter for state tracking
## EXECUTION PROTOCOLS:
- Show your analysis before taking any action
- Wait for user confirmation at each checkpoint
- Update frontmatter `stepsCompleted: [1]` before loading next step
## Sequence of Instructions (Do not deviate, skip, or optimize)
### 1. Check for Existing Architecture
**Search for existing architecture document:**
Look for existing architecture files in {output_folder}:
- `*architecture*.md`
- `*arch*.md`
**If existing architecture found:**
"I found an existing architecture document: `{{existing_file}}`
**Options:**
1. **Continue** - Resume from where you left off
2. **Start Fresh** - Begin a new architecture (will overwrite)
3. **Review** - Let me review the existing document first
Which would you like to do?"
**Handle user selection:**
- If **Continue**: Load `{continueStepFile}`
- If **Start Fresh**: Continue with step 2 below
- If **Review**: Show document summary and return to options
### 2. Discover Required Input Documents
**Search for GDD:**
Look for GDD files using patterns:
- `{output_folder}/*gdd*.md`
- `{output_folder}/*game-design*.md`
**If GDD not found:**
"**GDD Not Found**
The Architecture workflow works from your Game Design Document (GDD).
The GDD provides:
- Core mechanics and systems to architect
- Technical requirements and constraints
- Platform targets and performance needs
Please run the GDD workflow first: `create-gdd`"
**Exit workflow - GDD required**
**If GDD found:**
"**Input Document Found:**
- GDD: `{{gdd_file}}`
I'll analyze this to understand your game's technical requirements."
### 3. Discover Optional Input Documents
**Search for additional documents:**
- **Epics**: `{output_folder}/*epic*.md`
- **Game Brief**: `{output_folder}/*brief*.md`
- **Narrative**: `{output_folder}/*narrative*.md`
**Report findings:**
"**Additional Documents Found:**
{{list_of_found_documents}}
These will provide additional context for architectural decisions."
### 4. Confirm Workflow Start
**Present start confirmation:**
"**Ready to Start Architecture Workflow**
{{user_name}}, I'm ready to help you create the game architecture for your project.
**What we'll cover:**
1. Engine/framework selection and validation
2. Core architectural decisions (rendering, physics, networking, etc.)
3. Project structure and code organization
4. Implementation patterns for AI agent consistency
5. Cross-cutting concerns (error handling, logging, etc.)
**Input documents:**
- GDD: `{{gdd_file}}`
{{additional_documents_list}}
**The goal:** Create an architecture document that ensures all AI agents implement your game consistently.
Ready to begin? [Y/N]"
### 5. Initialize Output Document
**If user confirms, create the initial document:**
Create `{outputFile}` with frontmatter:
```markdown
---
title: 'Game Architecture'
project: '{{project_name}}'
date: '{{date}}'
author: '{{user_name}}'
version: '1.0'
stepsCompleted: [1]
status: 'in-progress'
# Source Documents
gdd: '{{gdd_file}}'
epics: '{{epics_file_or_null}}'
brief: '{{brief_file_or_null}}'
---
# Game Architecture
## Document Status
This architecture document is being created through the BMGD Architecture Workflow.
**Steps Completed:** 1 of 9 (Initialize)
---
_Content will be added as we progress through the workflow._
```
### 6. Proceed to Context Step
After initialization:
- Update frontmatter: `stepsCompleted: [1]`
- Load `{nextStepFile}`
---
## SYSTEM SUCCESS/FAILURE METRICS
### SUCCESS:
- Existing architecture check performed
- GDD discovered and validated
- Optional documents discovered
- User confirmed workflow start
- Output document initialized with proper frontmatter
- Frontmatter updated with stepsCompleted: [1]
### SYSTEM FAILURE:
- Skipping input document discovery
- Starting without user confirmation
- Not checking for existing architecture
- Missing frontmatter initialization
- Proceeding without GDD
**Master Rule:** Skipping steps, optimizing sequences, or not following exact instructions is FORBIDDEN and constitutes SYSTEM FAILURE.