myaidev-method 0.2.23 → 0.2.24

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 (29) hide show
  1. package/bin/cli.js +55 -2
  2. package/dist/server/.tsbuildinfo +1 -1
  3. package/package.json +6 -1
  4. package/src/config/workflows.js +28 -44
  5. package/src/lib/config-manager.js +470 -0
  6. package/src/lib/content-generator.js +427 -0
  7. package/src/lib/html-conversion-utils.js +843 -0
  8. package/src/lib/seo-optimizer.js +515 -0
  9. package/src/lib/wordpress-client.js +633 -0
  10. package/src/lib/workflow-installer.js +3 -3
  11. package/src/scripts/html-conversion-cli.js +526 -0
  12. package/src/scripts/init/configure.js +436 -0
  13. package/src/scripts/init/install.js +460 -0
  14. package/src/scripts/utils/file-utils.js +404 -0
  15. package/src/scripts/utils/logger.js +300 -0
  16. package/src/scripts/utils/write-content.js +293 -0
  17. package/src/templates/claude/agents/visual-content-generator.md +129 -4
  18. package/src/templates/claude/commands/myai-convert-html.md +186 -0
  19. package/src/templates/diagrams/architecture.d2 +52 -0
  20. package/src/templates/diagrams/flowchart.d2 +42 -0
  21. package/src/templates/diagrams/sequence.d2 +47 -0
  22. package/src/templates/docs/content-creation-guide.md +164 -0
  23. package/src/templates/docs/deployment-guide.md +336 -0
  24. package/src/templates/docs/visual-generation-guide.md +248 -0
  25. package/src/templates/docs/wordpress-publishing-guide.md +208 -0
  26. package/src/templates/infographics/comparison-table.html +347 -0
  27. package/src/templates/infographics/data-chart.html +268 -0
  28. package/src/templates/infographics/process-flow.html +365 -0
  29. /package/src/scripts/{wordpress-health-check.js → wordpress/wordpress-health-check.js} +0 -0
