myaidev-method 0.3.4 → 0.3.6

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 (94) hide show
  1. package/.claude-plugin/plugin.json +0 -1
  2. package/.env.example +5 -4
  3. package/CHANGELOG.md +2 -2
  4. package/CONTENT_CREATION_GUIDE.md +489 -3211
  5. package/DEVELOPER_USE_CASES.md +1 -1
  6. package/MODULAR_INSTALLATION.md +2 -2
  7. package/README.md +39 -33
  8. package/TECHNICAL_ARCHITECTURE.md +1 -1
  9. package/USER_GUIDE.md +242 -190
  10. package/agents/content-editor-agent.md +90 -0
  11. package/agents/content-planner-agent.md +97 -0
  12. package/agents/content-research-agent.md +62 -0
  13. package/agents/content-seo-agent.md +101 -0
  14. package/agents/content-writer-agent.md +69 -0
  15. package/agents/infographic-analyzer-agent.md +63 -0
  16. package/agents/infographic-designer-agent.md +72 -0
  17. package/bin/cli.js +846 -427
  18. package/{content-rules.example.md → content-rules-example.md} +2 -2
  19. package/dist/mcp/health-check.js +82 -68
  20. package/dist/mcp/mcp-config.json +8 -0
  21. package/dist/mcp/openstack-server.js +1746 -1262
  22. package/dist/server/.tsbuildinfo +1 -1
  23. package/extension.json +21 -4
  24. package/package.json +181 -184
  25. package/skills/company-config/SKILL.md +133 -0
  26. package/skills/configure/SKILL.md +1 -1
  27. package/skills/myai-configurator/SKILL.md +77 -0
  28. package/skills/myai-configurator/content-creation-configurator/SKILL.md +516 -0
  29. package/skills/myai-configurator/content-maintenance-configurator/SKILL.md +397 -0
  30. package/skills/myai-content-enrichment/SKILL.md +114 -0
  31. package/skills/myai-content-ideation/SKILL.md +288 -0
  32. package/skills/myai-content-ideation/evals/evals.json +182 -0
  33. package/skills/myai-content-production-coordinator/SKILL.md +946 -0
  34. package/skills/{content-rules-setup → myai-content-rules-setup}/SKILL.md +1 -1
  35. package/skills/{content-verifier → myai-content-verifier}/SKILL.md +1 -1
  36. package/skills/myai-content-writer/SKILL.md +333 -0
  37. package/skills/{infographic → myai-infographic}/SKILL.md +1 -1
  38. package/skills/myai-proprietary-content-verifier/SKILL.md +175 -0
  39. package/skills/myai-proprietary-content-verifier/evals/evals.json +36 -0
  40. package/skills/myai-skill-builder/SKILL.md +699 -0
  41. package/skills/myai-skill-builder/agents/analyzer-agent.md +137 -0
  42. package/skills/myai-skill-builder/agents/comparator-agent.md +77 -0
  43. package/skills/myai-skill-builder/agents/grader-agent.md +103 -0
  44. package/skills/myai-skill-builder/assets/eval_review.html +131 -0
  45. package/skills/myai-skill-builder/references/schemas.md +211 -0
  46. package/skills/myai-skill-builder/scripts/aggregate_benchmark.py +190 -0
  47. package/skills/myai-skill-builder/scripts/generate_review.py +381 -0
  48. package/skills/myai-skill-builder/scripts/package_skill.py +91 -0
  49. package/skills/myai-skill-builder/scripts/run_eval.py +105 -0
  50. package/skills/myai-skill-builder/scripts/run_loop.py +211 -0
  51. package/skills/myai-skill-builder/scripts/utils.py +123 -0
  52. package/skills/myai-visual-generator/SKILL.md +125 -0
  53. package/skills/myai-visual-generator/evals/evals.json +155 -0
  54. package/skills/myai-visual-generator/references/infographic-pipeline.md +73 -0
  55. package/skills/myai-visual-generator/references/research-visuals.md +57 -0
  56. package/skills/myai-visual-generator/references/services.md +89 -0
  57. package/skills/myai-visual-generator/scripts/visual-generation-utils.js +1272 -0
  58. package/skills/myaidev-figma/SKILL.md +212 -0
  59. package/skills/myaidev-figma/capture.js +133 -0
  60. package/skills/myaidev-figma/crawl.js +130 -0
  61. package/skills/myaidev-figma-configure/SKILL.md +130 -0
  62. package/skills/openstack-manager/SKILL.md +1 -1
  63. package/skills/payloadcms-publisher/SKILL.md +141 -77
  64. package/skills/payloadcms-publisher/references/field-mapping.md +142 -0
  65. package/skills/payloadcms-publisher/references/lexical-format.md +97 -0
  66. package/skills/security-auditor/SKILL.md +1 -1
  67. package/src/cli/commands/addon.js +105 -7
  68. package/src/config/workflows.js +172 -228
  69. package/src/lib/ascii-banner.js +197 -182
  70. package/src/lib/{content-coordinator.js → content-production-coordinator.js} +649 -459
  71. package/src/lib/installation-detector.js +93 -59
  72. package/src/lib/payloadcms-utils.js +285 -510
  73. package/src/lib/workflow-installer.js +55 -0
  74. package/src/mcp/health-check.js +82 -68
  75. package/src/mcp/openstack-server.js +1746 -1262
  76. package/src/scripts/configure-visual-apis.js +224 -173
  77. package/src/scripts/configure-wordpress-mcp.js +96 -66
  78. package/src/scripts/init/install.js +109 -85
  79. package/src/scripts/init-project.js +138 -67
  80. package/src/scripts/utils/write-content.js +67 -52
  81. package/src/scripts/wordpress/publish-to-wordpress.js +128 -128
  82. package/src/templates/claude/CLAUDE.md +19 -12
  83. package/hooks/hooks.json +0 -26
  84. package/skills/content-coordinator/SKILL.md +0 -130
  85. package/skills/content-enrichment/SKILL.md +0 -80
  86. package/skills/content-writer/SKILL.md +0 -285
  87. package/skills/skill-builder/SKILL.md +0 -417
  88. package/skills/visual-generator/SKILL.md +0 -140
  89. /package/skills/{content-writer → myai-content-writer}/agents/editor-agent.md +0 -0
  90. /package/skills/{content-writer → myai-content-writer}/agents/planner-agent.md +0 -0
  91. /package/skills/{content-writer → myai-content-writer}/agents/research-agent.md +0 -0
  92. /package/skills/{content-writer → myai-content-writer}/agents/seo-agent.md +0 -0
  93. /package/skills/{content-writer → myai-content-writer}/agents/visual-planner-agent.md +0 -0
  94. /package/skills/{content-writer → myai-content-writer}/agents/writer-agent.md +0 -0
