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,6 +1,6 @@
1
- # Content Generation Rules
1
+ # Content Rules Example
2
2
 
3
- This file contains custom rules and guidelines for the content-writer agent. Copy this file to `content-rules.md` in your project root and customize it for your specific content needs.
3
+ This file contains example rules and guidelines for the content pipeline. Copy this file to `content-rules.md` in your project root and customize it for your specific content needs.This file contains example rules and guidelines for the content pipeline. Copy this file to `content-rules.md` in your project root and customize it for your specific content needs.
4
4
 
5
5
  ## Brand Voice & Tone
6
6
 
@@ -5,25 +5,25 @@
5
5
  * Validates MCP server configuration and connectivity
6
6
  */
7
7
 
8
- import { spawn } from 'child_process';
9
- import { promises as fs } from 'fs';
10
- import path from 'path';
11
- import { fileURLToPath } from 'url';
8
+ import { spawn } from "child_process";
9
+ import { promises as fs } from "fs";
10
+ import path from "path";
11
+ import { fileURLToPath } from "url";
12
12
 
13
13
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
14
14
 
15
15
  export default async function healthCheck() {
16
- console.log('🔍 MyAIDev Method MCP Server Health Check');
17
- console.log('==========================================\n');
16
+ console.log("🔍 MyAIDev Method MCP Server Health Check");
17
+ console.log("==========================================\n");
18
18
 
19
19
  const checks = [];
20
-
20
+
21
21
  // Check 1: Environment variables
22
- console.log('📋 Checking environment configuration...');
22
+ console.log("📋 Checking environment configuration...");
23
23
  const envChecks = {
24
- 'WORDPRESS_URL': process.env.WORDPRESS_URL,
25
- 'WORDPRESS_USERNAME': process.env.WORDPRESS_USERNAME,
26
- 'WORDPRESS_APP_PASSWORD': process.env.WORDPRESS_APP_PASSWORD
24
+ WORDPRESS_URL: process.env.WORDPRESS_URL,
25
+ WORDPRESS_USERNAME: process.env.WORDPRESS_USERNAME,
26
+ WORDPRESS_APP_PASSWORD: process.env.WORDPRESS_APP_PASSWORD,
27
27
  };
28
28
 
29
29
  let envConfigured = true;
@@ -37,36 +37,42 @@ export default async function healthCheck() {
37
37
  });
38
38
 
39
39
  checks.push({
40
- name: 'Environment Configuration',
41
- status: envConfigured ? 'passed' : 'failed'
40
+ name: "Environment Configuration",
41
+ status: envConfigured ? "passed" : "failed",
42
42
  });
43
43
 
44
44
  // Check 2: MCP server files
45
- console.log('\n📁 Checking MCP server files...');
46
- const mcpServerPath = path.resolve(__dirname, '../../.claude/mcp/wordpress-server.js');
47
-
45
+ console.log("\n📁 Checking MCP server files...");
46
+ const mcpServerPath = path.resolve(
47
+ __dirname,
48
+ "../../.claude/mcp/wordpress-server.js",
49
+ );
50
+
48
51
  try {
49
52
  await fs.access(mcpServerPath);
50
- console.log(' ✅ WordPress MCP server file exists');
53
+ console.log(" ✅ WordPress MCP server file exists");
51
54
  checks.push({
52
- name: 'MCP Server Files',
53
- status: 'passed'
55
+ name: "MCP Server Files",
56
+ status: "passed",
54
57
  });
55
58
  } catch (error) {
56
- console.log(' ❌ WordPress MCP server file missing');
59
+ console.log(" ❌ WordPress MCP server file missing");
57
60
  checks.push({
58
- name: 'MCP Server Files',
59
- status: 'failed'
61
+ name: "MCP Server Files",
62
+ status: "failed",
60
63
  });
61
64
  }
62
65
 
63
66
  // Check 3: Dependencies
