MasteryMade · Distribution PRD
End-to-end content production and distribution. Rubric-scored briefs → content in expert's voice → human review → scheduled publish → performance monitoring → re-ingest → rubric refines → next batch better. Dogfooded on MasteryMade first, then templated for every JV.
Marketing Rubric (PRD 5)
→ Content briefs (what to create, hook, format)
→ Generator (Module 2 voice + Module 4 frameworks)
→ Auto-score (rubric check before human sees it)
→ Review queue (approve / edit / reject)
→ Scheduled publish (autoposter)
→ Performance monitoring
→ Re-ingest metrics (universal ingest)
→ Rubric refinement (loop closes)
{
"brief_id":"UUID", "expert_id":"UUID",
"content_type": "social_post|email|blog|video_script|lead_magnet|ad_copy",
"platform": "instagram|linkedin|x|youtube|email|nowpage",
"topic":"", "hook_pattern":"pain_agitation|curiosity_gap|contrarian|story_open",
"framework_to_use":"Module 4 ref", "target_avatar":"ICP ref from PRD 5",
"format_spec":{ "max_words":200, "include_cta":true, "visual_needed":true },
"rubric_target_score": 7.5, "deadline":"2026-03-28",
"status": "drafted|reviewing|approved|scheduled|published|measured"
}
CREATE TABLE scheduled_posts (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
brief_id UUID, expert_id UUID NOT NULL REFERENCES entities(id),
platform TEXT NOT NULL, content_text TEXT NOT NULL,
media_urls TEXT[], scheduled_for TIMESTAMPTZ NOT NULL,
published_at TIMESTAMPTZ,
status TEXT DEFAULT 'scheduled' CHECK (status IN ('draft','reviewing','approved','scheduled','published','failed')),
platform_post_id TEXT, performance JSONB,
created_at TIMESTAMPTZ DEFAULT now()
);
| Platform | API | Auth | Metrics |
|---|---|---|---|
| API v2 | OAuth 2.0 | Impressions, clicks, reactions, comments, shares | |
| Graph API | Facebook OAuth | Reach, impressions, likes, comments, saves, shares | |
| X | API v2 | OAuth 2.0 | Impressions, likes, retweets, replies, bookmarks |
| YouTube | Data API | OAuth 2.0 | Views, likes, comments, watch time |
Generated → auto-scored → if score ≥ target: move to reviewing → Jason reviews in dashboard or Telegram (approve/edit/reject) → approved → scheduled at optimal posting time → published → metrics collection begins.
Analyze Gate 4 competitor posting cadence + engagement. Cross-reference with expert's audience active times from platform insights. Schedule in optimal windows.
Template per expert: sequence name, trigger, emails with delay, subject template, body template, framework ref, CTA type, viral loop step.
Viral loop rule (standing): Every sequence includes a required engagement step. Email 2-3: "Forward to someone struggling with [pain point]." Workshop: "Teach this framework to a colleague and report." Lead magnet: "This tool works better with a partner — share and compare." Homework = distribution.
Content Brief (video_script)
→ Script Generator (expert voice + framework)
→ HeyGen/Synthesia API: avatar video
→ Auto-captions
→ Thumbnail (Canva MCP or template)
→ YouTube upload
→ Auto-cut clips (60s/30s/15s)
→ IG Reels, TikTok, X, Shorts
Avatar: HeyGen custom or stock + ElevenLabs voice clone from expert recordings. Script from content brief + Module 2 voice. Long-form (5-15min) for YouTube, auto-cut social clips.
{
"content_pillars": [
{ "name":"Core Framework Teaching", "frequency":"2x/week",
"platforms":["linkedin","youtube"], "format":"long_form",
"framework_rotation":["A","B","C"], "briefs_per_month":8 },
{ "name":"Quick Tips / Micro-Content", "frequency":"daily",
"platforms":["instagram","x"], "format":"carousel|short_video",
"source":"extract micro-insights from long-form", "briefs_per_month":20 },
{ "name":"Social Proof / Case Studies", "frequency":"1x/week",
"platforms":["all"], "format":"story|testimonial",
"source":"client results + Module 8", "briefs_per_month":4 },
{ "name":"Lead Magnet Promotion", "frequency":"2x/month",
"platforms":["linkedin","email"], "format":"value_teaser + link",
"source":"NowPage playbooks + tools", "briefs_per_month":2 }
],
"promotion_calendar": { "generated_from":"pillars", "scheduling":"auto", "review":"weekly Sunday" }
}
n8n cron every 6h: for each published post (>24h old) → call platform API → update performance JSONB → create content record in universal ingest (source_type='social', gate=3) with engagement metrics → trigger rubric rescoring if significant data → compare predicted vs actual → adjust weights if bias → increment rubric version.
MASTERYMADE — PRD 8 of 12
Dominia Facta. Build what compounds.