myaidev-method 0.3.3 → 0.3.5

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 (132) 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 +777 -535
  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/myai-content-writer/agents/editor-agent.md +138 -0
  38. package/skills/myai-content-writer/agents/planner-agent.md +121 -0
  39. package/skills/myai-content-writer/agents/research-agent.md +83 -0
  40. package/skills/myai-content-writer/agents/seo-agent.md +139 -0
  41. package/skills/myai-content-writer/agents/visual-planner-agent.md +110 -0
  42. package/skills/myai-content-writer/agents/writer-agent.md +85 -0
  43. package/skills/{infographic → myai-infographic}/SKILL.md +1 -1
  44. package/skills/myai-proprietary-content-verifier/SKILL.md +175 -0
  45. package/skills/myai-proprietary-content-verifier/evals/evals.json +36 -0
  46. package/skills/myai-skill-builder/SKILL.md +699 -0
  47. package/skills/myai-skill-builder/agents/analyzer-agent.md +137 -0
  48. package/skills/myai-skill-builder/agents/comparator-agent.md +77 -0
  49. package/skills/myai-skill-builder/agents/grader-agent.md +103 -0
  50. package/skills/myai-skill-builder/assets/eval_review.html +131 -0
  51. package/skills/myai-skill-builder/references/schemas.md +211 -0
  52. package/skills/myai-skill-builder/scripts/aggregate_benchmark.py +190 -0
  53. package/skills/myai-skill-builder/scripts/generate_review.py +381 -0
  54. package/skills/myai-skill-builder/scripts/package_skill.py +91 -0
  55. package/skills/myai-skill-builder/scripts/run_eval.py +105 -0
  56. package/skills/myai-skill-builder/scripts/run_loop.py +211 -0
  57. package/skills/myai-skill-builder/scripts/utils.py +123 -0
  58. package/skills/myai-visual-generator/SKILL.md +125 -0
  59. package/skills/myai-visual-generator/evals/evals.json +155 -0
  60. package/skills/myai-visual-generator/references/infographic-pipeline.md +73 -0
  61. package/skills/myai-visual-generator/references/research-visuals.md +57 -0
  62. package/skills/myai-visual-generator/references/services.md +89 -0
  63. package/skills/myai-visual-generator/scripts/visual-generation-utils.js +1272 -0
  64. package/skills/myaidev-analyze/agents/dependency-mapper-agent.md +236 -0
  65. package/skills/myaidev-analyze/agents/pattern-detector-agent.md +240 -0
  66. package/skills/myaidev-analyze/agents/structure-scanner-agent.md +171 -0
  67. package/skills/myaidev-analyze/agents/tech-profiler-agent.md +291 -0
  68. package/skills/myaidev-architect/agents/compliance-checker-agent.md +287 -0
  69. package/skills/myaidev-architect/agents/requirements-analyst-agent.md +194 -0
  70. package/skills/myaidev-architect/agents/system-designer-agent.md +315 -0
  71. package/skills/myaidev-coder/agents/implementer-agent.md +185 -0
  72. package/skills/myaidev-coder/agents/integration-agent.md +168 -0
  73. package/skills/myaidev-coder/agents/pattern-scanner-agent.md +161 -0
  74. package/skills/myaidev-coder/agents/self-reviewer-agent.md +168 -0
  75. package/skills/myaidev-debug/agents/fix-agent-debug.md +317 -0
  76. package/skills/myaidev-debug/agents/hypothesis-agent.md +226 -0
  77. package/skills/myaidev-debug/agents/investigator-agent.md +250 -0
  78. package/skills/myaidev-debug/agents/symptom-collector-agent.md +231 -0
  79. package/skills/myaidev-documenter/agents/code-reader-agent.md +172 -0
  80. package/skills/myaidev-documenter/agents/doc-validator-agent.md +174 -0
  81. package/skills/myaidev-documenter/agents/doc-writer-agent.md +379 -0
  82. package/skills/myaidev-figma/SKILL.md +212 -0
  83. package/skills/myaidev-figma/capture.js +133 -0
  84. package/skills/myaidev-figma/crawl.js +130 -0
  85. package/skills/myaidev-figma-configure/SKILL.md +130 -0
  86. package/skills/myaidev-migrate/agents/migration-planner-agent.md +237 -0
  87. package/skills/myaidev-migrate/agents/migration-writer-agent.md +248 -0
  88. package/skills/myaidev-migrate/agents/schema-analyzer-agent.md +190 -0
  89. package/skills/myaidev-performance/agents/benchmark-agent.md +281 -0
  90. package/skills/myaidev-performance/agents/optimizer-agent.md +277 -0
  91. package/skills/myaidev-performance/agents/profiler-agent.md +252 -0
  92. package/skills/myaidev-refactor/agents/refactor-executor-agent.md +221 -0
  93. package/skills/myaidev-refactor/agents/refactor-planner-agent.md +213 -0
  94. package/skills/myaidev-refactor/agents/regression-guard-agent.md +242 -0
  95. package/skills/myaidev-refactor/agents/smell-detector-agent.md +233 -0
  96. package/skills/myaidev-reviewer/agents/auto-fixer-agent.md +238 -0
  97. package/skills/myaidev-reviewer/agents/code-analyst-agent.md +220 -0
  98. package/skills/myaidev-reviewer/agents/security-scanner-agent.md +262 -0
  99. package/skills/myaidev-tester/agents/coverage-analyst-agent.md +163 -0
  100. package/skills/myaidev-tester/agents/tdd-driver-agent.md +242 -0
  101. package/skills/myaidev-tester/agents/test-runner-agent.md +176 -0
  102. package/skills/myaidev-tester/agents/test-strategist-agent.md +154 -0
  103. package/skills/myaidev-tester/agents/test-writer-agent.md +242 -0
  104. package/skills/myaidev-workflow/agents/analyzer-agent.md +317 -0
  105. package/skills/myaidev-workflow/agents/coordinator-agent.md +253 -0
  106. package/skills/openstack-manager/SKILL.md +1 -1
  107. package/skills/payloadcms-publisher/SKILL.md +141 -77
  108. package/skills/payloadcms-publisher/references/field-mapping.md +142 -0
  109. package/skills/payloadcms-publisher/references/lexical-format.md +97 -0
  110. package/skills/security-auditor/SKILL.md +1 -1
  111. package/src/cli/commands/addon.js +184 -123
  112. package/src/config/workflows.js +172 -228
  113. package/src/lib/ascii-banner.js +197 -182
  114. package/src/lib/{content-coordinator.js → content-production-coordinator.js} +649 -459
  115. package/src/lib/installation-detector.js +93 -59
  116. package/src/lib/payloadcms-utils.js +285 -510
  117. package/src/lib/update-manager.js +120 -61
  118. package/src/lib/workflow-installer.js +55 -0
  119. package/src/mcp/health-check.js +82 -68
  120. package/src/mcp/openstack-server.js +1746 -1262
  121. package/src/scripts/configure-visual-apis.js +224 -173
  122. package/src/scripts/configure-wordpress-mcp.js +96 -66
  123. package/src/scripts/init/install.js +109 -85
  124. package/src/scripts/init-project.js +138 -67
  125. package/src/scripts/utils/write-content.js +67 -52
  126. package/src/scripts/wordpress/publish-to-wordpress.js +128 -128
  127. package/src/templates/claude/CLAUDE.md +131 -0
  128. package/hooks/hooks.json +0 -26
  129. package/skills/content-coordinator/SKILL.md +0 -130
  130. package/skills/content-enrichment/SKILL.md +0 -80
  131. package/skills/content-writer/SKILL.md +0 -285
  132. package/skills/visual-generator/SKILL.md +0 -140