64
- console.log('\n📦 Checking dependencies...');
67
+ console.log("\n📦 Checking dependencies...");
65
68
  const requiredDeps = [
66
- { name: '@modelcontextprotocol/sdk', path: '@modelcontextprotocol/sdk/server/mcp.js' },
67
- { name: 'node-fetch', path: 'node-fetch' },
68
- { name: 'dotenv', path: 'dotenv' },
69
- { name: 'zod', path: 'zod' }
69
+ {
70
+ name: "@modelcontextprotocol/sdk",
71
+ path: "@modelcontextprotocol/sdk/server/mcp.js",
72
+ },
73
+ { name: "node-fetch", path: "node-fetch" },
74
+ { name: "dotenv", path: "dotenv" },
75
+ { name: "zod", path: "zod" },
70
76
  ];
71
77
 
72
78
  let depsInstalled = true;
@@ -81,61 +87,67 @@ export default async function healthCheck() {
81
87
  }
82
88
 
83
89
  checks.push({
84
- name: 'Dependencies',
85
- status: depsInstalled ? 'passed' : 'failed'
90
+ name: "Dependencies",
91
+ status: depsInstalled ? "passed" : "failed",
86
92
  });
87
93
 
88
94
  // Check 4: MCP server startup test
89
95
  if (envConfigured && depsInstalled) {
90
- console.log('\n🚀 Testing MCP server startup...');
91
-
96
+ console.log("\n🚀 Testing MCP server startup...");
97
+
92
98
  try {
93
99
  const startupTest = await testServerStartup(mcpServerPath);
94
100
  console.log(` ✅ MCP server starts successfully`);
95
101
  checks.push({
96
- name: 'MCP Server Startup',
97
- status: 'passed'
102
+ name: "MCP Server Startup",
103
+ status: "passed",
98
104
  });
99
105
  } catch (error) {
100
106
  console.log(` ❌ MCP server startup failed: ${error.message}`);
101
107
  checks.push({
102
- name: 'MCP Server Startup',
103
- status: 'failed'
108
+ name: "MCP Server Startup",
109
+ status: "failed",
104
110
  });
105
111
  }
106
112
  } else {
107
- console.log('\n⏭️ Skipping MCP server startup test (dependencies not met)');
113
+ console.log("\n⏭️ Skipping MCP server startup test (dependencies not met)");
108
114
  checks.push({
109
- name: 'MCP Server Startup',
110
- status: 'skipped'
115
+ name: "MCP Server Startup",
116
+ status: "skipped",
111
117
  });
112
118
  }
113
119
 
114
120
  // Summary
