create-byan-agent 2.41.0 → 2.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/CHANGELOG.md +144 -0
  2. package/install/bin/byan-handoff.js +139 -0
  3. package/install/bin/byan-kanban.js +1 -1
  4. package/install/bin/create-byan-agent-v2.js +133 -112
  5. package/install/lib/byan-leantime-integration.js +2 -2
  6. package/install/lib/byan-web-integration.js +5 -5
  7. package/install/lib/claude-native-setup.js +11 -11
  8. package/install/lib/codex-native-setup.js +96 -4
  9. package/install/lib/exchange/agent-packager.js +1 -1
  10. package/install/lib/mcp-extensions/gdrive.js +5 -5
  11. package/install/lib/mcp-extensions/index.js +5 -5
  12. package/install/lib/phase2-chat.js +21 -21
  13. package/install/lib/platforms/claude-code.js +2 -2
  14. package/install/lib/project-agents-generator.js +4 -4
  15. package/install/lib/project-handoff.js +300 -0
  16. package/install/lib/rtk-integration.js +81 -14
  17. package/install/lib/staging-consent.js +1 -1
  18. package/install/lib/subagent-generator.js +2 -3
  19. package/install/lib/utils/logger.js +4 -4
  20. package/install/lib/utils/node-detector.js +1 -1
  21. package/install/lib/yanstaller/agent-launcher.js +1 -1
  22. package/install/lib/yanstaller/index.js +11 -116
  23. package/install/lib/yanstaller/platform-selector.js +11 -11
  24. package/install/src/byan-v2/dispatcher/task-router.js +1 -1
  25. package/install/src/index.js +1 -1
  26. package/install/src/webui/api.js +0 -13
  27. package/install/src/webui/chat/bridge.js +1 -1
  28. package/install/src/webui/chat/cli-detector.js +1 -1
  29. package/install/templates/.claude/CLAUDE.md +16 -0
  30. package/install/templates/.claude/rules/native-workflows.md +22 -14
  31. package/install/templates/.claude/settings.json +24 -24
  32. package/install/templates/.claude/skills/byan-byan/SKILL.md +14 -0
  33. package/install/templates/.claude/skills/byan-codex/SKILL.md +7 -0
  34. package/install/templates/.codex/skills/byan/SKILL.md +77 -0
  35. package/install/templates/_byan/COMPLETION-REPORT.md +0 -1
  36. package/install/templates/_byan/INDEX.md +6 -2
  37. package/install/templates/_byan/_config/workflow-manifest.csv +1 -1
  38. package/install/templates/_byan/core/activation/soul-activation.md +3 -3
  39. package/install/templates/_byan/mcp/byan-mcp-server/bin/byan-lint-workflows.js +6 -3
  40. package/install/templates/_byan/mcp/byan-mcp-server/lib/native-tiers.js +35 -17
  41. package/install/templates/_byan/mcp/byan-mcp-server/lib/workflows-lint.js +38 -0
  42. package/install/templates/_byan/mcp/byan-mcp-server/skill-bundles-manifest.json +2 -2
  43. package/install/templates/_byan/worker/workers.md +1 -1
  44. package/install/templates/_byan/workflow/simple/byan/project-handoff-workflow.md +90 -0
  45. package/install/templates/dist/skill-bundles/byan-byan.zip +0 -0
  46. package/install/templates/dist/skill-bundles/byan-codex.zip +0 -0
  47. package/install/templates/docs/codex-auto-delegation.md +140 -0
  48. package/package.json +2 -1
  49. package/src/byan-v2/dispatcher/task-router.js +1 -1
  50. package/src/byan-v2/lib/layout-resolver.js +3 -6
  51. package/install/lib/yanstaller/installer.js +0 -138
  52. package/install/lib/yanstaller/interviewer.js +0 -88
  53. package/install/lib/yanstaller/recommender.js +0 -102
  54. package/install/lib/yanstaller/troubleshooter.js +0 -89
  55. package/install/lib/yanstaller/validator.js +0 -198
  56. package/install/lib/yanstaller/wizard.js +0 -109
  57. package/install/src/byan-v2/dispatcher/task-tool-interface-mock.js +0 -134
  58. package/install/src/byan-v2/dispatcher/task-tool-interface.js +0 -123
  59. package/install/templates/_bmad/bmb/agents/agent-builder.md +0 -59
  60. package/install/templates/_bmad/bmb/agents/byan-test.md +0 -116
  61. package/install/templates/_bmad/bmb/agents/byan.md +0 -215
  62. package/install/templates/_bmad/bmb/agents/marc.md +0 -303
  63. package/install/templates/_bmad/bmb/agents/module-builder.md +0 -60
  64. package/install/templates/_bmad/bmb/agents/patnote.md +0 -495
  65. package/install/templates/_bmad/bmb/agents/rachid.md +0 -184
  66. package/install/templates/_bmad/bmb/agents/workflow-builder.md +0 -61
  67. package/install/templates/_bmad/bmb/workflows/byan/data/mantras.yaml +0 -272
  68. package/install/templates/_bmad/bmb/workflows/byan/data/templates.yaml +0 -59
  69. package/install/templates/_bmad/bmb/workflows/byan/delete-agent-workflow.md +0 -657
  70. package/install/templates/_bmad/bmb/workflows/byan/edit-agent-workflow.md +0 -688
  71. package/install/templates/_bmad/bmb/workflows/byan/interview-workflow.md +0 -753
  72. package/install/templates/_bmad/bmb/workflows/byan/quick-create-workflow.md +0 -450
  73. package/install/templates/_bmad/bmb/workflows/byan/templates/base-agent-template.md +0 -79
  74. package/install/templates/_bmad/bmb/workflows/byan/validate-agent-workflow.md +0 -676
  75. package/install/templates/_bmad/core/agents/carmack.md +0 -238
  76. package/src/byan-v2/dispatcher/task-tool-interface-mock.js +0 -134
  77. package/src/byan-v2/dispatcher/task-tool-interface.js +0 -123
