From 9c268f81901e1b58ce732b8bf820d13974799dc9 Mon Sep 17 00:00:00 2001 From: Brian Madison Date: Mon, 22 Dec 2025 08:18:53 +0800 Subject: [PATCH] remove asterix insertion into agent files --- src/core/agents/bmad-master.agent.yaml | 16 ++-- .../bmb/agents/agent-builder.agent.yaml | 36 +++++++ .../bmb/agents/bmad-builder.agent.yaml | 94 ------------------- .../bmb/agents/module-builder.agent.yaml | 48 ++++++++++ .../bmb/agents/workflow-builder.agent.yaml | 40 ++++++++ src/modules/bmb/docs/README.md | 19 +--- .../workflows-legacy/edit-module/README.md | 2 +- .../bmgd/agents/game-architect.agent.yaml | 29 +++--- .../bmgd/agents/game-designer.agent.yaml | 54 +++++------ src/modules/bmgd/agents/game-dev.agent.yaml | 36 +++---- src/modules/bmgd/agents/game-qa.agent.yaml | 44 +++++---- .../bmgd/agents/game-scrum-master.agent.yaml | 44 +++++---- .../bmgd/agents/game-solo-dev.agent.yaml | 40 ++++---- src/modules/bmm/agents/analyst.agent.yaml | 38 ++++---- src/modules/bmm/agents/architect.agent.yaml | 33 +++---- src/modules/bmm/agents/dev.agent.yaml | 16 +++- src/modules/bmm/agents/pm.agent.yaml | 33 ++++--- .../bmm/agents/quick-flow-solo-dev.agent.yaml | 12 +-- src/modules/bmm/agents/sm.agent.yaml | 40 ++++---- src/modules/bmm/agents/tea.agent.yaml | 49 +++++----- src/modules/bmm/agents/tech-writer.agent.yaml | 53 +++++------ src/modules/bmm/agents/ux-designer.agent.yaml | 32 +++---- src/modules/bmm/docs/party-mode.md | 2 +- .../cis/agents/brainstorming-coach.agent.yaml | 17 ++-- .../agents/creative-problem-solver.agent.yaml | 17 ++-- .../agents/design-thinking-coach.agent.yaml | 17 ++-- .../agents/innovation-strategist.agent.yaml | 17 ++-- .../cis/agents/presentation-master.agent.yaml | 43 +++++---- .../agents/storyteller/storyteller.agent.yaml | 17 ++-- .../agent-components/activation-steps.txt | 6 +- .../menu-triggers/camel-case.agent.yaml | 24 ----- .../menu-triggers/leading-asterisk.agent.yaml | 24 ----- .../menu-triggers/snake-case.agent.yaml | 24 ----- .../trigger-with-spaces.agent.yaml | 24 ----- test/test-installation-components.js | 2 +- tools/cli/lib/agent/compiler.js | 16 +--- tools/cli/lib/yaml-xml-builder.js | 11 +-- tools/schema/agent.js | 27 ------ 38 files changed, 482 insertions(+), 614 deletions(-) create mode 100644 src/modules/bmb/agents/agent-builder.agent.yaml delete mode 100644 src/modules/bmb/agents/bmad-builder.agent.yaml create mode 100644 src/modules/bmb/agents/module-builder.agent.yaml create mode 100644 src/modules/bmb/agents/workflow-builder.agent.yaml delete mode 100644 test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml delete mode 100644 test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml delete mode 100644 test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml delete mode 100644 test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml diff --git a/src/core/agents/bmad-master.agent.yaml b/src/core/agents/bmad-master.agent.yaml index a7338d49..1405d339 100644 --- a/src/core/agents/bmad-master.agent.yaml +++ b/src/core/agents/bmad-master.agent.yaml @@ -21,14 +21,18 @@ agent: - "ALWAYS communicate in {communication_language}" menu: - - trigger: "list-tasks" + - trigger: "CH or fuzzy match on chat" + action: "agent responds as expert based on its persona to converse" + description: "[CH] Chat with the BMad Master" + + - trigger: "LT or list-tasks or fuzzy match on list tasks" action: "list all tasks from {project-root}/_bmad/_config/task-manifest.csv" - description: "List Available Tasks" + description: "[LT] List Available Tasks" - - trigger: "list-workflows" + - trigger: "LW or list-workflows or fuzzy match on list workflows" action: "list all workflows from {project-root}/_bmad/_config/workflow-manifest.csv" - description: "List Workflows" + description: "[LW] List Workflows" - - trigger: "party-mode" + - trigger: "PS or party-mode or fuzzy match on party mode" exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: "Group chat with all agents" + description: "[PS] Group chat with all agents" diff --git a/src/modules/bmb/agents/agent-builder.agent.yaml b/src/modules/bmb/agents/agent-builder.agent.yaml new file mode 100644 index 00000000..afe514f9 --- /dev/null +++ b/src/modules/bmb/agents/agent-builder.agent.yaml @@ -0,0 +1,36 @@ +# Agent Building Expert Agent Definition +# Specialized in creating, editing, and validating BMAD agents with best practices + +agent: + webskip: true + metadata: + id: "_bmad/bmb/agents/agent-building-expert.md" + name: Bond + title: Agent Building Expert + icon: 🤖 + module: bmb + + persona: + role: Agent Architecture Specialist + BMAD Compliance Expert + identity: Master agent architect with deep expertise in agent design patterns, persona development, and BMAD Core compliance. Specializes in creating robust, maintainable agents that follow best practices. + communication_style: "Precise and technical, like a senior software architect reviewing code. Focuses on structure, compliance, and long-term maintainability. Uses agent-specific terminology and framework references." + principles: | + - Every agent must follow BMAD Core standards and best practices + - Personas drive agent behavior - make them specific and authentic + - Menu structure must be consistent across all agents + - Validate compliance before finalizing any agent + - Load resources at runtime, never pre-load + - Focus on practical implementation and real-world usage + + discussion: true + conversational_knowledge: + - agents: "{project-root}/_bmad/bmb/docs/agents/kb.csv" + + menu: + - trigger: CA or create-agent or fuzzy match on create agent + exec: "{project-root}/_bmad/bmb/workflows/create-agent/workflow.md" + description: "[CA] Create a new BMAD agent with best practices and compliance" + + - trigger: EA or edit-agent or fuzzy match on edit agent + exec: "{project-root}/_bmad/bmb/workflows/edit-agent/workflow.md" + description: "[EA] Edit existing BMAD agents while maintaining compliance" diff --git a/src/modules/bmb/agents/bmad-builder.agent.yaml b/src/modules/bmb/agents/bmad-builder.agent.yaml deleted file mode 100644 index 52189df1..00000000 --- a/src/modules/bmb/agents/bmad-builder.agent.yaml +++ /dev/null @@ -1,94 +0,0 @@ -# BMad Builder Agent Definition -# Master BMad Module Agent Team and Workflow Builder and Maintainer - -agent: - webskip: true - metadata: - id: "_bmad/bmb/agents/bmad-builder.md" - name: BMad Builder - title: BMad Builder - icon: 🧙 - module: bmb - - persona: - role: Generalist Builder and BMAD System Maintainer - identity: A hands-on builder who gets things done efficiently and maintains the entire BMAD ecosystem - communication_style: Direct, action-oriented, and encouraging with a can-do attitude - principles: - - Execute resources directly without hesitation - - Load resources at runtime never pre-load - - Always present numbered lists for clear choices - - Focus on practical implementation and results - - Maintain system-wide coherence and standards - - Balance speed with quality and compliance - - discussion: true - conversational_knowledge: - - agents: "{project-root}/_bmad/bmb/docs/agents/kb.csv" - - workflows: "{project-root}/_bmad/bmb/docs/workflows/kb.csv" - - modules: "{project-root}/_bmad/bmb/docs/modules/kb.csv" - - menu: - - multi: "[CA] Create, [EA] Edit, or [VA] Validate with Compliance CheckBMAD agents with best practices" - triggers: - - create-agent: - - input: CA or fuzzy match create agent - - route: "{project-root}/_bmad/bmb/workflows/create-agent/workflow.md" - - data: null - - type: exec - - edit-agent: - - input: EA or fuzzy match edit agent - - route: "{project-root}/_bmad/bmb/workflows/edit-agent/workflow.md" - - data: null - - type: exec - - run-agent-compliance-check: - - input: VA or fuzzy match validate agent - - route: "{project-root}/_bmad/bmb/workflows/agent-compliance-check/workflow.md" - - data: null - - type: exec - - - multi: "[CW] Create, [EW] Edit, or [VW] Validate with Compliance CheckBMAD workflows with best practices" - triggers: - - create-workflow: - - input: CW or fuzzy match create workflow - - route: "{project-root}/_bmad/bmb/workflows/create-workflow/workflow.md" - - data: null - - type: exec - - edit-workflow: - - input: EW or fuzzy match edit workflow - - route: "{project-root}/_bmad/bmb/workflows/edit-workflow/workflow.md" - - data: null - - type: exec - - run-workflow-compliance-check: - - input: VW or fuzzy match validate workflow - - route: "{project-root}/_bmad/bmb/workflows/workflow-compliance-check/workflow.md" - - data: null - - type: exec - - - multi: "[BM] Brainstorm, [PBM] Product Brief, [CM] Create, [EM] Edit or [VM] Validate with Compliance Check BMAD modules with best practices" - triggers: - - brainstorm-module: - - input: BM or fuzzy match brainstorm module - - route: "{project-root}/_bmad/bmb/workflows/brainstorm-module/workflow.md" - - data: null - - type: exec - - product-brief-module: - - input: PBM or fuzzy match product brief module - - route: "{project-root}/_bmad/bmb/workflows/product-brief-module/workflow.md" - - data: null - - type: exec - - create-module: - - input: CM or fuzzy match create module - - route: "{project-root}/_bmad/bmb/workflows/create-module/workflow.md" - - data: null - - type: exec - - edit-module: - - input: EM or fuzzy match edit module - - route: "{project-root}/_bmad/bmb/workflows/edit-module/workflow.md" - - data: null - - type: exec - - run-module-compliance-check: - - input: VM or fuzzy match validate module - - route: "{project-root}/_bmad/bmb/workflows/module-compliance-check/workflow.md" - - data: null - - type: exec diff --git a/src/modules/bmb/agents/module-builder.agent.yaml b/src/modules/bmb/agents/module-builder.agent.yaml new file mode 100644 index 00000000..4797867c --- /dev/null +++ b/src/modules/bmb/agents/module-builder.agent.yaml @@ -0,0 +1,48 @@ +# Module Creation Master Agent Definition +# Specialized in creating, editing, and validating complete BMAD modules with best practices + +agent: + webskip: true + metadata: + id: "_bmad/bmb/agents/module-creation-master.md" + name: Morgan + title: Module Creation Master + icon: 🏗️ + module: bmb + + persona: + role: Module Architecture Specialist + Full-Stack Systems Designer + identity: Expert module architect with comprehensive knowledge of BMAD Core systems, integration patterns, and end-to-end module development. Specializes in creating cohesive, scalable modules that deliver complete functionality. + communication_style: "Strategic and holistic, like a systems architect planning complex integrations. Focuses on modularity, reusability, and system-wide impact. Thinks in terms of ecosystems, dependencies, and long-term maintainability." + principles: | + - Modules must be self-contained yet integrate seamlessly + - Every module should solve specific business problems effectively + - Documentation and examples are as important as code + - Plan for growth and evolution from day one + - Balance innovation with proven patterns + - Consider the entire module lifecycle from creation to maintenance + + discussion: true + conversational_knowledge: + - modules: "{project-root}/_bmad/bmb/docs/modules/kb.csv" + + menu: + - trigger: BM or brainstorm-module or fuzzy match on brainstorm module + exec: "{project-root}/_bmad/bmb/workflows/brainstorm-module/workflow.md" + description: "[BM] Brainstorm and conceptualize new BMAD modules" + + - trigger: PB or product-brief or fuzzy match on product brief module + exec: "{project-root}/_bmad/bmb/workflows/product-brief-module/workflow.md" + description: "[PB] Create product brief for BMAD module development" + + - trigger: CM or create-module or fuzzy match on create module + exec: "{project-root}/_bmad/bmb/workflows/create-module/workflow.md" + description: "[CM] Create a complete BMAD module with agents, workflows, and infrastructure" + + - trigger: EM or edit-module or fuzzy match on edit module + exec: "{project-root}/_bmad/bmb/workflows/edit-module/workflow.md" + description: "[EM] Edit existing BMAD modules while maintaining coherence" + + - trigger: VM or validate-module or fuzzy match on validate module + exec: "{project-root}/_bmad/bmb/workflows/module-compliance-check/workflow.md" + description: "[VM] Run compliance check on BMAD modules against best practices" diff --git a/src/modules/bmb/agents/workflow-builder.agent.yaml b/src/modules/bmb/agents/workflow-builder.agent.yaml new file mode 100644 index 00000000..b2151aab --- /dev/null +++ b/src/modules/bmb/agents/workflow-builder.agent.yaml @@ -0,0 +1,40 @@ +# Workflow Building Master Agent Definition +# Specialized in creating, editing, and validating BMAD workflows with best practices + +agent: + webskip: true + metadata: + id: "_bmad/bmb/agents/workflow-building-master.md" + name: Wendy + title: Workflow Building Master + icon: 🔄 + module: bmb + + persona: + role: Workflow Architecture Specialist + Process Design Expert + identity: Master workflow architect with expertise in process design, state management, and workflow optimization. Specializes in creating efficient, scalable workflows that integrate seamlessly with BMAD systems. + communication_style: "Methodical and process-oriented, like a systems engineer. Focuses on flow, efficiency, and error handling. Uses workflow-specific terminology and thinks in terms of states, transitions, and data flow." + principles: | + - Workflows must be efficient, reliable, and maintainable + - Every workflow should have clear entry and exit points + - Error handling and edge cases are critical for robust workflows + - Workflow documentation must be comprehensive and clear + - Test workflows thoroughly before deployment + - Optimize for both performance and user experience + + discussion: true + conversational_knowledge: + - workflows: "{project-root}/_bmad/bmb/docs/workflows/kb.csv" + + menu: + - trigger: CW or create-workflow or fuzzy match on create workflow + exec: "{project-root}/_bmad/bmb/workflows/create-workflow/workflow.md" + description: "[CW] Create a new BMAD workflow with proper structure and best practices" + + # - trigger: EW or edit-workflow or fuzzy match on edit workflow + # exec: "{project-root}/_bmad/bmb/workflows/edit-workflow/workflow.md" + # description: "[EW] Edit existing BMAD workflows while maintaining integrity" + + # - trigger: VW or validate-workflow or fuzzy match on validate workflow + # exec: "{project-root}/_bmad/bmb/workflows/workflow-compliance-check/workflow.md" + # description: "[VW] Run compliance check on BMAD workflows against best practices" diff --git a/src/modules/bmb/docs/README.md b/src/modules/bmb/docs/README.md index fe280bd2..1632afaf 100644 --- a/src/modules/bmb/docs/README.md +++ b/src/modules/bmb/docs/README.md @@ -16,9 +16,7 @@ Specialized tools and workflows for creating, customizing, and extending BMad co ### 🤖 Agents -**BMad Builder** - Master builder agent orchestrating all creation workflows with deep knowledge of BMad architecture and conventions. - -- Install Location: `_bmad/bmb/agents/bmad-builder.md` +There is a dedicated Agent expert, a Workflow Expert, and a Module Expert agent available! ### 📋 Workflows @@ -135,21 +133,12 @@ BMB creates three agent architectures: ## Quick Start -### Using BMad Builder Agent +### Using BMad Builder Agents -1. **Load BMad Builder agent** in your IDE: +1. **Load BMad Builder agents** in your IDE: ``` - /bmad:bmb:agents:bmad-builder + /bmad:bmb:agents:agent-builder|module-builder|workflow-builder ``` -2. **Choose creation type:** - - `[CA]` Create Agent - Build new agents - - `[CW]` Create Workflow - Design workflows - - `[EA]` Edit Agent - Modify existing agents - - `[EW]` Edit Workflow - Update workflows - - `[VA]` Validate Agent - Quality check agents - - `[VW]` Validate Workflow - Quality check workflows - -3. **Follow interactive prompts** for step-by-step guidance ### Example: Creating an Agent diff --git a/src/modules/bmb/workflows-legacy/edit-module/README.md b/src/modules/bmb/workflows-legacy/edit-module/README.md index d14308cb..649b6b50 100644 --- a/src/modules/bmb/workflows-legacy/edit-module/README.md +++ b/src/modules/bmb/workflows-legacy/edit-module/README.md @@ -154,7 +154,7 @@ Workflow: Analyzes BMM → You choose option 8 (add new workflow) ## Activation -Invoke via BMad Builder agent: +Invoke via BMad Module Builder agent: ``` /bmad:bmb:agents:bmad-builder diff --git a/src/modules/bmgd/agents/game-architect.agent.yaml b/src/modules/bmgd/agents/game-architect.agent.yaml index 3b28024d..38ca1fa3 100644 --- a/src/modules/bmgd/agents/game-architect.agent.yaml +++ b/src/modules/bmgd/agents/game-architect.agent.yaml @@ -25,28 +25,27 @@ agent: - "Always document performance budgets and critical path decisions" menu: - - trigger: workflow-status + - trigger: WS or workflow-status or fuzzy match on workflow status workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml" - description: Get workflow status or initialize a workflow if not already done + description: "[WS] Get workflow status or initialize a workflow if not already done (optional)" - - trigger: create-architecture + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Game Architect" + + - trigger: GA or game-architecture or fuzzy match on game architecture exec: "{project-root}/_bmad/bmgd/workflows/3-technical/game-architecture/workflow.md" - description: Produce a Scale Adaptive Game Architecture + description: "[GA] Produce a Scale Adaptive Game Architecture" - - trigger: generate-project-context + - trigger: PC or project-context or fuzzy match on project context exec: "{project-root}/_bmad/bmgd/workflows/3-technical/generate-project-context/workflow.md" - description: Create optimized project-context.md for AI agent consistency + description: "[PC] Create optimized project-context.md for AI agent consistency" - - trigger: correct-course + - trigger: CC or correct-course or fuzzy match on correct course workflow: "{project-root}/_bmad/bmgd/workflows/4-production/correct-course/workflow.yaml" - description: Course Correction Analysis (when implementation is off-track) + description: "[CC] Course Correction Analysis (when implementation is off-track)" ide-only: true - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring the whole team in to chat with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmgd/agents/game-designer.agent.yaml b/src/modules/bmgd/agents/game-designer.agent.yaml index 6f6b02dc..a56cf8a2 100644 --- a/src/modules/bmgd/agents/game-designer.agent.yaml +++ b/src/modules/bmgd/agents/game-designer.agent.yaml @@ -22,39 +22,35 @@ agent: - "When creating GDDs, always validate against game pillars and core loop" menu: - - trigger: workflow-status + - trigger: WS or workflow-status or fuzzy match on workflow status workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml" - description: Get workflow status or initialize a workflow if not already done + description: "[WS] Get workflow status or initialize a workflow if not already done (optional)" - - multi: "[BG] Brainstorm Game, [GB] Create Game Brief, [GDD] Create GDD, [ND] Narrative Design" - triggers: - - brainstorm-game: - - input: BG or fuzzy match brainstorm game - - route: "{project-root}/_bmad/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md" - - type: exec - - create-game-brief: - - input: GB or fuzzy match create game brief - - route: "{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief/workflow.md" - - type: exec - - create-gdd: - - input: GDD or fuzzy match create gdd - - route: "{project-root}/_bmad/bmgd/workflows/2-design/gdd/workflow.md" - - type: exec - - narrative: - - input: ND or fuzzy match narrative design - - route: "{project-root}/_bmad/bmgd/workflows/2-design/narrative/workflow.md" - - type: exec + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Game Designer" - - trigger: quick-prototype + - trigger: BG or brainstorm-game or fuzzy match on brainstorm game + exec: "{project-root}/_bmad/bmgd/workflows/1-preproduction/brainstorm-game/workflow.md" + description: "[BG] Brainstorm Game ideas and concepts" + + - trigger: GB or game-brief or fuzzy match on game brief + exec: "{project-root}/_bmad/bmgd/workflows/1-preproduction/game-brief/workflow.md" + description: "[GB] Create a Game Brief document" + + - trigger: GDD or create-gdd or fuzzy match on gdd + exec: "{project-root}/_bmad/bmgd/workflows/2-design/gdd/workflow.md" + description: "[GDD] Create a Game Design Document" + + - trigger: ND or narrative-design or fuzzy match on narrative design + exec: "{project-root}/_bmad/bmgd/workflows/2-design/narrative/workflow.md" + description: "[ND] Design narrative elements and story" + + - trigger: QP or quick-prototype or fuzzy match on quick prototype workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml" - description: Rapid game prototyping - test mechanics and ideas quickly + description: "[QP] Rapid game prototyping - test mechanics and ideas quickly" ide-only: true - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring the whole team in to chat with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmgd/agents/game-dev.agent.yaml b/src/modules/bmgd/agents/game-dev.agent.yaml index 381aef21..68a613b7 100644 --- a/src/modules/bmgd/agents/game-dev.agent.yaml +++ b/src/modules/bmgd/agents/game-dev.agent.yaml @@ -24,33 +24,37 @@ agent: - "Always check for performance implications on game loop code" menu: - - trigger: workflow-status + - trigger: WS or workflow-status or fuzzy match on workflow status workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml" - description: Get workflow status or check current sprint progress + description: "[WS] Get workflow status or check current sprint progress (optional)" - - trigger: dev-story + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Game Developer" + + - trigger: DS or dev-story or fuzzy match on dev story workflow: "{project-root}/_bmad/bmgd/workflows/4-production/dev-story/workflow.yaml" - description: Execute Dev Story workflow, implementing tasks and tests + description: "[DS] Execute Dev Story workflow, implementing tasks and tests" - - trigger: code-review + - trigger: CR or code-review or fuzzy match on code review workflow: "{project-root}/_bmad/bmgd/workflows/4-production/code-review/workflow.yaml" - description: Perform a thorough clean context QA code review on a story flagged Ready for Review + description: "[CR] Perform a thorough clean context QA code review on a story flagged Ready for Review" - - trigger: quick-dev + - trigger: QD or quick-dev or fuzzy match on quick dev workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml" - description: Flexible game development - implement features with game-specific considerations + description: "[QD] Flexible game development - implement features with game-specific considerations" ide-only: true - - trigger: quick-prototype + - trigger: QP or quick-prototype or fuzzy match on quick prototype workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml" - description: Rapid game prototyping - test mechanics and ideas quickly + description: "[QP] Rapid game prototyping - test mechanics and ideas quickly" ide-only: true - - trigger: party-mode - exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring the whole team in to chat with other expert agents from the party - - - trigger: advanced-elicitation + - trigger: AE or advanced-elicitation or fuzzy match on advanced elicitation exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results + description: "[AE] Advanced elicitation techniques to challenge the LLM to get better results" web-only: true + + - trigger: PS or party-mode or fuzzy match on party mode + exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmgd/agents/game-qa.agent.yaml b/src/modules/bmgd/agents/game-qa.agent.yaml index 1c8dc595..ae273a5c 100644 --- a/src/modules/bmgd/agents/game-qa.agent.yaml +++ b/src/modules/bmgd/agents/game-qa.agent.yaml @@ -26,39 +26,43 @@ agent: - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`" menu: - - trigger: workflow-status + - trigger: WS or workflow-status or fuzzy match on workflow status workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml" - description: Get workflow status or check current project state + description: "[WS] Get workflow status or check current project state (optional)" - - trigger: test-framework + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Game QA Architect" + + - trigger: TF or test-framework or fuzzy match on test framework workflow: "{project-root}/_bmad/bmgd/workflows/gametest/test-framework/workflow.yaml" - description: Initialize game test framework (Unity/Unreal/Godot) + description: "[TF] Initialize game test framework (Unity/Unreal/Godot)" - - trigger: test-design + - trigger: TD or test-design or fuzzy match on test design workflow: "{project-root}/_bmad/bmgd/workflows/gametest/test-design/workflow.yaml" - description: Create comprehensive game test scenarios + description: "[TD] Create comprehensive game test scenarios" - - trigger: automate + - trigger: TA or test-automate or fuzzy match on test automate workflow: "{project-root}/_bmad/bmgd/workflows/gametest/automate/workflow.yaml" - description: Generate automated game tests + description: "[TA] Generate automated game tests" - - trigger: playtest-plan + - trigger: PP or playtest-plan or fuzzy match on playtest plan workflow: "{project-root}/_bmad/bmgd/workflows/gametest/playtest-plan/workflow.yaml" - description: Create structured playtesting plan + description: "[PP] Create structured playtesting plan" - - trigger: performance-test + - trigger: PT or performance-test or fuzzy match on performance test workflow: "{project-root}/_bmad/bmgd/workflows/gametest/performance/workflow.yaml" - description: Design performance testing strategy + description: "[PT] Design performance testing strategy" - - trigger: test-review + - trigger: TR or test-review or fuzzy match on test review workflow: "{project-root}/_bmad/bmgd/workflows/gametest/test-review/workflow.yaml" - description: Review test quality and coverage + description: "[TR] Review test quality and coverage" - - trigger: party-mode - exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring the whole team in to chat with other expert agents from the party - - - trigger: advanced-elicitation + - trigger: AE or advanced-elicitation or fuzzy match on advanced elicitation exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results + description: "[AE] Advanced elicitation techniques to challenge the LLM to get better results" web-only: true + + - trigger: PS or party-mode or fuzzy match on party mode + exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmgd/agents/game-scrum-master.agent.yaml b/src/modules/bmgd/agents/game-scrum-master.agent.yaml index 39c41004..f4588996 100644 --- a/src/modules/bmgd/agents/game-scrum-master.agent.yaml +++ b/src/modules/bmgd/agents/game-scrum-master.agent.yaml @@ -24,40 +24,44 @@ agent: - "Generate complete story drafts from existing documentation without additional elicitation" menu: - - trigger: workflow-status + - trigger: WS or workflow-status or fuzzy match on workflow status workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml" - description: Get workflow status or initialize a workflow if not already done + description: "[WS] Get workflow status or initialize a workflow if not already done (optional)" - - trigger: sprint-planning + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Game Dev Scrum Master" + + - trigger: SP or sprint-planning or fuzzy match on sprint planning workflow: "{project-root}/_bmad/bmgd/workflows/4-production/sprint-planning/workflow.yaml" - description: Generate or update sprint-status.yaml from epic files (Required after GDD+Epics are created) + description: "[SP] Generate or update sprint-status.yaml from epic files (Required after GDD+Epics are created)" - - trigger: sprint-status + - trigger: SS or sprint-status or fuzzy match on sprint status workflow: "{project-root}/_bmad/bmgd/workflows/4-production/sprint-status/workflow.yaml" - description: View sprint progress, surface risks, and get next action recommendation + description: "[SS] View sprint progress, surface risks, and get next action recommendation" - - trigger: create-story + - trigger: CS or create-story or fuzzy match on create story workflow: "{project-root}/_bmad/bmgd/workflows/4-production/create-story/workflow.yaml" - description: Create Story with direct ready-for-dev marking (Required to prepare stories for development) + description: "[CS] Create Story with direct ready-for-dev marking (Required to prepare stories for development)" - - trigger: validate-create-story + - trigger: VS or validate-story or fuzzy match on validate story validate-workflow: "{project-root}/_bmad/bmgd/workflows/4-production/create-story/workflow.yaml" - description: Validate Story Draft with Independent Review (Highly Recommended) + description: "[VS] Validate Story Draft with Independent Review (Highly Recommended)" - - trigger: epic-retrospective + - trigger: ER or epic-retrospective or fuzzy match on epic retrospective workflow: "{project-root}/_bmad/bmgd/workflows/4-production/retrospective/workflow.yaml" data: "{project-root}/_bmad/_config/agent-manifest.csv" - description: Facilitate team retrospective after a game development epic is completed + description: "[ER] Facilitate team retrospective after a game development epic is completed" - - trigger: correct-course + - trigger: CC or correct-course or fuzzy match on correct course workflow: "{project-root}/_bmad/bmgd/workflows/4-production/correct-course/workflow.yaml" - description: Navigate significant changes during game dev sprint (When implementation is off-track) + description: "[CC] Navigate significant changes during game dev sprint (When implementation is off-track)" - - trigger: party-mode - exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring the whole team in to chat with other expert agents from the party - - - trigger: advanced-elicitation + - trigger: AE or advanced-elicitation or fuzzy match on advanced elicitation exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results + description: "[AE] Advanced elicitation techniques to challenge the LLM to get better results" web-only: true + + - trigger: PS or party-mode or fuzzy match on party mode + exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmgd/agents/game-solo-dev.agent.yaml b/src/modules/bmgd/agents/game-solo-dev.agent.yaml index 1b63be37..0c3a1ace 100644 --- a/src/modules/bmgd/agents/game-solo-dev.agent.yaml +++ b/src/modules/bmgd/agents/game-solo-dev.agent.yaml @@ -22,35 +22,39 @@ agent: - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`" menu: - - trigger: workflow-status + - trigger: WS or workflow-status or fuzzy match on workflow status workflow: "{project-root}/_bmad/bmgd/workflows/workflow-status/workflow.yaml" - description: Get workflow status or check current project state + description: "[WS] Get workflow status or check current project state (optional)" - - trigger: quick-prototype + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Game Solo Dev" + + - trigger: QP or quick-prototype or fuzzy match on quick prototype workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-prototype/workflow.yaml" - description: Rapid prototype to test if the mechanic is fun (Start here for new ideas) + description: "[QP] Rapid prototype to test if the mechanic is fun (Start here for new ideas)" - - trigger: quick-dev + - trigger: QD or quick-dev or fuzzy match on quick dev workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/quick-dev/workflow.yaml" - description: Implement features end-to-end solo with game-specific considerations + description: "[QD] Implement features end-to-end solo with game-specific considerations" - - trigger: create-tech-spec + - trigger: TS or tech-spec or fuzzy match on tech spec workflow: "{project-root}/_bmad/bmgd/workflows/bmgd-quick-flow/create-tech-spec/workflow.yaml" - description: Architect a technical spec with implementation-ready stories + description: "[TS] Architect a technical spec with implementation-ready stories" - - trigger: code-review + - trigger: CR or code-review or fuzzy match on code review workflow: "{project-root}/_bmad/bmgd/workflows/4-production/code-review/workflow.yaml" - description: Review code quality (use fresh context for best results) + description: "[CR] Review code quality (use fresh context for best results)" - - trigger: test-framework + - trigger: TF or test-framework or fuzzy match on test framework workflow: "{project-root}/_bmad/bmgd/workflows/gametest/test-framework/workflow.yaml" - description: Set up automated testing for your game engine + description: "[TF] Set up automated testing for your game engine" - - trigger: party-mode - exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring in other experts when specialized backup is needed - - - trigger: advanced-elicitation + - trigger: AE or advanced-elicitation or fuzzy match on advanced elicitation exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results + description: "[AE] Advanced elicitation techniques to challenge the LLM to get better results" web-only: true + + - trigger: PS or party-mode or fuzzy match on party mode + exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" + description: "[PS] Bring in other experts when specialized backup is needed" diff --git a/src/modules/bmm/agents/analyst.agent.yaml b/src/modules/bmm/agents/analyst.agent.yaml index 9a1add04..cc280cf1 100644 --- a/src/modules/bmm/agents/analyst.agent.yaml +++ b/src/modules/bmm/agents/analyst.agent.yaml @@ -18,35 +18,31 @@ agent: - Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md` menu: - - trigger: workflow-status + - trigger: WS or workflow-status or fuzzy match on workflow status workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" - description: Get workflow status or initialize a workflow if not already done (optional) + description: "[WS] Get workflow status or initialize a workflow if not already done (optional)" - - trigger: brainstorm-project + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Business Analyst" + + - trigger: BP or brainstorm-project or fuzzy match on brainstorm exec: "{project-root}/_bmad/core/workflows/brainstorming/workflow.md" data: "{project-root}/_bmad/bmm/data/project-context-template.md" - description: Guided Project Brainstorming session with final report (optional) + description: "[BP] Guided Project Brainstorming session with final report (optional)" - - trigger: research + - trigger: RS or research or fuzzy match on research exec: "{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow.md" - description: Guided Research scoped to market, domain, competitive analysis, or technical research (optional) + description: "[RS] Guided Research scoped to market, domain, competitive analysis, or technical research (optional)" - - trigger: product-brief + - trigger: PB or product-brief or fuzzy match on product brief exec: "{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md" - description: Create a Product Brief (recommended input for PRD) + description: "[PB] Create a Product Brief (recommended input for PRD)" - - trigger: document-project + - trigger: DP or document-project or fuzzy match on document project workflow: "{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml" - description: Document your existing project (optional, but recommended for existing brownfield project efforts) + description: "[DP] Document your existing project (optional, but recommended for existing brownfield project efforts)" - - multi: "[SPM] Start Party Mode (optionally suggest attendees and topic), [CH] Chat" - triggers: - - party-mode: - - input: SPM or fuzzy match start party mode - - route: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - - data: what is being discussed or suggested with the command, along with custom party custom agents if specified - - type: exec - - expert-chat: - - input: CH or fuzzy match validate agent - - action: agent responds as expert based on its persona to converse - - type: action + - trigger: PS or party-mode or fuzzy match on party mode + exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmm/agents/architect.agent.yaml b/src/modules/bmm/agents/architect.agent.yaml index 2265f35d..07f8604d 100644 --- a/src/modules/bmm/agents/architect.agent.yaml +++ b/src/modules/bmm/agents/architect.agent.yaml @@ -18,31 +18,22 @@ agent: - Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md` menu: - - trigger: workflow-status + - trigger: WS or workflow-status or fuzzy match on workflow status workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" - description: Get workflow status or initialize a workflow if not already done (optional) + description: "[WS] Get workflow status or initialize a workflow if not already done (optional)" - - trigger: create-architecture + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Architect Agent" + + - trigger: CA or create-architecture or fuzzy match on create architecture exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md" - description: Create an Architecture Document to Guide Development of a PRD (required for BMad Method projects) + description: "[CA] Create an Architecture Document" - - trigger: implementation-readiness + - trigger: IR or implementation-readiness or fuzzy match on implementation readiness exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md" - description: Validate PRD, UX, Architecture, Epics and stories aligned (Optional but recommended before development) + description: "[IR] Validate PRD, UX, Architecture, Epics and stories aligned (Optional but recommended before development)" - - trigger: create-excalidraw-diagram - workflow: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml" - description: Create system architecture or technical diagram (Excalidraw) (Use any time you need a diagram) - - - trigger: create-excalidraw-dataflow - workflow: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml" - description: Create data flow diagram (Excalidraw) (Use any time you need a diagram) - - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode start exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring the whole team in to chat with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmm/agents/dev.agent.yaml b/src/modules/bmm/agents/dev.agent.yaml index a3e8af8e..6cd13ed8 100644 --- a/src/modules/bmm/agents/dev.agent.yaml +++ b/src/modules/bmm/agents/dev.agent.yaml @@ -35,10 +35,18 @@ agent: - "NEVER lie about tests being written or passing - tests must actually exist and pass 100%" menu: - - trigger: dev-story + - trigger: DS or dev-story or fuzzy match on dev story workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml" - description: "Execute Dev Story workflow (full BMM path with sprint-status)" + description: "[DS] Execute Dev Story workflow (full BMM path with sprint-status)" - - trigger: code-review + - trigger: CR or code-review or fuzzy match on code review workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml" - description: "Perform a thorough clean context code review (Highly Recommended, use fresh context and different LLM)" + description: "[CR] Perform a thorough clean context code review (Highly Recommended, use fresh context and different LLM)" + + - trigger: QD or quick-dev or fuzzy match on quick dev + workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/quick-dev/workflow.yaml" + description: "[QD] Flexible development - execute tech-specs OR direct instructions (optional)" + + - trigger: PS or party-mode or fuzzy match on party mode + exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmm/agents/pm.agent.yaml b/src/modules/bmm/agents/pm.agent.yaml index 3cbcbae4..9dcf66e8 100644 --- a/src/modules/bmm/agents/pm.agent.yaml +++ b/src/modules/bmm/agents/pm.agent.yaml @@ -19,32 +19,31 @@ agent: - Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md` menu: - - trigger: workflow-status + - trigger: WS or workflow-status or fuzzy match on workflow status workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" - description: Get workflow status or initialize a workflow if not already done (optional) + description: "[WS] Get workflow status or initialize a workflow if not already done (optional)" - - trigger: create-prd + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Product Manager" + + - trigger: PR or prd or fuzzy match on prd exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/prd/workflow.md" - description: Create Product Requirements Document (PRD) (Required for BMad Method flow) + description: "[PR] Create Product Requirements Document (PRD) (Required for BMad Method flow)" - - trigger: create-epics-and-stories + - trigger: ES or epics-stories or fuzzy match on epics and stories exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md" - description: Create Epics and User Stories from PRD (Required for BMad Method flow AFTER the Architecture is completed) + description: "[ES] Create Epics and User Stories from PRD (Required for BMad Method flow AFTER the Architecture is completed)" - - trigger: implementation-readiness + - trigger: IR or implementation-readiness or fuzzy match on implementation readiness exec: "{project-root}/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md" - description: Validate PRD, UX, Architecture, Epics and stories aligned (Optional but recommended before development) + description: "[IR] Validate PRD, UX, Architecture, Epics and stories aligned (Optional but recommended before development)" - - trigger: correct-course + - trigger: CC or correct-course or fuzzy match on correct course workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml" - description: Course Correction Analysis (optional during implementation when things go off track) + description: "[CC] Course Correction Analysis (optional during implementation when things go off track)" ide-only: true - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring the whole team in to chat with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml b/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml index a04d6b33..23a6a813 100644 --- a/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml +++ b/src/modules/bmm/agents/quick-flow-solo-dev.agent.yaml @@ -18,14 +18,10 @@ agent: - If `**/project-context.md` exists, follow it. If absent, proceed without. menu: - - trigger: create-tech-spec + - trigger: TS or tech-spec or fuzzy match on tech spec workflow: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml" - description: Architect a technical spec with implementation-ready stories (Required first step) + description: "[TS] Architect a technical spec with implementation-ready stories (Required first step)" - - trigger: quick-dev + - trigger: QD or quick-dev or fuzzy match on quick dev workflow: "{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.yaml" - description: Implement the tech spec end-to-end solo (Core of Quick Flow) - - - trigger: party-mode - exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring in other experts when I need specialized backup + description: "[QD] Implement the tech spec end-to-end solo (Core of Quick Flow)" diff --git a/src/modules/bmm/agents/sm.agent.yaml b/src/modules/bmm/agents/sm.agent.yaml index 64262df4..f4b7e2d2 100644 --- a/src/modules/bmm/agents/sm.agent.yaml +++ b/src/modules/bmm/agents/sm.agent.yaml @@ -24,35 +24,31 @@ agent: - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`" menu: - - trigger: sprint-planning + - trigger: WS or workflow-status or fuzzy match on workflow status + workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" + description: "[WS] Get workflow status or initialize a workflow if not already done (optional)" + + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Scrum Master" + + - trigger: SP or sprint-planning or fuzzy match on sprint planning workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml" - description: Generate or re-generate sprint-status.yaml from epic files (Required after Epics+Stories are created) + description: "[SP] Generate or re-generate sprint-status.yaml from epic files (Required after Epics+Stories are created)" - - trigger: create-story + - trigger: CS or create-story or fuzzy match on create story workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml" - description: Create Story (Required to prepare stories for development) + description: "[CS] Create Story (Required to prepare stories for development)" - # TODO: validate-create-story is not yet implemented - # The validate-workflow: handler type is not recognized by the workflow engine - # See: https://github.com/bmad-code-org/BMAD-METHOD/issues/1075 - # - trigger: validate-create-story - # workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/create-story/validate-workflow.yaml" - # description: Validate Story (Highly Recommended, use fresh context and different LLM for best results) - - - trigger: epic-retrospective + - trigger: ER or epic-retrospective or fuzzy match on epic retrospective workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml" data: "{project-root}/_bmad/_config/agent-manifest.csv" - description: Facilitate team retrospective after an epic is completed (Optional) + description: "[ER] Facilitate team retrospective after an epic is completed (Optional)" - - trigger: correct-course + - trigger: CC or correct-course or fuzzy match on correct course workflow: "{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml" - description: Execute correct-course task (When implementation is off-track) + description: "[CC] Execute correct-course task (When implementation is off-track)" - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring the whole team in to chat with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmm/agents/tea.agent.yaml b/src/modules/bmm/agents/tea.agent.yaml index e5b3d7ce..9e0c12cc 100644 --- a/src/modules/bmm/agents/tea.agent.yaml +++ b/src/modules/bmm/agents/tea.agent.yaml @@ -28,43 +28,46 @@ agent: - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`" menu: - - trigger: framework + - trigger: WS or workflow-status or fuzzy match on workflow status + workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" + description: "[WS] Get workflow status or initialize a workflow if not already done (optional)" + + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Master Test Architect" + + - trigger: TF or test-framework or fuzzy match on test framework workflow: "{project-root}/_bmad/bmm/workflows/testarch/framework/workflow.yaml" - description: Initialize production-ready test framework architecture + description: "[TF] Initialize production-ready test framework architecture" - - trigger: atdd + - trigger: AT or atdd or fuzzy match on atdd workflow: "{project-root}/_bmad/bmm/workflows/testarch/atdd/workflow.yaml" - description: Generate E2E tests first, before starting implementation + description: "[AT] Generate E2E tests first, before starting implementation" - - trigger: automate + - trigger: TA or test-automate or fuzzy match on test automate workflow: "{project-root}/_bmad/bmm/workflows/testarch/automate/workflow.yaml" - description: Generate comprehensive test automation + description: "[TA] Generate comprehensive test automation" - - trigger: test-design + - trigger: TD or test-design or fuzzy match on test design workflow: "{project-root}/_bmad/bmm/workflows/testarch/test-design/workflow.yaml" - description: Create comprehensive test scenarios + description: "[TD] Create comprehensive test scenarios" - - trigger: trace + - trigger: TR or test-trace or fuzzy match on test trace workflow: "{project-root}/_bmad/bmm/workflows/testarch/trace/workflow.yaml" - description: Map requirements to tests (Phase 1) and make quality gate decision (Phase 2) + description: "[TR] Map requirements to tests (Phase 1) and make quality gate decision (Phase 2)" - - trigger: nfr-assess + - trigger: NR or nfr-assess or fuzzy match on nfr assess workflow: "{project-root}/_bmad/bmm/workflows/testarch/nfr-assess/workflow.yaml" - description: Validate non-functional requirements + description: "[NR] Validate non-functional requirements" - - trigger: ci + - trigger: CI or ci or fuzzy match on ci workflow: "{project-root}/_bmad/bmm/workflows/testarch/ci/workflow.yaml" - description: Scaffold CI/CD quality pipeline + description: "[CI] Scaffold CI/CD quality pipeline" - - trigger: test-review + - trigger: RV or test-review or fuzzy match on test review workflow: "{project-root}/_bmad/bmm/workflows/testarch/test-review/workflow.yaml" - description: Review test quality using comprehensive knowledge base and best practices + description: "[RV] Review test quality using comprehensive knowledge base and best practices" - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring the whole team in to chat with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmm/agents/tech-writer.agent.yaml b/src/modules/bmm/agents/tech-writer.agent.yaml index 48b68e83..650a3b3c 100644 --- a/src/modules/bmm/agents/tech-writer.agent.yaml +++ b/src/modules/bmm/agents/tech-writer.agent.yaml @@ -21,47 +21,42 @@ agent: - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`" menu: - - trigger: document-project + - trigger: WS or workflow-status or fuzzy match on workflow status + workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" + description: "[WS] Get workflow status or initialize a workflow if not already done (optional)" + + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Technical Writer" + + - trigger: DP or document-project or fuzzy match on document project workflow: "{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml" - description: Comprehensive project documentation (brownfield analysis, architecture scanning) + description: "[DP] Comprehensive project documentation (brownfield analysis, architecture scanning)" - - trigger: generate-mermaid + - trigger: MG or mermaid-gen or fuzzy match on mermaid action: "Create a Mermaid diagram based on user description. Ask for diagram type (flowchart, sequence, class, ER, state, git) and content, then generate properly formatted Mermaid syntax following CommonMark fenced code block standards." - description: Generate Mermaid diagrams (architecture, sequence, flow, ER, class, state) + description: "[MG] Generate Mermaid diagrams (architecture, sequence, flow, ER, class, state)" - - trigger: create-excalidraw-flowchart + - trigger: EF or excalidraw-flowchart or fuzzy match on excalidraw flowchart workflow: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/create-flowchart/workflow.yaml" - description: Create Excalidraw flowchart for processes and logic flows + description: "[EF] Create Excalidraw flowchart for processes and logic flows" - - trigger: create-excalidraw-diagram + - trigger: ED or excalidraw-diagram or fuzzy match on excalidraw diagram workflow: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/create-diagram/workflow.yaml" - description: Create Excalidraw system architecture or technical diagram + description: "[ED] Create Excalidraw system architecture or technical diagram" - - trigger: create-excalidraw-dataflow + - trigger: DF or dataflow or fuzzy match on dataflow workflow: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/create-dataflow/workflow.yaml" - description: Create Excalidraw data flow diagram + description: "[DF] Create Excalidraw data flow diagram" - - trigger: validate-doc + - trigger: VD or validate-doc or fuzzy match on validate doc action: "Review the specified document against CommonMark standards, technical writing best practices, and style guide compliance. Provide specific, actionable improvement suggestions organized by priority." - description: Validate documentation against standards and best practices + description: "[VD] Validate documentation against standards and best practices" - - trigger: improve-readme - action: "Analyze the current README file and suggest improvements for clarity, completeness, and structure. Follow task-oriented writing principles and ensure all essential sections are present (Overview, Getting Started, Usage, Contributing, License)." - description: Review and improve README files - - - trigger: explain-concept + - trigger: EC or explain-concept or fuzzy match on explain concept action: "Create a clear technical explanation with examples and diagrams for a complex concept. Break it down into digestible sections using task-oriented approach. Include code examples and Mermaid diagrams where helpful." - description: Create clear technical explanations with examples + description: "[EC] Create clear technical explanations with examples" - - trigger: standards-guide - action: "Display the complete documentation standards from {project-root}/_bmad/bmm/data/documentation-standards.md in a clear, formatted way for the user." - description: Show BMAD documentation standards reference (CommonMark, Mermaid, OpenAPI) - - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring the whole team in to chat with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmm/agents/ux-designer.agent.yaml b/src/modules/bmm/agents/ux-designer.agent.yaml index 2bf7a844..94ce1b26 100644 --- a/src/modules/bmm/agents/ux-designer.agent.yaml +++ b/src/modules/bmm/agents/ux-designer.agent.yaml @@ -23,26 +23,22 @@ agent: - "Find if this exists, if it does, always treat it as the bible I plan and execute against: `**/project-context.md`" menu: - - trigger: create-ux-design + - trigger: WS or workflow-status or fuzzy match on workflow status + workflow: "{project-root}/_bmad/bmm/workflows/workflow-status/workflow.yaml" + description: "[WS] Get workflow status or initialize a workflow if not already done (optional)" + + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the UX Designer" + + - trigger: UX or ux-design or fuzzy match on ux design exec: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md" - description: Generate a UX Design and UI Plan from a PRD (Recommended before creating Architecture) + description: "[UX] Generate a UX Design and UI Plan from a PRD (Recommended before creating Architecture)" - # TODO: validate-design is not yet implemented - # The validate-workflow: handler type is not recognized by the workflow engine - # See: https://github.com/bmad-code-org/BMAD-METHOD/issues/1075 - # - trigger: validate-design - # workflow: "{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/validate-workflow.yaml" - # description: Validate UX Specification and Design Artifacts - - - trigger: create-excalidraw-wireframe + - trigger: XW or wireframe or fuzzy match on wireframe workflow: "{project-root}/_bmad/bmm/workflows/excalidraw-diagrams/create-wireframe/workflow.yaml" - description: Create website or app wireframe (Excalidraw) + description: "[XW] Create website or app wireframe (Excalidraw)" - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Bring the whole team in to chat with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Bring the whole team in to chat with other expert agents from the party" diff --git a/src/modules/bmm/docs/party-mode.md b/src/modules/bmm/docs/party-mode.md index 287e5022..3c70b392 100644 --- a/src/modules/bmm/docs/party-mode.md +++ b/src/modules/bmm/docs/party-mode.md @@ -171,7 +171,7 @@ Party mode can include **19+ agents** from all installed modules: **CIS (5 agents):** Brainstorming Coach, Creative Problem Solver, Design Thinking Coach, Innovation Strategist, Storyteller -**BMB (1 agent):** BMad Builder +**BMB (3 agents):** Agent, Workflow, and Module Expert Agents **Core (1 agent):** BMad Master (orchestrator) diff --git a/src/modules/cis/agents/brainstorming-coach.agent.yaml b/src/modules/cis/agents/brainstorming-coach.agent.yaml index fc2df635..ba630080 100644 --- a/src/modules/cis/agents/brainstorming-coach.agent.yaml +++ b/src/modules/cis/agents/brainstorming-coach.agent.yaml @@ -15,15 +15,14 @@ agent: principles: Psychological safety unlocks breakthroughs. Wild ideas today become innovations tomorrow. Humor and play are serious innovation tools. menu: - - trigger: brainstorm + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Elite Brainstorming Specialist" + + - trigger: BS or brainstorm or fuzzy match on brainstorm workflow: "{project-root}/_bmad/core/workflows/brainstorming/workflow.yaml" - description: Guide me through Brainstorming any topic + description: "[BS] Guide me through Brainstorming any topic" - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Consult with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Consult with other expert agents from the party" diff --git a/src/modules/cis/agents/creative-problem-solver.agent.yaml b/src/modules/cis/agents/creative-problem-solver.agent.yaml index 9e30b37f..5349efa3 100644 --- a/src/modules/cis/agents/creative-problem-solver.agent.yaml +++ b/src/modules/cis/agents/creative-problem-solver.agent.yaml @@ -15,15 +15,14 @@ agent: principles: Every problem is a system revealing weaknesses. Hunt for root causes relentlessly. The right question beats a fast answer. menu: - - trigger: solve + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Master Problem Solver" + + - trigger: SL or solve or fuzzy match on problem solve workflow: "{project-root}/_bmad/cis/workflows/problem-solving/workflow.yaml" - description: Apply systematic problem-solving methodologies + description: "[SL] Apply systematic problem-solving methodologies" - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Consult with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Consult with other expert agents from the party" diff --git a/src/modules/cis/agents/design-thinking-coach.agent.yaml b/src/modules/cis/agents/design-thinking-coach.agent.yaml index ac2c37b7..24970c12 100644 --- a/src/modules/cis/agents/design-thinking-coach.agent.yaml +++ b/src/modules/cis/agents/design-thinking-coach.agent.yaml @@ -15,15 +15,14 @@ agent: principles: Design is about THEM not us. Validate through real human interaction. Failure is feedback. Design WITH users not FOR them. menu: - - trigger: design + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Design Thinking Maestro" + + - trigger: DT or design-thinking or fuzzy match on design thinking workflow: "{project-root}/_bmad/cis/workflows/design-thinking/workflow.yaml" - description: Guide human-centered design process + description: "[DT] Guide human-centered design process" - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Consult with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Consult with other expert agents from the party" diff --git a/src/modules/cis/agents/innovation-strategist.agent.yaml b/src/modules/cis/agents/innovation-strategist.agent.yaml index 7684ce3a..e401eaab 100644 --- a/src/modules/cis/agents/innovation-strategist.agent.yaml +++ b/src/modules/cis/agents/innovation-strategist.agent.yaml @@ -15,15 +15,14 @@ agent: principles: Markets reward genuine new value. Innovation without business model thinking is theater. Incremental thinking means obsolete. menu: - - trigger: innovate + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Disruptive Innovation Oracle" + + - trigger: IS or innovation-strategy or fuzzy match on innovation strategy workflow: "{project-root}/_bmad/cis/workflows/innovation-strategy/workflow.yaml" - description: Identify disruption opportunities and business model innovation + description: "[IS] Identify disruption opportunities and business model innovation" - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Consult with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Consult with other expert agents from the party" diff --git a/src/modules/cis/agents/presentation-master.agent.yaml b/src/modules/cis/agents/presentation-master.agent.yaml index 84e01bbd..6b4515a3 100644 --- a/src/modules/cis/agents/presentation-master.agent.yaml +++ b/src/modules/cis/agents/presentation-master.agent.yaml @@ -23,39 +23,38 @@ agent: - Story structure applies everywhere - hook, build tension, deliver payoff menu: - - trigger: slide-deck - workflow: "todo" - description: Create multi-slide presentation with professional layouts and visual hierarchy + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Visual Communication Expert" - - trigger: explainer + - trigger: SD or slide-deck or fuzzy match on slide deck workflow: "todo" - description: Design YouTube/video explainer layout with visual script and engagement hooks + description: "[SD] Create multi-slide presentation with professional layouts and visual hierarchy" - - trigger: pitch-deck + - trigger: EX or explainer or fuzzy match on explainer workflow: "todo" - description: Craft investor pitch presentation with data visualization and narrative arc + description: "[EX] Design YouTube/video explainer layout with visual script and engagement hooks" - - trigger: talk + - trigger: PD or pitch-deck or fuzzy match on pitch deck workflow: "todo" - description: Build conference or workshop presentation materials with speaker notes + description: "[PD] Craft investor pitch presentation with data visualization and narrative arc" - - trigger: infographic + - trigger: TK or talk or fuzzy match on talk workflow: "todo" - description: Design creative information visualization with visual storytelling + description: "[TK] Build conference or workshop presentation materials with speaker notes" - - trigger: visual-metaphor + - trigger: IN or infographic or fuzzy match on infographic workflow: "todo" - description: Create conceptual illustrations (Rube Goldberg machines, journey maps, creative processes) + description: "[IN] Design creative information visualization with visual storytelling" - - trigger: concept-visual + - trigger: VM or visual-metaphor or fuzzy match on visual metaphor workflow: "todo" - description: Generate single expressive image that explains ideas creatively and memorably + description: "[VM] Create conceptual illustrations (Rube Goldberg machines, journey maps, creative processes)" - - trigger: party-mode + - trigger: CV or concept-visual or fuzzy match on concept visual + workflow: "todo" + description: "[CV] Generate single expressive image that explains ideas creatively and memorably" + + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Consult with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Consult with other expert agents from the party" diff --git a/src/modules/cis/agents/storyteller/storyteller.agent.yaml b/src/modules/cis/agents/storyteller/storyteller.agent.yaml index 3a1daeb7..7b1dc2f5 100644 --- a/src/modules/cis/agents/storyteller/storyteller.agent.yaml +++ b/src/modules/cis/agents/storyteller/storyteller.agent.yaml @@ -20,15 +20,14 @@ agent: - "Load COMPLETE file {project-root}/_bmad/_memory/storyteller-sidecar/stories-told.md and review the history of stories created for this user" menu: - - trigger: story + - trigger: CH or fuzzy match on chat + action: agent responds as expert based on its persona to converse + description: "[CH] Chat with the Master Storyteller" + + - trigger: ST or story or fuzzy match on story exec: "{project-root}/_bmad/cis/workflows/storytelling/workflow.yaml" - description: Craft compelling narrative using proven frameworks + description: "[ST] Craft compelling narrative using proven frameworks" - - trigger: party-mode + - trigger: PS or party-mode or fuzzy match on party mode exec: "{project-root}/_bmad/core/workflows/party-mode/workflow.md" - description: Consult with other expert agents from the party - - - trigger: advanced-elicitation - exec: "{project-root}/_bmad/core/tasks/advanced-elicitation.xml" - description: Advanced elicitation techniques to challenge the LLM to get better results - web-only: true + description: "[PS] Consult with other expert agents from the party" diff --git a/src/utility/agent-components/activation-steps.txt b/src/utility/agent-components/activation-steps.txt index 860be6a7..8c58227d 100644 --- a/src/utility/agent-components/activation-steps.txt +++ b/src/utility/agent-components/activation-steps.txt @@ -7,7 +7,7 @@ Remember: user's name is {user_name} {AGENT_SPECIFIC_STEPS} - Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of ALL menu items from menu section - STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command match - On user input: Number → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to clarify | No match → show "Not recognized" + Show greeting using {user_name} from config, communicate in {communication_language}, then display list of ALL menu items from menu section + STOP and WAIT for user input - do NOT execute menu items automatically - accept 2 letter menu command or fuzzy match as specified in each menu items cmd property + On user input: find matching menu item → execute menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to clarify | No match → show "Not recognized" When executing a menu item: Check menu-handlers section below - extract any attributes from the selected menu item (workflow, exec, tmpl, data, action, validate-workflow) and follow the corresponding handler instructions \ No newline at end of file diff --git a/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml b/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml deleted file mode 100644 index 551371eb..00000000 --- a/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# Test: CamelCase trigger -# Expected: FAIL -# Error code: custom -# Error path: agent.menu[0].trigger -# Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen) - -agent: - metadata: - id: camel-case-trigger - name: CamelCase Trigger - title: CamelCase - icon: ❌ - - persona: - role: Test agent - identity: Test identity - communication_style: Test style - principles: - - Test principle - - menu: - - trigger: listTasks - description: Invalid CamelCase trigger - action: list_tasks diff --git a/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml b/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml deleted file mode 100644 index 856b6c84..00000000 --- a/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# Test: Trigger with leading asterisk -# Expected: FAIL -# Error code: custom -# Error path: agent.menu[0].trigger -# Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen) - -agent: - metadata: - id: asterisk-trigger - name: Asterisk Trigger - title: Asterisk - icon: ❌ - - persona: - role: Test agent - identity: Test identity - communication_style: Test style - principles: - - Test principle - - menu: - - trigger: "*help" - description: Invalid trigger with asterisk - action: display_help diff --git a/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml b/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml deleted file mode 100644 index 7cee63d1..00000000 --- a/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# Test: Snake_case trigger -# Expected: FAIL -# Error code: custom -# Error path: agent.menu[0].trigger -# Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen) - -agent: - metadata: - id: snake-case-trigger - name: Snake Case Trigger - title: Snake Case - icon: ❌ - - persona: - role: Test agent - identity: Test identity - communication_style: Test style - principles: - - Test principle - - menu: - - trigger: list_tasks - description: Invalid snake_case trigger - action: list_tasks diff --git a/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml b/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml deleted file mode 100644 index b665ed43..00000000 --- a/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +++ /dev/null @@ -1,24 +0,0 @@ -# Test: Trigger with spaces -# Expected: FAIL -# Error code: custom -# Error path: agent.menu[0].trigger -# Error message: agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen) - -agent: - metadata: - id: spaces-trigger - name: Spaces Trigger - title: Spaces - icon: ❌ - - persona: - role: Test agent - identity: Test identity - communication_style: Test style - principles: - - Test principle - - menu: - - trigger: list tasks - description: Invalid trigger with spaces - action: list_tasks diff --git a/test/test-installation-components.js b/test/test-installation-components.js index 464ca613..1f9c99dd 100644 --- a/test/test-installation-components.js +++ b/test/test-installation-components.js @@ -175,7 +175,7 @@ async function runTests() { assert(compiled.includes('testarch/knowledge'), 'TEA agent compilation includes knowledge base path'); - assert(compiled.includes('*test-design'), 'TEA agent menu includes test-design workflow'); + assert(compiled.includes('test-design'), 'TEA agent menu includes test-design workflow'); // Cleanup await fs.remove(tempOutput); diff --git a/tools/cli/lib/agent/compiler.js b/tools/cli/lib/agent/compiler.js index 90b75573..0d805451 100644 --- a/tools/cli/lib/agent/compiler.js +++ b/tools/cli/lib/agent/compiler.js @@ -128,7 +128,7 @@ function buildMenuXml(menuItems) { let xml = ' \n'; // Always inject menu display option first - xml += ` [M] Redisplay Menu Options\n`; + xml += ` [HM] Redisplay Help Menu Options\n`; // Add user-defined menu items if (menuItems && menuItems.length > 0) { @@ -138,15 +138,8 @@ function buildMenuXml(menuItems) { xml += ` ${escapeXml(item.multi)}\n`; xml += buildNestedHandlers(item.triggers); xml += ` \n`; - } - // Handle legacy format menu items - else if (item.trigger) { - // For legacy items, keep using cmd with * format + } else if (item.trigger) { let trigger = item.trigger || ''; - if (!trigger.startsWith('*')) { - trigger = '*' + trigger; - } - const attrs = [`cmd="${trigger}"`]; // Add handler attributes @@ -162,7 +155,7 @@ function buildMenuXml(menuItems) { } // Always inject dismiss last - xml += ` [D] Dismiss Agent\n`; + xml += ` [DA] Dismiss Agent\n`; xml += ' \n'; @@ -179,9 +172,6 @@ function buildNestedHandlers(triggers) { for (const triggerGroup of triggers) { for (const [triggerName, execArray] of Object.entries(triggerGroup)) { - // Build trigger with * prefix - let trigger = triggerName.startsWith('*') ? triggerName : '*' + triggerName; - // Extract the relevant execution data const execData = processExecArray(execArray); diff --git a/tools/cli/lib/yaml-xml-builder.js b/tools/cli/lib/yaml-xml-builder.js index b7e81871..8603be14 100644 --- a/tools/cli/lib/yaml-xml-builder.js +++ b/tools/cli/lib/yaml-xml-builder.js @@ -336,7 +336,7 @@ class YamlXmlBuilder { let xml = ' \n'; // Always inject menu display option first - xml += ` [M] Redisplay Menu Options\n`; + xml += ` [HM] Redisplay Help Menu Options\n`; // Add user-defined menu items with * prefix if (menuItems && menuItems.length > 0) { @@ -358,11 +358,7 @@ class YamlXmlBuilder { } // Handle legacy format menu items else if (item.trigger) { - // For legacy items, keep using cmd with * format let trigger = item.trigger || ''; - if (!trigger.startsWith('*')) { - trigger = '*' + trigger; - } const attrs = [`cmd="${trigger}"`]; @@ -388,7 +384,7 @@ class YamlXmlBuilder { } // Always inject dismiss last - xml += ` [D] Dismiss Agent\n`; + xml += ` [DA] Dismiss Agent\n`; xml += ' \n'; @@ -405,9 +401,6 @@ class YamlXmlBuilder { for (const triggerGroup of triggers) { for (const [triggerName, execArray] of Object.entries(triggerGroup)) { - // Build trigger with * prefix - let trigger = triggerName.startsWith('*') ? triggerName : '*' + triggerName; - // Extract the relevant execution data const execData = this.processExecArray(execArray); diff --git a/tools/schema/agent.js b/tools/schema/agent.js index cafff7c0..ddf4e02c 100644 --- a/tools/schema/agent.js +++ b/tools/schema/agent.js @@ -53,15 +53,6 @@ function agentSchema(options = {}) { if (item.trigger) { const triggerValue = item.trigger; - if (!TRIGGER_PATTERN.test(triggerValue)) { - ctx.addIssue({ - code: 'custom', - path: ['agent', 'menu', index, 'trigger'], - message: 'agent.menu[].trigger must be kebab-case (lowercase words separated by hyphen)', - }); - return; - } - if (seenTriggers.has(triggerValue)) { ctx.addIssue({ code: 'custom', @@ -91,15 +82,6 @@ function agentSchema(options = {}) { } if (triggerName) { - if (!TRIGGER_PATTERN.test(triggerName)) { - ctx.addIssue({ - code: 'custom', - path: ['agent', 'menu', index, 'triggers', triggerIndex], - message: `agent.menu[].triggers[] must be kebab-case (lowercase words separated by hyphen) - got "${triggerName}"`, - }); - return; - } - if (seenTriggers.has(triggerName)) { ctx.addIssue({ code: 'custom', @@ -395,15 +377,6 @@ function buildMenuItemSchema() { }); } seenTriggers.add(triggerName); - - // Validate trigger name format - if (!TRIGGER_PATTERN.test(triggerName)) { - ctx.addIssue({ - code: 'custom', - path: ['agent', 'menu', 'triggers', index], - message: `Trigger name "${triggerName}" must be kebab-case (lowercase words separated by hyphen)`, - }); - } } } });