115
- console.log('\n📊 Health Check Summary:');
116
- const passed = checks.filter(c => c.status === 'passed').length;
117
- const failed = checks.filter(c => c.status === 'failed').length;
118
- const skipped = checks.filter(c => c.status === 'skipped').length;
119
-
120
- checks.forEach(check => {
121
- const icon = check.status === 'passed' ? '✅' :
122
- check.status === 'failed' ? '❌' : '⏭️';
121
+ console.log("\n📊 Health Check Summary:");
122
+ const passed = checks.filter((c) => c.status === "passed").length;
123
+ const failed = checks.filter((c) => c.status === "failed").length;
124
+ const skipped = checks.filter((c) => c.status === "skipped").length;
125
+
126
+ checks.forEach((check) => {
127
+ const icon =
128
+ check.status === "passed"
129
+ ? "✅"
130
+ : check.status === "failed"
131
+ ? "❌"
132
+ : "⏭️";
123
133
  console.log(` ${icon} ${check.name}: ${check.status}`);
124
134
  });
125
135
 
126
- console.log(`\nResult: ${passed} passed, ${failed} failed, ${skipped} skipped`);
136
+ console.log(
137
+ `\nResult: ${passed} passed, ${failed} failed, ${skipped} skipped`,
138
+ );
127
139
 
128
140
  if (failed === 0) {
129
- console.log('\n🎉 All checks passed! MCP server is ready to use.');
130
- console.log('\n💡 Next steps:');
131
- console.log(' • Run: npm run mcp:start');
132
- console.log(' • Or use: /myai-wordpress-publish "your-file.md"');
141
+ console.log("\n🎉 All checks passed! MCP server is ready to use.");
142
+ console.log("\n💡 Next steps:");
143
+ console.log(" • Run: npm run mcp:start");
144
+ console.log(' • Or use: /wordpress-publish "your-file.md"');
133
145
  } else {
134
- console.log('\n⚠️ Some checks failed. Please address the issues above.');
135
- console.log('\n💡 Common solutions:');
136
- console.log(' • Set environment variables: /myai-configure wordpress');
137
- console.log(' • Install dependencies: npm install');
138
- console.log(' • Check file permissions and paths');
146
+ console.log("\n⚠️ Some checks failed. Please address the issues above.");
147
+ console.log("\n💡 Common solutions:");
148
+ console.log(" • Set environment variables: /myai-configurator wordpress");
149
+ console.log(" • Install dependencies: npm install");
150
+ console.log(" • Check file permissions and paths");
139
151
  }
140
152
 
141
153
  return {
@@ -143,39 +155,41 @@ export default async function healthCheck() {
143
155
  failed,
144
156
  skipped,
145
157
  checks,
146
- overall: failed === 0 ? 'healthy' : 'unhealthy'
158
+ overall: failed === 0 ? "healthy" : "unhealthy",
147
159
  };
148
160
  }
149
161
 
150
162
  async function testServerStartup(serverPath) {
151
163
  return new Promise((resolve, reject) => {
152
- const serverProcess = spawn('node', [serverPath], {
153
- stdio: ['pipe', 'pipe', 'pipe'],
154
- env: process.env
164
+ const serverProcess = spawn("node", [serverPath], {
165
+ stdio: ["pipe", "pipe", "pipe"],
166
+ env: process.env,
155
167
  });
156
168
 
157
- let startupOutput = '';
169
+ let startupOutput = "";
158
170
  const timeout = setTimeout(() => {
159
171
  serverProcess.kill();
160
- reject(new Error('Server startup timeout'));
172
+ reject(new Error("Server startup timeout"));
161
173
  }, 5000);
162
174
 
163
- serverProcess.stderr.on('data', (data) => {
175
+ serverProcess.stderr.on("data", (data) => {
164
176
  startupOutput += data.toString();
165
- if (startupOutput.includes('Enhanced WordPress MCP Server') ||
166
- startupOutput.includes('running')) {
177
+ if (
178
+ startupOutput.includes("Enhanced WordPress MCP Server") ||
179
+ startupOutput.includes("running")
180
+ ) {
167
181
  clearTimeout(timeout);
168
182
  serverProcess.kill();
169
183
  resolve(true);
170
184
  }
171
185
  });
172
186
 
173
- serverProcess.on('error', (error) => {
187
+ serverProcess.on("error", (error) => {
174
188
  clearTimeout(timeout);
175
189
  reject(error);
176
190
  });
177
191
 
178
- serverProcess.on('exit', (code) => {
192
+ serverProcess.on("exit", (code) => {
179
193
  clearTimeout(timeout);
180
194
  if (code !== 0 && code !== null) {
181
195
  reject(new Error(`Server exited with code ${code}`));
@@ -187,4 +201,4 @@ async function testServerStartup(serverPath) {
187
201
  // Run if called directly
188
202
  if (import.meta.url === `file://${process.argv[1]}`) {
189
203
  healthCheck().catch(console.error);
190
- }
204
+ }
@@ -31,6 +31,14 @@
31
31
  "mcpName": "io.github.myaione/myaidev-method-openstack",
32
32
  "transport": "stdio",
33
33
  "command": "node .claude/mcp/openstack-server.js"
34
+ },
35
+ {
36
+ "name": "fal-ai-mcp-server",
37
+ "version": "2.1.2",
38
+ "description": "fal.ai model discovery, pricing, and generation via MCP protocol",
39
+ "mcpName": "fal-ai",
40
+ "transport": "stdio",
41
+ "command": "npx -y fal-ai-mcp-server"
34
42
  }
35
43
  ],
36
44
  "wordpress_server": {