myaidev-method 0.2.5 → 0.2.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.
- package/USER_GUIDE.md +389 -8
- package/bin/cli.js +161 -70
- package/package.json +1 -1
- package/src/lib/ascii-banner.js +100 -0
- package/src/templates/claude/commands/myai-deploy-dev.md +500 -0
- package/src/templates/claude/commands/myai-deploy-prod.md +837 -0
- package/src/templates/claude/commands/myai-deploy-staging.md +331 -0
- package/src/templates/claude/commands/myai-git-hotfix.md +957 -0
- package/src/templates/claude/commands/myai-git-pr.md +200 -0
- package/src/templates/claude/commands/myai-git-release.md +806 -0
- package/src/templates/claude/commands/myai-git-sync.md +796 -0
- package/src/templates/codex/commands/myai-astro-publish.md +51 -0
- package/src/templates/codex/commands/myai-configure.md +185 -0
- package/src/templates/codex/commands/myai-content-writer.md +73 -0
- package/src/templates/codex/commands/myai-coolify-deploy.md +159 -0
- package/src/templates/codex/commands/myai-deploy-dev.md +379 -0
- package/src/templates/codex/commands/myai-deploy-prod.md +431 -0
- package/src/templates/codex/commands/myai-deploy-staging.md +275 -0
- package/src/templates/codex/commands/myai-dev-architect.md +69 -0
- package/src/templates/codex/commands/myai-dev-code.md +82 -0
- package/src/templates/codex/commands/myai-dev-docs.md +83 -0
- package/src/templates/codex/commands/myai-dev-review.md +85 -0
- package/src/templates/codex/commands/myai-dev-test.md +84 -0
- package/src/templates/codex/commands/myai-docusaurus-publish.md +42 -0
- package/src/templates/codex/commands/myai-git-hotfix.md +512 -0
- package/src/templates/codex/commands/myai-git-pr.md +196 -0
- package/src/templates/codex/commands/myai-git-release.md +516 -0
- package/src/templates/codex/commands/myai-git-sync.md +517 -0
- package/src/templates/codex/commands/myai-mintlify-publish.md +42 -0
- package/src/templates/codex/commands/myai-payloadcms-publish.md +42 -0
- package/src/templates/codex/commands/myai-sparc-workflow.md +185 -0
- package/src/templates/codex/commands/myai-wordpress-admin.md +143 -0
- package/src/templates/codex/commands/myai-wordpress-publish.md +66 -0
- package/src/templates/gemini/commands/myai-astro-publish.toml +76 -0
- package/src/templates/gemini/commands/myai-configure.toml +188 -0
- package/src/templates/gemini/commands/myai-content-writer.toml +76 -0
- package/src/templates/gemini/commands/myai-coolify-deploy.toml +138 -0
- package/src/templates/gemini/commands/myai-deploy-dev.toml +379 -0
- package/src/templates/gemini/commands/myai-deploy-prod.toml +438 -0
- package/src/templates/gemini/commands/myai-deploy-staging.toml +275 -0
- package/src/templates/gemini/commands/myai-dev-architect.toml +64 -0
- package/src/templates/gemini/commands/myai-dev-code.toml +75 -0
- package/src/templates/gemini/commands/myai-dev-docs.toml +76 -0
- package/src/templates/gemini/commands/myai-dev-review.toml +78 -0
- package/src/templates/gemini/commands/myai-dev-test.toml +77 -0
- package/src/templates/gemini/commands/myai-docusaurus-publish.toml +63 -0
- package/src/templates/gemini/commands/myai-git-hotfix.toml +953 -0
- package/src/templates/gemini/commands/myai-git-pr.toml +196 -0
- package/src/templates/gemini/commands/myai-git-release.toml +802 -0
- package/src/templates/gemini/commands/myai-git-sync.toml +792 -0
- package/src/templates/gemini/commands/myai-mintlify-publish.toml +67 -0
- package/src/templates/gemini/commands/myai-payloadcms-publish.toml +59 -0
- package/src/templates/gemini/commands/myai-sparc-workflow.toml +47 -0
- package/src/templates/gemini/commands/myai-wordpress-admin.toml +143 -0
- package/src/templates/gemini/commands/myai-wordpress-publish.toml +77 -0
package/bin/cli.js
CHANGED
|
@@ -7,53 +7,14 @@ import fs from 'fs-extra';
|
|
|
7
7
|
import path from 'path';
|
|
8
8
|
import { fileURLToPath } from 'url';
|
|
9
9
|
import inquirer from 'inquirer';
|
|
10
|
+
import { getASCIIBanner, getSPARCBreakdown, getInitSuccessMessage } from '../src/lib/ascii-banner.js';
|
|
10
11
|
|
|
11
12
|
const __filename = fileURLToPath(import.meta.url);
|
|
12
13
|
const __dirname = path.dirname(__filename);
|
|
13
14
|
|
|
14
|
-
// ASCII Banner with gradient
|
|
15
|
-
function displayBanner() {
|
|
16
|
-
const grey = chalk.hex('#5A5A5A');
|
|
17
|
-
const lightGrey = chalk.hex('#9E9E9E');
|
|
18
|
-
const white = chalk.white;
|
|
19
|
-
const lightOrange = chalk.hex('#FF8C42');
|
|
20
|
-
const orange = chalk.hex('#FF6B35');
|
|
21
|
-
const brightOrange = chalk.hex('#FFA500');
|
|
22
|
-
|
|
23
|
-
console.log('');
|
|
24
|
-
console.log(grey(' ███╗ ███╗') + lightGrey('██╗ ██╗') + white(' █████╗ ') + lightOrange('██╗██████╗ ') + orange('███████╗') + brightOrange('██╗ ██╗'));
|
|
25
|
-
console.log(grey(' ████╗ ████║') + lightGrey('╚██╗ ██╔╝') + white('██╔══██╗') + lightOrange('██║██╔══██╗') + orange('██╔════╝') + brightOrange('██║ ██║'));
|
|
26
|
-
console.log(grey(' ██╔████╔██║') + lightGrey(' ╚████╔╝ ') + white('███████║') + lightOrange('██║██║ ██║') + orange('█████╗ ') + brightOrange('██║ ██║'));
|
|
27
|
-
console.log(grey(' ██║╚██╔╝██║') + lightGrey(' ╚██╔╝ ') + white('██╔══██║') + lightOrange('██║██║ ██║') + orange('██╔══╝ ') + brightOrange('╚██╗ ██╔╝'));
|
|
28
|
-
console.log(grey(' ██║ ╚═╝ ██║') + lightGrey(' ██║ ') + white('██║ ██║') + lightOrange('██║██████╔╝') + orange('███████╗') + brightOrange(' ╚████╔╝ '));
|
|
29
|
-
console.log(grey(' ╚═╝ ╚═╝') + lightGrey(' ╚═╝ ') + white('╚═╝ ╚═╝') + lightOrange('╚═╝╚═════╝ ') + orange('╚══════╝') + brightOrange(' ╚═══╝ '));
|
|
30
|
-
console.log('');
|
|
31
|
-
console.log(lightGrey(' ███╗ ███╗') + white('███████╗') + lightOrange('████████╗') + orange('██╗ ██╗') + brightOrange(' ██████╗ ██████╗ '));
|
|
32
|
-
console.log(lightGrey(' ████╗ ████║') + white('██╔════╝') + lightOrange('╚══██╔══╝') + orange('██║ ██║') + brightOrange('██╔═══██╗██╔══██╗'));
|
|
33
|
-
console.log(lightGrey(' ██╔████╔██║') + white('█████╗ ') + lightOrange(' ██║ ') + orange('███████║') + brightOrange('██║ ██║██║ ██║'));
|
|
34
|
-
console.log(lightGrey(' ██║╚██╔╝██║') + white('██╔══╝ ') + lightOrange(' ██║ ') + orange('██╔══██║') + brightOrange('██║ ██║██║ ██║'));
|
|
35
|
-
console.log(lightGrey(' ██║ ╚═╝ ██║') + white('███████╗') + lightOrange(' ██║ ') + orange('██║ ██║') + brightOrange('╚██████╔╝██████╔╝'));
|
|
36
|
-
console.log(lightGrey(' ╚═╝ ╚═╝') + white('╚══════╝') + lightOrange(' ╚═╝ ') + orange('╚═╝ ╚═╝') + brightOrange(' ╚═════╝ ╚═════╝ '));
|
|
37
|
-
console.log('');
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// SPARC Methodology breakdown
|
|
41
|
-
function displaySPARC() {
|
|
42
|
-
console.log(chalk.cyan.bold(' 📋 SPARC Development Methodology'));
|
|
43
|
-
console.log('');
|
|
44
|
-
console.log(chalk.grey(' ┌─────────────────────────────────────────────────────────────────┐'));
|
|
45
|
-
console.log(chalk.grey(' │') + chalk.hex('#FF6B35').bold(' S ') + chalk.white('• Specification') + chalk.grey(' │ ') + chalk.gray('Define requirements & system boundaries'));
|
|
46
|
-
console.log(chalk.grey(' │') + chalk.hex('#FF8C42').bold(' P ') + chalk.white('• Pseudocode ') + chalk.grey(' │ ') + chalk.gray('Plan implementation approach'));
|
|
47
|
-
console.log(chalk.grey(' │') + chalk.hex('#FFA500').bold(' A ') + chalk.white('• Architecture ') + chalk.grey(' │ ') + chalk.gray('Design structure, APIs, data models'));
|
|
48
|
-
console.log(chalk.grey(' │') + chalk.hex('#FFB84D').bold(' R ') + chalk.white('• Refinement ') + chalk.grey(' │ ') + chalk.gray('Implement, test, review quality'));
|
|
49
|
-
console.log(chalk.grey(' │') + chalk.hex('#FFCC80').bold(' C ') + chalk.white('• Completion ') + chalk.grey(' │ ') + chalk.gray('Document & deliver production code'));
|
|
50
|
-
console.log(chalk.grey(' └─────────────────────────────────────────────────────────────────┘'));
|
|
51
|
-
console.log('');
|
|
52
|
-
}
|
|
53
|
-
|
|
54
15
|
program
|
|
55
16
|
.version('0.2.5')
|
|
56
|
-
.description('
|
|
17
|
+
.description('MyAIDev Method - Comprehensive development framework with SPARC methodology');
|
|
57
18
|
|
|
58
19
|
program
|
|
59
20
|
.command('init')
|
|
@@ -106,10 +67,10 @@ program
|
|
|
106
67
|
spinner.succeed(chalk.green(`Successfully initialized ${cliType} configuration!`));
|
|
107
68
|
|
|
108
69
|
// Display ASCII banner and SPARC methodology
|
|
109
|
-
|
|
110
|
-
|
|
70
|
+
console.log(getASCIIBanner());
|
|
71
|
+
console.log(getSPARCBreakdown());
|
|
72
|
+
console.log(getInitSuccessMessage(cliType));
|
|
111
73
|
|
|
112
|
-
console.log(chalk.cyan('🎉 You\'re all set! Here\'s how to get started:'));
|
|
113
74
|
if (cliType === 'claude') {
|
|
114
75
|
console.log(chalk.green('\n🏗️ SPARC Development Workflow (Systematic Software Development):'));
|
|
115
76
|
console.log(chalk.gray(' • Complete: /myai-sparc-workflow "Build authentication system"'));
|
|
@@ -129,8 +90,14 @@ program
|
|
|
129
90
|
console.log(chalk.gray(' • Mintlify: /myai-mintlify-publish "docs.mdx"'));
|
|
130
91
|
console.log(chalk.gray(' • Astro: /myai-astro-publish "post.md"'));
|
|
131
92
|
|
|
132
|
-
console.log(chalk.blue('\n🚀
|
|
133
|
-
console.log(chalk.gray(' •
|
|
93
|
+
console.log(chalk.blue('\n🚀 Git & CI/CD Workflow:'));
|
|
94
|
+
console.log(chalk.gray(' • Pull Requests: /myai-git-pr "Add user feature"'));
|
|
95
|
+
console.log(chalk.gray(' • Releases: /myai-git-release'));
|
|
96
|
+
console.log(chalk.gray(' • Sync Branches: /myai-git-sync'));
|
|
97
|
+
console.log(chalk.gray(' • Hotfixes: /myai-git-hotfix'));
|
|
98
|
+
console.log(chalk.gray(' • Deploy Dev: /myai-deploy-dev'));
|
|
99
|
+
console.log(chalk.gray(' • Deploy Staging: /myai-deploy-staging'));
|
|
100
|
+
console.log(chalk.gray(' • Deploy Prod: /myai-deploy-prod'));
|
|
134
101
|
|
|
135
102
|
console.log(chalk.cyan('\n⚙️ Configure platforms:'));
|
|
136
103
|
console.log(chalk.gray(' • Run /myai-configure for guided setup'));
|
|
@@ -143,13 +110,11 @@ program
|
|
|
143
110
|
console.log(chalk.gray(' • PUBLISHING_GUIDE.md - Multi-platform publishing'));
|
|
144
111
|
console.log(chalk.gray(' • COOLIFY_DEPLOYMENT.md - Application deployment'));
|
|
145
112
|
console.log(chalk.gray(' • WORDPRESS_ADMIN_SCRIPTS.md - WordPress utilities'));
|
|
146
|
-
console.log(chalk.gray(' • TECHNICAL_ARCHITECTURE.md - Developer guide'));
|
|
147
113
|
|
|
148
114
|
console.log(chalk.magenta('\n🔧 MCP Server Integration (Optional Advanced Features):'));
|
|
149
115
|
console.log(chalk.gray(' • SPARC Orchestrator: Workflow automation with MCP tools'));
|
|
150
116
|
console.log(chalk.gray(' • Chrome DevTools: Browser testing and debugging'));
|
|
151
117
|
console.log(chalk.gray(' • WordPress MCP: Enhanced WordPress API operations'));
|
|
152
|
-
console.log(chalk.gray(' • Add to Claude Code MCP settings to enable'));
|
|
153
118
|
|
|
154
119
|
console.log(chalk.magenta('\n💡 Quick tips:'));
|
|
155
120
|
console.log(chalk.gray(' • SPARC workflow: Architecture → Code → Test → Review → Docs'));
|
|
@@ -353,31 +318,157 @@ This configuration follows Claude Code's official standards for custom commands
|
|
|
353
318
|
async function setupGemini(projectDir) {
|
|
354
319
|
// Setup Gemini-specific configuration
|
|
355
320
|
const geminiDir = path.join(projectDir, '.gemini');
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
321
|
+
const commandsDir = path.join(geminiDir, 'commands');
|
|
322
|
+
await fs.ensureDir(commandsDir);
|
|
323
|
+
|
|
324
|
+
// Copy all Gemini command files (.toml format)
|
|
325
|
+
const templateCommandsDir = path.join(__dirname, '..', 'src', 'templates', 'gemini', 'commands');
|
|
326
|
+
if (await fs.pathExists(templateCommandsDir)) {
|
|
327
|
+
const commandFiles = await fs.readdir(templateCommandsDir);
|
|
328
|
+
for (const file of commandFiles) {
|
|
329
|
+
if (file.endsWith('.toml')) {
|
|
330
|
+
await fs.copy(
|
|
331
|
+
path.join(templateCommandsDir, file),
|
|
332
|
+
path.join(commandsDir, file)
|
|
333
|
+
);
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// Create Gemini README
|
|
339
|
+
const geminiReadme = `# Gemini CLI Configuration
|
|
340
|
+
|
|
341
|
+
This project uses the MyAIDev Method package for AI-assisted development with Gemini.
|
|
342
|
+
|
|
343
|
+
## Available Commands
|
|
344
|
+
|
|
345
|
+
All commands are located in \`.gemini/commands/\` and use TOML format.
|
|
346
|
+
|
|
347
|
+
### SPARC Development Workflow
|
|
348
|
+
- \`/myai-sparc-workflow\` - Complete 5-phase SPARC workflow
|
|
349
|
+
- \`/myai-dev-architect\` - Design system architecture
|
|
350
|
+
- \`/myai-dev-code\` - Implement features with SOLID principles
|
|
351
|
+
- \`/myai-dev-test\` - Create comprehensive tests
|
|
352
|
+
- \`/myai-dev-review\` - Code quality and security review
|
|
353
|
+
- \`/myai-dev-docs\` - Generate documentation
|
|
354
|
+
|
|
355
|
+
### Git & CI/CD Workflow
|
|
356
|
+
- \`/myai-git-pr\` - Create and manage GitHub Pull Requests
|
|
357
|
+
- \`/myai-git-release\` - Create releases with semantic versioning
|
|
358
|
+
- \`/myai-git-sync\` - Sync and manage branches
|
|
359
|
+
- \`/myai-git-hotfix\` - Create and deploy emergency hotfixes
|
|
360
|
+
- \`/myai-deploy-dev\` - Deploy to development environment
|
|
361
|
+
- \`/myai-deploy-staging\` - Deploy to staging environment
|
|
362
|
+
- \`/myai-deploy-prod\` - Deploy to production environment
|
|
363
|
+
|
|
364
|
+
### Content & Publishing
|
|
365
|
+
- \`/myai-content-writer\` - Create SEO-optimized content
|
|
366
|
+
- \`/myai-wordpress-publish\` - Publish to WordPress
|
|
367
|
+
- \`/myai-payloadcms-publish\` - Publish to PayloadCMS
|
|
368
|
+
- \`/myai-docusaurus-publish\` - Publish to Docusaurus
|
|
369
|
+
- \`/myai-mintlify-publish\` - Publish to Mintlify
|
|
370
|
+
- \`/myai-astro-publish\` - Publish to Astro
|
|
371
|
+
|
|
372
|
+
### Administration
|
|
373
|
+
- \`/myai-coolify-deploy\` - Deploy to Coolify
|
|
374
|
+
- \`/myai-wordpress-admin\` - WordPress administration
|
|
375
|
+
- \`/myai-configure\` - Configure settings
|
|
376
|
+
|
|
377
|
+
## Usage
|
|
378
|
+
|
|
379
|
+
\`\`\`bash
|
|
380
|
+
# Execute a command with arguments
|
|
381
|
+
/myai-dev-architect "Design authentication system"
|
|
382
|
+
/myai-git-pr "Add user profile feature"
|
|
383
|
+
/myai-deploy-staging
|
|
384
|
+
|
|
385
|
+
# Commands support the {{args}} placeholder
|
|
386
|
+
\`\`\`
|
|
387
|
+
|
|
388
|
+
## Documentation
|
|
389
|
+
|
|
390
|
+
For full documentation, see the USER_GUIDE.md in your project root.
|
|
391
|
+
`;
|
|
392
|
+
|
|
393
|
+
await fs.writeFile(path.join(geminiDir, 'README.md'), geminiReadme);
|
|
366
394
|
}
|
|
367
395
|
|
|
368
396
|
async function setupCodex(projectDir) {
|
|
369
|
-
// Setup Codex-specific configuration
|
|
370
|
-
const codexDir = path.join(projectDir, '.
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
397
|
+
// Setup Codex/OpenCode-specific configuration
|
|
398
|
+
const codexDir = path.join(projectDir, '.opencode');
|
|
399
|
+
const commandsDir = path.join(codexDir, 'commands');
|
|
400
|
+
await fs.ensureDir(commandsDir);
|
|
401
|
+
|
|
402
|
+
// Copy all Codex/OpenCode command files (.md format)
|
|
403
|
+
const templateCommandsDir = path.join(__dirname, '..', 'src', 'templates', 'codex', 'commands');
|
|
404
|
+
if (await fs.pathExists(templateCommandsDir)) {
|
|
405
|
+
const commandFiles = await fs.readdir(templateCommandsDir);
|
|
406
|
+
for (const file of commandFiles) {
|
|
407
|
+
if (file.endsWith('.md')) {
|
|
408
|
+
await fs.copy(
|
|
409
|
+
path.join(templateCommandsDir, file),
|
|
410
|
+
path.join(commandsDir, file)
|
|
411
|
+
);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
// Create OpenCode README
|
|
417
|
+
const opencodeReadme = `# OpenCode Configuration
|
|
418
|
+
|
|
419
|
+
This project uses the MyAIDev Method package for AI-assisted development with OpenCode.
|
|
420
|
+
|
|
421
|
+
## Available Commands
|
|
422
|
+
|
|
423
|
+
All commands are located in \`.opencode/commands/\` and use Markdown format.
|
|
424
|
+
|
|
425
|
+
### SPARC Development Workflow
|
|
426
|
+
- \`/myai-sparc-workflow\` - Complete 5-phase SPARC workflow
|
|
427
|
+
- \`/myai-dev-architect\` - Design system architecture
|
|
428
|
+
- \`/myai-dev-code\` - Implement features with SOLID principles
|
|
429
|
+
- \`/myai-dev-test\` - Create comprehensive tests
|
|
430
|
+
- \`/myai-dev-review\` - Code quality and security review
|
|
431
|
+
- \`/myai-dev-docs\` - Generate documentation
|
|
432
|
+
|
|
433
|
+
### Git & CI/CD Workflow
|
|
434
|
+
- \`/myai-git-pr\` - Create and manage GitHub Pull Requests
|
|
435
|
+
- \`/myai-git-release\` - Create releases with semantic versioning
|
|
436
|
+
- \`/myai-git-sync\` - Sync and manage branches
|
|
437
|
+
- \`/myai-git-hotfix\` - Create and deploy emergency hotfixes
|
|
438
|
+
- \`/myai-deploy-dev\` - Deploy to development environment
|
|
439
|
+
- \`/myai-deploy-staging\` - Deploy to staging environment
|
|
440
|
+
- \`/myai-deploy-prod\` - Deploy to production environment
|
|
441
|
+
|
|
442
|
+
### Content & Publishing
|
|
443
|
+
- \`/myai-content-writer\` - Create SEO-optimized content
|
|
444
|
+
- \`/myai-wordpress-publish\` - Publish to WordPress
|
|
445
|
+
- \`/myai-payloadcms-publish\` - Publish to PayloadCMS
|
|
446
|
+
- \`/myai-docusaurus-publish\` - Publish to Docusaurus
|
|
447
|
+
- \`/myai-mintlify-publish\` - Publish to Mintlify
|
|
448
|
+
- \`/myai-astro-publish\` - Publish to Astro
|
|
449
|
+
|
|
450
|
+
### Administration
|
|
451
|
+
- \`/myai-coolify-deploy\` - Deploy to Coolify
|
|
452
|
+
- \`/myai-wordpress-admin\` - WordPress administration
|
|
453
|
+
- \`/myai-configure\` - Configure settings
|
|
454
|
+
|
|
455
|
+
## Usage
|
|
456
|
+
|
|
457
|
+
\`\`\`bash
|
|
458
|
+
# Execute a command with arguments
|
|
459
|
+
/myai-dev-architect "Design authentication system"
|
|
460
|
+
/myai-git-pr "Add user profile feature"
|
|
461
|
+
/myai-deploy-staging
|
|
462
|
+
|
|
463
|
+
# Commands support the $ARGUMENTS placeholder
|
|
464
|
+
\`\`\`
|
|
465
|
+
|
|
466
|
+
## Documentation
|
|
467
|
+
|
|
468
|
+
For full documentation, see the USER_GUIDE.md in your project root.
|
|
469
|
+
`;
|
|
470
|
+
|
|
471
|
+
await fs.writeFile(path.join(codexDir, 'README.md'), opencodeReadme);
|
|
381
472
|
}
|
|
382
473
|
|
|
383
474
|
program.parse(process.argv);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "myaidev-method",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "Comprehensive development framework with SPARC methodology for AI-assisted software development, multi-platform publishing (WordPress, PayloadCMS, Astro, Docusaurus, Mintlify), and Coolify deployment",
|
|
5
5
|
"mcpName": "io.github.myaione/myaidev-method",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* ASCII Banner for MyAIDev Method with orange to grey gradient
|
|
5
|
+
*/
|
|
6
|
+
export function getASCIIBanner() {
|
|
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');
|
|
14
|
+
|
|
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('╚═════╝ ')}
|
|
29
|
+
`;
|
|
30
|
+
|
|
31
|
+
return banner;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Get SPARC methodology breakdown with emoji and colors
|
|
36
|
+
*/
|
|
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');
|
|
43
|
+
|
|
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')('╚══════════════════════════════════════════════════════════════════════════╝')}
|
|
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')}
|
|
52
|
+
|
|
53
|
+
${orange.bold('P')} ${chalk.white('│')} ${green('🔄 Pseudocode')}
|
|
54
|
+
${chalk.dim('Plan implementation approach')}
|
|
55
|
+
${chalk.dim('→ Algorithm design and logic flow')}
|
|
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')}
|
|
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')}
|
|
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')}
|
|
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')('───────────────────────────────────────────────────────────────────────────')}
|
|
72
|
+
`;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Get initialization success message with instructions
|
|
77
|
+
*/
|
|
78
|
+
export function getInitSuccessMessage(cliType) {
|
|
79
|
+
const commands = cliType === 'claude'
|
|
80
|
+
? ' • View README: Press Ctrl+Shift+P → "Toggle Documentation"\n • Run workflow: /myai-sparc-workflow "Build your feature"'
|
|
81
|
+
: cliType === 'gemini'
|
|
82
|
+
? ' • View commands: ls .gemini/commands/\n • Run workflow: /myai-sparc-workflow "Build your feature"'
|
|
83
|
+
: ' • View commands: ls .opencode/commands/\n • Run workflow: /myai-sparc-workflow "Build your feature"';
|
|
84
|
+
|
|
85
|
+
return `
|
|
86
|
+
${chalk.green.bold('✨ Installation Complete!')}
|
|
87
|
+
|
|
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')}
|
|
92
|
+
|
|
93
|
+
${chalk.cyan.bold('🚀 Next Steps:')}
|
|
94
|
+
${commands}
|
|
95
|
+
• Configure platforms: /myai-configure
|
|
96
|
+
• Read full guide: cat USER_GUIDE.md
|
|
97
|
+
|
|
98
|
+
${chalk.hex('#FFA500').bold('🎯 Ready to build with the SPARC methodology!')}
|
|
99
|
+
`;
|
|
100
|
+
}
|