@@ -1,31 +1,31 @@
1
- import chalk from 'chalk';
1
+ import chalk from "chalk";
2
2
 
3
3
  /**
4
4
  * ASCII Banner for MyAIDev Method with orange to grey gradient
5
5
  */
6
6
  export function getASCIIBanner() {
7
7
  // Orange to grey gradient colors
8
- const orange = chalk.hex('#FFA500');
9
- const orangeLight = chalk.hex('#FFB84D');
10
- const greyOrange = chalk.hex('#CC9966');
11
- const greyLight = chalk.hex('#999999');
12
- const grey = chalk.hex('#808080');
13
- const greyDark = chalk.hex('#666666');
8
+ const orange = chalk.hex("#FFA500");
9
+ const orangeLight = chalk.hex("#FFB84D");
10
+ const greyOrange = chalk.hex("#CC9966");
11
+ const greyLight = chalk.hex("#999999");
12
+ const grey = chalk.hex("#808080");
13
+ const greyDark = chalk.hex("#666666");
14
14
 
15
15
  const banner = `
16
- ${orange('███╗ ███╗')}${orangeLight('██╗ ██╗')}${greyOrange(' █████╗ ')}${greyLight('██╗')}${grey('██████╗ ')}${greyDark('███████╗')}${grey('██╗ ██╗')}
17
- ${orange('████╗ ████║')}${orangeLight('╚██╗ ██╔╝')}${greyOrange('██╔══██╗')}${greyLight('██║')}${grey('██╔══██╗')}${greyDark('██╔════╝')}${grey('██║ ██║')}
18
- ${orange('██╔████╔██║')}${orangeLight(' ╚████╔╝ ')}${greyOrange('███████║')}${greyLight('██║')}${grey('██║ ██║')}${greyDark('█████╗ ')}${grey('██║ ██║')}
19
- ${orange('██║╚██╔╝██║')}${orangeLight(' ╚██╔╝ ')}${greyOrange('██╔══██║')}${greyLight('██║')}${grey('██║ ██║')}${greyDark('██╔══╝ ')}${grey('╚██╗ ██╔╝')}
20
- ${orange('██║ ╚═╝ ██║')}${orangeLight(' ██║ ')}${greyOrange('██║ ██║')}${greyLight('██║')}${grey('██████╔╝')}${greyDark('███████╗')}${grey(' ╚████╔╝ ')}
21
- ${orange('╚═╝ ╚═╝')}${orangeLight(' ╚═╝ ')}${greyOrange('╚═╝ ╚═╝')}${greyLight('╚═╝')}${grey('╚═════╝ ')}${greyDark('╚══════╝')}${grey(' ╚═══╝ ')}
22
-
23
- ${orange(' ███╗ ███╗')}${orangeLight('███████╗')}${greyOrange('████████╗')}${greyLight('██╗ ██╗')}${grey('ย╗ ██████╗')} ${greyDark('██████╗ ')}
24
- ${orange(' ████╗ ████║')}${orangeLight('██╔════╝')}${greyOrange('╚══██╔══╝')}${greyLight('██║ ██║')}${grey('╠╝ ██╔══██╗')}${greyDark('██╔══██╗')}
25
- ${orange(' ██╔████╔██║')}${orangeLight('█████╗ ')}${greyOrange(' ██║ ')}${greyLight('███████║')}${grey(' ██║ ██║')}${greyDark('██║ ██║')}
26
- ${orange(' ██║╚██╔╝██║')}${orangeLight('██╔══╝ ')}${greyOrange(' ██║ ')}${greyLight('██╔══██║')}${grey(' ██║ ██║')}${greyDark('██║ ██║')}
27
- ${orange(' ██║ ╚═╝ ██║')}${orangeLight('███████╗')}${greyOrange(' ██║ ')}${greyLight('██║ ██║')}${grey('╗ ██████╔╝')}${greyDark('██████╔╝')}
28
- ${orange(' ╚═╝ ╚═╝')}${orangeLight('╚══════╝')}${greyOrange(' ╚═╝ ')}${greyLight('╚═╝ ╚═╝')}${grey('╩ ╚═════╝ ')}${greyDark('╚═════╝ ')}
16
+ ${orange("███╗ ███╗")}${orangeLight("██╗ ██╗")}${greyOrange(" █████╗ ")}${greyLight("██╗")}${grey("██████╗ ")}${greyDark("███████╗")}${grey("██╗ ██╗")}
17
+ ${orange("████╗ ████║")}${orangeLight("╚██╗ ██╔╝")}${greyOrange("██╔══██╗")}${greyLight("██║")}${grey("██╔══██╗")}${greyDark("██╔════╝")}${grey("██║ ██║")}
18
+ ${orange("██╔████╔██║")}${orangeLight(" ╚████╔╝ ")}${greyOrange("███████║")}${greyLight("██║")}${grey("██║ ██║")}${greyDark("█████╗ ")}${grey("██║ ██║")}
19
+ ${orange("██║╚██╔╝██║")}${orangeLight(" ╚██╔╝ ")}${greyOrange("██╔══██║")}${greyLight("██║")}${grey("██║ ██║")}${greyDark("██╔══╝ ")}${grey("╚██╗ ██╔╝")}
20
+ ${orange("██║ ╚═╝ ██║")}${orangeLight(" ██║ ")}${greyOrange("██║ ██║")}${greyLight("██║")}${grey("██████╔╝")}${greyDark("███████╗")}${grey(" ╚████╔╝ ")}
21
+ ${orange("╚═╝ ╚═╝")}${orangeLight(" ╚═╝ ")}${greyOrange("╚═╝ ╚═╝")}${greyLight("╚═╝")}${grey("╚═════╝ ")}${greyDark("╚══════╝")}${grey(" ╚═══╝ ")}
22
+
23
+ ${orange(" ███╗ ███╗")}${orangeLight("███████╗")}${greyOrange("████████╗")}${greyLight("██╗ ██╗")}${grey("ย╗ ██████╗")} ${greyDark("██████╗ ")}
24
+ ${orange(" ████╗ ████║")}${orangeLight("██╔════╝")}${greyOrange("╚══██╔══╝")}${greyLight("██║ ██║")}${grey("╠╝ ██╔══██╗")}${greyDark("██╔══██╗")}
25
+ ${orange(" ██╔████╔██║")}${orangeLight("█████╗ ")}${greyOrange(" ██║ ")}${greyLight("███████║")}${grey(" ██║ ██║")}${greyDark("██║ ██║")}
26
+ ${orange(" ██║╚██╔╝██║")}${orangeLight("██╔══╝ ")}${greyOrange(" ██║ ")}${greyLight("██╔══██║")}${grey(" ██║ ██║")}${greyDark("██║ ██║")}
27
+ ${orange(" ██║ ╚═╝ ██║")}${orangeLight("███████╗")}${greyOrange(" ██║ ")}${greyLight("██║ ██║")}${grey("╗ ██████╔╝")}${greyDark("██████╔╝")}
28
+ ${orange(" ╚═╝ ╚═╝")}${orangeLight("╚══════╝")}${greyOrange(" ╚═╝ ")}${greyLight("╚═╝ ╚═╝")}${grey("╩ ╚═════╝ ")}${greyDark("╚═════╝ ")}
29
29
  `;
30
30
 
31
31
  return banner;
@@ -35,40 +35,40 @@ ${orange(' ╚═╝ ╚═╝')}${orangeLight('╚═════
35
35
  * Get SPARC methodology breakdown with emoji and colors
36
36
  */
37
37
  export function getSPARCBreakdown() {
38
- const orange = chalk.hex('#FFA500');
39
- const blue = chalk.hex('#4A90E2');
40
- const green = chalk.hex('#50C878');
41
- const purple = chalk.hex('#9B59B6');
42
- const red = chalk.hex('#E74C3C');
38
+ const orange = chalk.hex("#FFA500");
39
+ const blue = chalk.hex("#4A90E2");
40
+ const green = chalk.hex("#50C878");
41
+ const purple = chalk.hex("#9B59B6");
42
+ const red = chalk.hex("#E74C3C");
43
43
 
44
44
  return `
45
- ${chalk.bold.hex('#FFA500')('╔══════════════════════════════════════════════════════════════════════════╗')}
46
- ${chalk.bold.hex('#FFA500')('')} ${chalk.bold.white('SPARC Methodology - Systematic Software Development Framework')} ${chalk.bold.hex('#FFA500')('')}
47
- ${chalk.bold.hex('#FFA500')('╚══════════════════════════════════════════════════════════════════════════╝')}
45
+ ${chalk.bold.hex("#FFA500")("╔══════════════════════════════════════════════════════════════════════════╗")}
46
+ ${chalk.bold.hex("#FFA500")("")} ${chalk.bold.white("SPARC Methodology - Systematic Software Development Framework")} ${chalk.bold.hex("#FFA500")("")}
47
+ ${chalk.bold.hex("#FFA500")("╚══════════════════════════════════════════════════════════════════════════╝")}
48
48
 
49
- ${orange.bold('S')} ${chalk.white('')} ${blue('📋 Specification')}
50
- ${chalk.dim('Define requirements and system boundaries')}
51
- ${chalk.dim('→ Clear goals, constraints, and success criteria')}
49
+ ${orange.bold("S")} ${chalk.white("")} ${blue("📋 Specification")}
50
+ ${chalk.dim("Define requirements and system boundaries")}
51
+ ${chalk.dim("→ Clear goals, constraints, and success criteria")}
52
52
 
53
- ${orange.bold('P')} ${chalk.white('')} ${green('🔄 Pseudocode')}
54
- ${chalk.dim('Plan implementation approach')}
55
- ${chalk.dim('→ Algorithm design and logic flow')}
53
+ ${orange.bold("P")} ${chalk.white("")} ${green("🔄 Pseudocode")}
54
+ ${chalk.dim("Plan implementation approach")}
55
+ ${chalk.dim("→ Algorithm design and logic flow")}
56
56
 
57
- ${orange.bold('A')} ${chalk.white('')} ${purple('🏗️ Architecture')}
58
- ${chalk.dim('Design system structure, APIs, and data models')}
59
- ${chalk.dim('→ Technical decisions and infrastructure planning')}
57
+ ${orange.bold("A")} ${chalk.white("")} ${purple("🏗️ Architecture")}
58
+ ${chalk.dim("Design system structure, APIs, and data models")}
59
+ ${chalk.dim("→ Technical decisions and infrastructure planning")}
60
60
 
61
- ${orange.bold('R')} ${chalk.white('')} ${red('⚙️ Refinement')}
62
- ${chalk.dim('Implement, test, and review code quality')}
63
- ${chalk.dim('→ SOLID principles, Clean Code, comprehensive testing')}
61
+ ${orange.bold("R")} ${chalk.white("")} ${red("⚙️ Refinement")}
62
+ ${chalk.dim("Implement, test, and review code quality")}
63
+ ${chalk.dim("→ SOLID principles, Clean Code, comprehensive testing")}
64
64
 
65
- ${orange.bold('C')} ${chalk.white('')} ${chalk.cyan('✅ Completion')}
66
- ${chalk.dim('Document and deliver production-ready software')}
67
- ${chalk.dim('→ API docs, user guides, deployment automation')}
65
+ ${orange.bold("C")} ${chalk.white("")} ${chalk.cyan("✅ Completion")}
66
+ ${chalk.dim("Document and deliver production-ready software")}
67
+ ${chalk.dim("→ API docs, user guides, deployment automation")}
68
68
 
69
- ${chalk.bold.hex('#808080')('───────────────────────────────────────────────────────────────────────────')}
70
- ${chalk.dim('Quality Standards')}: ${chalk.green('SOLID')} • ${chalk.blue('DRY')} • ${chalk.yellow('KISS')} • ${chalk.magenta('YAGNI')} • ${chalk.red('OWASP Top 10')} • ${chalk.cyan('80%+ Coverage')}
71
- ${chalk.bold.hex('#808080')('───────────────────────────────────────────────────────────────────────────')}
69
+ ${chalk.bold.hex("#808080")("───────────────────────────────────────────────────────────────────────────")}
70
+ ${chalk.dim("Quality Standards")}: ${chalk.green("SOLID")} • ${chalk.blue("DRY")} • ${chalk.yellow("KISS")} • ${chalk.magenta("YAGNI")} • ${chalk.red("OWASP Top 10")} • ${chalk.cyan("80%+ Coverage")}
71
+ ${chalk.bold.hex("#808080")("───────────────────────────────────────────────────────────────────────────")}
72
72
  `;
73
73
  }
74
74
 
@@ -76,26 +76,27 @@ ${chalk.bold.hex('#808080')('─────────────────
76
76
  * Get initialization success message with instructions
77
77
  */
78
78
  export function getInitSuccessMessage(cliType) {
79
- const commands = cliType === 'claude'
80
- ? ' • View README: Press Ctrl+Shift+P → "Toggle Documentation"\n • Run workflow: /myaidev-workflow "Build your feature"'
81
- : cliType === 'gemini'
82
- ? ' • View commands: ls .gemini/commands/\n • Run workflow: /myaidev-workflow "Build your feature"'
83
- : ' • View commands: ls .opencode/commands/\n • Run workflow: /myaidev-workflow "Build your feature"';
79
+ const commands =
80
+ cliType === "claude"
81
+ ? ' • View README: Press Ctrl+Shift+P → "Toggle Documentation"\n • Run workflow: /myaidev-workflow "Build your feature"'
82
+ : cliType === "gemini"
83
+ ? ' • View commands: ls .gemini/commands/\n • Run workflow: /myaidev-workflow "Build your feature"'
84
+ : ' • View commands: ls .opencode/commands/\n • Run workflow: /myaidev-workflow "Build your feature"';
84
85
 
85
86
  return `
86
- ${chalk.green.bold('✨ Installation Complete!')}
87
+ ${chalk.green.bold("✨ Installation Complete!")}
87
88
 
88
- ${chalk.cyan.bold('📁 Project Structure:')}
89
- ${cliType === 'claude' ? '.claude/' : cliType === 'gemini' ? '.gemini/' : '.opencode/'}
90
- ├─ commands/ ${chalk.dim('# All slash commands')}
91
- ${cliType === 'claude' ? '├─ agents/ # Agent definitions\n ├─ mcp/ # MCP server configs\n ' : ''}└─ README.md ${chalk.dim('# Configuration guide')}
89
+ ${chalk.cyan.bold("📁 Project Structure:")}
90
+ ${cliType === "claude" ? ".claude/" : cliType === "gemini" ? ".gemini/" : ".opencode/"}
91
+ ├─ commands/ ${chalk.dim("# All slash commands")}
92
+ ${cliType === "claude" ? "├─ agents/ # Agent definitions\n ├─ mcp/ # MCP server configs\n " : ""}└─ README.md ${chalk.dim("# Configuration guide")}
92
93
 
93
- ${chalk.cyan.bold('🚀 Next Steps:')}
94
+ ${chalk.cyan.bold("🚀 Next Steps:")}
94
95
  ${commands}
95
96
  • Configure platforms: /myai-configure
96
97
  • Read full guide: cat USER_GUIDE.md
97
98
 
98
- ${chalk.hex('#FFA500').bold('🎯 Ready to build with the SPARC methodology!')}
99
+ ${chalk.hex("#FFA500").bold("🎯 Ready to build with the SPARC methodology!")}
99
100
  `;
100
101
  }
101
102
 
@@ -103,35 +104,35 @@ ${chalk.hex('#FFA500').bold('🎯 Ready to build with the SPARC methodology!')}
103
104
  * Get workflow-specific mini banner
104
105
  */
105
106
  export function getWorkflowBanner(workflowName) {
106
- const orange = chalk.hex('#FFA500');
107
- const grey = chalk.hex('#808080');
107
+ const orange = chalk.hex("#FFA500");
108
+ const grey = chalk.hex("#808080");
108
109
 
109
110
  const banners = {
110
111
  content: `
111
- ${orange('╔═══════════════════════════════════════════════════════════╗')}
112
- ${orange('')} ${chalk.bold.white('✍️ CONTENT CREATION WORKFLOW')} ${orange('')}
113
- ${orange('')} ${grey('Professional SEO-optimized content with WordPress publishing')} ${orange('')}
114
- ${orange('╚═══════════════════════════════════════════════════════════╝')}`,
112
+ ${orange("╔═══════════════════════════════════════════════════════════╗")}
113
+ ${orange("")} ${chalk.bold.white("✍️ CONTENT CREATION WORKFLOW")} ${orange("")}
114
+ ${orange("")} ${grey("Professional SEO-optimized content with WordPress publishing")} ${orange("")}
115
+ ${orange("╚═══════════════════════════════════════════════════════════╝")}`,
115
116
  visual: `
116
- ${orange('╔═══════════════════════════════════════════════════════════╗')}
117
- ${orange('')} ${chalk.bold.white('🎨 VISUAL CONTENT GENERATION WORKFLOW')} ${orange('')}
118
- ${orange('')} ${grey('AI-powered images & videos with Gemini, Imagen, FLUX, Veo')} ${orange('')}
119
- ${orange('╚═══════════════════════════════════════════════════════════╝')}`,
117
+ ${orange("╔═══════════════════════════════════════════════════════════╗")}
118
+ ${orange("")} ${chalk.bold.white("🎨 VISUAL CONTENT GENERATION WORKFLOW")} ${orange("")}
119
+ ${orange("")} ${grey("AI-powered images & videos with Gemini, Imagen, FLUX, Veo")} ${orange("")}
120
+ ${orange("╚═══════════════════════════════════════════════════════════╝")}`,
120
121
  development: `
121
- ${orange('╔═══════════════════════════════════════════════════════════╗')}
122
- ${orange('')} ${chalk.bold.white('🏗️ SPARC DEVELOPMENT WORKFLOW')} ${orange('')}
123
- ${orange('')} ${grey('Systematic software development with quality standards')} ${orange('')}
124
- ${orange('╚═══════════════════════════════════════════════════════════╝')}`,
122
+ ${orange("╔═══════════════════════════════════════════════════════════╗")}
123
+ ${orange("")} ${chalk.bold.white("🏗️ SPARC DEVELOPMENT WORKFLOW")} ${orange("")}
124
+ ${orange("")} ${grey("Systematic software development with quality standards")} ${orange("")}
125
+ ${orange("╚═══════════════════════════════════════════════════════════╝")}`,
125
126
  publish: `
126
- ${orange('╔═══════════════════════════════════════════════════════════╗')}
127
- ${orange('')} ${chalk.bold.white('📤 PUBLISHING WORKFLOW')} ${orange('')}
128
- ${orange('')} ${grey('Multi-platform content publishing and distribution')} ${orange('')}
129
- ${orange('╚═══════════════════════════════════════════════════════════╝')}`,
127
+ ${orange("╔═══════════════════════════════════════════════════════════╗")}
128
+ ${orange("")} ${chalk.bold.white("📤 PUBLISHING WORKFLOW")} ${orange("")}
129
+ ${orange("")} ${grey("Multi-platform content publishing and distribution")} ${orange("")}
130
+ ${orange("╚═══════════════════════════════════════════════════════════╝")}`,
130
131
  deploy: `
131
- ${orange('╔═══════════════════════════════════════════════════════════╗')}
132
- ${orange('')} ${chalk.bold.white('🚀 DEPLOYMENT WORKFLOW')} ${orange('')}
133
- ${orange('')} ${grey('Application deployment and infrastructure management')} ${orange('')}
134
- ${orange('╚═══════════════════════════════════════════════════════════╝')}`
132
+ ${orange("╔═══════════════════════════════════════════════════════════╗")}
133
+ ${orange("")} ${chalk.bold.white("🚀 DEPLOYMENT WORKFLOW")} ${orange("")}
134
+ ${orange("")} ${grey("Application deployment and infrastructure management")} ${orange("")}
135
+ ${orange("╚═══════════════════════════════════════════════════════════╝")}`,
135
136
  };
136
137
 
137
138
  return banners[workflowName] || banners.content;
@@ -140,175 +141,189 @@ ${orange('╚══════════════════════
140
141
  /**
141
142
  * Get content workflow success message
142
143
  */
143
- export function getContentWorkflowSuccess(results, cliType = 'claude') {
144
+ export function getContentWorkflowSuccess(results, cliType = "claude") {
144
145
  const totalAgents = results.reduce((sum, r) => sum + r.agents, 0);
145
146
  const totalCommands = results.reduce((sum, r) => sum + r.commands, 0);
146
147
 
147
148
  return `
148
- ${chalk.green.bold('✨ Content Workflow Installed Successfully!')}
149
+ ${chalk.green.bold("✨ Content Workflow Installed Successfully!")}
149
150
 
150
- ${chalk.cyan.bold('📊 Installation Summary:')}
151
- ${chalk.green('')} ${totalAgents} agents installed
152
- ${chalk.green('')} ${totalCommands} commands installed
151
+ ${chalk.cyan.bold("📊 Installation Summary:")}
152
+ ${chalk.green("")} ${totalAgents} agents installed
153
+ ${chalk.green("")} ${totalCommands} commands installed
153
154
 
154
- ${chalk.cyan.bold('📁 Files Installed:')}
155
- ${cliType === 'claude' ? '.claude/' : '.gemini/'}
155
+ ${chalk.cyan.bold("📁 Files Installed:")}
156
+ ${cliType === "claude" ? ".claude/" : ".gemini/"}
156
157
  ├─ agents/
157
- │ ├─ content-writer.md ${chalk.dim('# SEO content creation')}
158
- │ ├─ wordpress-admin.md ${chalk.dim('# WordPress publishing')}
159
- │ └─ proprietary-content-verifier.md ${chalk.dim('# Content validation')}
158
+ │ ├─ content-writer.md ${chalk.dim("# SEO content creation")}
159
+ │ ├─ wordpress-admin.md ${chalk.dim("# WordPress publishing")}
160
+ │ └─ proprietary-content-verifier.md ${chalk.dim("# Content validation")}
160
161
  └─ commands/
161
- ├─ myai-content-writer.md ${chalk.dim('# /myai-content-writer')}
162
- ├─ myai-wordpress-publish.md ${chalk.dim('# /myai-wordpress-publish')}
163
- └─ myai-coordinate-content.md ${chalk.dim('# /myai-coordinate-content')}
164
-
165
- ${chalk.yellow.bold('⚙️ Configuration Required:')}
166
- Run ${chalk.cyan('/myai-configure')} to set up WordPress credentials:
167
- ${chalk.gray('• WORDPRESS_URL - Your WordPress site URL')}
168
- ${chalk.gray('• WORDPRESS_USERNAME - WordPress username')}
169
- ${chalk.gray('• WORDPRESS_APP_PASSWORD - Application password')}
170
-
171
- ${chalk.green.bold('🚀 Quick Start:')}
172
- ${chalk.gray('1.')} ${chalk.white('Create content:')} ${chalk.cyan('/myai-content-writer "Your Article Topic"')}
173
- ${chalk.gray('2.')} ${chalk.white('Publish to WP:')} ${chalk.cyan('/myai-wordpress-publish "article.md"')}
174
- ${chalk.gray('3.')} ${chalk.white('Batch publish:')} ${chalk.cyan('/myai-coordinate-content ./content/')}
175
-
176
- ${chalk.hex('#FFA500').bold('📝 Ready to create and publish professional content!')}
162
+ ├─ content-writer.md ${chalk.dim("# /content-writer")}
163
+ ├─ wordpress-publish.md ${chalk.dim("# /wordpress-publish")}
164
+ └─ myai-content-production-coordinator.md ${chalk.dim("# /myai-content-production-coordinator")}
165
+
166
+ ${chalk.yellow.bold("⚙️ Configuration Required:")}
167
+ Run ${chalk.cyan("/myai-configure")} to set up WordPress credentials:
168
+ ${chalk.gray("• WORDPRESS_URL - Your WordPress site URL")}
169
+ ${chalk.gray("• WORDPRESS_USERNAME - WordPress username")}
170
+ ${chalk.gray("• WORDPRESS_APP_PASSWORD - Application password")}
171
+
172
+ ${chalk.green.bold("🚀 Quick Start:")}
173
+ ${chalk.gray("1.")} ${chalk.white("Create content:")} ${chalk.cyan('/content-writer "Your Article Topic"')}
174
+ ${chalk.gray("2.")} ${chalk.white("Publish to WP:")} ${chalk.cyan('/wordpress-publish "article.md"')}
175
+ ${chalk.gray("3.")} ${chalk.white("Batch publish:")} ${chalk.cyan("/myai-content-production-coordinator ./content/")}
176
+
177
+ ${chalk.hex("#FFA500").bold("📝 Ready to create and publish professional content!")}
177
178
  `;
178
179
  }
179
180
 
180
181
  /**
181
182
  * Get visual workflow success message
182
183
  */
183
- export function getVisualWorkflowSuccess(results, cliType = 'claude') {
184
+ export function getVisualWorkflowSuccess(results, cliType = "claude") {
184
185
  const totalAgents = results.reduce((sum, r) => sum + r.agents, 0);
185
186
  const totalCommands = results.reduce((sum, r) => sum + r.commands, 0);
186
187
 
187
188
  return `
188
- ${chalk.green.bold('✨ Visual Content Workflow Installed Successfully!')}
189
+ ${chalk.green.bold("✨ Visual Content Workflow Installed Successfully!")}
189
190
 
190
- ${chalk.cyan.bold('📊 Installation Summary:')}
191
- ${chalk.green('')} ${totalAgents} agents installed
192
- ${chalk.green('')} ${totalCommands} commands installed
191
+ ${chalk.cyan.bold("📊 Installation Summary:")}
192
+ ${chalk.green("")} ${totalAgents} agents installed
193
+ ${chalk.green("")} ${totalCommands} commands installed
193
194
 
194
- ${chalk.cyan.bold('📁 Files Installed:')}
195
- ${cliType === 'claude' ? '.claude/' : '.gemini/'}
195
+ ${chalk.cyan.bold("📁 Files Installed:")}
196
+ ${cliType === "claude" ? ".claude/" : ".gemini/"}
196
197
  ├─ agents/
197
- │ └─ visual-content-generator.md ${chalk.dim('# AI image/video generation')}
198
+ │ └─ visual-content-generator.md ${chalk.dim("# AI image/video generation")}
198
199
  └─ commands/
199
- └─ myai-generate-visual.md ${chalk.dim('# /myai-generate-visual')}
200
+ └─ myai-visual-generator.md ${chalk.dim("# /myai-visual-generator")}
200
201
 
201
- ${chalk.yellow.bold('⚙️ API Keys Required (at least one):')}
202
- ${chalk.gray('• GOOGLE_AI_API_KEY - For Gemini, Imagen, Veo')}
203
- ${chalk.gray('• OPENAI_API_KEY - For DALL-E')}
204
- ${chalk.gray('• FAL_AI_API_KEY - For FLUX models')}
202
+ ${chalk.yellow.bold("⚙️ API Keys Required (at least one):")}
203
+ ${chalk.gray("• GOOGLE_AI_API_KEY - For Gemini, Imagen, Veo")}
204
+ ${chalk.gray("• OPENAI_API_KEY - For DALL-E")}
205
+ ${chalk.gray("• FAL_AI_API_KEY - For FLUX models")}
205
206
 
206
- ${chalk.green.bold('🚀 Quick Start:')}
207
- ${chalk.gray('1.')} ${chalk.white('Generate image:')} ${chalk.cyan('/myai-generate-visual "A modern office workspace"')}
208
- ${chalk.gray('2.')} ${chalk.white('With options:')} ${chalk.cyan('/myai-generate-visual "Product photo" --service imagen')}
209
- ${chalk.gray('3.')} ${chalk.white('Generate video:')} ${chalk.cyan('/myai-generate-visual "Timelapse clouds" --type video')}
207
+ ${chalk.green.bold("🚀 Quick Start:")}
208
+ ${chalk.gray("1.")} ${chalk.white("Generate image:")} ${chalk.cyan('/myai-visual-generator "A modern office workspace"')}
209
+ ${chalk.gray("2.")} ${chalk.white("With options:")} ${chalk.cyan('/myai-visual-generator "Product photo" --service imagen')}
210
+ ${chalk.gray("3.")} ${chalk.white("Generate video:")} ${chalk.cyan('/myai-visual-generator "Timelapse clouds" --type video')}
210
211
 
211
- ${chalk.cyan.bold('🎨 Supported Services:')}
212
- ${chalk.white('Images:')} Gemini • Imagen • DALL-E • FLUX
213
- ${chalk.white('Videos:')} Veo
212
+ ${chalk.cyan.bold("🎨 Supported Services:")}
213
+ ${chalk.white("Images:")} Gemini • Imagen • DALL-E • FLUX
214
+ ${chalk.white("Videos:")} Veo
214
215
 
215
- ${chalk.hex('#FFA500').bold('🎨 Ready to generate stunning visual content!')}
216
+ ${chalk.hex("#FFA500").bold("🎨 Ready to generate stunning visual content!")}
216
217
  `;
217
218
  }
218
219
 
219
220
  /**
220
221
  * Get development workflow success message
221
222
  */
222
- export function getDevWorkflowSuccess(results, cliType = 'claude') {
223
+ export function getDevWorkflowSuccess(results, cliType = "claude") {
223
224
  const totalCommands = results.reduce((sum, r) => sum + r.commands, 0);
224
225
 
225
226
  return `
226
- ${chalk.green.bold('✨ Development Workflow Installed Successfully!')}
227
-
228
- ${chalk.cyan.bold('📊 Installation Summary:')}
229
- ${chalk.green('')} ${totalCommands} SPARC commands installed
230
-
231
- ${chalk.cyan.bold('📁 Commands Installed:')}
232
- ${cliType === 'claude' ? '.claude/' : '.gemini/'}commands/
233
- ├─ sc:git.md ${chalk.dim('# Git operations')}
234
- ├─ sc:implement.md ${chalk.dim('# Feature implementation')}
235
- ├─ sc:test.md ${chalk.dim('# Testing strategies')}
236
- ├─ sc:analyze.md ${chalk.dim('# Code analysis')}
237
- ├─ sc:design.md ${chalk.dim('# Architecture design')}
227
+ ${chalk.green.bold("✨ Development Workflow Installed Successfully!")}
228
+
229
+ ${chalk.cyan.bold("📊 Installation Summary:")}
230
+ ${chalk.green("")} ${totalCommands} SPARC commands installed
231
+
232
+ ${chalk.cyan.bold("📁 Commands Installed:")}
233
+ ${cliType === "claude" ? ".claude/" : ".gemini/"}commands/
234
+ ├─ sc:git.md ${chalk.dim("# Git operations")}
235
+ ├─ sc:implement.md ${chalk.dim("# Feature implementation")}
236
+ ├─ sc:test.md ${chalk.dim("# Testing strategies")}
237
+ ├─ sc:analyze.md ${chalk.dim("# Code analysis")}
238
+ ├─ sc:design.md ${chalk.dim("# Architecture design")}
238
239
  └─ ... and more
239
240
 
240
- ${chalk.green.bold('🚀 SPARC Workflow Commands:')}
241
- ${chalk.gray('S')} ${chalk.white('Specification:')} ${chalk.cyan('/sc:brainstorm "Define requirements"')}
242
- ${chalk.gray('P')} ${chalk.white('Pseudocode:')} ${chalk.cyan('/sc:workflow "Plan implementation"')}
243
- ${chalk.gray('A')} ${chalk.white('Architecture:')} ${chalk.cyan('/sc:design "System architecture"')}
244
- ${chalk.gray('R')} ${chalk.white('Refinement:')} ${chalk.cyan('/sc:implement "Build feature"')}
245
- ${chalk.gray('C')} ${chalk.white('Completion:')} ${chalk.cyan('/sc:document "API documentation"')}
241
+ ${chalk.green.bold("🚀 SPARC Workflow Commands:")}
242
+ ${chalk.gray("S")} ${chalk.white("Specification:")} ${chalk.cyan('/sc:brainstorm "Define requirements"')}
243
+ ${chalk.gray("P")} ${chalk.white("Pseudocode:")} ${chalk.cyan('/sc:workflow "Plan implementation"')}
244
+ ${chalk.gray("A")} ${chalk.white("Architecture:")} ${chalk.cyan('/sc:design "System architecture"')}
245
+ ${chalk.gray("R")} ${chalk.white("Refinement:")} ${chalk.cyan('/sc:implement "Build feature"')}
246
+ ${chalk.gray("C")} ${chalk.white("Completion:")} ${chalk.cyan('/sc:document "API documentation"')}
246
247
 
247
- ${chalk.cyan.bold('💡 Additional Commands:')}
248
- ${chalk.gray('')} ${chalk.cyan('/sc:git')} - Git operations and commits
249
- ${chalk.gray('')} ${chalk.cyan('/sc:test')} - Run tests with coverage
250
- ${chalk.gray('')} ${chalk.cyan('/sc:analyze')} - Code quality analysis
251
- ${chalk.gray('')} ${chalk.cyan('/sc:troubleshoot')} - Debug issues
248
+ ${chalk.cyan.bold("💡 Additional Commands:")}
249
+ ${chalk.gray("")} ${chalk.cyan("/sc:git")} - Git operations and commits
250
+ ${chalk.gray("")} ${chalk.cyan("/sc:test")} - Run tests with coverage
251
+ ${chalk.gray("")} ${chalk.cyan("/sc:analyze")} - Code quality analysis
252
+ ${chalk.gray("")} ${chalk.cyan("/sc:troubleshoot")} - Debug issues
252
253
 
253
- ${chalk.hex('#FFA500').bold('🏗️ Ready to build with SPARC methodology!')}
254
+ ${chalk.hex("#FFA500").bold("🏗️ Ready to build with SPARC methodology!")}
254
255
  `;
255
256
  }
256
257
 
257
258
  /**
258
259
  * Get publish workflow success message
259
260
  */
260
- export function getPublishWorkflowSuccess(workflows, results, cliType = 'claude') {
261
+ export function getPublishWorkflowSuccess(
262
+ workflows,
263
+ results,
264
+ cliType = "claude",
265
+ ) {
261
266
  const totalAgents = results.reduce((sum, r) => sum + r.agents, 0);
262
267
  const totalCommands = results.reduce((sum, r) => sum + r.commands, 0);
263
268
 
264
- const platformList = workflows.map(w => {
265
- switch(w) {
266
- case 'publish-wordpress': return 'WordPress';
267
- case 'publish-payloadcms': return 'PayloadCMS';
268
- case 'publish-static': return 'Static Sites (Hugo, Jekyll, 11ty)';
269
- default: return w;
270
- }
271
- }).join(', ');
269
+ const platformList = workflows
270
+ .map((w) => {
271
+ switch (w) {
272
+ case "publish-wordpress":
273
+ return "WordPress";
274
+ case "publish-payloadcms":
275
+ return "PayloadCMS";
276
+ case "publish-static":
277
+ return "Static Sites (Hugo, Jekyll, 11ty)";
278
+ default:
279
+ return w;
280
+ }
281
+ })
282
+ .join(", ");
272
283
 
273
284
  return `
274
- ${chalk.green.bold('✨ Publishing Workflow Installed Successfully!')}
285
+ ${chalk.green.bold("✨ Publishing Workflow Installed Successfully!")}
275
286
 
276
- ${chalk.cyan.bold('📊 Installation Summary:')}
277
- ${chalk.green('')} ${totalAgents} agents installed
278
- ${chalk.green('')} ${totalCommands} commands installed
279
- ${chalk.green('')} Platforms: ${platformList}
287
+ ${chalk.cyan.bold("📊 Installation Summary:")}
288
+ ${chalk.green("")} ${totalAgents} agents installed
289
+ ${chalk.green("")} ${totalCommands} commands installed
290
+ ${chalk.green("")} Platforms: ${platformList}
280
291
 
281
- ${chalk.yellow.bold('⚙️ Configuration Required:')}
282
- Run ${chalk.cyan('/myai-configure')} to set up your publishing platforms.
292
+ ${chalk.yellow.bold("⚙️ Configuration Required:")}
293
+ Run ${chalk.cyan("/myai-configure")} to set up your publishing platforms.
283
294
 
284
- ${chalk.green.bold('🚀 Quick Start:')}
285
- ${workflows.includes('publish-wordpress') ? chalk.gray('• WordPress:') + ' ' + chalk.cyan('/myai-wordpress-publish "article.md"') + '\n' : ''}${workflows.includes('publish-payloadcms') ? chalk.gray('• PayloadCMS:') + ' ' + chalk.cyan('/myai-payloadcms-publish "article.md"') + '\n' : ''}${workflows.includes('publish-static') ? chalk.gray('• Static:') + ' ' + chalk.cyan('/myai-static-publish "post.md"') : ''}
295
+ ${chalk.green.bold("🚀 Quick Start:")}
296
+ ${workflows.includes("publish-wordpress") ? chalk.gray("• WordPress:") + " " + chalk.cyan('/wordpress-publish "article.md"') + "\n" : ""}${workflows.includes("publish-payloadcms") ? chalk.gray("• PayloadCMS:") + " " + chalk.cyan('/myai-payloadcms-publish "article.md"') + "\n" : ""}${workflows.includes("publish-static") ? chalk.gray("• Static:") + " " + chalk.cyan('/myai-static-publish "post.md"') : ""}
286
297
 
287
- ${chalk.hex('#FFA500').bold('📤 Ready to publish across platforms!')}
298
+ ${chalk.hex("#FFA500").bold("📤 Ready to publish across platforms!")}
288
299
  `;
289
300
  }
290
301
 
291
302
  /**
292
303
  * Get deploy workflow success message
293
304
  */
294
- export function getDeployWorkflowSuccess(workflows, results, cliType = 'claude') {
305
+ export function getDeployWorkflowSuccess(
306
+ workflows,
307
+ results,
308
+ cliType = "claude",
309
+ ) {
295
310
  const totalAgents = results.reduce((sum, r) => sum + r.agents, 0);
296
311
  const totalCommands = results.reduce((sum, r) => sum + r.commands, 0);
297
312
 
298
313
  return `
299
- ${chalk.green.bold('✨ Deployment Workflow Installed Successfully!')}
314
+ ${chalk.green.bold("✨ Deployment Workflow Installed Successfully!")}
300
315
 
301
- ${chalk.cyan.bold('📊 Installation Summary:')}
302
- ${chalk.green('')} ${totalAgents} agents installed
303
- ${chalk.green('')} ${totalCommands} commands installed
316
+ ${chalk.cyan.bold("📊 Installation Summary:")}
317
+ ${chalk.green("")} ${totalAgents} agents installed
318
+ ${chalk.green("")} ${totalCommands} commands installed
304
319
 
305
- ${chalk.yellow.bold('⚙️ Configuration Required:')}
306
- ${workflows.includes('coolify') ? chalk.gray('• COOLIFY_URL - Your Coolify instance URL') + '\n ' + chalk.gray('• COOLIFY_API_KEY - Coolify API key') : ''}
320
+ ${chalk.yellow.bold("⚙️ Configuration Required:")}
321
+ ${workflows.includes("coolify") ? chalk.gray("• COOLIFY_URL - Your Coolify instance URL") + "\n " + chalk.gray("• COOLIFY_API_KEY - Coolify API key") : ""}
307
322
 
308
- ${chalk.green.bold('🚀 Quick Start:')}
309
- ${chalk.gray('')} ${chalk.cyan('/myai-coolify-deploy')} - Deploy to Coolify
310
- ${chalk.gray('')} ${chalk.cyan('/sc:deploy')} - General deployment commands
323
+ ${chalk.green.bold("🚀 Quick Start:")}
324
+ ${chalk.gray("")} ${chalk.cyan("/coolify-deployer")} - Deploy to Coolify
325
+ ${chalk.gray("")} ${chalk.cyan("/sc:deploy")} - General deployment commands
311
326
 
312
- ${chalk.hex('#FFA500').bold('🚀 Ready to deploy your applications!')}
327
+ ${chalk.hex("#FFA500").bold("🚀 Ready to deploy your applications!")}
313
328
  `;
314
329
  }