myaidev-method 0.2.24-1 β 0.2.24-2
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/.claude-plugin/plugin.json +251 -0
- package/PLUGIN_ARCHITECTURE.md +276 -0
- package/README.md +204 -0
- package/USER_GUIDE.md +436 -9
- package/bin/cli.js +152 -0
- package/extension.json +174 -0
- package/hooks/hooks.json +221 -0
- package/marketplace.json +179 -0
- package/package.json +15 -3
- package/skills/content-verifier/SKILL.md +178 -0
- package/skills/content-writer/SKILL.md +151 -0
- package/skills/coolify-deployer/SKILL.md +207 -0
- package/skills/openstack-manager/SKILL.md +213 -0
- package/skills/security-auditor/SKILL.md +180 -0
- package/skills/security-tester/SKILL.md +171 -0
- package/skills/sparc-architect/SKILL.md +146 -0
- package/skills/sparc-coder/SKILL.md +136 -0
- package/skills/sparc-documenter/SKILL.md +195 -0
- package/skills/sparc-reviewer/SKILL.md +179 -0
- package/skills/sparc-tester/SKILL.md +156 -0
- package/skills/visual-generator/SKILL.md +147 -0
- package/skills/wordpress-publisher/SKILL.md +150 -0
- package/src/lib/content-coordinator.js +2562 -0
- package/src/lib/installation-detector.js +266 -0
- package/src/lib/visual-config-utils.js +1 -1
- package/src/lib/visual-generation-utils.js +34 -14
- package/src/scripts/generate-visual-cli.js +39 -10
- package/src/scripts/ping.js +0 -1
- package/src/templates/claude/agents/content-production-coordinator.md +689 -15
- package/src/templates/claude/commands/myai-content-enrichment.md +227 -0
- package/src/templates/claude/commands/myai-content-writer.md +48 -37
- package/src/templates/claude/commands/myai-coordinate-content.md +347 -11
package/USER_GUIDE.md
CHANGED
|
@@ -7,6 +7,7 @@ This guide covers everything you need to know about using, customizing, and exte
|
|
|
7
7
|
## π Table of Contents
|
|
8
8
|
|
|
9
9
|
- [Quick Start](#quick-start)
|
|
10
|
+
- [Plugin Architecture & Skills](#-plugin-architecture--skills)
|
|
10
11
|
- [System Configuration](#-system-configuration)
|
|
11
12
|
- [Updating MyAIDev Method](#-updating-myaidev-method)
|
|
12
13
|
- [Understanding the Structure](#understanding-the-structure)
|
|
@@ -120,6 +121,119 @@ Use the interactive configuration command to set up your environmentβno manual
|
|
|
120
121
|
/myai-configure agents --list
|
|
121
122
|
```
|
|
122
123
|
|
|
124
|
+
## π Plugin Architecture & Skills
|
|
125
|
+
|
|
126
|
+
**New in v0.2.25!** MyAIDev Method now supports a modern plugin-based architecture with discoverable skills, cross-platform compatibility, and marketplace distribution.
|
|
127
|
+
|
|
128
|
+
### What's New
|
|
129
|
+
|
|
130
|
+
- **Skills-Based Architecture**: Capabilities are now defined as discoverable SKILL.md files
|
|
131
|
+
- **Plugin Marketplace**: Install packs from the MyAIDev marketplace
|
|
132
|
+
- **Cross-Platform Support**: Works with Claude Code, Gemini CLI, and Codex CLI
|
|
133
|
+
- **Dual Command Naming**: Both legacy (`/myai-*`) and namespaced (`/myaidev-method:*`) commands work
|
|
134
|
+
- **Installation Detection**: CLI commands to detect and upgrade installations
|
|
135
|
+
|
|
136
|
+
### Installation Options
|
|
137
|
+
|
|
138
|
+
#### NPX Installation (Recommended)
|
|
139
|
+
|
|
140
|
+
The traditional method continues to work:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# Full installation
|
|
144
|
+
npx myaidev-method@latest init --claude
|
|
145
|
+
|
|
146
|
+
# Workflow-specific
|
|
147
|
+
npx myaidev-method@latest content --claude
|
|
148
|
+
npx myaidev-method@latest dev --claude
|
|
149
|
+
npx myaidev-method@latest security --claude
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
#### Plugin Installation (Future)
|
|
153
|
+
|
|
154
|
+
When Claude Code plugin marketplace becomes available:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Add marketplace
|
|
158
|
+
/plugin marketplace add myaione/myaidev-method
|
|
159
|
+
|
|
160
|
+
# Install full or specific packs
|
|
161
|
+
/plugin install myaidev-method@myaidev-marketplace
|
|
162
|
+
/plugin install myaidev-content@myaidev-marketplace
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Skills Overview
|
|
166
|
+
|
|
167
|
+
Skills are organized into packs for modular installation:
|
|
168
|
+
|
|
169
|
+
| Pack | Skills | Use Case |
|
|
170
|
+
|------|--------|----------|
|
|
171
|
+
| **content** | content-writer, content-verifier, visual-generator, wordpress-publisher | Content creation and publishing |
|
|
172
|
+
| **development** | sparc-architect, sparc-coder, sparc-tester, sparc-reviewer, sparc-documenter | SPARC methodology software development |
|
|
173
|
+
| **security** | security-tester, security-auditor | Penetration testing and auditing |
|
|
174
|
+
| **infrastructure** | coolify-deployer, openstack-manager | Deployment and cloud management |
|
|
175
|
+
|
|
176
|
+
### SKILL.md Format
|
|
177
|
+
|
|
178
|
+
Each skill is defined with YAML frontmatter:
|
|
179
|
+
|
|
180
|
+
```markdown
|
|
181
|
+
---
|
|
182
|
+
name: content-writer
|
|
183
|
+
description: Professional SEO-optimized content creation
|
|
184
|
+
argument-hint: [topic] [--word-count=1500] [--tone=professional]
|
|
185
|
+
allowed-tools: [Read, Write, Edit, WebSearch, WebFetch, Task]
|
|
186
|
+
user-invocable: true
|
|
187
|
+
category: content
|
|
188
|
+
version: 1.0.0
|
|
189
|
+
platforms: [claude-code, gemini-cli, codex-cli]
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
# Content Writer Skill
|
|
193
|
+
|
|
194
|
+
[Skill instructions and capabilities...]
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Command Aliasing
|
|
198
|
+
|
|
199
|
+
Both naming conventions work:
|
|
200
|
+
|
|
201
|
+
| Legacy | Namespaced | Function |
|
|
202
|
+
|--------|------------|----------|
|
|
203
|
+
| `/myai-content-writer` | `/myaidev-method:content-writer` | Create content |
|
|
204
|
+
| `/myai-configure` | `/myaidev-method:configure` | Configuration |
|
|
205
|
+
| `/myai-wordpress-publish` | `/myaidev-method:wordpress-publish` | WordPress publishing |
|
|
206
|
+
| `/myai-generate-visual` | `/myaidev-method:generate-visual` | Visual generation |
|
|
207
|
+
| `/myai-openstack` | `/myaidev-method:openstack` | OpenStack management |
|
|
208
|
+
|
|
209
|
+
### Installation Management Commands
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# Detect current installation type
|
|
213
|
+
npx myaidev-method detect
|
|
214
|
+
|
|
215
|
+
# Show plugin information
|
|
216
|
+
npx myaidev-method plugin-info
|
|
217
|
+
|
|
218
|
+
# Upgrade from legacy to plugin architecture
|
|
219
|
+
npx myaidev-method upgrade
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Backward Compatibility
|
|
223
|
+
|
|
224
|
+
All existing functionality is preserved:
|
|
225
|
+
|
|
226
|
+
- β
`npx myaidev-method init --claude` works exactly as before
|
|
227
|
+
- β
All `/myai-*` commands work with same names and behavior
|
|
228
|
+
- β
All agents in `.claude/agents/` work as before
|
|
229
|
+
- β
Existing user installations are not affected
|
|
230
|
+
|
|
231
|
+
### Resources
|
|
232
|
+
|
|
233
|
+
- **Plugin Documentation**: [PLUGIN_ARCHITECTURE.md](PLUGIN_ARCHITECTURE.md)
|
|
234
|
+
- **Marketplace**: https://dev.myai1.ai/plugins/myaidev-method
|
|
235
|
+
- **GitHub**: https://github.com/myaione/myaidev-method
|
|
236
|
+
|
|
123
237
|
## βοΈ System Configuration
|
|
124
238
|
|
|
125
239
|
MyAIDev Method uses the `/myai-configure` command for interactive setupβ**no manual `.env` file editing required**. This is the recommended way to configure all integrations.
|
|
@@ -503,15 +617,34 @@ for file in content/*.md; do
|
|
|
503
617
|
done
|
|
504
618
|
```
|
|
505
619
|
|
|
506
|
-
####
|
|
620
|
+
#### Content Pipeline Setup
|
|
621
|
+
|
|
622
|
+
Set up your content creation pipeline with these configuration steps:
|
|
507
623
|
|
|
508
|
-
|
|
624
|
+
**Step 1: Configure Brand Voice & Content Rules (Recommended First)**
|
|
625
|
+
|
|
626
|
+
```bash
|
|
627
|
+
# Interactive wizard for brand voice, tone, SEO guidelines, and formatting
|
|
628
|
+
/myai-content-rules-setup
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
This creates a `content-rules.md` file that customizes all AI-generated content to match your brand. The wizard guides you through:
|
|
632
|
+
- Brand identity (company name, values, mission)
|
|
633
|
+
- Voice & tone (personality, communication style)
|
|
634
|
+
- Writing style (formality, sentence structure)
|
|
635
|
+
- SEO guidelines (keyword density, meta requirements)
|
|
636
|
+
- Formatting preferences (lists, headers, code blocks)
|
|
637
|
+
- Content boundaries (topics to emphasize or avoid)
|
|
638
|
+
|
|
639
|
+
> **Tip**: Set up content rules before creating your first content. This ensures consistent brand voice from day one.
|
|
640
|
+
|
|
641
|
+
**Step 2: Configure Publishing Platforms**
|
|
509
642
|
|
|
510
643
|
```bash
|
|
511
644
|
# Configure WordPress (recommended - no manual .env editing)
|
|
512
645
|
/myai-configure wordpress
|
|
513
646
|
|
|
514
|
-
# Configure
|
|
647
|
+
# Configure visual generation APIs (optional)
|
|
515
648
|
/myai-configure defaults
|
|
516
649
|
```
|
|
517
650
|
|
|
@@ -533,24 +666,318 @@ PAYLOADCMS_PASSWORD=your-password
|
|
|
533
666
|
|
|
534
667
|
#### Content Creator Workflow Example
|
|
535
668
|
|
|
536
|
-
Complete workflow from
|
|
669
|
+
Complete workflow from setup to publication:
|
|
537
670
|
|
|
538
671
|
```bash
|
|
539
|
-
# 1.
|
|
672
|
+
# 1. First-time setup: Configure brand voice (creates content-rules.md)
|
|
673
|
+
/myai-content-rules-setup
|
|
674
|
+
|
|
675
|
+
# 2. Configure publishing destination
|
|
676
|
+
/myai-configure wordpress
|
|
677
|
+
|
|
678
|
+
# 3. Create content (automatically uses your content-rules.md)
|
|
540
679
|
/myai-content-writer "Ultimate guide to TypeScript generics with practical examples"
|
|
541
680
|
|
|
542
|
-
#
|
|
681
|
+
# 4. Review generated markdown file (typescript-generics-guide.md)
|
|
682
|
+
# Content will match your brand voice, SEO guidelines, and formatting preferences
|
|
543
683
|
|
|
544
|
-
#
|
|
684
|
+
# 5. Publish to WordPress as draft for review
|
|
545
685
|
/myai-wordpress-publish "typescript-generics-guide.md" --status draft
|
|
546
686
|
|
|
547
|
-
#
|
|
687
|
+
# 6. Review on WordPress, make edits if needed
|
|
548
688
|
|
|
549
|
-
#
|
|
689
|
+
# 7. Publish to additional platforms
|
|
550
690
|
/myai-payloadcms-publish "typescript-generics-guide.md" --status published
|
|
551
691
|
/myai-docusaurus-publish "typescript-generics-guide.md" --category advanced-topics
|
|
552
692
|
```
|
|
553
693
|
|
|
694
|
+
> **Note**: Steps 1-2 are one-time setup. For subsequent content, start at step 3.
|
|
695
|
+
|
|
696
|
+
#### Batch Content Coordination
|
|
697
|
+
|
|
698
|
+
For publishing multiple pieces of content at once, use the Content Production Coordinatorβa powerful orchestration system that coordinates content verification, quality analysis, and multi-platform publishing.
|
|
699
|
+
|
|
700
|
+
```bash
|
|
701
|
+
# Process all content in a queue directory
|
|
702
|
+
/myai-coordinate-content ./content-queue/
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
**Setting Up a Content Queue:**
|
|
706
|
+
|
|
707
|
+
1. Create a directory for your content queue:
|
|
708
|
+
```bash
|
|
709
|
+
mkdir -p ./content-queue
|
|
710
|
+
```
|
|
711
|
+
|
|
712
|
+
2. Add content files using the required format:
|
|
713
|
+
|
|
714
|
+
**Content Queue File Format** (e.g., `./content-queue/my-article.md`):
|
|
715
|
+
|
|
716
|
+
```markdown
|
|
717
|
+
---
|
|
718
|
+
title: "Your Article Title"
|
|
719
|
+
content_type: article
|
|
720
|
+
target_platform: wordpress
|
|
721
|
+
status: pending
|
|
722
|
+
priority: normal
|
|
723
|
+
references:
|
|
724
|
+
- "https://source1.com"
|
|
725
|
+
- "https://source2.com"
|
|
726
|
+
goals:
|
|
727
|
+
- "Primary goal for this content"
|
|
728
|
+
- "Secondary goal"
|
|
729
|
+
---
|
|
730
|
+
|
|
731
|
+
## Proprietary Content
|
|
732
|
+
|
|
733
|
+
[Your unique insights, original analysis, and value-add content here.
|
|
734
|
+
This is the section that gets verified for uniqueness.]
|
|
735
|
+
|
|
736
|
+
## Supporting Content
|
|
737
|
+
|
|
738
|
+
[Additional context, examples, and supporting material]
|
|
739
|
+
```
|
|
740
|
+
|
|
741
|
+
**Required Fields:**
|
|
742
|
+
| Field | Description |
|
|
743
|
+
|-------|-------------|
|
|
744
|
+
| `title` | Article title (used for publishing) |
|
|
745
|
+
| **Proprietary Content section** | Your unique content to be verified |
|
|
746
|
+
|
|
747
|
+
**Optional Fields:**
|
|
748
|
+
| Field | Values | Default |
|
|
749
|
+
|-------|--------|---------|
|
|
750
|
+
| `content_type` | article, tutorial, guide, listicle | article |
|
|
751
|
+
| `target_platform` | wordpress, payloadcms, static, docusaurus, mintlify, astro | wordpress |
|
|
752
|
+
| `status` | pending, verified, published, failed | pending |
|
|
753
|
+
| `priority` | high, normal, low | normal |
|
|
754
|
+
| `references` | Array of source URLs | [] |
|
|
755
|
+
| `goals` | Array of publishing goals | [] |
|
|
756
|
+
| `publish_date` | ISO 8601 date for scheduled publishing | immediate |
|
|
757
|
+
|
|
758
|
+
3. Run the coordinator:
|
|
759
|
+
```bash
|
|
760
|
+
/myai-coordinate-content ./content-queue/
|
|
761
|
+
```
|
|
762
|
+
|
|
763
|
+
#### Coordinator Features
|
|
764
|
+
|
|
765
|
+
**Core Operations:**
|
|
766
|
+
```bash
|
|
767
|
+
# Verify only, no publishing
|
|
768
|
+
/myai-coordinate-content ./content-queue/ --dry-run
|
|
769
|
+
|
|
770
|
+
# Skip confirmations (for automation)
|
|
771
|
+
/myai-coordinate-content ./content-queue/ --force
|
|
772
|
+
|
|
773
|
+
# Detailed progress output
|
|
774
|
+
/myai-coordinate-content ./content-queue/ --verbose
|
|
775
|
+
|
|
776
|
+
# Custom report directory
|
|
777
|
+
/myai-coordinate-content ./content-queue/ --output-dir ./reports/
|
|
778
|
+
|
|
779
|
+
# Higher concurrency for large batches
|
|
780
|
+
/myai-coordinate-content ./content-queue/ --concurrency 5
|
|
781
|
+
```
|
|
782
|
+
|
|
783
|
+
**Multi-Platform Publishing:**
|
|
784
|
+
```bash
|
|
785
|
+
# Publish to PayloadCMS instead of WordPress
|
|
786
|
+
/myai-coordinate-content ./content-queue/ --platform payloadcms
|
|
787
|
+
|
|
788
|
+
# Generate static markdown files
|
|
789
|
+
/myai-coordinate-content ./content-queue/ --platform static --output-dir ./published/
|
|
790
|
+
|
|
791
|
+
# Publish to Docusaurus documentation site
|
|
792
|
+
/myai-coordinate-content ./docs-queue/ --platform docusaurus
|
|
793
|
+
```
|
|
794
|
+
|
|
795
|
+
Each content item can override the default platform using the `target_platform` front matter field.
|
|
796
|
+
|
|
797
|
+
**Content Rules Integration:**
|
|
798
|
+
```bash
|
|
799
|
+
# Use custom content rules file
|
|
800
|
+
/myai-coordinate-content ./content-queue/ --content-rules ./brand/content-rules.md
|
|
801
|
+
|
|
802
|
+
# Content rules are auto-detected from standard locations
|
|
803
|
+
/myai-coordinate-content ./content-queue/ # Finds ./content-rules.md automatically
|
|
804
|
+
```
|
|
805
|
+
|
|
806
|
+
The coordinator automatically searches for `content-rules.md` in these locations:
|
|
807
|
+
1. Explicit path via `--content-rules`
|
|
808
|
+
2. `./content-rules.md` (current directory)
|
|
809
|
+
3. `./.claude/content-rules.md`
|
|
810
|
+
4. `./docs/content-rules.md`
|
|
811
|
+
|
|
812
|
+
**CI/CD Integration with Webhooks:**
|
|
813
|
+
```bash
|
|
814
|
+
# Send notifications to CI/CD webhook
|
|
815
|
+
/myai-coordinate-content ./content-queue/ --webhook-url https://ci.example.com/webhook
|
|
816
|
+
|
|
817
|
+
# Notify on all events including each published item
|
|
818
|
+
/myai-coordinate-content ./content-queue/ \
|
|
819
|
+
--webhook-url https://ci.example.com/webhook \
|
|
820
|
+
--webhook-events start,complete,error,published
|
|
821
|
+
|
|
822
|
+
# Full CI/CD pipeline integration
|
|
823
|
+
/myai-coordinate-content ./content-queue/ --force --webhook-url $CI_WEBHOOK_URL --analytics
|
|
824
|
+
```
|
|
825
|
+
|
|
826
|
+
**Available Webhook Events:**
|
|
827
|
+
- `start` - When workflow begins
|
|
828
|
+
- `complete` - When workflow finishes successfully
|
|
829
|
+
- `error` - When errors occur
|
|
830
|
+
- `published` - When each item is published
|
|
831
|
+
|
|
832
|
+
**Queue Management:**
|
|
833
|
+
```bash
|
|
834
|
+
# Add new content to queue without processing
|
|
835
|
+
/myai-coordinate-content ./new-articles/ --add-to-queue
|
|
836
|
+
|
|
837
|
+
# View queue statistics
|
|
838
|
+
/myai-coordinate-content --queue-stats
|
|
839
|
+
|
|
840
|
+
# Process items from queue
|
|
841
|
+
/myai-coordinate-content --queue .content-queue.json
|
|
842
|
+
|
|
843
|
+
# Clear completed items from queue
|
|
844
|
+
/myai-coordinate-content --clear-completed
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
**Analytics & Monitoring:**
|
|
848
|
+
```bash
|
|
849
|
+
# Enable detailed analytics (default)
|
|
850
|
+
/myai-coordinate-content ./content-queue/ --analytics
|
|
851
|
+
|
|
852
|
+
# Full production run with all options
|
|
853
|
+
/myai-coordinate-content ./content-queue/ \
|
|
854
|
+
--verbose \
|
|
855
|
+
--output-dir ./reports/ \
|
|
856
|
+
--concurrency 3 \
|
|
857
|
+
--content-rules ./brand/content-rules.md \
|
|
858
|
+
--webhook-url https://ci.example.com/webhook \
|
|
859
|
+
--analytics
|
|
860
|
+
```
|
|
861
|
+
|
|
862
|
+
When analytics are enabled, generates `analytics-YYYY-MM-DD-HH-MM-SS.md` with:
|
|
863
|
+
- Per-phase timing metrics
|
|
864
|
+
- Success/failure rates
|
|
865
|
+
- Average verification and publishing times
|
|
866
|
+
- Content quality score trends
|
|
867
|
+
- Error categorization
|
|
868
|
+
|
|
869
|
+
#### Scheduling & Automation
|
|
870
|
+
|
|
871
|
+
**Linux Crontab Integration:**
|
|
872
|
+
|
|
873
|
+
```bash
|
|
874
|
+
# Generate crontab entry with instructions
|
|
875
|
+
/myai-coordinate-content --generate-crontab
|
|
876
|
+
|
|
877
|
+
# Run in cron-safe mode (for crontab)
|
|
878
|
+
/myai-coordinate-content ./content-queue/ --cron --force
|
|
879
|
+
|
|
880
|
+
# With minimum 6-hour interval between runs
|
|
881
|
+
/myai-coordinate-content ./content-queue/ --cron --min-interval 21600
|
|
882
|
+
```
|
|
883
|
+
|
|
884
|
+
**Example crontab entries:**
|
|
885
|
+
```bash
|
|
886
|
+
# Every 6 hours
|
|
887
|
+
0 */6 * * * cd /path/to/project && npx myaidev-method coordinate-content ./content-queue --cron --force >> /var/log/content-coordinator.log 2>&1
|
|
888
|
+
|
|
889
|
+
# Daily at 9 AM
|
|
890
|
+
0 9 * * * cd /path/to/project && npx myaidev-method coordinate-content ./content-queue --cron --force >> /var/log/content-coordinator.log 2>&1
|
|
891
|
+
|
|
892
|
+
# Weekdays at 9 AM and 5 PM
|
|
893
|
+
0 9,17 * * 1-5 cd /path/to/project && npx myaidev-method coordinate-content ./content-queue --cron --force >> /var/log/content-coordinator.log 2>&1
|
|
894
|
+
```
|
|
895
|
+
|
|
896
|
+
**WordPress Post Scheduling:**
|
|
897
|
+
|
|
898
|
+
Schedule posts for future publication using WordPress's native scheduling:
|
|
899
|
+
|
|
900
|
+
```bash
|
|
901
|
+
# Delay all posts by 24 hours
|
|
902
|
+
/myai-coordinate-content ./content-queue/ --schedule-delay 24
|
|
903
|
+
|
|
904
|
+
# Spread posts 6 hours apart
|
|
905
|
+
/myai-coordinate-content ./content-queue/ --spread-interval 6
|
|
906
|
+
|
|
907
|
+
# Combined: Start in 24 hours, then every 6 hours
|
|
908
|
+
/myai-coordinate-content ./content-queue/ --schedule-delay 24 --spread-interval 6
|
|
909
|
+
```
|
|
910
|
+
|
|
911
|
+
You can also set specific publish dates in content front matter:
|
|
912
|
+
```yaml
|
|
913
|
+
---
|
|
914
|
+
title: "My Article"
|
|
915
|
+
publish_date: "2026-02-15T09:00:00Z" # Schedule for specific date
|
|
916
|
+
---
|
|
917
|
+
```
|
|
918
|
+
|
|
919
|
+
**Combined Automation (Cron + WordPress Scheduling):**
|
|
920
|
+
```bash
|
|
921
|
+
# Run via cron, but schedule posts for optimal times
|
|
922
|
+
/myai-coordinate-content ./content-queue/ \
|
|
923
|
+
--cron \
|
|
924
|
+
--force \
|
|
925
|
+
--schedule-delay 24 \
|
|
926
|
+
--spread-interval 6 \
|
|
927
|
+
--webhook-url https://ci.example.com/content-published
|
|
928
|
+
```
|
|
929
|
+
|
|
930
|
+
#### Checkpoint/Resume
|
|
931
|
+
|
|
932
|
+
The coordinator automatically saves progress to `.content-coordinator-state.json`. If interrupted:
|
|
933
|
+
- Re-run the same command to resume from the last checkpoint
|
|
934
|
+
- Use `--fresh` to start over and ignore saved state
|
|
935
|
+
- Delete the state file manually to reset
|
|
936
|
+
|
|
937
|
+
#### Output Reports
|
|
938
|
+
|
|
939
|
+
The coordinator generates timestamped reports:
|
|
940
|
+
|
|
941
|
+
**Ready for Publishing Report** (`ready-for-publishing-YYYY-MM-DD-HH-MM-SS.md`):
|
|
942
|
+
```markdown
|
|
943
|
+
# Content Ready for Publishing
|
|
944
|
+
Generated: YYYY-MM-DD HH:MM:SS
|
|
945
|
+
|
|
946
|
+
## Summary
|
|
947
|
+
- Total Items: X
|
|
948
|
+
- Total Word Count: ~Y,000 words
|
|
949
|
+
- Average Redundancy Score: Low/Minimal
|
|
950
|
+
|
|
951
|
+
## Items
|
|
952
|
+
|
|
953
|
+
### 1. [Title]
|
|
954
|
+
- **Redundancy Score**: Low
|
|
955
|
+
- **Recommendation**: Proceed with publishing
|
|
956
|
+
- **Word Count**: ~1,200 words
|
|
957
|
+
- **Verifier Feedback**: [Brief feedback]
|
|
958
|
+
- **References**: [List of references]
|
|
959
|
+
- **Goals**: [Publishing goals]
|
|
960
|
+
```
|
|
961
|
+
|
|
962
|
+
**Needs Review Report** (`needs-review-YYYY-MM-DD-HH-MM-SS.md`):
|
|
963
|
+
```markdown
|
|
964
|
+
# Content Requiring Review
|
|
965
|
+
Generated: YYYY-MM-DD HH:MM:SS
|
|
966
|
+
|
|
967
|
+
## Summary
|
|
968
|
+
- Total Items: X
|
|
969
|
+
- Issues Found: Redundancy, AI-generated indicators, etc.
|
|
970
|
+
|
|
971
|
+
## Items Requiring Attention
|
|
972
|
+
|
|
973
|
+
### 1. [Title]
|
|
974
|
+
- **Redundancy Score**: Medium/High
|
|
975
|
+
- **Recommendation**: Needs review / Reject
|
|
976
|
+
- **Issue**: [Specific problem identified]
|
|
977
|
+
- **Verifier Feedback**: [Detailed feedback]
|
|
978
|
+
- **Suggested Actions**: [What to do next]
|
|
979
|
+
```
|
|
980
|
+
|
|
554
981
|
---
|
|
555
982
|
|
|
556
983
|
### Developer Pathway
|
package/bin/cli.js
CHANGED
|
@@ -1219,4 +1219,156 @@ program
|
|
|
1219
1219
|
}
|
|
1220
1220
|
});
|
|
1221
1221
|
|
|
1222
|
+
// Installation detection command (Plugin Architecture Support)
|
|
1223
|
+
program
|
|
1224
|
+
.command('detect')
|
|
1225
|
+
.description('Detect MyAIDev Method installation state (legacy vs plugin)')
|
|
1226
|
+
.option('--json', 'Output as JSON')
|
|
1227
|
+
.action(async (options) => {
|
|
1228
|
+
try {
|
|
1229
|
+
const { detectInstallation, getInstallationStatus } = await import('../src/lib/installation-detector.js');
|
|
1230
|
+
|
|
1231
|
+
if (options.json) {
|
|
1232
|
+
const detection = await detectInstallation(process.cwd());
|
|
1233
|
+
console.log(JSON.stringify(detection, null, 2));
|
|
1234
|
+
} else {
|
|
1235
|
+
const status = await getInstallationStatus(process.cwd());
|
|
1236
|
+
console.log(status);
|
|
1237
|
+
}
|
|
1238
|
+
} catch (error) {
|
|
1239
|
+
console.error(chalk.red('Failed to detect installation:'), error.message);
|
|
1240
|
+
process.exit(1);
|
|
1241
|
+
}
|
|
1242
|
+
});
|
|
1243
|
+
|
|
1244
|
+
// Plugin information command
|
|
1245
|
+
program
|
|
1246
|
+
.command('plugin-info')
|
|
1247
|
+
.description('Show plugin architecture information and capabilities')
|
|
1248
|
+
.action(async () => {
|
|
1249
|
+
console.log(chalk.cyan('\nπ MyAIDev Method Plugin Architecture\n'));
|
|
1250
|
+
console.log(chalk.white('ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ\n'));
|
|
1251
|
+
|
|
1252
|
+
console.log(chalk.yellow('π¦ Installation Methods:\n'));
|
|
1253
|
+
console.log(' 1. Legacy (npx): npx myaidev-method init --claude');
|
|
1254
|
+
console.log(' 2. Plugin: /plugin install myaidev-method\n');
|
|
1255
|
+
|
|
1256
|
+
console.log(chalk.yellow('π― Command Formats:\n'));
|
|
1257
|
+
console.log(' Legacy: /myai-content-writer, /myai-configure');
|
|
1258
|
+
console.log(' Namespaced: /myaidev-method:content-writer\n');
|
|
1259
|
+
|
|
1260
|
+
console.log(chalk.yellow('π Available Skill Packs:\n'));
|
|
1261
|
+
console.log(' β’ content - Content creation & WordPress publishing');
|
|
1262
|
+
console.log(' β’ visual - AI image/video generation');
|
|
1263
|
+
console.log(' β’ development - SPARC methodology for software dev');
|
|
1264
|
+
console.log(' β’ publishing - Multi-platform publishing (WP, Payload, Static)');
|
|
1265
|
+
console.log(' β’ deployment - Coolify deployment automation');
|
|
1266
|
+
console.log(' β’ security - Security testing & auditing');
|
|
1267
|
+
console.log(' β’ openstack - OpenStack VM management\n');
|
|
1268
|
+
|
|
1269
|
+
console.log(chalk.yellow('π Plugin Structure:\n'));
|
|
1270
|
+
console.log(' .claude-plugin/plugin.json - Plugin manifest');
|
|
1271
|
+
console.log(' skills/ - SKILL.md files');
|
|
1272
|
+
console.log(' commands/ - Command definitions');
|
|
1273
|
+
console.log(' agents/ - Agent definitions');
|
|
1274
|
+
console.log(' hooks/hooks.json - Lifecycle hooks\n');
|
|
1275
|
+
|
|
1276
|
+
console.log(chalk.yellow('π More Information:\n'));
|
|
1277
|
+
console.log(' Documentation: https://github.com/myaione/myaidev-method');
|
|
1278
|
+
console.log(' Plugin Catalog: https://myaidev.com/plugins/myaidev-method\n');
|
|
1279
|
+
});
|
|
1280
|
+
|
|
1281
|
+
// Upgrade command (legacy to plugin)
|
|
1282
|
+
program
|
|
1283
|
+
.command('upgrade')
|
|
1284
|
+
.description('Upgrade from legacy installation to plugin architecture')
|
|
1285
|
+
.option('--dry-run', 'Show what would be upgraded without making changes')
|
|
1286
|
+
.action(async (options) => {
|
|
1287
|
+
try {
|
|
1288
|
+
const { detectInstallation, checkUpgradeAvailability } = await import('../src/lib/installation-detector.js');
|
|
1289
|
+
const detection = await detectInstallation(process.cwd());
|
|
1290
|
+
|
|
1291
|
+
console.log(chalk.cyan('\nπ MyAIDev Method Upgrade Check\n'));
|
|
1292
|
+
|
|
1293
|
+
if (detection.installationType === 'none') {
|
|
1294
|
+
console.log(chalk.yellow('β οΈ No MyAIDev Method installation detected.'));
|
|
1295
|
+
console.log(chalk.gray('\nRun "npx myaidev-method init --claude" to install first.\n'));
|
|
1296
|
+
return;
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
if (detection.installationType === 'plugin' || detection.installationType === 'both') {
|
|
1300
|
+
console.log(chalk.green('β
Plugin architecture already enabled.'));
|
|
1301
|
+
console.log(chalk.gray('\nNo upgrade needed.\n'));
|
|
1302
|
+
return;
|
|
1303
|
+
}
|
|
1304
|
+
|
|
1305
|
+
const upgrade = await checkUpgradeAvailability(process.cwd());
|
|
1306
|
+
|
|
1307
|
+
console.log(chalk.yellow('π Current Installation: Legacy (npx-based)\n'));
|
|
1308
|
+
|
|
1309
|
+
console.log(chalk.green('β¨ Upgrade Benefits:'));
|
|
1310
|
+
for (const benefit of upgrade.upgradeBenefits) {
|
|
1311
|
+
console.log(` β’ ${benefit}`);
|
|
1312
|
+
}
|
|
1313
|
+
|
|
1314
|
+
console.log(chalk.blue('\nπ Preserved Features:'));
|
|
1315
|
+
for (const feature of upgrade.preservedFeatures) {
|
|
1316
|
+
console.log(` β’ ${feature}`);
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
if (options.dryRun) {
|
|
1320
|
+
console.log(chalk.yellow('\n[DRY RUN] Would create:'));
|
|
1321
|
+
console.log(' β’ .claude-plugin/plugin.json');
|
|
1322
|
+
console.log(' β’ skills/ directory with SKILL.md files');
|
|
1323
|
+
console.log(' β’ hooks/hooks.json');
|
|
1324
|
+
console.log('\n[DRY RUN] No changes made.\n');
|
|
1325
|
+
return;
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1328
|
+
// Prompt for confirmation
|
|
1329
|
+
const answer = await inquirer.prompt([
|
|
1330
|
+
{
|
|
1331
|
+
type: 'confirm',
|
|
1332
|
+
name: 'proceed',
|
|
1333
|
+
message: 'Proceed with upgrade to plugin architecture?',
|
|
1334
|
+
default: true
|
|
1335
|
+
}
|
|
1336
|
+
]);
|
|
1337
|
+
|
|
1338
|
+
if (!answer.proceed) {
|
|
1339
|
+
console.log(chalk.gray('\nUpgrade cancelled.\n'));
|
|
1340
|
+
return;
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
const spinner = ora('Upgrading to plugin architecture...').start();
|
|
1344
|
+
|
|
1345
|
+
// Copy plugin files from the package to the project
|
|
1346
|
+
const packageRoot = path.dirname(__dirname);
|
|
1347
|
+
|
|
1348
|
+
// Create .claude-plugin directory
|
|
1349
|
+
await fs.ensureDir(path.join(process.cwd(), '.claude-plugin'));
|
|
1350
|
+
await fs.copy(
|
|
1351
|
+
path.join(packageRoot, '.claude-plugin', 'plugin.json'),
|
|
1352
|
+
path.join(process.cwd(), '.claude-plugin', 'plugin.json')
|
|
1353
|
+
);
|
|
1354
|
+
|
|
1355
|
+
// Create hooks directory
|
|
1356
|
+
await fs.ensureDir(path.join(process.cwd(), 'hooks'));
|
|
1357
|
+
await fs.copy(
|
|
1358
|
+
path.join(packageRoot, 'hooks', 'hooks.json'),
|
|
1359
|
+
path.join(process.cwd(), 'hooks', 'hooks.json')
|
|
1360
|
+
);
|
|
1361
|
+
|
|
1362
|
+
spinner.succeed(chalk.green('Upgrade complete!'));
|
|
1363
|
+
|
|
1364
|
+
console.log(chalk.cyan('\nβ
Plugin architecture enabled.'));
|
|
1365
|
+
console.log(chalk.gray(' Both /myai-* and /myaidev-method:* commands now available.'));
|
|
1366
|
+
console.log(chalk.yellow('\nπ Restart Claude Code to load new capabilities.\n'));
|
|
1367
|
+
|
|
1368
|
+
} catch (error) {
|
|
1369
|
+
console.error(chalk.red('Failed to upgrade:'), error.message);
|
|
1370
|
+
process.exit(1);
|
|
1371
|
+
}
|
|
1372
|
+
});
|
|
1373
|
+
|
|
1222
1374
|
program.parse(process.argv);
|