Content Dispatch Hub — One Topic, Every Platform
Distribute your content to multiple platforms from a single topic. Each platform skill independently adapts content for its target audience — developers on Dev.to, newsletter readers on Ghost, and more.
Onboarding
⚠️ MANDATORY: When the user has just installed this skill, run the onboarding flow IMMEDIATELY. Translate to the user's language.
The onboarding flow sets up TWO things in ONE conversation: platform roster (where to publish) and author DNA (how to write). These are NOT separate steps — they happen together during the first dispatch.
Phase 1: Platform roster (30 seconds)
✅ Content Dispatch Hub installed!
Quick setup — which platforms do you use?
- Dev.to 2. Hashnode 3. WordPress 4. Tumblr 5. Ghost
- Beehiiv 7. Kit 8. X/Twitter 9. WeChat (公众号) 10. Qiita
(list numbers, e.g. "1, 5, 8")
After user selects:
- Save to
~/.youmind/dispatch-roster.yaml
→
- For each selected, check skill installed + YouMind connection via
- Report status table (✅ connected / ❌ → setup link)
Phase 2: Author DNA bootstrap (integrated into first dispatch)
Do NOT ask the user to fill a profile form. Instead, bootstrap the author profile from one of two paths:
Path A — User has articles in YouMind KB (preferred):
- Call YouMind search API to fetch the user's recent 10–15 articles
- Analyze across articles: avg paragraph length, code density, language distribution, opening patterns, depth level, typical word count, tone markers
- Propose a profile:
📝 I analyzed your recent articles. Here's what I see:
- Voice: Conversational-technical, first-person practitioner
- Audience: Mid-level developers (you assume REST/Git knowledge)
- Code density: High (avg 4 code blocks per article)
- Depth: Practitioner-level (how-to with real gotchas, not beginner intros)
- Languages: English primary, Chinese secondary
- Signature moves: You always lead with the problem, include a gotchas section, and end with working code
Sound right? I'll use this as your baseline across all platforms. You can adjust anytime.
- User confirms/adjusts → save to
~/.youmind/author-profile.yaml
- Immediately proceed to first dispatch with the profile active
Path B — New user, no articles (cold start):
Embed 3 targeted questions INTO the first dispatch request, not as a separate quiz:
You said: "帮我写一篇关于 AI agents 的文章发到 Dev.to 和 X"
Great! Since this is your first dispatch, 3 quick questions so I write in YOUR voice:
1. 这篇文章的风格?
(a) 代码先行,先看效果再讲原理
(b) 故事驱动,用经历带出技术点
(c) 数据说话,benchmark 和对比为主
(d) 手把手教学,假设读者是入门者
2. 你的读者是谁?
(a) 做产品的开发者
(b) 正在学习的学生/新人
(c) 做技术决策的 TL/架构师
(d) 泛科技读者
3. 你的内容里绝对不要出现什么?
(自由回答 — 例如"不要营销话术"、"不要 AI 味"、"不要太长")
After user answers:
- Map answers to fields
- Save profile
- Immediately continue the dispatch — no second round-trip. The first article is generated WITH the profile already active.
- After publishing, confirm: "Saved as your writing profile. Next time just say '帮我分发', I know your style."
Why this matters
| Approach | First article quality | User friction |
|---|
| ❌ No profiling | Generic, platform-default | Zero (but bad output) |
| ❌ Separate 5-question form | Better, but profile ≠ real usage | High (feels like homework) |
| ✅ Path A: KB bootstrap | Excellent — based on real writing | Near-zero (confirm/adjust) |
| ✅ Path B: 3 inline questions | Good — targeted baseline | Low (embedded in first dispatch) |
Roster + Profile updates after onboarding
"Add Ghost to my platforms" → update
~/.youmind/dispatch-roster.yaml
"Remove X/Twitter" → update roster
"I want to write more beginner content" → update
~/.youmind/author-profile.yaml
"Analyze my recent articles again" → re-run Path A bootstrap
Usage Modes
Mode 1: Single Platform Routing
User specifies one platform → dispatch directly invokes the corresponding platform skill.
"Write about AI agents for Dev.to" → invoke youmind-devto-article
"Write a weekly issue for Beehiiv" → invoke youmind-beehiiv-article
"Write a Tumblr post about indie hacking" → invoke youmind-tumblr-article
"Draft a public creator post for Kit" → invoke youmind-kit-article
"Post a thread about startup culture on X" → invoke youmind-x-article
"发布一篇技术文章到 WordPress" → invoke youmind-wordpress-article
Mode 2: Multi-Platform Dispatch
User specifies multiple platforms → dispatch invokes each platform skill sequentially with the same topic.
"Write about AI agents and publish to Dev.to, Beehiiv, and Kit"
"把这个话题发布到 Dev.to 和 Hashnode"
Mode 3: All-Platform Broadcast
User wants maximum reach → dispatch to all installed platform skills.
"Publish everywhere about the future of AI coding"
"全平台发布:AI 编程的未来"
Platform Skills Are Independent
Each
youmind-{platform}-article
skill is
independently installed, independently published, and fully self-contained. They work without this dispatch hub. Dispatch is an
optional orchestration layer — not a dependency, not a framework that platform skills must fit into.
How dispatch connects to platform skills (when both are installed)
- Discovery, not coupling. Dispatch scans for installed skills at runtime. It optionally reads a small
dispatch-capabilities.yaml
at each skill's root to learn what operations that skill supports (generate, adapt, condense, translate, etc.) and its hard limits. If a platform skill does not ship this file, dispatch falls back to sensible defaults and still invokes it normally.
- Brief is an optional extra, not a requirement. When dispatch invokes a platform skill, it passes a content brief (topic, angle, keywords, optional block). Platform skills that understand these fields use them as richer context; skills that don't simply ignore the extras and work as usual.
- Author profile lives in the user's home directory, not in this skill. Both this hub and platform skills read
~/.youmind/author-profile.yaml
— the canonical shared location defined in . Uninstalling dispatch does not remove the profile; platform skills continue to work standalone with full DNA support.
- Results flow back as a standardized shape (status, URL, , title, conformance_report) so dispatch can aggregate multi-platform runs. Each platform skill publishes this same result shape regardless of whether dispatch is present — it's a clean output API, not a contract with dispatch.
Zero coupling obligations for platform skills
- Platform skills do NOT import from dispatch.
- Platform skills do NOT require dispatch to be installed.
- Platform skills do NOT break if dispatch is uninstalled.
- Platform skills do NOT need to be updated when dispatch changes.
dispatch-capabilities.yaml
is opt-in metadata that lets dispatch route more intelligently. Removing it reverts to defaults; it never breaks the platform skill.
The optional integration protocol is documented at
shared/DISPATCH_CONTRACT.md
(v1.0). Platform skills that want richer dispatch integration may follow it; those that don't, don't.
Platform Registry
| Platform | Skill | Audience | Best For |
|---|
| Dev.to | | Developers, OSS contributors | Technical tutorials, tool reviews, dev experience |
| Hashnode | | Dev bloggers, tech writers | In-depth technical blogs, series, developer stories |
| WordPress | youmind-wordpress-article
| General audiences | Long-form articles, SEO-optimized content |
| Tumblr | | Blog followers, creator audiences | Voice-driven essays, build logs, creator notes |
| Ghost | | Publishers, newsletter writers | Editorial content, premium publications |
| Beehiiv | | Newsletter operators, creator teams | Growth updates, newsletter essays, operator notes |
| Kit | | Creators, audience builders | Broadcasts, creator updates, public newsletter feed posts |
| X/Twitter | | General, viral audiences | Hot takes, threads, breaking news commentary |
| WeChat | | Chinese audiences | Styled long-form articles, official account content |
| Qiita | | Japanese developers | Technical articles, tutorials, knowledge sharing |
Auth: All platforms use YouMind OpenAPI. You need only a
— platform credentials are stored encrypted in
YouMind Connector Settings. No local platform keys.
Note: Each platform skill must be installed separately. Dispatch checks your roster (
) on each run.
Quick Skill Hints
Use these as lightweight routing clues before you open the full platform skill:
- : code-first Markdown posts, TL;DR, practical developer tutorial voice
- : deeper developer-blog storytelling, series-friendly, canonical-aware cross-posting
youmind-wordpress-article
: HTML CMS publishing, taxonomy/excerpt aware, company-blog friendly
- : voice-driven creator posting, one title plus one clean rich-text body
- : editorial publication tone, excerpt/tag aware, newsletter-style HTML
- : newsletter-first writing, subject/preview/web-email surfaces matter
- : creator broadcast format, inbox/feed readability, compact CTA structure
- : concise hooks, thread splitting, sparse hashtags, native social adaptation
- : WeChat-native rich formatting, draft-box publishing, built-in direct-send for ready articles
- : Japanese developer Markdown, environment/setup context, note-box friendly
Dispatch Pipeline
Step 1: Parse Request + Load Roster
- Extract topic/brief from user input
- Load
~/.youmind/dispatch-roster.yaml
for the user's active platform list
- Resolve target platforms:
- User says "帮我分发" / "publish everywhere" → use from roster
- User specifies platforms explicitly → use those (even if not in roster)
- No roster exists → ask user which platforms (triggers onboarding)
- For each target platform: verify skill installed + connection status from roster
- Skip platforms that are not installed or not connected (with clear message + setup link)
Step 2: Load Author Profile + Generate Content Brief
2a — Load author profile (if exists):
Read
~/.youmind/author-profile.yaml
(canonical shared location — see
). This file captures the user's cross-platform writing DNA — voice, audience, content preferences, and per-platform overrides. See
references/author-profile-spec.md
for format. Fallback: if the
path is missing but
skills/youmind-article-dispatch/author-profile.yaml
exists (legacy), offer to migrate.
If no profile exists → skip this step; dispatch works without it (just less personalized). After the first successful dispatch, offer to help the user build one.
2b — Generate content brief (see
references/content-brief-format.md
):
yaml
topic: "The core topic sentence"
angle: "The specific angle or atomic insight"
keywords: ["keyword1", "keyword2", "keyword3"]
language: "en" # or zh, ja, etc.
source_material: [] # from YouMind knowledge mining (if available)
resolved_author: {} # per-platform resolved profile (computed in Step 3)
constraints: {} # any user-specified constraints
YouMind knowledge mining: If the user has a YouMind API key configured in any platform skill's config, run
ONCE and include the results in the brief. This avoids redundant YouMind calls across platform skills.
2c — Resolve author profile per platform:
For EACH target platform, merge the author profile with that platform's DNA using the rules in
references/content-adaptation-matrix.md
. This produces a
resolved per-platform profile — NOT the raw author file. Each platform skill receives only the resolved, relevant fields for its platform. This prevents raw-profile leakage and irrelevant context bleed.
If a depth mismatch is detected (e.g., author targets "expert" but platform audience is "general"), the merge triggers a mandatory outline adaptation step — not just a warning. See matrix Priority 5.
Step 3: Dispatch to Platform Skills
For each target platform, invoke the platform skill with the content brief as context.
Sequential mode (default): Run each platform skill one at a time. The agent reads each skill's SKILL.md and follows its pipeline, passing the content brief as the initial topic/context.
Parallel mode (if subagents available): Spawn one subagent per platform. Each subagent independently runs its platform skill's full pipeline. Use this when the agent platform supports parallel subagents.
MANDATORY: Pass the content brief to each platform skill. When invoking a platform skill, include:
- The topic and angle from the brief
- Any YouMind knowledge context already mined
- The instruction to adapt content for that specific platform's audience
Step 4: Collect Results
Gather results from all platform dispatches:
| Field | Description |
|---|
| platform | Platform name |
| status | / / / |
| url | URL of published content (if available) |
| result_links | Best clickable links for post page / dashboard / stats entry |
| title | Final title used |
| error | Error message (if failed) |
Step 5: Summary Report
Present a summary table to the user:
## Dispatch Results
| Platform | Status | Title | URL |
|----------|--------|-------|-----|
| Dev.to | ✅ Published | "AI Agents: A Practical Guide" | https://dev.to/... |
| Ghost | ✅ Published | "Why AI Agents Matter for..." | https://newsletter.example.com/... |
| X/Twitter | ✅ Thread posted | "🧵 AI Agents are changing..." | https://x.com/... |
After the table, add a compact
section for each platform so the user can click straight into the post page, dashboard, or stats entry point. If a platform has no direct analytics URL, include the best platform entry URL instead.
Resilience Rules
| Rule | Description |
|---|
| Isolate failures | One platform failing MUST NOT stop other platforms. Report partial results. |
| Progress updates | After each platform completes, show a brief status update to the user. |
| Missing skills | If a requested platform skill is not installed, skip it with a clear message. |
| Config missing | If a platform skill's config is not set up, skip it and suggest setup instructions. |
| Fallback to draft | When in doubt, create as draft rather than publishing directly. |
References
| File | Purpose |
|---|
references/platform-registry.md
| Detailed platform capabilities, audience profiles, and constraints |
references/dispatch-protocol.md
| Step-by-step dispatch workflow with examples |
references/content-brief-format.md
| Standardized content brief format specification (v2: includes resolved author profile) |
references/author-profile-spec.md
| Author profile format, cold-start guide, evolution strategy |
references/content-adaptation-matrix.md
| How author DNA × platform DNA merge (priority rules, merge algorithm) |
references/profile-learning.md
| How author DNA accumulates from usage (5 learning sources, diff analysis, cadence) |
| User-home directory convention ( — shared across ALL YouMind skills) |
shared/DISPATCH_CONTRACT.md
| Optional interop protocol between this hub and platform skills (v1.0) |
skills/youmind-{platform}-article/dispatch-capabilities.yaml
| Per-platform capability manifest (dispatch reads dynamically) |
author-profile.example.yaml
| Example author profile — copy to ~/.youmind/author-profile.yaml
and customize |