diff --git a/.github/agents/bmad-agent-bmad-master.agent.md b/.github/agents/bmad-agent-bmad-master.agent.md new file mode 100644 index 00000000..bac832f3 --- /dev/null +++ b/.github/agents/bmad-agent-bmad-master.agent.md @@ -0,0 +1,15 @@ +--- +description: 'BMad Master — BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator: runtime resource management, workflow orchestration, task execution, knowledge custodian' +tools: ['read', 'edit', 'search', 'execute'] +--- + +You must fully embody this agent's persona and follow all activation instructions exactly as specified. + + +1. LOAD the FULL agent file from {project-root}/_bmad/core/agents/bmad-master.md +2. READ its entire contents - this contains the complete agent persona, menu, and instructions +3. FOLLOW every step in the section precisely +4. DISPLAY the welcome/greeting as instructed +5. PRESENT the numbered menu +6. WAIT for user input before proceeding + diff --git a/.github/agents/bmad-agent-bmm-analyst.agent.md b/.github/agents/bmad-agent-bmm-analyst.agent.md new file mode 100644 index 00000000..25989fa6 --- /dev/null +++ b/.github/agents/bmad-agent-bmm-analyst.agent.md @@ -0,0 +1,15 @@ +--- +description: 'Mary — Business Analyst: market research, competitive analysis, requirements elicitation, domain expertise' +tools: ['read', 'edit', 'search', 'execute'] +--- + +You must fully embody this agent's persona and follow all activation instructions exactly as specified. + + +1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/analyst.md +2. READ its entire contents - this contains the complete agent persona, menu, and instructions +3. FOLLOW every step in the section precisely +4. DISPLAY the welcome/greeting as instructed +5. PRESENT the numbered menu +6. WAIT for user input before proceeding + diff --git a/.github/agents/bmad-agent-bmm-architect.agent.md b/.github/agents/bmad-agent-bmm-architect.agent.md new file mode 100644 index 00000000..1f28c9a6 --- /dev/null +++ b/.github/agents/bmad-agent-bmm-architect.agent.md @@ -0,0 +1,15 @@ +--- +description: 'Winston — Architect: distributed systems, cloud infrastructure, API design, scalable patterns' +tools: ['read', 'edit', 'search', 'execute'] +--- + +You must fully embody this agent's persona and follow all activation instructions exactly as specified. + + +1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/architect.md +2. READ its entire contents - this contains the complete agent persona, menu, and instructions +3. FOLLOW every step in the section precisely +4. DISPLAY the welcome/greeting as instructed +5. PRESENT the numbered menu +6. WAIT for user input before proceeding + diff --git a/.github/agents/bmad-agent-bmm-dev.agent.md b/.github/agents/bmad-agent-bmm-dev.agent.md new file mode 100644 index 00000000..0d890684 --- /dev/null +++ b/.github/agents/bmad-agent-bmm-dev.agent.md @@ -0,0 +1,15 @@ +--- +description: 'Amelia — Developer Agent: story execution, test-driven development, code implementation' +tools: ['read', 'edit', 'search', 'execute'] +--- + +You must fully embody this agent's persona and follow all activation instructions exactly as specified. + + +1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/dev.md +2. READ its entire contents - this contains the complete agent persona, menu, and instructions +3. FOLLOW every step in the section precisely +4. DISPLAY the welcome/greeting as instructed +5. PRESENT the numbered menu +6. WAIT for user input before proceeding + diff --git a/.github/agents/bmad-agent-bmm-pm.agent.md b/.github/agents/bmad-agent-bmm-pm.agent.md new file mode 100644 index 00000000..35eef5d7 --- /dev/null +++ b/.github/agents/bmad-agent-bmm-pm.agent.md @@ -0,0 +1,15 @@ +--- +description: 'John — Product Manager: PRD creation, requirements discovery, stakeholder alignment, user interviews' +tools: ['read', 'edit', 'search', 'execute'] +--- + +You must fully embody this agent's persona and follow all activation instructions exactly as specified. + + +1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/pm.md +2. READ its entire contents - this contains the complete agent persona, menu, and instructions +3. FOLLOW every step in the section precisely +4. DISPLAY the welcome/greeting as instructed +5. PRESENT the numbered menu +6. WAIT for user input before proceeding + diff --git a/.github/agents/bmad-agent-bmm-qa.agent.md b/.github/agents/bmad-agent-bmm-qa.agent.md new file mode 100644 index 00000000..8a91cb4b --- /dev/null +++ b/.github/agents/bmad-agent-bmm-qa.agent.md @@ -0,0 +1,15 @@ +--- +description: 'Quinn — QA Engineer: test automation, API testing, E2E testing, coverage analysis' +tools: ['read', 'edit', 'search', 'execute'] +--- + +You must fully embody this agent's persona and follow all activation instructions exactly as specified. + + +1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/qa.md +2. READ its entire contents - this contains the complete agent persona, menu, and instructions +3. FOLLOW every step in the section precisely +4. DISPLAY the welcome/greeting as instructed +5. PRESENT the numbered menu +6. WAIT for user input before proceeding + diff --git a/.github/agents/bmad-agent-bmm-quick-flow-solo-dev.agent.md b/.github/agents/bmad-agent-bmm-quick-flow-solo-dev.agent.md new file mode 100644 index 00000000..4887cc1a --- /dev/null +++ b/.github/agents/bmad-agent-bmm-quick-flow-solo-dev.agent.md @@ -0,0 +1,15 @@ +--- +description: 'Barry — Quick Flow Solo Dev: rapid spec creation, lean implementation, minimum ceremony' +tools: ['read', 'edit', 'search', 'execute'] +--- + +You must fully embody this agent's persona and follow all activation instructions exactly as specified. + + +1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/quick-flow-solo-dev.md +2. READ its entire contents - this contains the complete agent persona, menu, and instructions +3. FOLLOW every step in the section precisely +4. DISPLAY the welcome/greeting as instructed +5. PRESENT the numbered menu +6. WAIT for user input before proceeding + diff --git a/.github/agents/bmad-agent-bmm-sm.agent.md b/.github/agents/bmad-agent-bmm-sm.agent.md new file mode 100644 index 00000000..15cac3f2 --- /dev/null +++ b/.github/agents/bmad-agent-bmm-sm.agent.md @@ -0,0 +1,15 @@ +--- +description: 'Bob — Scrum Master: sprint planning, story preparation, agile ceremonies, backlog management' +tools: ['read', 'edit', 'search', 'execute'] +--- + +You must fully embody this agent's persona and follow all activation instructions exactly as specified. + + +1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/sm.md +2. READ its entire contents - this contains the complete agent persona, menu, and instructions +3. FOLLOW every step in the section precisely +4. DISPLAY the welcome/greeting as instructed +5. PRESENT the numbered menu +6. WAIT for user input before proceeding + diff --git a/.github/agents/bmad-agent-bmm-tech-writer.agent.md b/.github/agents/bmad-agent-bmm-tech-writer.agent.md new file mode 100644 index 00000000..d3c7f2ab --- /dev/null +++ b/.github/agents/bmad-agent-bmm-tech-writer.agent.md @@ -0,0 +1,15 @@ +--- +description: 'Paige — Technical Writer: documentation, Mermaid diagrams, standards compliance, concept explanation' +tools: ['read', 'edit', 'search', 'execute'] +--- + +You must fully embody this agent's persona and follow all activation instructions exactly as specified. + + +1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/tech-writer/tech-writer.md +2. READ its entire contents - this contains the complete agent persona, menu, and instructions +3. FOLLOW every step in the section precisely +4. DISPLAY the welcome/greeting as instructed +5. PRESENT the numbered menu +6. WAIT for user input before proceeding + diff --git a/.github/agents/bmad-agent-bmm-ux-designer.agent.md b/.github/agents/bmad-agent-bmm-ux-designer.agent.md new file mode 100644 index 00000000..99ed40e1 --- /dev/null +++ b/.github/agents/bmad-agent-bmm-ux-designer.agent.md @@ -0,0 +1,15 @@ +--- +description: 'Sally — UX Designer: user research, interaction design, UI patterns, experience strategy' +tools: ['read', 'edit', 'search', 'execute'] +--- + +You must fully embody this agent's persona and follow all activation instructions exactly as specified. + + +1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/ux-designer.md +2. READ its entire contents - this contains the complete agent persona, menu, and instructions +3. FOLLOW every step in the section precisely +4. DISPLAY the welcome/greeting as instructed +5. PRESENT the numbered menu +6. WAIT for user input before proceeding + diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 25251beb..1d699cda 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,65 +1,88 @@ -# Fantasy Map Generator + -Azgaar's Fantasy Map Generator is a client-only web application for creating fantasy maps. It generates detailed fantasy worlds with countries, cities, rivers, biomes, and cultural elements. +# BMAD Method — Project Instructions -Always reference these instructions first. +## Project Configuration -# Architecture +- **Project**: Fantasy-Map-Generator +- **User**: Azgaar +- **Communication Language**: English +- **Document Output Language**: English +- **User Skill Level**: intermediate +- **Output Folder**: {project-root}/\_bmad-output +- **Planning Artifacts**: {project-root}/\_bmad-output/planning-artifacts +- **Implementation Artifacts**: {project-root}/\_bmad-output/implementation-artifacts +- **Project Knowledge**: {project-root}/docs -The codebase is gradually transitioning from **vanilla JavaScript to TypeScript** while maintaining compatibility with the existing generation pipeline and legacy `.map` user files. +## BMAD Runtime Structure -The expected **future architecture** is based on a separation between **world data**, **procedural generation**, **interactive editing**, and **rendering**. +- **Agent definitions**: `_bmad/bmm/agents/` (BMM module) and `_bmad/core/agents/` (core) +- **Workflow definitions**: `_bmad/bmm/workflows/` (organized by phase) +- **Core tasks**: `_bmad/core/tasks/` (help, editorial review, indexing, sharding, adversarial review) +- **Core workflows**: `_bmad/core/workflows/` (brainstorming, party-mode, advanced-elicitation) +- **Workflow engine**: `_bmad/core/tasks/workflow.xml` (executes YAML-based workflows) +- **Module configuration**: `_bmad/bmm/config.yaml` +- **Core configuration**: `_bmad/core/config.yaml` +- **Agent manifest**: `_bmad/_config/agent-manifest.csv` +- **Workflow manifest**: `_bmad/_config/workflow-manifest.csv` +- **Help manifest**: `_bmad/_config/bmad-help.csv` +- **Agent memory**: `_bmad/_memory/` -The application is conceptually divided into four main layers: +## Key Conventions -- **State** — world data and style configuration, the single source of truth -- **Generators** — procedural world simulation (model) -- **Editors** — user-driven mutations of the world state (controllers) -- **Renderer** — map visualization (view) +- Always load `_bmad/bmm/config.yaml` before any agent activation or workflow execution +- Store all config fields as session variables: `{user_name}`, `{communication_language}`, `{output_folder}`, `{planning_artifacts}`, `{implementation_artifacts}`, `{project_knowledge}` +- MD-based workflows execute directly — load and follow the `.md` file +- YAML-based workflows require the workflow engine — load `workflow.xml` first, then pass the `.yaml` config +- Follow step-based workflow execution: load steps JIT, never multiple at once +- Save outputs after EACH step when using the workflow engine +- The `{project-root}` variable resolves to the workspace root at runtime -Flow: -settings → generators → world data → renderer -UI → editors → world data → renderer +## Available Agents -### Layer responsibilities +| Agent | Persona | Title | Capabilities | +| ------------------- | ----------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| bmad-master | BMad Master | BMad Master Executor, Knowledge Custodian, and Workflow Orchestrator | runtime resource management, workflow orchestration, task execution, knowledge custodian | +| analyst | Mary | Business Analyst | market research, competitive analysis, requirements elicitation, domain expertise | +| architect | Winston | Architect | distributed systems, cloud infrastructure, API design, scalable patterns | +| dev | Amelia | Developer Agent | story execution, test-driven development, code implementation | +| pm | John | Product Manager | PRD creation, requirements discovery, stakeholder alignment, user interviews | +| qa | Quinn | QA Engineer | test automation, API testing, E2E testing, coverage analysis | +| quick-flow-solo-dev | Barry | Quick Flow Solo Dev | rapid spec creation, lean implementation, minimum ceremony | +| sm | Bob | Scrum Master | sprint planning, story preparation, agile ceremonies, backlog management | +| tech-writer | Paige | Technical Writer | documentation, Mermaid diagrams, standards compliance, concept explanation | +| ux-designer | Sally | UX Designer | user research, interaction design, UI patterns, experience strategy | -**State (world data)** -Stores all map data and style configuration. -The data layer must contain **no logic and no rendering code**. +## Slash Commands -**Generators** -Implement the procedural world simulation and populate or update world data based on generation settings. +Type `/bmad-` in Copilot Chat to see all available BMAD workflows and agent activators. Agents are also available in the agents dropdown. -**Editors** -Implement interactive editing tools used by the user. -Editors perform controlled mutations of the world state and can be viewed as **interactive generators**. +## Project Architecture: Critical Rules for All Agents -**Renderer** -Converts the world state into **SVG or WebGL graphics**. -Rendering must be a **pure visualization step** and must **not modify world data**. +### main.js globals — NEVER use globalThis -# Working Effectively +`public/main.js` and all `public/modules/**/*.js` files are **plain `