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.
- package/.claude-plugin/plugin.json +0 -1
- package/.env.example +5 -4
- package/CHANGELOG.md +2 -2
- package/CONTENT_CREATION_GUIDE.md +489 -3211
- package/DEVELOPER_USE_CASES.md +1 -1
- package/MODULAR_INSTALLATION.md +2 -2
- package/README.md +39 -33
- package/TECHNICAL_ARCHITECTURE.md +1 -1
- package/USER_GUIDE.md +242 -190
- package/agents/content-editor-agent.md +90 -0
- package/agents/content-planner-agent.md +97 -0
- package/agents/content-research-agent.md +62 -0
- package/agents/content-seo-agent.md +101 -0
- package/agents/content-writer-agent.md +69 -0
- package/agents/infographic-analyzer-agent.md +63 -0
- package/agents/infographic-designer-agent.md +72 -0
- package/bin/cli.js +777 -535
- package/{content-rules.example.md → content-rules-example.md} +2 -2
- package/dist/mcp/health-check.js +82 -68
- package/dist/mcp/mcp-config.json +8 -0
- package/dist/mcp/openstack-server.js +1746 -1262
- package/dist/server/.tsbuildinfo +1 -1
- package/extension.json +21 -4
- package/package.json +181 -184
- package/skills/company-config/SKILL.md +133 -0
- package/skills/configure/SKILL.md +1 -1
- package/skills/myai-configurator/SKILL.md +77 -0
- package/skills/myai-configurator/content-creation-configurator/SKILL.md +516 -0
- package/skills/myai-configurator/content-maintenance-configurator/SKILL.md +397 -0
- package/skills/myai-content-enrichment/SKILL.md +114 -0
- package/skills/myai-content-ideation/SKILL.md +288 -0
- package/skills/myai-content-ideation/evals/evals.json +182 -0
- package/skills/myai-content-production-coordinator/SKILL.md +946 -0
- package/skills/{content-rules-setup → myai-content-rules-setup}/SKILL.md +1 -1
- package/skills/{content-verifier → myai-content-verifier}/SKILL.md +1 -1
- package/skills/myai-content-writer/SKILL.md +333 -0
- package/skills/myai-content-writer/agents/editor-agent.md +138 -0
- package/skills/myai-content-writer/agents/planner-agent.md +121 -0
- package/skills/myai-content-writer/agents/research-agent.md +83 -0
- package/skills/myai-content-writer/agents/seo-agent.md +139 -0
- package/skills/myai-content-writer/agents/visual-planner-agent.md +110 -0
- package/skills/myai-content-writer/agents/writer-agent.md +85 -0
- package/skills/{infographic → myai-infographic}/SKILL.md +1 -1
- package/skills/myai-proprietary-content-verifier/SKILL.md +175 -0
- package/skills/myai-proprietary-content-verifier/evals/evals.json +36 -0
- package/skills/myai-skill-builder/SKILL.md +699 -0
- package/skills/myai-skill-builder/agents/analyzer-agent.md +137 -0
- package/skills/myai-skill-builder/agents/comparator-agent.md +77 -0
- package/skills/myai-skill-builder/agents/grader-agent.md +103 -0
- package/skills/myai-skill-builder/assets/eval_review.html +131 -0
- package/skills/myai-skill-builder/references/schemas.md +211 -0
- package/skills/myai-skill-builder/scripts/aggregate_benchmark.py +190 -0
- package/skills/myai-skill-builder/scripts/generate_review.py +381 -0
- package/skills/myai-skill-builder/scripts/package_skill.py +91 -0
- package/skills/myai-skill-builder/scripts/run_eval.py +105 -0
- package/skills/myai-skill-builder/scripts/run_loop.py +211 -0
- package/skills/myai-skill-builder/scripts/utils.py +123 -0
- package/skills/myai-visual-generator/SKILL.md +125 -0
- package/skills/myai-visual-generator/evals/evals.json +155 -0
- package/skills/myai-visual-generator/references/infographic-pipeline.md +73 -0
- package/skills/myai-visual-generator/references/research-visuals.md +57 -0
- package/skills/myai-visual-generator/references/services.md +89 -0
- package/skills/myai-visual-generator/scripts/visual-generation-utils.js +1272 -0
- package/skills/myaidev-analyze/agents/dependency-mapper-agent.md +236 -0
- package/skills/myaidev-analyze/agents/pattern-detector-agent.md +240 -0
- package/skills/myaidev-analyze/agents/structure-scanner-agent.md +171 -0
- package/skills/myaidev-analyze/agents/tech-profiler-agent.md +291 -0
- package/skills/myaidev-architect/agents/compliance-checker-agent.md +287 -0
- package/skills/myaidev-architect/agents/requirements-analyst-agent.md +194 -0
- package/skills/myaidev-architect/agents/system-designer-agent.md +315 -0
- package/skills/myaidev-coder/agents/implementer-agent.md +185 -0
- package/skills/myaidev-coder/agents/integration-agent.md +168 -0
- package/skills/myaidev-coder/agents/pattern-scanner-agent.md +161 -0
- package/skills/myaidev-coder/agents/self-reviewer-agent.md +168 -0
- package/skills/myaidev-debug/agents/fix-agent-debug.md +317 -0
- package/skills/myaidev-debug/agents/hypothesis-agent.md +226 -0
- package/skills/myaidev-debug/agents/investigator-agent.md +250 -0
- package/skills/myaidev-debug/agents/symptom-collector-agent.md +231 -0
- package/skills/myaidev-documenter/agents/code-reader-agent.md +172 -0
- package/skills/myaidev-documenter/agents/doc-validator-agent.md +174 -0
- package/skills/myaidev-documenter/agents/doc-writer-agent.md +379 -0
- package/skills/myaidev-figma/SKILL.md +212 -0
- package/skills/myaidev-figma/capture.js +133 -0
- package/skills/myaidev-figma/crawl.js +130 -0
- package/skills/myaidev-figma-configure/SKILL.md +130 -0
- package/skills/myaidev-migrate/agents/migration-planner-agent.md +237 -0
- package/skills/myaidev-migrate/agents/migration-writer-agent.md +248 -0
- package/skills/myaidev-migrate/agents/schema-analyzer-agent.md +190 -0
- package/skills/myaidev-performance/agents/benchmark-agent.md +281 -0
- package/skills/myaidev-performance/agents/optimizer-agent.md +277 -0
- package/skills/myaidev-performance/agents/profiler-agent.md +252 -0
- package/skills/myaidev-refactor/agents/refactor-executor-agent.md +221 -0
- package/skills/myaidev-refactor/agents/refactor-planner-agent.md +213 -0
- package/skills/myaidev-refactor/agents/regression-guard-agent.md +242 -0
- package/skills/myaidev-refactor/agents/smell-detector-agent.md +233 -0
- package/skills/myaidev-reviewer/agents/auto-fixer-agent.md +238 -0
- package/skills/myaidev-reviewer/agents/code-analyst-agent.md +220 -0
- package/skills/myaidev-reviewer/agents/security-scanner-agent.md +262 -0
- package/skills/myaidev-tester/agents/coverage-analyst-agent.md +163 -0
- package/skills/myaidev-tester/agents/tdd-driver-agent.md +242 -0
- package/skills/myaidev-tester/agents/test-runner-agent.md +176 -0
- package/skills/myaidev-tester/agents/test-strategist-agent.md +154 -0
- package/skills/myaidev-tester/agents/test-writer-agent.md +242 -0
- package/skills/myaidev-workflow/agents/analyzer-agent.md +317 -0
- package/skills/myaidev-workflow/agents/coordinator-agent.md +253 -0
- package/skills/openstack-manager/SKILL.md +1 -1
- package/skills/payloadcms-publisher/SKILL.md +141 -77
- package/skills/payloadcms-publisher/references/field-mapping.md +142 -0
- package/skills/payloadcms-publisher/references/lexical-format.md +97 -0
- package/skills/security-auditor/SKILL.md +1 -1
- package/src/cli/commands/addon.js +184 -123
- package/src/config/workflows.js +172 -228
- package/src/lib/ascii-banner.js +197 -182
- package/src/lib/{content-coordinator.js → content-production-coordinator.js} +649 -459
- package/src/lib/installation-detector.js +93 -59
- package/src/lib/payloadcms-utils.js +285 -510
- package/src/lib/update-manager.js +120 -61
- package/src/lib/workflow-installer.js +55 -0
- package/src/mcp/health-check.js +82 -68
- package/src/mcp/openstack-server.js +1746 -1262
- package/src/scripts/configure-visual-apis.js +224 -173
- package/src/scripts/configure-wordpress-mcp.js +96 -66
- package/src/scripts/init/install.js +109 -85
- package/src/scripts/init-project.js +138 -67
- package/src/scripts/utils/write-content.js +67 -52
- package/src/scripts/wordpress/publish-to-wordpress.js +128 -128
- package/src/templates/claude/CLAUDE.md +131 -0
- package/hooks/hooks.json +0 -26
- package/skills/content-coordinator/SKILL.md +0 -130
- package/skills/content-enrichment/SKILL.md +0 -80
- package/skills/content-writer/SKILL.md +0 -285
- 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
|