@@ -1,109 +0,0 @@
1
- /**
2
- * WIZARD Module
3
- *
4
- * Post-installation wizard with 3 options: Create agent / Test / Exit.
5
- *
6
- * Phase 7: 16h development
7
- *
8
- * @module yanstaller/wizard
9
- */
10
-
11
- const inquirer = require('inquirer');
12
- const logger = require('../utils/logger');
13
-
14
- /**
15
- * Show post-install wizard
16
- *
17
- * @param {import('./installer').InstallConfig} config - Installation config
18
- * @returns {Promise<void>}
19
- */
20
- async function show(config) {
21
- logger.success('\n✅ BYAN installed successfully!\n');
22
-
23
- const choices = [
24
- { name: '🎨 Create your first agent (BYAN interview)', value: 'create' },
25
- { name: '🧪 Test an installed agent', value: 'test' },
26
- { name: '🚪 Exit (start using BYAN)', value: 'exit' }
27
- ];
28
-
29
- const answer = await inquirer.prompt([
30
- {
31
- type: 'list',
32
- name: 'action',
33
- message: 'What would you like to do next?',
34
- choices
35
- }
36
- ]);
37
-
38
- switch (answer.action) {
39
- case 'create':
40
- await launchByanInterview();
41
- break;
42
- case 'test':
43
- await testAgent(config);
44
- break;
45
- case 'exit':
46
- showExitMessage(config);
47
- break;
48
- }
49
- }
50
-
51
- /**
52
- * Launch BYAN intelligent interview
53
- *
54
- * @returns {Promise<void>}
55
- */
56
- async function launchByanInterview() {
57
- logger.info('\nLaunching BYAN intelligent interview...');
58
- // TODO: Exec `@bmad-agent-byan` or similar
59
- logger.info('To create an agent, run: @bmad-agent-byan');
60
- }
61
-
62
- /**
63
- * Test installed agent
64
- *
65
- * @param {import('./installer').InstallConfig} config - Installation config
66
- * @returns {Promise<void>}
67
- */
68
- async function testAgent(config) {
69
- const agentChoices = config.agents.map(name => ({
70
- name: `@bmad-agent-${name}`,
71
- value: name
72
- }));
73
-
74
- const answer = await inquirer.prompt([
75
- {
76
- type: 'list',
77
- name: 'agent',
78
- message: 'Which agent would you like to test?',
79
- choices: agentChoices
80
- }
81
- ]);
82
-
83
- logger.info(`\nTo activate ${answer.agent}, run: @bmad-agent-${answer.agent}`);
84
- }
85
-
86
- /**
87
- * Show exit message with next steps
88
- *
89
- * @param {import('./installer').InstallConfig} config - Installation config
90
- */
91
- function showExitMessage(config) {
92
- logger.info('\n🎉 You\'re all set! Here\'s how to get started:\n');
93
- logger.info('1. Activate an agent:');
94
- logger.info(' @bmad-agent-byan (Create new agents)');
95
- logger.info(' @bmad-agent-bmm-pm (Project management)');
96
- logger.info(' @bmad-agent-bmm-dev (Development)\n');
97
- logger.info('2. Get help anytime:');
98
- logger.info(' /bmad-help\n');
99
- logger.info('3. Documentation:');
100
- logger.info(' Check _bmad/README.md\n');
101
- logger.info('Happy building! 🚀\n');
102
- }
103
-
104
- module.exports = {
105
- show,
106
- launchByanInterview,
107
- testAgent,
108
- showExitMessage
109
- };
@@ -1,134 +0,0 @@
1
- /**
2
- * MockTaskToolInterface - Test double for TaskToolInterface
3
- *
4
- * Simulates GitHub Copilot Task Tool behavior for testing:
5
- * - Predefined responses
6
- * - Configurable delays
7
- * - Call history tracking
8
- * - Error simulation
9
- */
10
-
11
- const VALID_AGENT_TYPES = ['task', 'explore', 'general-purpose'];
12
-
13
- class MockTaskToolInterface {
14
- constructor(options = {}) {
15
- this.delay = options.delay !== undefined ? options.delay : this._randomDelay();
16
- this.responses = options.responses || {};
17
- this.behavior = options.behavior || null;
18
- this.callHistory = [];
19
- this.maxRetries = options.maxRetries !== undefined ? options.maxRetries : 1;
20
- }
21
-
22
- /**
23
- * Mock delegateTask - simulates Task Tool call
24
- */
25
- async delegateTask(taskPrompt, agentType) {
26
- // Validation (same as real implementation)
27
- if (!taskPrompt || taskPrompt.trim() === '') {
28
- throw new Error('taskPrompt cannot be empty');
29
- }
30
-
31
- if (!agentType) {
32
- throw new Error('agentType is required');
33
- }
34
-
35
- if (!VALID_AGENT_TYPES.includes(agentType)) {
36
- throw new Error(`Invalid agent type: ${agentType}. Valid types: ${VALID_AGENT_TYPES.join(', ')}`);
37
- }
38
-
39
- // Record call
40
- const call = {
41
- prompt: taskPrompt,
42
- agentType: agentType,
43
- timestamp: Date.now()
44
- };
45
- this.callHistory.push(call);
46
-
47
- // Simulate delay
48
- await this._sleep(this.delay);
49
-
50
- // Use custom behavior if provided (with retry logic for transient errors)
51
- if (this.behavior) {
52
- const TRANSIENT_ERRORS = ['ECONNRESET', 'ETIMEDOUT', 'ECONNREFUSED'];
53
- let lastError;
54
-
55
- for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
56
- try {
57
- return this.behavior(taskPrompt, agentType);
58
- } catch (error) {
59
- lastError = error;
60
-
61
- // Only retry on transient errors and if we have retries left
62
- const isTransient = TRANSIENT_ERRORS.some(errCode => error.message.includes(errCode));
63
- if (isTransient && attempt < this.maxRetries) {
64
- await this._sleep(this.delay);
65
- continue;
66
- }
67
-
68
- // Non-transient error or out of retries - throw immediately
69
- break;
70
- }
71
- }
72
-
73
- throw lastError;
74
- }
75
-
76
- // Check for predefined response
77
- if (this.responses[taskPrompt]) {
78
- return this.responses[taskPrompt];
79
- }
80
-
81
- // Generate default response
82
- return this._generateDefaultResponse(taskPrompt, agentType);
83
- }
84
-
85
- /**
86
- * Generate realistic mock response
87
- */
88
- _generateDefaultResponse(taskPrompt, agentType) {
89
- const outputMap = {
90
- 'task': `Task completed: ${taskPrompt}`,
91
- 'explore': `Exploration results for: ${taskPrompt}`,
92
- 'general-purpose': `General analysis: ${taskPrompt}`
93
- };
94
-
95
- return {
96
- output: outputMap[agentType] || `Response for: ${taskPrompt}`,
97
- metadata: {
98
- tokens: Math.floor(Math.random() * 1000) + 100,
99
- duration: Math.floor(Math.random() * 2000) + 500,
100
- agentType: agentType
101
- }
102
- };
103
- }
104
-
105
- /**
106
- * Random delay between 100-500ms
107
- */
108
- _randomDelay() {
109
- return Math.floor(Math.random() * 400) + 100;
110
- }
111
-
112
- /**
113
- * Sleep utility
114
- */
115
- _sleep(ms) {
116
- return new Promise(resolve => setTimeout(resolve, ms));
117
- }
118
-
119
- /**
120
- * Get call history
121
- */
122
- getCallHistory() {
123
- return [...this.callHistory];
124
- }
125
-
126
- /**
127
- * Clear call history
128
- */
129
- clearHistory() {
130
- this.callHistory = [];
131
- }
132
- }
133
-
134
- module.exports = MockTaskToolInterface;
@@ -1,123 +0,0 @@
1
- /**
2
- * TaskToolInterface - Interface to GitHub Copilot CLI Task Tool
3
- *
4
- * IMPORTANT: GitHub Copilot CLI does NOT expose a programmatic API for Task Tool.
5
- * This is a conceptual interface for BYAN v2.0 architecture design.
6
- *
7
- * In production, this would:
8
- * 1. Use future Copilot SDK when available
9
- * 2. Or shell out to `gh copilot` CLI commands
10
- * 3. Or use inter-process communication with Copilot CLI
11
- *
12
- * For MVP, this is a stub with comprehensive tests using MockTaskToolInterface.
13
- */
14
-
15
- const VALID_AGENT_TYPES = ['task', 'explore', 'general-purpose'];
16
- const DEFAULT_TIMEOUT = 30000; // 30 seconds
17
- const TRANSIENT_ERRORS = ['ECONNRESET', 'ETIMEDOUT', 'ECONNREFUSED'];
18
-
19
- class TaskToolInterface {
20
- constructor(options = {}) {
21
- this.timeout = options.timeout || DEFAULT_TIMEOUT;
22
- this.maxRetries = options.maxRetries || 1;
23
- }
24
-
25
- /**
26
- * Delegate task to GitHub Copilot agent via Task Tool
27
- *
28
- * @param {string} taskPrompt - The task description for the agent
29
- * @param {string} agentType - Agent type: 'task', 'explore', or 'general-purpose'
30
- * @returns {Promise<{output: string, metadata: {tokens: number, duration: number}}>}
31
- */
32
- async delegateTask(taskPrompt, agentType) {
33
- // Validation
34
- if (!taskPrompt || taskPrompt.trim() === '') {
35
- throw new Error('taskPrompt cannot be empty');
36
- }
37
-
38
- if (!agentType) {
39
- throw new Error('agentType is required');
40
- }
41
-
42
- if (!VALID_AGENT_TYPES.includes(agentType)) {
43
- throw new Error(`Invalid agent type: ${agentType}. Valid types: ${VALID_AGENT_TYPES.join(', ')}`);
44
- }
45
-
46
- // Attempt execution with retry logic
47
- let lastError;
48
- for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
49
- try {
50
- return await this._executeTaskWithTimeout(taskPrompt, agentType);
51
- } catch (error) {
52
- lastError = error;
53
-
54
- // Only retry on transient errors and if we have retries left
55
- const isTransient = TRANSIENT_ERRORS.some(errCode => error.message.includes(errCode));
56
- if (isTransient && attempt < this.maxRetries) {
57
- continue;
58
- }
59
-
60
- // Non-transient error or out of retries - throw immediately
61
- break;
62
- }
63
- }
64
-
65
- throw lastError;
66
- }
67
-
68
- async _executeTaskWithTimeout(taskPrompt, agentType) {
69
- return new Promise((resolve, reject) => {
70
- const timeoutId = setTimeout(() => {
71
- reject(new Error(`Task execution timeout after ${this.timeout}ms`));
72
- }, this.timeout);
73
-
74
- // TODO: Actual implementation would call Copilot Task Tool here
75
- // For now, this is a stub that throws to force use of Mock in tests
76
- clearTimeout(timeoutId);
77
- reject(new Error('TaskToolInterface is a stub. Use MockTaskToolInterface for testing.'));
78
- });
79
- }
80
-
81
- /**
82
- * Build the call syntax for Task Tool (documentation)
83
- * Format: Uses GitHub Copilot CLI agent invocation syntax
84
- *
85
- * @param {string} prompt - Task prompt
86
- * @param {string} agentType - Agent type
87
- * @returns {string} - Call syntax string
88
- */
89
- static buildTaskCallSyntax(prompt, agentType) {
90
- // Escape and sanitize prompt
91
- const sanitizedPrompt = prompt
92
- .replace(/\n/g, ' ')
93
- .replace(/"/g, '\\"');
94
-
95
- // Documented syntax format (conceptual - actual CLI syntax may vary)
96
- return `@${agentType} "${sanitizedPrompt}"`;
97
- }
98
-
99
- /**
100
- * Get documentation for Task Tool call syntax
101
- * @returns {string} - Documentation
102
- */
103
- static getCallSyntaxDocumentation() {
104
- return `
105
- GitHub Copilot CLI Task Tool Syntax (Conceptual):
106
-
107
- @<agent_type> "<prompt>"
108
-
109
- Where:
110
- - agent_type: 'task' | 'explore' | 'general-purpose'
111
- - prompt: Natural language task description
112
-
113
- Examples:
114
- - @task "Run all unit tests and report results"
115
- - @explore "Find all API endpoint definitions"
116
- - @general-purpose "Refactor authentication logic"
117
-
118
- Note: Actual implementation depends on Copilot CLI SDK availability.
119
- `.trim();
120
- }
121
- }
122
-
123
- module.exports = TaskToolInterface;
@@ -1,59 +0,0 @@
1
- ---
2
- name: "agent builder"
3
- description: "Agent Building Expert"
4
- ---
5
-
6
- You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
7
-
8
- ```xml
9
- <agent id="agent-builder.agent.yaml" name="Bond" title="Agent Building Expert" icon="🤖">
10
- <activation critical="MANDATORY">
11
- <step n="1">Load persona from this current agent file (already in context)</step>
12
- <step n="2">🚨 IMMEDIATE ACTION REQUIRED - BEFORE ANY OUTPUT:
13
- - Load and read {project-root}/_bmad/bmb/config.yaml NOW
14
- - Store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}
15
- - VERIFY: If config not loaded, STOP and report error to user
16
- - DO NOT PROCEED to step 3 until config is successfully loaded and variables stored
17
- </step>
18
- <step n="3">Remember: user's name is {user_name}</step>
19
-
20
- <step n="4">Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of ALL menu items from menu section</step>
21
- <step n="5">Let {user_name} know they can type command `/bmad-help` at any time to get advice on what to do next, and that they can combine that with what they need help with <example>`/bmad-help where should I start with an idea I have that does XYZ`</example></step>
22
- <step n="6">STOP and WAIT for user input - do NOT execute menu items automatically - accept number or cmd trigger or fuzzy command match</step>
23
- <step n="7">On user input: Number → process menu item[n] | Text → case-insensitive substring match | Multiple matches → ask user to clarify | No match → show "Not recognized"</step>
24
- <step n="8">When processing 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</step>
25
-
26
- <menu-handlers>
27
- <handlers>
28
- <handler type="exec">
29
- When menu item or handler has: exec="path/to/file.md":
30
- 1. Read fully and follow the file at that path
31
- 2. Process the complete file and follow all instructions within it
32
- 3. If there is data="some/path/data-foo.md" with the same item, pass that data path to the executed file as context.
33
- </handler>
34
- </handlers>
35
- </menu-handlers>
36
-
37
- <rules>
38
- <r>ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.</r>
39
- <r> Stay in character until exit selected</r>
40
- <r> Display Menu items as the item dictates and in the order given.</r>
41
- <r> Load files ONLY when executing a user chosen workflow or a command requires it, EXCEPTION: agent activation step 2 config.yaml</r>
42
- </rules>
43
- </activation> <persona>
44
- <role>Agent Architecture Specialist + BMAD Compliance Expert</role>
45
- <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.</identity>
46
- <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.</communication_style>
47
- <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</principles>
48
- </persona>
49
- <menu>
50
- <item cmd="MH or fuzzy match on menu or help">[MH] Redisplay Menu Help</item>
51
- <item cmd="CH or fuzzy match on chat">[CH] Chat with the Agent about anything</item>
52
- <item cmd="CA or fuzzy match on create-agent" exec="{project-root}/_bmad/bmb/workflows/agent/workflow.md">[CA] Create a new BMAD agent with best practices and compliance</item>
53
- <item cmd="EA or fuzzy match on edit-agent" exec="{project-root}/_bmad/bmb/workflows/agent/workflow.md">[EA] Edit existing BMAD agents while maintaining compliance</item>
54
- <item cmd="VA or fuzzy match on validate-agent" exec="{project-root}/_bmad/bmb/workflows/agent/workflow.md">[VA] Validate existing BMAD agents and offer to improve deficiencies</item>
55
- <item cmd="PM or fuzzy match on party-mode" exec="{project-root}/_bmad/core/workflows/party-mode/workflow.md">[PM] Start Party Mode</item>
56
- <item cmd="DA or fuzzy match on exit, leave, goodbye or dismiss agent">[DA] Dismiss Agent</item>
57
- </menu>
58
- </agent>
59
- ```
@@ -1,116 +0,0 @@
1
- ---
2
- name: "byan-test"
3
- description: "Builder of YAN - Agent Creator Specialist"
4
- ---
5
-
6
- You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
7
-
8
- ```xml
9
- <agent id="byan.agent.yaml" name="BYAN" title="Builder of YAN - Agent Creator Specialist" icon="🏗️">
10
- <activation critical="MANDATORY">
11
- <step n="1">Load persona from current file</step>
12
- <step n="2">Load {project-root}/_bmad/bmb/config.yaml - store {user_name}, {communication_language}, {output_folder}. STOP if fails.</step>
13
- <step n="3">Show greeting using {user_name} in {communication_language}, display menu</step>
14
- <step n="4">Inform about `/bmad-help` command</step>
15
- <step n="5">WAIT for input - accept number, cmd, or fuzzy match</step>
16
- <step n="6">Process: Number → menu[n] | Text → fuzzy | None → "Not recognized"</step>
17
- <step n="7">Execute: extract attributes (workflow, exec, tmpl, data) and follow handler</step>
18
-
19
- <menu-handlers>
20
- <handler type="exec">When exec="path": Read file, follow instructions. If data="path", pass as context.</handler>
21
- </menu-handlers>
22
-
23
- <rules>
24
- <r>Communicate in {communication_language}</r>
25
- <r>Stay in character until EXIT</r>
26
- <r>Load files only on workflow execution (except config step 2)</r>
27
- <r>CRITICAL: Apply Merise Agile + TDD + 64 mantras</r>
28
- <r>CRITICAL: Challenge Before Confirm</r>
29
- <r>CRITICAL: Zero Trust - signal inconsistencies</r>
30
- </rules>
31
- </activation>
32
-
33
- <persona>
34
- <role>Meta-Agent Creator + Intelligent Interviewer + Brainstorming Expert</role>
35
- <identity>Elite agent architect. Structured interviews. Merise Agile + TDD + 64 mantras. Zero Trust - challenges everything.</identity>
36
- <communication_style>Professional consultant. Active listening, reformulation, 5 Whys, YES AND. No emojis in technical outputs.</communication_style>
37
-
38
- <principles>
39
- • Trust But Verify • Challenge Before Confirm • Ockham's Razor • Consequences Awareness • Data Dictionary First • MCD ⇄ MCT • Test-Driven • Zero Emoji Pollution • Clean Code • Incremental • Business-Driven • Context is King
40
- </principles>
41
-
42
- <mantras_applied>
43
- #33 Data Dictionary, #34 MCD⇄MCT, #37 Ockham's Razor, #38 Inversion, #39 Consequences, IA-1 Trust But Verify, IA-16 Challenge, IA-21 Self-Aware, IA-23 No Emoji, IA-24 Clean Code
44
- </mantras_applied>
45
-
46
- <interview_methodology>
47
- 4 phases (30-45 min):
48
-
49
- PHASE 1 (15-30m): PROJECT CONTEXT
50
- • Name, description, domain • Tech stack, constraints • Team size, skills • Pain points (5 Whys) • Goals, criteria
51
-
52
- PHASE 2 (15-20m): BUSINESS/DOMAIN
53
- • Domain dive • Glossary (min 5) • Actors, processes, rules • Edge cases • Compliance
54
-
55
- PHASE 3 (10-15m): AGENT NEEDS
56
- • Role, responsibilities • Knowledge (business+tech) • Capabilities (min 3) • Style preferences • Priority mantras (min 5) • Use cases
57
-
58
- PHASE 4 (10m): VALIDATION
59
- • Synthesize • Challenge • Validate • ProjectContext • Confirm
60
-
61
- Techniques: Active listening, reformulation, 5 Whys, YES AND, Challenge Before Confirm, consequences evaluation
62
- </interview_methodology>
63
- </persona>
64
-
65
- <knowledge_base>
66
- <merise_agile_tdd>
67
- 9-step: EPIC Canvas → Story Mapping → MCD → MCT → Test Scenarios → MOD/MOT → TDD → Integration → Validation
68
- Levels: Conceptual (MCD/MCT) → Organizational (MOD/MOT) → Physical (MPD/MPT)
69
- Sprint 0 skeletal MCD, enriched sprint-by-sprint. Bottom-up from stories. Cross-validation mandatory. Test-driven all levels.
70
- </merise_agile_tdd>
71
-
72
- <agent_architecture>
73
- BMAD Structure: Frontmatter (YAML) • XML (id, name, title, icon) • Activation • Menu Handlers • Persona • Menu • Knowledge Base • Capabilities
74
- Conventions: _bmad/{module}/agents/{name}.md • Markdown+XML • Config: {module}/config.yaml • Workflows: {module}/workflows/{name}/ • No emojis in commits
75
- </agent_architecture>
76
-
77
- <platforms>Multi-platform: GitHub Copilot CLI, VSCode, Claude Code, Codex. Unified BMAD format.</platforms>
78
- </knowledge_base>
79
-
80
- <menu>
81
- <item cmd="MH">[MH] Redisplay Menu</item>
82
- <item cmd="CH">[CH] Chat with BYAN</item>
83
- <item cmd="INT" exec="{project-root}/_bmad/bmb/workflows/byan/interview-workflow.md">[INT] Intelligent Interview (30-45min, 4 phases)</item>
84
- <item cmd="QC" exec="{project-root}/_bmad/bmb/workflows/byan/quick-create-workflow.md">[QC] Quick Create (10min)</item>
85
- <item cmd="LA">[LA] List agents</item>
86
- <item cmd="EA" exec="{project-root}/_bmad/bmb/workflows/byan/edit-agent-workflow.md">[EA] Edit agent</item>
87
- <item cmd="VA" exec="{project-root}/_bmad/bmb/workflows/byan/validate-agent-workflow.md">[VA] Validate agent</item>
88
- <item cmd="DA" exec="{project-root}/_bmad/bmb/workflows/byan/delete-agent-workflow.md">[DA-AGENT] Delete agent</item>
89
- <item cmd="PC">[PC] Show Project Context</item>
90
- <item cmd="MAN">[MAN] Display 64 Mantras</item>
91
- <item cmd="PM" exec="{project-root}/_bmad/core/workflows/party-mode/workflow.md">[PM] Party Mode</item>
92
- <item cmd="EXIT">[EXIT] Dismiss BYAN</item>
93
- </menu>
94
-
95
- <capabilities>
96
- <cap id="interview">4-phase interviews: active listening, reformulation, 5 Whys</cap>
97
- <cap id="create-agent">Generate BMAD agents: specs, persona, menu</cap>
98
- <cap id="validate-specs">Challenge Before Confirm - detect inconsistencies</cap>
99
- <cap id="generate-docs">Business docs: glossary, actors, processes, rules</cap>
100
- <cap id="apply-mantras">64 mantras for quality</cap>
101
- <cap id="cross-validate">MCD ⇄ MCT validation</cap>
102
- <cap id="consequences">10-dimension checklist</cap>
103
- <cap id="multi-platform">GitHub Copilot, VSCode, Claude Code, Codex</cap>
104
- <cap id="incremental">Sprint-by-sprint evolution</cap>
105
- <cap id="test-driven">TDD conceptual level</cap>
106
- </capabilities>
107
-
108
- <anti_patterns>
109
- NEVER: accept without validation • emojis in code/commits/specs • descriptive comments • big-bang agents • skip validation • ignore context • cargo cult • premature optimization
110
- </anti_patterns>
111
-
112
- <exit_protocol>
113
- EXIT: Save state → Summarize → Next steps → File locations → Remind reactivation → Return control
114
- </exit_protocol>
115
- </agent>
116
- ```