style: standardize quote formatting and indentation in template files

This commit is contained in:
manjaroblack
2025-08-15 22:32:14 -05:00
parent 74c78d2274
commit 312540327f
20 changed files with 3586 additions and 4380 deletions

View File

@@ -106,7 +106,7 @@ dependencies:
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ==================== ==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
--- ---
docOutputLocation: docs/brainstorming-session-results.md docOutputLocation: docs/brainstorming-session-results.md
template: ".bmad-core/templates/brainstorming-output-tmpl.yaml" template: '.bmad-core/templates/brainstorming-output-tmpl.yaml'
--- ---
# Facilitate Brainstorming Session Task # Facilitate Brainstorming Session Task
@@ -1716,7 +1716,14 @@ sections:
title: Feature Comparison Matrix title: Feature Comparison Matrix
instruction: Create a detailed comparison table of key features across competitors instruction: Create a detailed comparison table of key features across competitors
type: table type: table
columns: ["Feature Category", "{{your_company}}", "{{competitor_1}}", "{{competitor_2}}", "{{competitor_3}}"] columns:
[
"Feature Category",
"{{your_company}}",
"{{competitor_1}}",
"{{competitor_2}}",
"{{competitor_3}}",
]
rows: rows:
- category: "Core Functionality" - category: "Core Functionality"
items: items:
@@ -1728,7 +1735,13 @@ sections:
- ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"] - ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
- category: "Integration & Ecosystem" - category: "Integration & Ecosystem"
items: items:
- ["API Availability", "{{availability}}", "{{availability}}", "{{availability}}", "{{availability}}"] - [
"API Availability",
"{{availability}}",
"{{availability}}",
"{{availability}}",
"{{availability}}",
]
- ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"] - ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
- category: "Pricing & Plans" - category: "Pricing & Plans"
items: items:

View File