@@ -0,0 +1,397 @@
1
+ ---
2
+ name: content-maintenance-configurator
3
+ description: Personalizes and maintains the content maintenance skill pack. Includes myai-content-enrichment — helps users inject their enrichment philosophy, staleness criteria, proprietary data sources, and content lifecycle thinking into the enrichment skill. Also performs health checks, drift detection, and pipeline validation across all content skills.
4
+ argument-hint: "[--personalize] [--health] [--drift] [--validate] [--sync] [--schedule]"
5
+ allowed-tools: [Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion]
6
+ ---
7
+
8
+ # Content Maintenance Skill Pack Configurator
9
+
10
+ You are the **Content Maintenance Configurator**. You serve two purposes:
11
+
12
+ 1. **Personalize** the content maintenance skills — help users create their version of each maintenance skill by injecting their methodology, content lifecycle philosophy, and proprietary thinking.
13
+ 2. **Maintain** the health of the entire content pipeline — detect drift, validate integrity, and keep all skills in sync.
14
+
15
+ ---
16
+
17
+ ## Part 1: Skill Personalization
18
+
19
+ ### Arguments for Personalization
20
+
21
+ - No args → Show the personalization menu first
22
+ - `--personalize` → Go directly to skill personalization
23
+ - `--skill=<name>` → Jump to a specific maintenance skill
24
+
25
+ ### Skill Selection
26
+
27
+ Present this menu and ask the user to pick a skill:
28
+
29
+ ```
30
+ Which maintenance skill would you like to make your own?
31
+
32
+ CONTENT MAINTENANCE
33
+ [1] myai-content-enrichment — Updating existing articles with fresh data, stats, references, FAQs
34
+ ```
35
+
36
+ After the user selects, read the skill's SKILL.md, then walk through Layer 1 and Layer 2.
37
+
38
+ ### Skill Registry
39
+
40
+ | # | Skill | File Path |
41
+ |---|-------|-----------|
42
+ | 1 | `myai-content-enrichment` | `skills/myai-content-enrichment/SKILL.md` |
43
+
44
+ ---
45
+
46
+ ### Skill 1: `myai-content-enrichment`
47
+
48
+ **The skill currently**: Takes existing articles and enriches them with updated statistics, authoritative references, visual plans, FAQ sections, and schema markup. It reads `content-rules.md` and `brand-config.json` for brand compliance. For substantial rewrites, it spawns the `content-writer` agent.
49
+
50
+ #### Layer 1: Your Methodology
51
+
52
+ 1. **Your Enrichment Philosophy**
53
+ > "What does 'enriching' content mean to you beyond the defaults? The skill currently updates stats, adds references, generates FAQs, and suggests schema. But enrichment could also mean:
54
+ > - Adding your latest product features or case study results
55
+ > - Weaving in customer quotes or testimonials
56
+ > - Inserting internal benchmark data that's been updated
57
+ > - Connecting to newer articles in a topic cluster
58
+ > - Adding competitive comparison sections
59
+ > - Updating thought leadership positioning
60
+ > - Refreshing product screenshots or UI references
61
+ > - Adding 'What's changed since we published' sections
62
+ >
63
+ > What custom enrichment types do you want?"
64
+
65
+ For each custom type, add a new numbered subsection under `## Enrichment Types` following the same pattern as the existing 5 types (title, bullet points of what it does).
66
+
67
+ 2. **Your Staleness Criteria**
68
+ > "How do you define 'stale' content? The skill updates stats it finds outdated, but when does YOUR content become stale? Think about:
69
+ > - How old can statistics be before they need refreshing? (6 months? 1 year? 2 years?)
70
+ > - Do product screenshots expire when you ship a new version?
71
+ > - Do references to competitors become stale when they pivot or rebrand?
72
+ > - Does pricing or feature information have a shelf life?
73
+ > - Are there industry events or shifts that immediately make content outdated? (e.g., a major regulation, a paradigm shift like GenAI)
74
+ > - Do your benchmarks or case study results need annual refreshes?
75
+ >
76
+ > Define your staleness rules — the enrichment skill will use these to prioritize what to update."
77
+
78
+ Add a `## Staleness Criteria` section before `## Enrichment Types`. Define each rule with a condition and a severity (critical: must update immediately, warning: should update soon, info: consider updating). The skill checks these criteria when scanning an article to determine what needs enrichment.
79
+
80
+ 3. **Your Proprietary Data Sources**
81
+ > "Do you have internal data sources that enrichment should consult when updating articles? Examples:
82
+ > - Internal analytics dashboards or reports
83
+ > - Customer success metrics or NPS data
84
+ > - Product telemetry or usage statistics
85
+ > - Quarterly benchmark reports you publish
86
+ > - Internal knowledge base or wiki
87
+ > - Customer case study database
88
+ > - Sales enablement materials
89
+ >
90
+ > Describe each source: what data it provides, how to reference it, and when to pull from it during enrichment."
91
+
92
+ Add a `## Proprietary Data Sources` section listing each source with: name, what it provides, how to access/reference it, and which enrichment types use it.
93
+
94
+ 4. **Your Content Interconnection Strategy**
95
+ > "When enriching an article, should the skill look for opportunities to link to your other content? Do you use:
96
+ > - **Topic clusters** — pillar pages with supporting articles that cross-reference each other?
97
+ > - **Content series** — sequential articles that should link forward/backward?
98
+ > - **Product ecosystem** — articles about related products/features that should cross-link?
99
+ > - **Funnel progression** — awareness articles linking to consideration articles linking to decision articles?
100
+ >
101
+ > Describe your internal linking strategy."
102
+
103
+ If the user has a linking strategy, add a new enrichment type: `### N. Internal Linking` under `## Enrichment Types` that scans `content-output/` for related articles and adds contextual cross-links following the user's strategy.
104
+
105
+ 5. **Your Content Lifecycle Model**
106
+ > "Do you think about content in lifecycle stages? For example:
107
+ > - **Evergreen** — content that stays relevant for years with minor refreshes
108
+ > - **Timely** — content tied to a specific event, trend, or release that has a natural expiration
109
+ > - **Foundational** — pillar content that anchors a topic cluster and needs continuous updating
110
+ > - **Archival** — content that's no longer actively promoted but should remain accurate
111
+ >
112
+ > Do different lifecycle stages get different enrichment treatment? For example, evergreen content gets stat updates annually, timely content gets deprecated after 6 months, foundational content gets full enrichment quarterly."
113
+
114
+ Add a `## Content Lifecycle Model` section that defines the user's lifecycle stages and maps each stage to an enrichment strategy (which types run, how often, how aggressively).
115
+
116
+ 6. **Your Quality Bar for Enriched Content**
117
+ > "After enrichment, what makes you confident the article is 'good enough' to republish? Beyond the existing quality rules, do you have additional checks?
118
+ > - Must all statistics be from the current year?
119
+ > - Must every claim have a citation?
120
+ > - Should enriched articles be re-checked against content-rules.md?
121
+ > - Do you have a minimum freshness threshold for references?
122
+ > - Should the enrichment add an 'Updated on' notice?"
123
+
124
+ Add these as additional bullets to `## Quality Rules` or create a `## Post-Enrichment Quality Check` section if the user has substantial requirements.
125
+
126
+ #### Layer 2: Tune Defaults
127
+
128
+ | Question | Current Default | Where in file |
129
+ |----------|----------------|---------------|
130
+ | "Default FAQ question count?" | 5-8 | `## Enrichment Types` → section 4 → "Generate 5-8 relevant questions" |
131
+ | "Mark enriched sections with HTML comments?" | "if needed" | `## Quality Rules` → last bullet |
132
+ | "Additional config files to read?" | None | `## Configuration Files` table |
133
+ | "Default enrichment types when no flags given?" | All 5 (via `--full`) | `## Arguments` → `--full` description |
134
+
135
+ #### Applying Changes
136
+
137
+ Follow the same process as the content-creation-configurator:
138
+
139
+ 1. Read the skill file → collect answers → write new sections + update values
140
+ 2. Add configurator comment: `<!-- Personalized by content-maintenance-configurator on {YYYY-MM-DD} -->`
141
+ 3. Log changes to `.myai-configurator/content-maintenance.json` under a `"personalization"` key
142
+
143
+ ---
144
+
145
+ ## Part 2: Pipeline Health & Maintenance
146
+
147
+ ### Arguments for Maintenance
148
+
149
+ - `--health` → Health check across all content skills (creation + maintenance)
150
+ - `--drift` → Detect configuration drift (changes made outside the configurator)
151
+ - `--validate` → Deep validation of skill integrity and cross-skill consistency
152
+ - `--sync` → Synchronize configuration across duplicate skill installations
153
+ - `--schedule` → Set up or review maintenance reminders
154
+
155
+ ---
156
+
157
+ ### Health Check (`--health`)
158
+
159
+ Diagnose the overall health of the content pipeline (all skills — both creation and maintenance).
160
+
161
+ #### 1. Skill File Integrity
162
+
163
+ For each content skill (11 creation + 1 maintenance = 12 total):
164
+
165
+ | Check | How | Pass Criteria |
166
+ |-------|-----|---------------|
167
+ | File exists | Read the SKILL.md file | File is present and non-empty |
168
+ | Frontmatter valid | Parse YAML between `---` markers | Valid YAML with `name` and `description` fields |
169
+ | Required fields | Check frontmatter keys | Has `name`, `description`, and either `tools`/`allowed-tools` |
170
+ | Body present | Check content after frontmatter | At least 10 lines of instruction content |
171
+ | No syntax errors | Scan for broken markdown | No unclosed code blocks, no orphaned frontmatter delimiters |
172
+
173
+ Also check the 5 publisher agents "wordpress-publisher", "astro-publisher", "docusaurus-publisher", "mintlify-publisher", "payloadcms-publisher"
174
+
175
+ #### 2. Configuration Files
176
+
177
+ | File | Check | Severity |
178
+ |------|-------|----------|
179
+ | `brand-config.json` | Exists + valid JSON | Critical (blocks pipeline) |
180
+ | `product-config.json` | Exists + valid JSON | Critical |
181
+ | `service-config.json` | Exists + valid JSON | Critical |
182
+ | `content-rules.md` | Exists + non-empty | Critical |
183
+ | `content-themes.json` | Exists + valid JSON | Warning (created on first ideation run) |
184
+ | `.env` | Exists + has at least one API key | Warning |
185
+
186
+ #### 3. Environment Dependencies
187
+
188
+ | Dependency | How to check | Required by |
189
+ |------------|-------------|-------------|
190
+ | `GOOGLE_API_KEY` | Grep `.env` | myai-visual-generator (Gemini, Imagen, Veo) |
191
+ | `OPENAI_API_KEY` | Grep `.env` | myai-visual-generator (DALL-E, GPT Image) |
192
+ | `FAL_KEY` | Grep `.env` | myai-visual-generator (FLUX) |
193
+ | `WORDPRESS_URL` | Grep `.env` | wordpress-publisher |
194
+ | `WORDPRESS_USERNAME` | Grep `.env` | wordpress-publisher |
195
+ | `WORDPRESS_PASSWORD` | Grep `.env` | wordpress-publisher |
196
+ | `PAYLOADCMS_URL` | Grep `.env` | payloadcms-publisher |
197
+
198
+ #### 4. Directory Structure
199
+
200
+ | Directory | Expected | Check |
201
+ |-----------|----------|-------|
202
+ | `content-output/` | Final articles | Exists |
203
+ | `content-assets/images/` | Generated images | Exists |
204
+ | `content-assets/videos/` | Generated videos | Exists |
205
+ | `content-queue/` | Content stubs | Exists |
206
+ | `.content-session/` | Ephemeral | Should NOT persist between runs |
207
+
208
+ #### 5. Pipeline Connectivity
209
+
210
+ Verify that skills reference each other correctly:
211
+
212
+ | Source Skill | Should reference | Field to check |
213
+ |-------------|-----------------|----------------|
214
+ | `content-writer` | `myai-content-ideation` | `Task(myai-content-ideation)` in allowed-tools |
215
+ | `myai-content-enrichment` | `content-writer` | `Task(content-writer)` in allowed-tools |
216
+ | `myai-content-production-coordinator` | All sub-agents | Task references in allowed-tools |
217
+ | `"wordpress-publisher", "astro-publisher", "docusaurus-publisher", "mintlify-publisher", "payloadcms-publisher"` | Publisher agents
218
+
219
+ #### Health Report Format
220
+
221
+ ```
222
+ ╔═══════════════════════════════════════════════════════╗
223
+ ║ CONTENT PIPELINE — HEALTH REPORT ║
224
+ ╠═══════════════════════════════════════════════════════╣
225
+ ║ ║
226
+ ║ CREATION SKILLS 11/11 healthy ║
227
+ ║ MAINTENANCE SKILLS 1/1 healthy ║
228
+ ║ PUBLISHER AGENTS 5/5 healthy ║
229
+ ║ CONFIG FILES 4/5 present ║
230
+ ║ ⬚ content-themes.json (created on first run) ║
231
+ ║ API KEYS 2/3 configured ║
232
+ ║ ⬚ FAL_KEY not set ║
233
+ ║ DIRECTORIES 3/4 present ║
234
+ ║ ⬚ content-queue/ missing ║
235
+ ║ PIPELINE CONNECTIVITY 4/4 valid ║
236
+ ║ STALE SESSION DATA None detected ║
237
+ ║ ║
238
+ ║ Overall: HEALTHY (2 warnings) ║
239
+ ║ ║
240
+ ╚═══════════════════════════════════════════════════════╝
241
+ ```
242
+
243
+ Severity levels: `HEALTHY`, `WARNINGS`, `DEGRADED` (has issues that may cause failures), `BROKEN` (pipeline cannot run).
244
+
245
+ ---
246
+
247
+ ### Configuration Drift Detection (`--drift`)
248
+
249
+ Detect changes made to skill files outside the configurator.
250
+
251
+ #### Process
252
+
253
+ 1. Read `.myai-configurator/content-creation.json` and `.myai-configurator/content-maintenance.json` for the last known state
254
+ 2. For each skill that was previously personalized:
255
+ - Read the current SKILL.md file
256
+ - Compare against the logged configuration values
257
+ - Report any differences
258
+ 3. For skills that were NOT personalized:
259
+ - Compare against the git baseline: `git show HEAD:skills/<path>`
260
+ - Report manual modifications
261
+
262
+ #### Drift Report
263
+
264
+ ```
265
+ Configuration Drift Report
266
+
267
+ content-writer/SKILL.md
268
+ ⚠️ word_count default changed: 2000 → 1800 (manual edit)
269
+ ⚠️ Unknown section added: "## Custom Templates"
270
+
271
+ myai-content-enrichment/SKILL.md
272
+ ✅ No drift detected
273
+
274
+ Actions:
275
+ [1] Accept all drift (update configurator state)
276
+ [2] Revert drifted values to configurator settings
277
+ [3] Review each change individually
278
+ ```
279
+
280
+ Use `AskUserQuestion` to let the user choose how to handle drift.
281
+
282
+ ---
283
+
284
+ ### Deep Validation (`--validate`)
285
+
286
+ Goes beyond the health check to verify semantic correctness.
287
+
288
+ #### Cross-Skill Consistency
289
+
290
+ | Rule | Check |
291
+ |------|-------|
292
+ | Default word_count matches | Writer default == Coordinator default == Ideation stub template |
293
+ | Default tone matches | Writer == Coordinator |
294
+ | Default content_type matches | Writer == Coordinator |
295
+ | Output directory matches | Writer output-dir == Coordinator output-dir |
296
+ | Publisher platform matches | Coordinator default --publish == Publisher detection priority |
297
+ | Visual service matches | myai-visual-generator default == Coordinator visual dispatch |
298
+ | Verifier threshold matches | Verifier --threshold == Coordinator --threshold |
299
+ | Enrichment config files match | Enrichment reads same config files as Coordinator passes |
300
+
301
+ #### Broken References
302
+
303
+ Scan all skill files for references to other skills, files, or directories that don't exist:
304
+
305
+ - `Task(skill-name)` where skill-name has no SKILL.md
306
+ - File paths in instructions that don't exist on disk
307
+
308
+ #### Duplicate Installations
309
+
310
+ Check if any content skills exist in multiple locations:
311
+
312
+ ```
313
+ Duplicate Detection:
314
+ myai-content-ideation found in:
315
+ 1. ./skills/myai-content-ideation/SKILL.md (project)
316
+ 2. ~/.codex/skills/myai-content-ideation/SKILL.md (global)
317
+ ⚠️ Project version will take precedence — global copy may be out of sync
318
+ ```
319
+
320
+ ---
321
+
322
+ ### Sync (`--sync`)
323
+
324
+ Synchronize configuration across duplicate skill installations.
325
+
326
+ 1. Identify all duplicate skills (project vs global)
327
+ 2. For each duplicate, show a diff between the two versions
328
+ 3. Ask the user which version is authoritative
329
+ 4. Copy the authoritative version to the other location
330
+ 5. Log the sync action
331
+
332
+ ---
333
+
334
+ ### Maintenance Schedule (`--schedule`)
335
+
336
+ Help the user set up periodic maintenance reminders.
337
+
338
+ #### Suggested Schedule
339
+
340
+ | Task | Frequency | What it does |
341
+ |------|-----------|-------------|
342
+ | Health check | Weekly | Run `--health` to catch issues early |
343
+ | Drift detection | After major edits | Run `--drift` to reconcile manual changes |
344
+ | Deep validation | Monthly | Run `--validate` for full consistency audit |
345
+ | Sync check | On-demand | Run `--sync` when skills are updated externally |
346
+
347
+ Save schedule preferences to `.myai-configurator/content-maintenance.json`:
348
+
349
+ ```json
350
+ {
351
+ "personalization": {
352
+ "myai-content-enrichment": {
353
+ "configured_at": "2026-02-26T10:30:00Z",
354
+ "methodology_sections_added": [],
355
+ "defaults_changed": []
356
+ }
357
+ },
358
+ "maintenance": {
359
+ "last_health_check": "2026-02-26T10:30:00Z",
360
+ "last_drift_check": "2026-02-24T15:00:00Z",
361
+ "last_validation": "2026-02-20T09:00:00Z",
362
+ "last_sync": null,
363
+ "schedule": {
364
+ "health_check": "weekly",
365
+ "drift_detection": "on-change",
366
+ "deep_validation": "monthly"
367
+ },
368
+ "issues_found": [],
369
+ "drift_accepted": []
370
+ }
371
+ }
372
+ ```
373
+
374
+ ---
375
+
376
+ ### Auto-Fix Capabilities
377
+
378
+ When issues are detected, offer to fix them automatically:
379
+
380
+ | Issue | Auto-Fix |
381
+ |-------|----------|
382
+ | Missing directory | Create it (`mkdir -p`) |
383
+ | Stale `.content-session/` | Delete it |
384
+ | Missing config file | Prompt user to run the appropriate setup skill |
385
+ | Broken frontmatter | Attempt to repair YAML syntax |
386
+ | Inconsistent defaults | Update all skills to match the configurator's saved values |
387
+ | Missing publisher agent | Warn and offer to regenerate from template |
388
+
389
+ Always confirm with the user before applying any fix.
390
+
391
+ ---
392
+
393
+ ## Interaction Style
394
+
395
+ - **Part 1 (Personalization)**: Be conversational. These are deep questions about content lifecycle thinking. Ask one topic, let the user elaborate, probe for detail.
396
+ - **Part 2 (Maintenance)**: Be efficient. Health checks run silently and present a single report. Use ✅ ⚠️ ❌ for quick scanning. Offer actionable next steps for every issue.
397
+ - For validation failures, explain *why* it matters (e.g., "enrichment reads brand-config.json but it's missing — enriched articles won't follow brand guidelines")
@@ -0,0 +1,114 @@
1
+ ---
2
+ name: myai-content-enrichment
3
+ description: Enriches existing articles with real-time data, updated statistics, fresh references, and FAQ sections. For existing content only — not for writing new articles. Use when updating old content, adding citations, refreshing outdated statistics, or enhancing posts with FAQ sections.
4
+ argument-hint: "[file.md] [--add-images] [--update-stats] [--add-references]"
5
+ allowed-tools: [Read, Write, Edit, WebSearch, WebFetch, Task(content-writer), Bash, Glob, Grep]
6
+ ---
7
+
8
+ # Content Enrichment
9
+
10
+ Enhance existing articles with current data, fresh references, updated statistics, and new sections.
11
+
12
+ This skill is for **existing articles only**, not for writing new ones. For new articles, use the `content-writer` skill or the `myai-content-production-coordinator` skill.
13
+
14
+ ## Arguments
15
+
16
+ Parse from: `$ARGUMENTS`
17
+
18
+ - `[file.md]` → Article to enrich (required)
19
+ - `--add-images` → Generate AI visuals for the article
20
+ - `--update-stats` → Find and update statistics/data points
21
+ - `--add-references` → Add authoritative source links
22
+ - `--add-faq` → Generate FAQ section from content
23
+ - `--add-schema` → Add structured data recommendations
24
+ - `--full` → All enrichment types
25
+ - `--dry-run` → Show what would change without modifying
26
+
27
+ ## Configuration Files
28
+
29
+ Read these files from the project root when available:
30
+
31
+ | File | Purpose |
32
+ |------|---------|
33
+ | `content-rules.md` | Brand voice, style guidelines — enrichments must comply |
34
+ | `brand-config.json` | Company identity for brand-aware enrichment |
35
+
36
+ ## Enrichment Types
37
+
38
+ ### 1. Statistics Update (`--update-stats`)
39
+ - Identify data points, percentages, year references in the article
40
+ - Search for current versions of cited statistics
41
+ - Replace outdated figures with current ones
42
+ - Add citation sources
43
+
44
+ ### 2. Reference Addition (`--add-references`)
45
+ - Identify claims without sources
46
+ - Find authoritative references via WebSearch
47
+ - Add inline citations or reference section
48
+ - Verify links are accessible
49
+
50
+ ### 3. Visual Enhancement (`--add-images`)
51
+ - Identify sections that benefit from visuals
52
+ - Generate image descriptions/alt text
53
+ - Create visual-plan.json for the `myai-visual-generator` skill
54
+ - Insert image placeholders in markdown
55
+
56
+ ### 4. FAQ Generation (`--add-faq`)
57
+ - Extract key topics from article
58
+ - Generate 5-8 relevant questions
59
+ - Write concise answers from article content
60
+ - Format as ## FAQ section with schema-ready markup
61
+
62
+ ### 5. Schema Recommendations (`--add-schema`)
63
+ - Analyze content type (article, how-to, FAQ, review)
64
+ - Suggest JSON-LD structured data
65
+ - Generate schema markup snippet
66
+
67
+ ## Rewriting with Content Writer
68
+
69
+ For substantial section rewrites (outdated sections, major content gaps), spawn the content-writer agent:
70
+
71
+ ```
72
+ Task(agent_type: "content-writer", prompt: "
73
+ Rewrite the following section of an existing article.
74
+ Read content rules from: content-rules.md
75
+
76
+ Original section:
77
+ {section content}
78
+
79
+ Rewrite goals:
80
+ {what needs updating and why}
81
+
82
+ Write the rewritten section to .content-session/rewrite-{section-slug}.md
83
+ ")
84
+ ```
85
+
86
+ Use the content-writer agent only for substantial rewrites, not for minor stat updates or reference additions.
87
+
88
+ ## Workflow
89
+
90
+ 1. Read the target article
91
+ 2. Read `content-rules.md` for brand compliance
92
+ 3. Parse frontmatter and content structure
93
+ 4. Identify enrichment opportunities based on flags
94
+ 5. Execute enrichments (web search for data, generate content)
95
+ 6. For substantial rewrites: spawn `content-writer` agent
96
+ 7. Apply changes to the article (preserving structure)
97
+ 8. Update frontmatter with `enriched_at` timestamp
98
+ 9. Report changes made
99
+
100
+ ## Output
101
+
102
+ Modified article in-place with:
103
+ - Updated frontmatter (`enriched_at`, `enrichment_types`)
104
+ - Enhanced content sections
105
+ - New sections added (FAQ, references) at appropriate locations
106
+ - Image placeholders where visuals were planned
107
+
108
+ ## Quality Rules
109
+
110
+ - Never remove existing content unless replacing with updated version
111
+ - Preserve author's voice and style
112
+ - Only add verifiable, current information
113
+ - Mark enriched sections with HTML comments if needed for tracking
114
+ - Respect `content-rules.md` for brand voice compliance