| name | content-management |
| description | CMO-style autonomous content agent. Observes user's work activity (sessions, git, kanban), curates narrative-worthy material, produces multi-format drafts (blog + X thread), maintains narrative arc continuity, and generates visual assets (SVG cover, Mermaid, Excalidraw PNG). session: "2026-06-14 content-manager-cmo-agent" decision: "Agent profile + cron trigger + narrative_arc.md tracking file (not a multi-stage pipeline). SVG over paid image API (user: '๋น์ฉ ๋ฐ์์์ํค๊ณ ์ถ์ด'). ExcalidrawโPNG via Puppeteer for architecture diagrams."
|
| category | autonomous-ai-agents |
| tags | ["agent","content","cmo","publishing","narrative","svg","excalidraw","mermaid"] |
| created | "2026-06-14T00:00:00.000Z" |
| updated | "2026-06-14T00:00:00.000Z" |
| links | ["[[agent-profiles]]","[[skills/content-pipeline]]","[[@memory/content/narrative_arc.md]]"] |
Content Management โ CMO Agent
Autonomous content manager that observes what the user builds and turns it into publishable content with rich visuals. Uses a single agent profile + cron trigger, NOT a multi-stage pipeline.
Architecture
Agent profile: content-manager (deepseek-v4-pro)
Cron: daily at 12:00 KST
Knowledge base: brand-guide + glossary + narrative_arc + content-inventory
All files under: P4-cortex/content/
Per-run output:
memories/insights/
โโโ YYYY-MM-DD-slug.md โ Blog post (with Mermaid diagrams inline)
โโโ YYYY-MM-DD-slug-cover.svg โ SVG cover illustration (1200x630, dark theme)
โโโ YYYY-MM-DD-slug.excalidraw.json โ Excalidraw architecture diagram
โโโ YYYY-MM-DD-slug.png โ Excalidraw exported to PNG
โโโ YYYY-MM-DD-slug-thread.txt โ X thread (10-15 tweets)
โโโ YYYY-MM-DD-slug.excalidraw โ Excalidraw binary (from CLI)
P4-cortex/content/
โโโ narrative_arc.md โ Updated with new episode
โโโ content-inventory.md โ Updated with new entry
Data Sources
In addition to direct work activity, content-manager monitors two automated collection pipelines:
1. Trend Harvester
- Location:
@memory/growth/trend-harvester/{collected,applied,evaluated}/
- Content: GitHub trending repos scored via 5-axis philosophy filter (6h cycle)
- Use: Pick applied/evaluated items with high scores โ write "AI Tool of the Week" posts or deep-dives into tools that got integrated into {{AGENT_NAME}}
2. SEO Article Harvester
- Location:
P2-hippocampus/knowledge/seo-articles/YYYY/
- Content: 1,642+ SEO/marketing articles from 28 RSS feeds (6h cycle)
- Use: Surface notable Google updates, agentic web trends, or shifts in AI/discovery landscape โ write analysis/opinion posts linking to YOUR_DOMAIN's own ARD integration
Agent Profile
Defined at ~/.{{AGENT_NAME_LOWER}}/agents/content-manager.md. Full instructions include:
- Load Knowledge Base โ Read brand-guide, glossary, content-inventory, narrative_arc
- Gather Context โ session_search, git log, kanban completions, harvester outputs
- Mine for Stories โ Score 1-10 (reader value, drew-angle, narrative fit). โฅ7 proceed
- Draft Content โ Blog post with embedded SVG cover + Mermaid + Excalidraw PNG
- Publish Draft โ
create_post via WordPress MCP (status=draft)
- Update Tracking Files โ narrative_arc.md + content-inventory.md
Web Research
Content-manager has web toolset enabled. Before drafting, optionally search for:
- Related projects or approaches (what others are doing)
- Technical background to strengthen the narrative
- Memes or cultural references that fit the story
- Related blog posts / discussions
Search results strengthen the draft's credibility and relevance.
Visual Asset Pipeline
Three types of images produced per post, all $0 cost, plus optional meme SVGs:
1. Cover Image (CF Workers AI, $0, 1024ร512)
AI-generated conceptual illustration via FLUX on Cloudflare Workers AI. Four scene templates:
- garden โ ํ์ ์ ์ (Creative)
- city โ ๋ฉ๊ตด ๋์ (Build Log)
- shepherd โ ์ฌ๋ง์ ์์น๊ธฐ (AI & Tools)
- connector โ ์ฐ๊ฒฐ์ (Systems)
All feature: anthropomorphic blue sheep, lion silhouette, geometric sun, cracked earth.
See scripts/cover_gen.py for prompts. Featured image via MCP create_post(featured_image=...).
Fallback: SVG templates at references/svg-templates/.
1b. Meme SVG (optional โ cultural reference)
If the story has a natural meme angle, create a companion SVG. Recognizable meme formats:
| Template | Use Case |
|---|
| Drake Reject/Approve | Before/after comparison, old vs new |
| "This is fine" (burning) | Recognizable pain, debugging stories |
| Galaxy brain | Escalating understanding, growing insight |
| Distracted boyfriend | Three-way comparison, options trade-off |
See references/svg-meme-templates.md for SVG code templates.
2. Mermaid Diagrams
Inline ````mermaid` code blocks. Quartz renders natively as SVG.
Types: graph TD/LR, sequenceDiagram, flowchart
3. Excalidraw โ PNG
For complex architecture/flow diagrams. Two-step process:
- Create
.excalidraw.json file with elements array (rectangles, text, arrows, etc.)
- Convert to PNG via headless Chrome:
scripts/excalidraw-to-png.js
NODE_PATH=~/.{{AGENT_NAME_LOWER}}/scripts/node_modules \
node ~/.{{AGENT_NAME_LOWER}}/scripts/excalidraw-to-png.js \
input.excalidraw.json \
output.png
Knowledge Base Files
| File | Path | Purpose |
|---|
| brand-guide | P4-cortex/content/brand-guide.md | Voice, audience, platform strategy |
| glossary | P4-cortex/content/glossary.md | Project terms ({{AGENT_NAME}}, M-LOG, etc.) |
| narrative_arc | P4-cortex/content/narrative_arc.md | Published content continuity tracking |
| content-inventory | P4-cortex/content/content-inventory.md | All drafts/published with dedup topics |
| writing-style-guide | P1-limbic/persona/writing-style-guide.md | Tone, forbidden expressions, Korean voice |
| form-template | https://dev.to/siiddhantt/building-reefwatch-a-coral-powered-production-triage-agent-23hf | Canonical blog post ๊ตฌ์กฐ โ ๋ฐ๋์ ์ด ํํ๋ฅผ ๋ฐ๋ผ๋ผ |
Post-Publish Enrichment โ Links & References
After drafting, enrich the post with links before saving as draft:
- ๋ด๋ถ ๋งํฌ: Scan
narrative_arc.md and content-inventory.md for existing posts on related topics. Add internal links where natural (e.g., "v0.8 simplification post ([link])์์ ๋ค๋ค๋ฏ์ด...")
- ์ธ๋ถ ์ฐธ์กฐ: Check SEO harvester articles for relevant sources (e.g., Google announcements, agentic web trends). Link to original sources where cited.
- ์ํธ ์ฐธ์กฐ ํด๋ฌ์คํฐ: Posts on the same pillar (BUILD LOG, AI & TOOLS, SYSTEMS, CREATIVE) should interlink. Episode 1โ2โ3 of a season should form a chain.
- ์ฉ์ด ๋งํฌ: First mention of {{AGENT_NAME}}/M-LOG/ARD ๋ฑ should link to the glossary or relevant explanation if it's the first post in a series.
Format example:
<p><strong>๋์ด๋ด๋ ์์
</strong>์ <a href="/?p=XX">v0.8 architecture compression ํฌ์คํธ</a>์์ ์์ธํ ๋ค๋ค๋ค. ์ด๋ฒ ๊ธ์ ๊ทธ ์ฐ์ฅ์ ์ ์๋ <strong>์ฐ๊ฒฐํ๊ธฐ</strong>์ ๋ํ ์ด์ผ๊ธฐ๋ค.</p>
Voice & Form (Critical โ Read Before Drafting)
Form Template (ReefWatch)
์ด ๊ตฌ์กฐ๋ฅผ ๋ฐ๋์ ๋ฐ๋ผ๋ผ. ๋ชจ๋ ํฌ์คํธ๋ ์ด ํ
ํ๋ฆฟ์ ํ๋ ์์ผ๋ก ์ฌ์ฉํ๋ค.
1. Hook-first opening โ ์งง๊ณ ๊ฐํ ๋ฌธ์ฅ. ๋ฌธ์ ๋ฅผ ์ง์ ๋์ง๋ค.
"Production incidents almost never break in one place."
"A normal chatbot... But that is not triage. That is a polished to-do list."
2. Problem โ Decision โ Build Path
"I wanted something more useful: an agent that could..."
"The design constraint from the start: no evidence, no answer."
3. "What This Guide Builds" โ bullet list of deliverables
4. Why <technology> section โ "Why [X] belongs at the center" โ ๊ฒฐ์ ์ด์
5. Build path (slices) โ numbered slices showing progressive build:
"Slice 1: Prove [X] Can Be The Data Plane"
"Slice 2: Keep [X] Warm"
Structure: What I Built โ Why It Mattered
6. Architecture diagrams (Mermaid ๋๋ SVG)
7. Key design decisions with failure modes table
8. Personal closing ("Thanks for reading...")
Voice Rules
- ๋ฐ๋ง + 1์ธ์นญ ("์ ", "๋"). ๋
์์๊ฒ "๋น์ "์ผ๋ก ์ง์ ๋งํ๋ค.
- ๊ธ์ง: "์ด ๊ธ์", ์ถ์ ์ฃผ์ด, ์กด๋๋ง, AIํฌ ์นดํผ ("~์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค")
- Bold ๋ก ํต์ฌ ๋ฌธ์ฅ ๊ฐ์กฐ
- ์งง์ ๋ฌธ์ฅ. ๋ฌธ์ โ ๋ฐ๋ก ํด๊ฒฐ.
- ๊ฐ์ธ์ ์ธ ๊นจ๋ฌ์์ ์ค์ฌ์ผ๋ก: "That was useful because it proved..."
- ๊ฑฐ๋ํ ์์คํ
ํ๋กฌํํธ๋ฅผ ๊ฑฐ๋ถํ๋ค: "I stopped trying to make one heroic system prompt do everything"
- ์ซ์๋ฅผ ์จ๋ผ: "14โ6 agents", "43โ25 scripts"
- ๋ฑ ํ๋์ ์ฃผ์ฅ๋ง: ํฌ์คํธ ํ๋์ ํ๋์ ํ
์
Before drafting, study https://YOUR_DOMAIN/ `s published posts (ID 12, 13) to absorb Drew's actual voice.
Content Pillars (Editorial Judgment)
- BUILD LOG โ {{AGENT_NAME}} infra, architecture, troubleshooting
- AI & TOOLS โ Agent systems, tool reviews, pattern discovery
- SYSTEMS โ Design philosophy, decision frameworks, taste
- CREATIVE โ M-LOG, side projects, experiments
Pitfalls
- Draft must feel like Drew wrote it, not an AI: If the draft sounds like generic LLM content, rewrite it. If you can't match the voice, produce nothing.
- SILENT is correct: If nothing worth publishing, produce nothing. Don't force output.
- Quality over quantity: One great post per run beats five mediocre ones. The cron runs daily, backlog clears over time.
- Never ask Drew what to write: The CMO decides. Present the draft.
- CF Workers AI FLUX for covers: Free tier, $0.
cover_gen.py generates 1024ร512 PNG via 4 scene templates. SVG templates as fallback only.
- Excalidraw PNG for architecture: Complex diagrams via headless Chrome export.
- Try first, retreat when proven: User explicitly corrected: "๋ณํ๋ฅผ ๋๋ ค์ ํ์ง๋ง. ์์๋ง์ผ๋ก ๊ฒฐ์ ํ์ง๋ง. ์์ ํ ๋ฐฉํฅ์ ํ์ฌ ํ๊ฒฝ์ ์ต๋ํ ์ ์ฉํด๋ณด๊ณ , ๊ทธ๋๋ ๋นํจ์จ์ด๋ฉด ๊ทธ๋ ๋ฌผ๋ฌ์." Apply the best approach to the current environment first; only retreat when the data says it's inefficient โ not from imagined objections.
WordPress Publishing Pipeline
Content-manager publishes to YOUR_DOMAIN (WordPress + GeneratePress) via the WordPress MCP server.
MCP server: Registered in ~/.config/opencode/opencode.jsonc as mcp.wordpress.
Script: ~/scripts/wordpress-mcp-server.js โ wraps wp-cli via docker exec.
Tools: create_post, upload_media, list_posts, get_post, create_category, set_site_option, set_theme_mod.
Content Format (Critical)
WordPress uses the Gutenberg block editor. Post content MUST be Gutenberg-compatible HTML, NOT raw Markdown.
Good:
<p><strong>ํต์ฌ ๋ฌธ์ฅ์ Bold๋ก.</strong> ์ด๋ ๊ฒ ์จ์ผ ์ ๋๋ก ๋ ๋๋ง๋๋ค.</p>
<h2>์ฌ๋ผ์ด์ค ์ ๋ชฉ</h2>
<pre class="wp-block-code"><code>code block here</code></pre>
Bad (will show raw text):
## Markdown ์ ๋ชฉ
**๋ณผ๋** _์ดํค๋ฆญ_
Rules:
- NO YAML frontmatter โ WordPress stores metadata separately
- NO raw Markdown (
#, ##, **, *, - ) โ use HTML tags
- ALL content must be wrapped in Gutenberg comment blocks (
<!-- wp:paragraph -->...<!-- /wp:paragraph -->)
- Use
<!-- wp:list --> for lists, <!-- wp:code --> for code blocks, <!-- wp:heading {"level":2} --> for headings
- Use
<!-- wp:html -->...<!-- /wp:html --> for custom HTML sections (cards, hero, etc.)
Pipeline (2026-07-01 redesign)
content-curator (script, 08:00/15:00, $0)
โ reads: trend keep, SEO articles, git, kanban, narrative arc, backlog
โ heuristic dedup + scoring
โ kanban INSERT (content-write / trend-review / creative-write)
โ office-autopilot (5m) picks up โ orchestrator โ content-manager agent
โ writes post (Gutenberg HTML, SVG cover)
โ calls create_post(status="publish") (creative-write๋ง draft)
โ content-editor (agent, 12:00/20:00) โ ์ฌํ QA
โ updates narrative_arc + content-inventory
๊ท์น:
- No CLI approval needed. Pipeline is fully autonomous.
create_post ํธ์ถ ์ ๋ฐ๋์ slug, author, category ์ ๋ฌ. tags๋ ์ ๋ ์ ๋ฌ ๊ธ์ง.
slug: ์์ด kebab-case (์: model-routing-architecture). ์ ๋ ํ๊ธ/๋น ๊ฐ ๊ธ์ง.
author: 1 (YOUR_USERNAME) โ ์ ์นดํ
๊ณ ๋ฆฌ ๊ณตํต
category: ์นดํ
๊ณ ๋ฆฌ ์ด๋ฆ(ID ์๋): "Build Log", "AI & Tools", "Systems", "Creative"
- Creative pillar๋ explicit-only. ์๋ ๊ฐ์ง ๊ธ์ง. kanban task / ์ฌ์ฉ์ ์์ฒญ /
creative-backlog.md ์ฐธ์กฐ ์์๋ง ์์ฑ.
- SVG cover๋ฅผ ์์ฑํ๋ค๋ฉด
featured_image์ ์ ๋ ๊ฒฝ๋ก ์ ๋ฌ
- Draft ์์ฑ ํ editor agent๊ฐ ์๋ QA โ ์์ โ publish
- ์ฌ์ฉ์๊ฐ ๋ง์์ ์ ๋ค๋ฉด wp-admin์์ unpublish โ ๋ค์ run ๋ ๋ฐ์
- "์ด๊ฑด publishํ์ง ๋ง" ๊ฐ์ ํผ๋๋ฐฑ์ memory์ ์ ์ฅ๋์ด ๋ค์ draft์ ๋ฐ์๋จ
Site Config
| Property | Value |
|---|
| URL | https://YOUR_DOMAIN |
| Admin | https://YOUR_DOMAIN/wp-admin |
| Theme | GeneratePress 3.6.1 |
| Fonts | Noto Sans KR (body), Noto Serif KR (headings), JetBrains Mono (code) |
| Colors | #fafaf8 bg, #8b7355 accent, #1c1c1a text |
| Layout | no-sidebar, separate-containers |
| Tunnel | Cloudflare Tunnel (launchd: ai.{{AGENT_NAME_LOWER}}.cloudflared-wp) |
Relationship to content-pipeline Skill
This skill supersedes the older content-pipeline skill which was based on trend-harvester/SEO sources with a 3-hour cycle. The new approach:
- Source: User's own work (sessions, git, kanban) vs external trends/SEO
- Cycle: Daily, material-driven vs fixed 3-hour
- Agent: Single autonomous profile vs multi-stage kanban pipeline
- Images: SVG + Excalidraw PNG + Mermaid vs text-only drafts
The two overlap. Consolidation deferred to background curator.