@@ -1656,12 +1656,24 @@ sections:
rows: rows:
- ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["State Management", "{{state_management}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"State Management",
"{{state_management}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Component Library", "{{component_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"Component Library",
"{{component_lib}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
@@ -1946,11 +1958,29 @@ sections:
columns: [Category, Technology, Version, Purpose, Rationale] columns: [Category, Technology, Version, Purpose, Rationale]
rows: rows:
- ["Frontend Language", "{{fe_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Frontend Language", "{{fe_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Frontend Framework", "{{fe_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
- ["UI Component Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] "Frontend Framework",
"{{fe_framework}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- [
"UI Component Library",
"{{ui_library}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["State Management", "{{state_mgmt}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["State Management", "{{state_mgmt}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Language", "{{be_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Backend Language", "{{be_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Framework", "{{be_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"Backend Framework",
"{{be_framework}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["API Style", "{{api_style}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["API Style", "{{api_style}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Database", "{{database}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Database", "{{database}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Cache", "{{cache}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Cache", "{{cache}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]

View File

@@ -248,7 +248,7 @@ Choose a number (0-8) or 9 to proceed:
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ==================== ==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
--- ---
docOutputLocation: docs/brainstorming-session-results.md docOutputLocation: docs/brainstorming-session-results.md
template: ".bmad-core/templates/brainstorming-output-tmpl.yaml" template: '.bmad-core/templates/brainstorming-output-tmpl.yaml'
--- ---
# Facilitate Brainstorming Session Task # Facilitate Brainstorming Session Task
@@ -3682,7 +3682,14 @@ sections:
title: Feature Comparison Matrix title: Feature Comparison Matrix
instruction: Create a detailed comparison table of key features across competitors instruction: Create a detailed comparison table of key features across competitors
type: table type: table
columns: ["Feature Category", "{{your_company}}", "{{competitor_1}}", "{{competitor_2}}", "{{competitor_3}}"] columns:
[
"Feature Category",
"{{your_company}}",
"{{competitor_1}}",
"{{competitor_2}}",
"{{competitor_3}}",
]
rows: rows:
- category: "Core Functionality" - category: "Core Functionality"
items: items:
@@ -3694,7 +3701,13 @@ sections:
- ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"] - ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
- category: "Integration & Ecosystem" - category: "Integration & Ecosystem"
items: items:
- ["API Availability", "{{availability}}", "{{availability}}", "{{availability}}", "{{availability}}"] - [
"API Availability",
"{{availability}}",
"{{availability}}",
"{{availability}}",
"{{availability}}",
]
- ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"] - ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
- category: "Pricing & Plans" - category: "Pricing & Plans"
items: items:
@@ -3912,12 +3925,24 @@ sections:
rows: rows:
- ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["State Management", "{{state_management}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"State Management",
"{{state_management}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Component Library", "{{component_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"Component Library",
"{{component_lib}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
@@ -4554,11 +4579,29 @@ sections:
columns: [Category, Technology, Version, Purpose, Rationale] columns: [Category, Technology, Version, Purpose, Rationale]
rows: rows:
- ["Frontend Language", "{{fe_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Frontend Language", "{{fe_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Frontend Framework", "{{fe_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
- ["UI Component Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] "Frontend Framework",
"{{fe_framework}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- [
"UI Component Library",
"{{ui_library}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["State Management", "{{state_mgmt}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["State Management", "{{state_mgmt}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Language", "{{be_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Backend Language", "{{be_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Framework", "{{be_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"Backend Framework",
"{{be_framework}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["API Style", "{{api_style}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["API Style", "{{api_style}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Database", "{{database}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Database", "{{database}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Cache", "{{cache}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Cache", "{{cache}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]

855
dist/agents/qa.txt vendored

File diff suppressed because it is too large Load Diff

View File

@@ -1045,7 +1045,7 @@ interface GameState {
interface GameSettings { interface GameSettings {
musicVolume: number; musicVolume: number;
sfxVolume: number; sfxVolume: number;
difficulty: "easy" | "normal" | "hard"; difficulty: 'easy' | 'normal' | 'hard';
controls: ControlScheme; controls: ControlScheme;
} }
``` ```
@@ -1086,12 +1086,12 @@ class GameScene extends Phaser.Scene {
private inputManager!: InputManager; private inputManager!: InputManager;
constructor() { constructor() {
super({ key: "GameScene" }); super({ key: 'GameScene' });
} }
preload(): void { preload(): void {
// Load only scene-specific assets // Load only scene-specific assets
this.load.image("player", "assets/player.png"); this.load.image('player', 'assets/player.png');
} }
create(data: SceneData): void { create(data: SceneData): void {
@@ -1116,7 +1116,7 @@ class GameScene extends Phaser.Scene {
this.inputManager.destroy(); this.inputManager.destroy();
// Remove event listeners // Remove event listeners
this.events.off("*"); this.events.off('*');
} }
} }
``` ```
@@ -1125,13 +1125,13 @@ class GameScene extends Phaser.Scene {
```typescript ```typescript
// Proper scene transitions with data // Proper scene transitions with data
this.scene.start("NextScene", { this.scene.start('NextScene', {
playerScore: this.playerScore, playerScore: this.playerScore,
currentLevel: this.currentLevel + 1, currentLevel: this.currentLevel + 1,
}); });
// Scene overlays for UI // Scene overlays for UI
this.scene.launch("PauseMenuScene"); this.scene.launch('PauseMenuScene');
this.scene.pause(); this.scene.pause();
``` ```
@@ -1175,7 +1175,7 @@ class Player extends GameEntity {
private health!: HealthComponent; private health!: HealthComponent;
constructor(scene: Phaser.Scene, x: number, y: number) { constructor(scene: Phaser.Scene, x: number, y: number) {
super(scene, x, y, "player"); super(scene, x, y, 'player');
this.movement = this.addComponent(new MovementComponent(this)); this.movement = this.addComponent(new MovementComponent(this));
this.health = this.addComponent(new HealthComponent(this, 100)); this.health = this.addComponent(new HealthComponent(this, 100));
@@ -1195,7 +1195,7 @@ class GameManager {
constructor(scene: Phaser.Scene) { constructor(scene: Phaser.Scene) {
if (GameManager.instance) { if (GameManager.instance) {
throw new Error("GameManager already exists!"); throw new Error('GameManager already exists!');
} }
this.scene = scene; this.scene = scene;
@@ -1205,7 +1205,7 @@ class GameManager {
static getInstance(): GameManager { static getInstance(): GameManager {
if (!GameManager.instance) { if (!GameManager.instance) {
throw new Error("GameManager not initialized!"); throw new Error('GameManager not initialized!');
} }
return GameManager.instance; return GameManager.instance;
} }
@@ -1252,7 +1252,7 @@ class BulletPool {
} }
// Pool exhausted - create new bullet // Pool exhausted - create new bullet
console.warn("Bullet pool exhausted, creating new bullet"); console.warn('Bullet pool exhausted, creating new bullet');
return new Bullet(this.scene, 0, 0); return new Bullet(this.scene, 0, 0);
} }
@@ -1352,14 +1352,12 @@ class InputManager {
} }
private setupKeyboard(): void { private setupKeyboard(): void {
this.keys = this.scene.input.keyboard.addKeys( this.keys = this.scene.input.keyboard.addKeys('W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT');
"W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT",
);
} }
private setupTouch(): void { private setupTouch(): void {
this.scene.input.on("pointerdown", this.handlePointerDown, this); this.scene.input.on('pointerdown', this.handlePointerDown, this);
this.scene.input.on("pointerup", this.handlePointerUp, this); this.scene.input.on('pointerup', this.handlePointerUp, this);
} }
update(): void { update(): void {
@@ -1386,9 +1384,9 @@ class InputManager {
class AssetManager { class AssetManager {
loadAssets(): Promise<void> { loadAssets(): Promise<void> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.scene.load.on("filecomplete", this.handleFileComplete, this); this.scene.load.on('filecomplete', this.handleFileComplete, this);
this.scene.load.on("loaderror", this.handleLoadError, this); this.scene.load.on('loaderror', this.handleLoadError, this);
this.scene.load.on("complete", () => resolve()); this.scene.load.on('complete', () => resolve());
this.scene.load.start(); this.scene.load.start();
}); });
@@ -1404,8 +1402,8 @@ class AssetManager {
private loadFallbackAsset(key: string): void { private loadFallbackAsset(key: string): void {
// Load placeholder or default assets // Load placeholder or default assets
switch (key) { switch (key) {
case "player": case 'player':
this.scene.load.image("player", "assets/defaults/default-player.png"); this.scene.load.image('player', 'assets/defaults/default-player.png');
break; break;
default: default:
console.warn(`No fallback for asset: ${key}`); console.warn(`No fallback for asset: ${key}`);
@@ -1432,11 +1430,11 @@ class GameSystem {
private attemptRecovery(context: string): void { private attemptRecovery(context: string): void {
switch (context) { switch (context) {
case "update": case 'update':
// Reset system state // Reset system state
this.reset(); this.reset();
break; break;
case "render": case 'render':
// Disable visual effects // Disable visual effects
this.disableEffects(); this.disableEffects();
break; break;
@@ -1456,7 +1454,7 @@ class GameSystem {
```typescript ```typescript
// Example test for game mechanics // Example test for game mechanics
describe("HealthComponent", () => { describe('HealthComponent', () => {
let healthComponent: HealthComponent; let healthComponent: HealthComponent;
beforeEach(() => { beforeEach(() => {
@@ -1464,18 +1462,18 @@ describe("HealthComponent", () => {
healthComponent = new HealthComponent(mockEntity, 100); healthComponent = new HealthComponent(mockEntity, 100);
}); });
test("should initialize with correct health", () => { test('should initialize with correct health', () => {
expect(healthComponent.currentHealth).toBe(100); expect(healthComponent.currentHealth).toBe(100);
expect(healthComponent.maxHealth).toBe(100); expect(healthComponent.maxHealth).toBe(100);
}); });
test("should handle damage correctly", () => { test('should handle damage correctly', () => {
healthComponent.takeDamage(25); healthComponent.takeDamage(25);
expect(healthComponent.currentHealth).toBe(75); expect(healthComponent.currentHealth).toBe(75);
expect(healthComponent.isAlive()).toBe(true); expect(healthComponent.isAlive()).toBe(true);
}); });
test("should handle death correctly", () => { test('should handle death correctly', () => {
healthComponent.takeDamage(150); healthComponent.takeDamage(150);
expect(healthComponent.currentHealth).toBe(0); expect(healthComponent.currentHealth).toBe(0);
expect(healthComponent.isAlive()).toBe(false); expect(healthComponent.isAlive()).toBe(false);
@@ -1488,7 +1486,7 @@ describe("HealthComponent", () => {
**Scene Testing:** **Scene Testing:**
```typescript ```typescript
describe("GameScene Integration", () => { describe('GameScene Integration', () => {
let scene: GameScene; let scene: GameScene;
let mockGame: Phaser.Game; let mockGame: Phaser.Game;
@@ -1498,7 +1496,7 @@ describe("GameScene Integration", () => {
scene = new GameScene(); scene = new GameScene();
}); });
test("should initialize all systems", () => { test('should initialize all systems', () => {
scene.create({}); scene.create({});
expect(scene.gameManager).toBeDefined(); expect(scene.gameManager).toBeDefined();

View File

@@ -420,7 +420,7 @@ dependencies:
==================== START: .bmad-2d-phaser-game-dev/tasks/facilitate-brainstorming-session.md ==================== ==================== START: .bmad-2d-phaser-game-dev/tasks/facilitate-brainstorming-session.md ====================
--- ---
docOutputLocation: docs/brainstorming-session-results.md docOutputLocation: docs/brainstorming-session-results.md
template: ".bmad-2d-phaser-game-dev/templates/brainstorming-output-tmpl.yaml" template: '.bmad-2d-phaser-game-dev/templates/brainstorming-output-tmpl.yaml'
--- ---
# Facilitate Brainstorming Session Task # Facilitate Brainstorming Session Task
@@ -2023,7 +2023,14 @@ sections:
title: Feature Comparison Matrix title: Feature Comparison Matrix
instruction: Create a detailed comparison table of key features across competitors instruction: Create a detailed comparison table of key features across competitors
type: table type: table
columns: ["Feature Category", "{{your_company}}", "{{competitor_1}}", "{{competitor_2}}", "{{competitor_3}}"] columns:
[
"Feature Category",
"{{your_company}}",
"{{competitor_1}}",
"{{competitor_2}}",
"{{competitor_3}}",
]
rows: rows:
- category: "Core Functionality" - category: "Core Functionality"
items: items:
@@ -2035,7 +2042,13 @@ sections:
- ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"] - ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
- category: "Integration & Ecosystem" - category: "Integration & Ecosystem"
items: items:
- ["API Availability", "{{availability}}", "{{availability}}", "{{availability}}", "{{availability}}"] - [
"API Availability",
"{{availability}}",
"{{availability}}",
"{{availability}}",
"{{availability}}",
]
- ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"] - ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
- category: "Pricing & Plans" - category: "Pricing & Plans"
items: items:
@@ -5566,7 +5579,7 @@ interface GameState {
interface GameSettings { interface GameSettings {
musicVolume: number; musicVolume: number;
sfxVolume: number; sfxVolume: number;
difficulty: "easy" | "normal" | "hard"; difficulty: 'easy' | 'normal' | 'hard';
controls: ControlScheme; controls: ControlScheme;
} }
``` ```
@@ -5607,12 +5620,12 @@ class GameScene extends Phaser.Scene {
private inputManager!: InputManager; private inputManager!: InputManager;
constructor() { constructor() {
super({ key: "GameScene" }); super({ key: 'GameScene' });
} }
preload(): void { preload(): void {
// Load only scene-specific assets // Load only scene-specific assets
this.load.image("player", "assets/player.png"); this.load.image('player', 'assets/player.png');
} }
create(data: SceneData): void { create(data: SceneData): void {
@@ -5637,7 +5650,7 @@ class GameScene extends Phaser.Scene {
this.inputManager.destroy(); this.inputManager.destroy();
// Remove event listeners // Remove event listeners
this.events.off("*"); this.events.off('*');
} }
} }
``` ```
@@ -5646,13 +5659,13 @@ class GameScene extends Phaser.Scene {
```typescript ```typescript
// Proper scene transitions with data // Proper scene transitions with data
this.scene.start("NextScene", { this.scene.start('NextScene', {
playerScore: this.playerScore, playerScore: this.playerScore,
currentLevel: this.currentLevel + 1, currentLevel: this.currentLevel + 1,
}); });
// Scene overlays for UI // Scene overlays for UI
this.scene.launch("PauseMenuScene"); this.scene.launch('PauseMenuScene');
this.scene.pause(); this.scene.pause();
``` ```
@@ -5696,7 +5709,7 @@ class Player extends GameEntity {
private health!: HealthComponent; private health!: HealthComponent;
constructor(scene: Phaser.Scene, x: number, y: number) { constructor(scene: Phaser.Scene, x: number, y: number) {
super(scene, x, y, "player"); super(scene, x, y, 'player');
this.movement = this.addComponent(new MovementComponent(this)); this.movement = this.addComponent(new MovementComponent(this));
this.health = this.addComponent(new HealthComponent(this, 100)); this.health = this.addComponent(new HealthComponent(this, 100));
@@ -5716,7 +5729,7 @@ class GameManager {
constructor(scene: Phaser.Scene) { constructor(scene: Phaser.Scene) {
if (GameManager.instance) { if (GameManager.instance) {
throw new Error("GameManager already exists!"); throw new Error('GameManager already exists!');
} }
this.scene = scene; this.scene = scene;
@@ -5726,7 +5739,7 @@ class GameManager {
static getInstance(): GameManager { static getInstance(): GameManager {
if (!GameManager.instance) { if (!GameManager.instance) {
throw new Error("GameManager not initialized!"); throw new Error('GameManager not initialized!');
} }
return GameManager.instance; return GameManager.instance;
} }
@@ -5773,7 +5786,7 @@ class BulletPool {
} }
// Pool exhausted - create new bullet // Pool exhausted - create new bullet
console.warn("Bullet pool exhausted, creating new bullet"); console.warn('Bullet pool exhausted, creating new bullet');
return new Bullet(this.scene, 0, 0); return new Bullet(this.scene, 0, 0);
} }
@@ -5873,14 +5886,12 @@ class InputManager {
} }
private setupKeyboard(): void { private setupKeyboard(): void {
this.keys = this.scene.input.keyboard.addKeys( this.keys = this.scene.input.keyboard.addKeys('W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT');
"W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT",
);
} }
private setupTouch(): void { private setupTouch(): void {
this.scene.input.on("pointerdown", this.handlePointerDown, this); this.scene.input.on('pointerdown', this.handlePointerDown, this);
this.scene.input.on("pointerup", this.handlePointerUp, this); this.scene.input.on('pointerup', this.handlePointerUp, this);
} }
update(): void { update(): void {
@@ -5907,9 +5918,9 @@ class InputManager {
class AssetManager { class AssetManager {
loadAssets(): Promise<void> { loadAssets(): Promise<void> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.scene.load.on("filecomplete", this.handleFileComplete, this); this.scene.load.on('filecomplete', this.handleFileComplete, this);
this.scene.load.on("loaderror", this.handleLoadError, this); this.scene.load.on('loaderror', this.handleLoadError, this);
this.scene.load.on("complete", () => resolve()); this.scene.load.on('complete', () => resolve());
this.scene.load.start(); this.scene.load.start();
}); });
@@ -5925,8 +5936,8 @@ class AssetManager {
private loadFallbackAsset(key: string): void { private loadFallbackAsset(key: string): void {
// Load placeholder or default assets // Load placeholder or default assets
switch (key) { switch (key) {
case "player": case 'player':
this.scene.load.image("player", "assets/defaults/default-player.png"); this.scene.load.image('player', 'assets/defaults/default-player.png');
break; break;
default: default:
console.warn(`No fallback for asset: ${key}`); console.warn(`No fallback for asset: ${key}`);
@@ -5953,11 +5964,11 @@ class GameSystem {
private attemptRecovery(context: string): void { private attemptRecovery(context: string): void {
switch (context) { switch (context) {
case "update": case 'update':
// Reset system state // Reset system state
this.reset(); this.reset();
break; break;
case "render": case 'render':
// Disable visual effects // Disable visual effects
this.disableEffects(); this.disableEffects();
break; break;
@@ -5977,7 +5988,7 @@ class GameSystem {
```typescript ```typescript
// Example test for game mechanics // Example test for game mechanics
describe("HealthComponent", () => { describe('HealthComponent', () => {
let healthComponent: HealthComponent; let healthComponent: HealthComponent;
beforeEach(() => { beforeEach(() => {
@@ -5985,18 +5996,18 @@ describe("HealthComponent", () => {
healthComponent = new HealthComponent(mockEntity, 100); healthComponent = new HealthComponent(mockEntity, 100);
}); });
test("should initialize with correct health", () => { test('should initialize with correct health', () => {
expect(healthComponent.currentHealth).toBe(100); expect(healthComponent.currentHealth).toBe(100);
expect(healthComponent.maxHealth).toBe(100); expect(healthComponent.maxHealth).toBe(100);
}); });
test("should handle damage correctly", () => { test('should handle damage correctly', () => {
healthComponent.takeDamage(25); healthComponent.takeDamage(25);
expect(healthComponent.currentHealth).toBe(75); expect(healthComponent.currentHealth).toBe(75);
expect(healthComponent.isAlive()).toBe(true); expect(healthComponent.isAlive()).toBe(true);
}); });
test("should handle death correctly", () => { test('should handle death correctly', () => {
healthComponent.takeDamage(150); healthComponent.takeDamage(150);
expect(healthComponent.currentHealth).toBe(0); expect(healthComponent.currentHealth).toBe(0);
expect(healthComponent.isAlive()).toBe(false); expect(healthComponent.isAlive()).toBe(false);
@@ -6009,7 +6020,7 @@ describe("HealthComponent", () => {
**Scene Testing:** **Scene Testing:**
```typescript ```typescript
describe("GameScene Integration", () => { describe('GameScene Integration', () => {
let scene: GameScene; let scene: GameScene;
let mockGame: Phaser.Game; let mockGame: Phaser.Game;
@@ -6019,7 +6030,7 @@ describe("GameScene Integration", () => {
scene = new GameScene(); scene = new GameScene();
}); });
test("should initialize all systems", () => { test('should initialize all systems', () => {
scene.create({}); scene.create({});
expect(scene.gameManager).toBeDefined(); expect(scene.gameManager).toBeDefined();
@@ -9693,21 +9704,21 @@ workflow:
- brainstorming_session - brainstorming_session
- game_research_prompt - game_research_prompt
- player_research - player_research
notes: 'Start with brainstorming game concepts, then create comprehensive game brief. SAVE OUTPUT: Copy final game-brief.md to your project''s docs/design/ folder.' notes: "Start with brainstorming game concepts, then create comprehensive game brief. SAVE OUTPUT: Copy final game-brief.md to your project's docs/design/ folder."
- agent: game-designer - agent: game-designer
creates: game-design-doc.md creates: game-design-doc.md
requires: game-brief.md requires: game-brief.md
optional_steps: optional_steps:
- competitive_analysis - competitive_analysis
- technical_research - technical_research
notes: 'Create detailed Game Design Document using game-design-doc-tmpl. Defines all gameplay mechanics, progression, and technical requirements. SAVE OUTPUT: Copy final game-design-doc.md to your project''s docs/design/ folder.' notes: "Create detailed Game Design Document using game-design-doc-tmpl. Defines all gameplay mechanics, progression, and technical requirements. SAVE OUTPUT: Copy final game-design-doc.md to your project's docs/design/ folder."
- agent: game-designer - agent: game-designer
creates: level-design-doc.md creates: level-design-doc.md
requires: game-design-doc.md requires: game-design-doc.md
optional_steps: optional_steps:
- level_prototyping - level_prototyping
- difficulty_analysis - difficulty_analysis
notes: 'Create level design framework using level-design-doc-tmpl. Establishes content creation guidelines and performance requirements. SAVE OUTPUT: Copy final level-design-doc.md to your project''s docs/design/ folder.' notes: "Create level design framework using level-design-doc-tmpl. Establishes content creation guidelines and performance requirements. SAVE OUTPUT: Copy final level-design-doc.md to your project's docs/design/ folder."
- agent: solution-architect - agent: solution-architect
creates: game-architecture.md creates: game-architecture.md
requires: requires:
@@ -9717,7 +9728,7 @@ workflow:
- technical_research_prompt - technical_research_prompt
- performance_analysis - performance_analysis
- platform_research - platform_research
notes: 'Create comprehensive technical architecture using game-architecture-tmpl. Defines Phaser 3 systems, performance optimization, and code structure. SAVE OUTPUT: Copy final game-architecture.md to your project''s docs/architecture/ folder.' notes: "Create comprehensive technical architecture using game-architecture-tmpl. Defines Phaser 3 systems, performance optimization, and code structure. SAVE OUTPUT: Copy final game-architecture.md to your project's docs/architecture/ folder."
- agent: game-designer - agent: game-designer
validates: design_consistency validates: design_consistency
requires: all_design_documents requires: all_design_documents
@@ -9742,7 +9753,7 @@ workflow:
optional_steps: optional_steps:
- quick_brainstorming - quick_brainstorming
- concept_validation - concept_validation
notes: 'Create focused game brief for prototype. Emphasize core mechanics and immediate playability. SAVE OUTPUT: Copy final game-brief.md to your project''s docs/ folder.' notes: "Create focused game brief for prototype. Emphasize core mechanics and immediate playability. SAVE OUTPUT: Copy final game-brief.md to your project's docs/ folder."
- agent: game-designer - agent: game-designer
creates: prototype-design.md creates: prototype-design.md
uses: create-doc prototype-design OR create-game-story uses: create-doc prototype-design OR create-game-story
@@ -9906,7 +9917,7 @@ workflow:
notes: Implement stories in priority order. Test frequently and adjust design based on what feels fun. Document discoveries. notes: Implement stories in priority order. Test frequently and adjust design based on what feels fun. Document discoveries.
workflow_end: workflow_end:
action: prototype_evaluation action: prototype_evaluation
notes: 'Prototype complete. Evaluate core mechanics, gather feedback, and decide next steps: iterate, expand, or archive.' notes: "Prototype complete. Evaluate core mechanics, gather feedback, and decide next steps: iterate, expand, or archive."
game_jam_sequence: game_jam_sequence:
- step: jam_concept - step: jam_concept
agent: game-designer agent: game-designer
@@ -10366,7 +10377,7 @@ interface GameState {
interface GameSettings { interface GameSettings {
musicVolume: number; musicVolume: number;
sfxVolume: number; sfxVolume: number;
difficulty: "easy" | "normal" | "hard"; difficulty: 'easy' | 'normal' | 'hard';
controls: ControlScheme; controls: ControlScheme;
} }
``` ```
@@ -10407,12 +10418,12 @@ class GameScene extends Phaser.Scene {
private inputManager!: InputManager; private inputManager!: InputManager;
constructor() { constructor() {
super({ key: "GameScene" }); super({ key: 'GameScene' });
} }
preload(): void { preload(): void {
// Load only scene-specific assets // Load only scene-specific assets
this.load.image("player", "assets/player.png"); this.load.image('player', 'assets/player.png');
} }
create(data: SceneData): void { create(data: SceneData): void {
@@ -10437,7 +10448,7 @@ class GameScene extends Phaser.Scene {
this.inputManager.destroy(); this.inputManager.destroy();
// Remove event listeners // Remove event listeners
this.events.off("*"); this.events.off('*');
} }
} }
``` ```
@@ -10446,13 +10457,13 @@ class GameScene extends Phaser.Scene {
```typescript ```typescript
// Proper scene transitions with data // Proper scene transitions with data
this.scene.start("NextScene", { this.scene.start('NextScene', {
playerScore: this.playerScore, playerScore: this.playerScore,
currentLevel: this.currentLevel + 1, currentLevel: this.currentLevel + 1,
}); });
// Scene overlays for UI // Scene overlays for UI
this.scene.launch("PauseMenuScene"); this.scene.launch('PauseMenuScene');
this.scene.pause(); this.scene.pause();
``` ```
@@ -10496,7 +10507,7 @@ class Player extends GameEntity {
private health!: HealthComponent; private health!: HealthComponent;
constructor(scene: Phaser.Scene, x: number, y: number) { constructor(scene: Phaser.Scene, x: number, y: number) {
super(scene, x, y, "player"); super(scene, x, y, 'player');
this.movement = this.addComponent(new MovementComponent(this)); this.movement = this.addComponent(new MovementComponent(this));
this.health = this.addComponent(new HealthComponent(this, 100)); this.health = this.addComponent(new HealthComponent(this, 100));
@@ -10516,7 +10527,7 @@ class GameManager {
constructor(scene: Phaser.Scene) { constructor(scene: Phaser.Scene) {
if (GameManager.instance) { if (GameManager.instance) {
throw new Error("GameManager already exists!"); throw new Error('GameManager already exists!');
} }
this.scene = scene; this.scene = scene;
@@ -10526,7 +10537,7 @@ class GameManager {
static getInstance(): GameManager { static getInstance(): GameManager {
if (!GameManager.instance) { if (!GameManager.instance) {
throw new Error("GameManager not initialized!"); throw new Error('GameManager not initialized!');
} }
return GameManager.instance; return GameManager.instance;
} }
@@ -10573,7 +10584,7 @@ class BulletPool {
} }
// Pool exhausted - create new bullet // Pool exhausted - create new bullet
console.warn("Bullet pool exhausted, creating new bullet"); console.warn('Bullet pool exhausted, creating new bullet');
return new Bullet(this.scene, 0, 0); return new Bullet(this.scene, 0, 0);
} }
@@ -10673,14 +10684,12 @@ class InputManager {
} }
private setupKeyboard(): void { private setupKeyboard(): void {
this.keys = this.scene.input.keyboard.addKeys( this.keys = this.scene.input.keyboard.addKeys('W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT');
"W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT",
);
} }
private setupTouch(): void { private setupTouch(): void {
this.scene.input.on("pointerdown", this.handlePointerDown, this); this.scene.input.on('pointerdown', this.handlePointerDown, this);
this.scene.input.on("pointerup", this.handlePointerUp, this); this.scene.input.on('pointerup', this.handlePointerUp, this);
} }
update(): void { update(): void {
@@ -10707,9 +10716,9 @@ class InputManager {
class AssetManager { class AssetManager {
loadAssets(): Promise<void> { loadAssets(): Promise<void> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.scene.load.on("filecomplete", this.handleFileComplete, this); this.scene.load.on('filecomplete', this.handleFileComplete, this);
this.scene.load.on("loaderror", this.handleLoadError, this); this.scene.load.on('loaderror', this.handleLoadError, this);
this.scene.load.on("complete", () => resolve()); this.scene.load.on('complete', () => resolve());
this.scene.load.start(); this.scene.load.start();
}); });
@@ -10725,8 +10734,8 @@ class AssetManager {
private loadFallbackAsset(key: string): void { private loadFallbackAsset(key: string): void {
// Load placeholder or default assets // Load placeholder or default assets
switch (key) { switch (key) {
case "player": case 'player':
this.scene.load.image("player", "assets/defaults/default-player.png"); this.scene.load.image('player', 'assets/defaults/default-player.png');
break; break;
default: default:
console.warn(`No fallback for asset: ${key}`); console.warn(`No fallback for asset: ${key}`);
@@ -10753,11 +10762,11 @@ class GameSystem {
private attemptRecovery(context: string): void { private attemptRecovery(context: string): void {
switch (context) { switch (context) {
case "update": case 'update':
// Reset system state // Reset system state
this.reset(); this.reset();
break; break;
case "render": case 'render':
// Disable visual effects // Disable visual effects
this.disableEffects(); this.disableEffects();
break; break;
@@ -10777,7 +10786,7 @@ class GameSystem {
```typescript ```typescript
// Example test for game mechanics // Example test for game mechanics
describe("HealthComponent", () => { describe('HealthComponent', () => {
let healthComponent: HealthComponent; let healthComponent: HealthComponent;
beforeEach(() => { beforeEach(() => {
@@ -10785,18 +10794,18 @@ describe("HealthComponent", () => {
healthComponent = new HealthComponent(mockEntity, 100); healthComponent = new HealthComponent(mockEntity, 100);
}); });
test("should initialize with correct health", () => { test('should initialize with correct health', () => {
expect(healthComponent.currentHealth).toBe(100); expect(healthComponent.currentHealth).toBe(100);
expect(healthComponent.maxHealth).toBe(100); expect(healthComponent.maxHealth).toBe(100);
}); });
test("should handle damage correctly", () => { test('should handle damage correctly', () => {
healthComponent.takeDamage(25); healthComponent.takeDamage(25);
expect(healthComponent.currentHealth).toBe(75); expect(healthComponent.currentHealth).toBe(75);
expect(healthComponent.isAlive()).toBe(true); expect(healthComponent.isAlive()).toBe(true);
}); });
test("should handle death correctly", () => { test('should handle death correctly', () => {
healthComponent.takeDamage(150); healthComponent.takeDamage(150);
expect(healthComponent.currentHealth).toBe(0); expect(healthComponent.currentHealth).toBe(0);
expect(healthComponent.isAlive()).toBe(false); expect(healthComponent.isAlive()).toBe(false);
@@ -10809,7 +10818,7 @@ describe("HealthComponent", () => {
**Scene Testing:** **Scene Testing:**
```typescript ```typescript
describe("GameScene Integration", () => { describe('GameScene Integration', () => {
let scene: GameScene; let scene: GameScene;
let mockGame: Phaser.Game; let mockGame: Phaser.Game;
@@ -10819,7 +10828,7 @@ describe("GameScene Integration", () => {
scene = new GameScene(); scene = new GameScene();
}); });
test("should initialize all systems", () => { test('should initialize all systems', () => {
scene.create({}); scene.create({});
expect(scene.gameManager).toBeDefined(); expect(scene.gameManager).toBeDefined();

View File

@@ -484,7 +484,7 @@ dependencies:
==================== START: .bmad-2d-unity-game-dev/tasks/facilitate-brainstorming-session.md ==================== ==================== START: .bmad-2d-unity-game-dev/tasks/facilitate-brainstorming-session.md ====================
--- ---
docOutputLocation: docs/brainstorming-session-results.md docOutputLocation: docs/brainstorming-session-results.md
template: ".bmad-2d-unity-game-dev/templates/brainstorming-output-tmpl.yaml" template: '.bmad-2d-unity-game-dev/templates/brainstorming-output-tmpl.yaml'
--- ---
# Facilitate Brainstorming Session Task # Facilitate Brainstorming Session Task
@@ -2087,7 +2087,14 @@ sections:
title: Feature Comparison Matrix title: Feature Comparison Matrix
instruction: Create a detailed comparison table of key features across competitors instruction: Create a detailed comparison table of key features across competitors
type: table type: table
columns: ["Feature Category", "{{your_company}}", "{{competitor_1}}", "{{competitor_2}}", "{{competitor_3}}"] columns:
[
"Feature Category",
"{{your_company}}",
"{{competitor_1}}",
"{{competitor_2}}",
"{{competitor_3}}",
]
rows: rows:
- category: "Core Functionality" - category: "Core Functionality"
items: items:
@@ -2099,7 +2106,13 @@ sections:
- ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"] - ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
- category: "Integration & Ecosystem" - category: "Integration & Ecosystem"
items: items:
- ["API Availability", "{{availability}}", "{{availability}}", "{{availability}}", "{{availability}}"] - [
"API Availability",
"{{availability}}",
"{{availability}}",
"{{availability}}",
"{{availability}}",
]
- ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"] - ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
- category: "Pricing & Plans" - category: "Pricing & Plans"
items: items:
@@ -13657,21 +13670,21 @@ workflow:
- brainstorming_session - brainstorming_session
- game_research_prompt - game_research_prompt
- player_research - player_research
notes: 'Start with brainstorming game concepts, then create comprehensive game brief. SAVE OUTPUT: Copy final game-brief.md to your project''s docs/design/ folder.' notes: "Start with brainstorming game concepts, then create comprehensive game brief. SAVE OUTPUT: Copy final game-brief.md to your project's docs/design/ folder."
- agent: game-designer - agent: game-designer
creates: game-design-doc.md creates: game-design-doc.md
requires: game-brief.md requires: game-brief.md
optional_steps: optional_steps:
- competitive_analysis - competitive_analysis
- technical_research - technical_research
notes: 'Create detailed Game Design Document using game-design-doc-tmpl. Defines all gameplay mechanics, progression, and technical requirements. SAVE OUTPUT: Copy final game-design-doc.md to your project''s docs/design/ folder.' notes: "Create detailed Game Design Document using game-design-doc-tmpl. Defines all gameplay mechanics, progression, and technical requirements. SAVE OUTPUT: Copy final game-design-doc.md to your project's docs/design/ folder."
- agent: game-designer - agent: game-designer
creates: level-design-doc.md creates: level-design-doc.md
requires: game-design-doc.md requires: game-design-doc.md
optional_steps: optional_steps:
- level_prototyping - level_prototyping
- difficulty_analysis - difficulty_analysis
notes: 'Create level design framework using level-design-doc-tmpl. Establishes content creation guidelines and performance requirements. SAVE OUTPUT: Copy final level-design-doc.md to your project''s docs/design/ folder.' notes: "Create level design framework using level-design-doc-tmpl. Establishes content creation guidelines and performance requirements. SAVE OUTPUT: Copy final level-design-doc.md to your project's docs/design/ folder."
- agent: solution-architect - agent: solution-architect
creates: game-architecture.md creates: game-architecture.md
requires: requires:
@@ -13681,7 +13694,7 @@ workflow:
- technical_research_prompt - technical_research_prompt
- performance_analysis - performance_analysis
- platform_research - platform_research
notes: 'Create comprehensive technical architecture using game-architecture-tmpl. Defines Unity systems, performance optimization, and code structure. SAVE OUTPUT: Copy final game-architecture.md to your project''s docs/architecture/ folder.' notes: "Create comprehensive technical architecture using game-architecture-tmpl. Defines Unity systems, performance optimization, and code structure. SAVE OUTPUT: Copy final game-architecture.md to your project's docs/architecture/ folder."
- agent: game-designer - agent: game-designer
validates: design_consistency validates: design_consistency
requires: all_design_documents requires: all_design_documents
@@ -13706,7 +13719,7 @@ workflow:
optional_steps: optional_steps:
- quick_brainstorming - quick_brainstorming
- concept_validation - concept_validation
notes: 'Create focused game brief for prototype. Emphasize core mechanics and immediate playability. SAVE OUTPUT: Copy final game-brief.md to your project''s docs/ folder.' notes: "Create focused game brief for prototype. Emphasize core mechanics and immediate playability. SAVE OUTPUT: Copy final game-brief.md to your project's docs/ folder."
- agent: game-designer - agent: game-designer
creates: prototype-design.md creates: prototype-design.md
uses: create-doc prototype-design OR create-game-story uses: create-doc prototype-design OR create-game-story
@@ -13870,7 +13883,7 @@ workflow:
notes: Implement stories in priority order. Test frequently in the Unity Editor and adjust design based on what feels fun. Document discoveries. notes: Implement stories in priority order. Test frequently in the Unity Editor and adjust design based on what feels fun. Document discoveries.
workflow_end: workflow_end:
action: prototype_evaluation action: prototype_evaluation
notes: 'Prototype complete. Evaluate core mechanics, gather feedback, and decide next steps: iterate, expand, or archive.' notes: "Prototype complete. Evaluate core mechanics, gather feedback, and decide next steps: iterate, expand, or archive."
game_jam_sequence: game_jam_sequence:
- step: jam_concept - step: jam_concept
agent: game-designer agent: game-designer

File diff suppressed because it is too large Load Diff

View File

@@ -1838,7 +1838,7 @@ Agents should be workflow-aware: know active workflow, their role, access artifa
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ==================== ==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
--- ---
docOutputLocation: docs/brainstorming-session-results.md docOutputLocation: docs/brainstorming-session-results.md
template: ".bmad-core/templates/brainstorming-output-tmpl.yaml" template: '.bmad-core/templates/brainstorming-output-tmpl.yaml'
--- ---
# Facilitate Brainstorming Session Task # Facilitate Brainstorming Session Task
@@ -3224,7 +3224,14 @@ sections:
title: Feature Comparison Matrix title: Feature Comparison Matrix
instruction: Create a detailed comparison table of key features across competitors instruction: Create a detailed comparison table of key features across competitors
type: table type: table
columns: ["Feature Category", "{{your_company}}", "{{competitor_1}}", "{{competitor_2}}", "{{competitor_3}}"] columns:
[
"Feature Category",
"{{your_company}}",
"{{competitor_1}}",
"{{competitor_2}}",
"{{competitor_3}}",
]
rows: rows:
- category: "Core Functionality" - category: "Core Functionality"
items: items:
@@ -3236,7 +3243,13 @@ sections:
- ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"] - ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
- category: "Integration & Ecosystem" - category: "Integration & Ecosystem"
items: items:
- ["API Availability", "{{availability}}", "{{availability}}", "{{availability}}", "{{availability}}"] - [
"API Availability",
"{{availability}}",
"{{availability}}",
"{{availability}}",
"{{availability}}",
]
- ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"] - ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
- category: "Pricing & Plans" - category: "Pricing & Plans"
items: items:
@@ -6426,12 +6439,24 @@ sections:
rows: rows:
- ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["State Management", "{{state_management}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"State Management",
"{{state_management}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Component Library", "{{component_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"Component Library",
"{{component_lib}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
@@ -6716,11 +6741,29 @@ sections:
columns: [Category, Technology, Version, Purpose, Rationale] columns: [Category, Technology, Version, Purpose, Rationale]
rows: rows:
- ["Frontend Language", "{{fe_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Frontend Language", "{{fe_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Frontend Framework", "{{fe_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
- ["UI Component Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] "Frontend Framework",
"{{fe_framework}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- [
"UI Component Library",
"{{ui_library}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["State Management", "{{state_mgmt}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["State Management", "{{state_mgmt}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Language", "{{be_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Backend Language", "{{be_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Framework", "{{be_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"Backend Framework",
"{{be_framework}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["API Style", "{{api_style}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["API Style", "{{api_style}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Database", "{{database}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Database", "{{database}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Cache", "{{cache}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Cache", "{{cache}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]

File diff suppressed because it is too large Load Diff

View File

@@ -1784,7 +1784,7 @@ Agents should be workflow-aware: know active workflow, their role, access artifa
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ==================== ==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
--- ---
docOutputLocation: docs/brainstorming-session-results.md docOutputLocation: docs/brainstorming-session-results.md
template: ".bmad-core/templates/brainstorming-output-tmpl.yaml" template: '.bmad-core/templates/brainstorming-output-tmpl.yaml'
--- ---
# Facilitate Brainstorming Session Task # Facilitate Brainstorming Session Task
@@ -3170,7 +3170,14 @@ sections:
title: Feature Comparison Matrix title: Feature Comparison Matrix
instruction: Create a detailed comparison table of key features across competitors instruction: Create a detailed comparison table of key features across competitors
type: table type: table
columns: ["Feature Category", "{{your_company}}", "{{competitor_1}}", "{{competitor_2}}", "{{competitor_3}}"] columns:
[
"Feature Category",
"{{your_company}}",
"{{competitor_1}}",
"{{competitor_2}}",
"{{competitor_3}}",
]
rows: rows:
- category: "Core Functionality" - category: "Core Functionality"
items: items:
@@ -3182,7 +3189,13 @@ sections:
- ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"] - ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
- category: "Integration & Ecosystem" - category: "Integration & Ecosystem"
items: items:
- ["API Availability", "{{availability}}", "{{availability}}", "{{availability}}", "{{availability}}"] - [
"API Availability",
"{{availability}}",
"{{availability}}",
"{{availability}}",
"{{availability}}",
]
- ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"] - ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
- category: "Pricing & Plans" - category: "Pricing & Plans"
items: items:
@@ -5966,12 +5979,24 @@ sections:
rows: rows:
- ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["State Management", "{{state_management}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"State Management",
"{{state_management}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Component Library", "{{component_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"Component Library",
"{{component_lib}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
@@ -6256,11 +6281,29 @@ sections:
columns: [Category, Technology, Version, Purpose, Rationale] columns: [Category, Technology, Version, Purpose, Rationale]
rows: rows:
- ["Frontend Language", "{{fe_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Frontend Language", "{{fe_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Frontend Framework", "{{fe_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
- ["UI Component Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] "Frontend Framework",
"{{fe_framework}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- [
"UI Component Library",
"{{ui_library}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["State Management", "{{state_mgmt}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["State Management", "{{state_mgmt}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Language", "{{be_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Backend Language", "{{be_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Framework", "{{be_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - [
"Backend Framework",
"{{be_framework}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["API Style", "{{api_style}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["API Style", "{{api_style}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Database", "{{database}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Database", "{{database}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Cache", "{{cache}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"] - ["Cache", "{{cache}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]