@@ -0,0 +1,347 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>{{title}}</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
8
+ <style>
9
+ * {
10
+ margin: 0;
11
+ padding: 0;
12
+ box-sizing: border-box;
13
+ }
14
+
15
+ body {
16
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
17
+ background: linear-gradient(135deg, {{backgroundColor || '#f8fafc'}} 0%, {{backgroundGradient || '#e2e8f0'}} 100%);
18
+ min-height: 100vh;
19
+ padding: 40px;
20
+ }
21
+
22
+ .container {
23
+ max-width: 900px;
24
+ margin: 0 auto;
25
+ background: white;
26
+ border-radius: 24px;
27
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
28
+ overflow: hidden;
29
+ }
30
+
31
+ .header {
32
+ background: linear-gradient(135deg, {{accentColor || '#3b82f6'}} 0%, {{accentGradient || '#1d4ed8'}} 100%);
33
+ color: white;
34
+ padding: 32px 40px;
35
+ text-align: center;
36
+ }
37
+
38
+ .header h1 {
39
+ font-size: 28px;
40
+ font-weight: 700;
41
+ margin-bottom: 8px;
42
+ }
43
+
44
+ .header .subtitle {
45
+ font-size: 16px;
46
+ opacity: 0.9;
47
+ }
48
+
49
+ .content {
50
+ padding: 40px;
51
+ }
52
+
53
+ .comparison-table {
54
+ width: 100%;
55
+ border-collapse: collapse;
56
+ }
57
+
58
+ .comparison-table thead th {
59
+ padding: 16px 20px;
60
+ text-align: left;
61
+ font-weight: 600;
62
+ font-size: 14px;
63
+ color: #374151;
64
+ border-bottom: 2px solid #e5e7eb;
65
+ }
66
+
67
+ .comparison-table thead th:first-child {
68
+ color: #9ca3af;
69
+ font-weight: 500;
70
+ }
71
+
72
+ .comparison-table thead th.highlight {
73
+ background: linear-gradient(135deg, {{highlightColor || '#3b82f6'}} 0%, {{highlightGradient || '#1d4ed8'}} 100%);
74
+ color: white;
75
+ border-radius: 12px 12px 0 0;
76
+ }
77
+
78
+ .comparison-table tbody tr {
79
+ border-bottom: 1px solid #f1f5f9;
80
+ }
81
+
82
+ .comparison-table tbody tr:last-child {
83
+ border-bottom: none;
84
+ }
85
+
86
+ .comparison-table tbody tr:hover {
87
+ background: #f8fafc;
88
+ }
89
+
90
+ .comparison-table td {
91
+ padding: 16px 20px;
92
+ font-size: 14px;
93
+ color: #4b5563;
94
+ }
95
+
96
+ .comparison-table td:first-child {
97
+ font-weight: 500;
98
+ color: #111827;
99
+ }
100
+
101
+ .comparison-table td.highlight {
102
+ background: #eff6ff;
103
+ }
104
+
105
+ /* Feature Icons */
106
+ .check {
107
+ display: inline-flex;
108
+ align-items: center;
109
+ justify-content: center;
110
+ width: 24px;
111
+ height: 24px;
112
+ background: #10b981;
113
+ color: white;
114
+ border-radius: 50%;
115
+ font-size: 14px;
116
+ }
117
+
118
+ .check::before {
119
+ content: '✓';
120
+ }
121
+
122
+ .cross {
123
+ display: inline-flex;
124
+ align-items: center;
125
+ justify-content: center;
126
+ width: 24px;
127
+ height: 24px;
128
+ background: #ef4444;
129
+ color: white;
130
+ border-radius: 50%;
131
+ font-size: 14px;
132
+ }
133
+
134
+ .cross::before {
135
+ content: '✕';
136
+ }
137
+
138
+ .partial {
139
+ display: inline-flex;
140
+ align-items: center;
141
+ justify-content: center;
142
+ width: 24px;
143
+ height: 24px;
144
+ background: #f59e0b;
145
+ color: white;
146
+ border-radius: 50%;
147
+ font-size: 14px;
148
+ }
149
+
150
+ .partial::before {
151
+ content: '~';
152
+ }
153
+
154
+ /* Winner Badge */
155
+ .winner-badge {
156
+ display: inline-flex;
157
+ align-items: center;
158
+ gap: 6px;
159
+ background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
160
+ color: white;
161
+ padding: 4px 12px;
162
+ border-radius: 20px;
163
+ font-size: 12px;
164
+ font-weight: 600;
165
+ margin-left: 8px;
166
+ }
167
+
168
+ .winner-badge::before {
169
+ content: '★';
170
+ }
171
+
172
+ /* Cards Layout Alternative */
173
+ .cards-layout {
174
+ display: grid;
175
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
176
+ gap: 24px;
177
+ }
178
+
179
+ .comparison-card {
180
+ background: white;
181
+ border: 2px solid #e5e7eb;
182
+ border-radius: 16px;
183
+ padding: 24px;
184
+ transition: all 0.2s;
185
+ }
186
+
187
+ .comparison-card.featured {
188
+ border-color: {{accentColor || '#3b82f6'}};
189
+ box-shadow: 0 10px 25px -5px rgba(59, 130, 246, 0.2);
190
+ }
191
+
192
+ .card-header {
193
+ text-align: center;
194
+ padding-bottom: 20px;
195
+ border-bottom: 1px solid #e5e7eb;
196
+ margin-bottom: 20px;
197
+ }
198
+
199
+ .card-title {
200
+ font-size: 18px;
201
+ font-weight: 700;
202
+ color: #111827;
203
+ margin-bottom: 4px;
204
+ }
205
+
206
+ .card-price {
207
+ font-size: 32px;
208
+ font-weight: 700;
209
+ color: {{accentColor || '#3b82f6'}};
210
+ }
211
+
212
+ .card-price-period {
213
+ font-size: 14px;
214
+ color: #6b7280;
215
+ font-weight: 400;
216
+ }
217
+
218
+ .card-features {
219
+ list-style: none;
220
+ }
221
+
222
+ .card-features li {
223
+ display: flex;
224
+ align-items: center;
225
+ gap: 12px;
226
+ padding: 10px 0;
227
+ font-size: 14px;
228
+ color: #4b5563;
229
+ }
230
+
231
+ .feature-icon {
232
+ width: 20px;
233
+ height: 20px;
234
+ display: flex;
235
+ align-items: center;
236
+ justify-content: center;
237
+ border-radius: 50%;
238
+ font-size: 12px;
239
+ flex-shrink: 0;
240
+ }
241
+
242
+ .feature-icon.yes {
243
+ background: #dcfce7;
244
+ color: #16a34a;
245
+ }
246
+
247
+ .feature-icon.yes::before {
248
+ content: '✓';
249
+ }
250
+
251
+ .feature-icon.no {
252
+ background: #fee2e2;
253
+ color: #dc2626;
254
+ }
255
+
256
+ .feature-icon.no::before {
257
+ content: '✕';
258
+ }
259
+
260
+ .footer {
261
+ padding: 24px 40px;
262
+ background: #f8fafc;
263
+ border-top: 1px solid #e5e7eb;
264
+ display: flex;
265
+ justify-content: space-between;
266
+ align-items: center;
267
+ }
268
+
269
+ .note {
270
+ font-size: 13px;
271
+ color: #6b7280;
272
+ }
273
+
274
+ .branding {
275
+ font-size: 12px;
276
+ color: #9ca3af;
277
+ font-weight: 500;
278
+ }
279
+ </style>
280
+ </head>
281
+ <body>
282
+ <div class="container">
283
+ <div class="header">
284
+ <h1>{{title}}</h1>
285
+ {{#subtitle}}<p class="subtitle">{{subtitle}}</p>{{/subtitle}}
286
+ </div>
287
+
288
+ <div class="content">
289
+ {{#layout === 'table'}}
290
+ <table class="comparison-table">
291
+ <thead>
292
+ <tr>
293
+ <th>Feature</th>
294
+ {{#columns}}
295
+ <th class="{{class}}">{{name}}{{#winner}}<span class="winner-badge">Best</span>{{/winner}}</th>
296
+ {{/columns}}
297
+ </tr>
298
+ </thead>
299
+ <tbody>
300
+ {{#rows}}
301
+ <tr>
302
+ <td>{{feature}}</td>
303
+ {{#values}}
304
+ <td class="{{class}}">
305
+ {{#isCheck}}<span class="check"></span>{{/isCheck}}
306
+ {{#isCross}}<span class="cross"></span>{{/isCross}}
307
+ {{#isPartial}}<span class="partial"></span>{{/isPartial}}
308
+ {{#text}}{{text}}{{/text}}
309
+ </td>
310
+ {{/values}}
311
+ </tr>
312
+ {{/rows}}
313
+ </tbody>
314
+ </table>
315
+ {{/layout === 'table'}}
316
+
317
+ {{#layout === 'cards'}}
318
+ <div class="cards-layout">
319
+ {{#cards}}
320
+ <div class="comparison-card {{#featured}}featured{{/featured}}">
321
+ <div class="card-header">
322
+ <div class="card-title">{{name}}</div>
323
+ {{#price}}<div class="card-price">{{price}}<span class="card-price-period">{{period}}</span></div>{{/price}}
324
+ </div>
325
+ <ul class="card-features">
326
+ {{#features}}
327
+ <li>
328
+ <span class="feature-icon {{#included}}yes{{/included}}{{^included}}no{{/included}}"></span>
329
+ {{text}}
330
+ </li>
331
+ {{/features}}
332
+ </ul>
333
+ </div>
334
+ {{/cards}}
335
+ </div>
336
+ {{/layout === 'cards'}}
337
+ </div>
338
+
339
+ {{#note}}
340
+ <div class="footer">
341
+ <span class="note">{{note}}</span>
342
+ {{#branding}}<span class="branding">{{branding}}</span>{{/branding}}
343
+ </div>
344
+ {{/note}}
345
+ </div>
346
+ </body>
347
+ </html>
@@ -0,0 +1,268 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>{{title}}</title>
7
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
8
+ <style>
9
+ * {
10
+ margin: 0;
11
+ padding: 0;
12
+ box-sizing: border-box;
13
+ }
14
+
15
+ body {
16
+ font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
17
+ background: linear-gradient(135deg, {{backgroundColor || '#f8fafc'}} 0%, {{backgroundGradient || '#e2e8f0'}} 100%);
18
+ min-height: 100vh;
19
+ padding: 40px;
20
+ }
21
+
22
+ .container {
23
+ max-width: 800px;
24
+ margin: 0 auto;
25
+ background: white;
26
+ border-radius: 24px;
27
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
28
+ overflow: hidden;
29
+ }
30
+
31
+ .header {
32
+ background: linear-gradient(135deg, {{accentColor || '#3b82f6'}} 0%, {{accentGradient || '#1d4ed8'}} 100%);
33
+ color: white;
34
+ padding: 32px 40px;
35
+ }
36
+
37
+ .header h1 {
38
+ font-size: 28px;
39
+ font-weight: 700;
40
+ margin-bottom: 8px;
41
+ }
42
+
43
+ .header .subtitle {
44
+ font-size: 16px;
45
+ opacity: 0.9;
46
+ }
47
+
48
+ .content {
49
+ padding: 40px;
50
+ }
51
+
52
+ .chart-container {
53
+ margin-bottom: 32px;
54
+ }
55
+
56
+ .chart-bar {
57
+ display: flex;
58
+ align-items: center;
59
+ margin-bottom: 16px;
60
+ }
61
+
62
+ .chart-label {
63
+ width: 140px;
64
+ font-size: 14px;
65
+ font-weight: 500;
66
+ color: #374151;
67
+ flex-shrink: 0;
68
+ }
69
+
70
+ .chart-bar-wrapper {
71
+ flex: 1;
72
+ display: flex;
73
+ align-items: center;
74
+ gap: 12px;
75
+ }
76
+
77
+ .chart-bar-track {
78
+ flex: 1;
79
+ height: 32px;
80
+ background: #f1f5f9;
81
+ border-radius: 8px;
82
+ overflow: hidden;
83
+ }
84
+
85
+ .chart-bar-fill {
86
+ height: 100%;
87
+ border-radius: 8px;
88
+ transition: width 0.5s ease-out;
89
+ display: flex;
90
+ align-items: center;
91
+ justify-content: flex-end;
92
+ padding-right: 12px;
93
+ }
94
+
95
+ .chart-bar-value {
96
+ font-size: 14px;
97
+ font-weight: 600;
98
+ color: white;
99
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
100
+ }
101
+
102
+ .chart-value-external {
103
+ font-size: 14px;
104
+ font-weight: 600;
105
+ color: #374151;
106
+ min-width: 50px;
107
+ }
108
+
109
+ /* Pie Chart Styles */
110
+ .pie-container {
111
+ display: flex;
112
+ align-items: center;
113
+ justify-content: center;
114
+ gap: 48px;
115
+ padding: 20px;
116
+ }
117
+
118
+ .pie-chart {
119
+ width: 200px;
120
+ height: 200px;
121
+ border-radius: 50%;
122
+ position: relative;
123
+ }
124
+
125
+ .pie-legend {
126
+ display: flex;
127
+ flex-direction: column;
128
+ gap: 12px;
129
+ }
130
+
131
+ .legend-item {
132
+ display: flex;
133
+ align-items: center;
134
+ gap: 12px;
135
+ }
136
+
137
+ .legend-color {
138
+ width: 16px;
139
+ height: 16px;
140
+ border-radius: 4px;
141
+ flex-shrink: 0;
142
+ }
143
+
144
+ .legend-text {
145
+ font-size: 14px;
146
+ color: #374151;
147
+ }
148
+
149
+ .legend-value {
150
+ font-weight: 600;
151
+ color: #111827;
152
+ margin-left: auto;
153
+ }
154
+
155
+ /* Stats Grid */
156
+ .stats-grid {
157
+ display: grid;
158
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
159
+ gap: 20px;
160
+ margin-top: 32px;
161
+ padding-top: 32px;
162
+ border-top: 1px solid #e5e7eb;
163
+ }
164
+
165
+ .stat-card {
166
+ text-align: center;
167
+ padding: 20px;
168
+ background: #f8fafc;
169
+ border-radius: 12px;
170
+ }
171
+
172
+ .stat-value {
173
+ font-size: 32px;
174
+ font-weight: 700;
175
+ color: {{accentColor || '#3b82f6'}};
176
+ margin-bottom: 4px;
177
+ }
178
+
179
+ .stat-label {
180
+ font-size: 13px;
181
+ color: #6b7280;
182
+ text-transform: uppercase;
183
+ letter-spacing: 0.05em;
184
+ }
185
+
186
+ .footer {
187
+ padding: 24px 40px;
188
+ background: #f8fafc;
189
+ border-top: 1px solid #e5e7eb;
190
+ display: flex;
191
+ justify-content: space-between;
192
+ align-items: center;
193
+ }
194
+
195
+ .source {
196
+ font-size: 12px;
197
+ color: #9ca3af;
198
+ }
199
+
200
+ .branding {
201
+ font-size: 12px;
202
+ color: #9ca3af;
203
+ font-weight: 500;
204
+ }
205
+ </style>
206
+ </head>
207
+ <body>
208
+ <div class="container">
209
+ <div class="header">
210
+ <h1>{{title}}</h1>
211
+ {{#subtitle}}<p class="subtitle">{{subtitle}}</p>{{/subtitle}}
212
+ </div>
213
+
214
+ <div class="content">
215
+ {{#chartType === 'bar'}}
216
+ <div class="chart-container">
217
+ {{#items}}
218
+ <div class="chart-bar">
219
+ <span class="chart-label">{{label}}</span>
220
+ <div class="chart-bar-wrapper">
221
+ <div class="chart-bar-track">
222
+ <div class="chart-bar-fill" style="width: {{percentage}}%; background: {{color || '#3b82f6'}}">
223
+ {{#showValueInBar}}<span class="chart-bar-value">{{value}}{{unit}}</span>{{/showValueInBar}}
224
+ </div>
225
+ </div>
226
+ {{#showValueExternal}}<span class="chart-value-external">{{value}}{{unit}}</span>{{/showValueExternal}}
227
+ </div>
228
+ </div>
229
+ {{/items}}
230
+ </div>
231
+ {{/chartType === 'bar'}}
232
+
233
+ {{#chartType === 'pie'}}
234
+ <div class="pie-container">
235
+ <div class="pie-chart" style="background: conic-gradient({{pieGradient}})"></div>
236
+ <div class="pie-legend">
237
+ {{#items}}
238
+ <div class="legend-item">
239
+ <div class="legend-color" style="background: {{color}}"></div>
240
+ <span class="legend-text">{{label}}</span>
241
+ <span class="legend-value">{{value}}{{unit}}</span>
242
+ </div>
243
+ {{/items}}
244
+ </div>
245
+ </div>
246
+ {{/chartType === 'pie'}}
247
+
248
+ {{#stats}}
249
+ <div class="stats-grid">
250
+ {{#stats}}
251
+ <div class="stat-card">
252
+ <div class="stat-value">{{value}}</div>
253
+ <div class="stat-label">{{label}}</div>
254
+ </div>
255
+ {{/stats}}
256
+ </div>
257
+ {{/stats}}
258
+ </div>
259
+
260
+ {{#source}}
261
+ <div class="footer">
262
+ <span class="source">Source: {{source}}</span>
263
+ {{#branding}}<span class="branding">{{branding}}</span>{{/branding}}
264
+ </div>
265
+ {{/source}}
266
+ </div>
267
+ </body>
268
+ </html>