用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/RonShih/social-media-bot --skill weekly-plan-research命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Generate caption + hashtags + media plan + product_id for one schedule slot. Subagent-friendly: orchestrator spawns one per slot in parallel.
Convert plan.json into plan.xlsx via scripts/plan-export.mjs (exceljs).
Compute per-platform posting frequency and best-time slots for the week. Outputs a schedule grid the draft step fills in.
基于 SOC 职业分类
正在显示 SKILL.md
| name | weekly-plan-research |
| description | Per-platform top-post analysis of competitor products via fetch-reference (public). |
Common rules:
docs/OPERATING_RULES.md. Two execution modes — orchestrator picks per platform:
- Public-page platforms (FB, X, YT) → subagent + WebSearch / fetch-reference; parallel across platforms.
- Login-walled platforms (IG, TikTok, Threads) → main session + Playwright MCP, read-only; sequential. Same input / output contract for both modes. See
## Strategybelow.
platform: one of facebook|instagram|x|threads|youtube|tiktok.own_account_url: from socials.<platform>.url in active brand YAML.competitor_products: list of { name, similar_to, socials.<platform> } from competitor_products[] in brand YAML, filtered to entries where socials.<platform> is non-empty. De-duplicated by URL.lookback_days: integer (default 14) — used for own-post analysis filtering only.{
"platform": "instagram",
"researched_at": "<ISO>",
"topic_research_rows": [
{
"competitor_product": "ChargerLAB POWER-Z",
"similar_to": "md-903",
"relevant_to": "md-903",
"post_url": "https://...",
"posted_at": "<ISO>",
"likes": 1234, "comments": 56, "shares": null, "views": null,
"tone": "technical-demo",
"layout": "video + caption",
"hook": "first-line text",
"why_it_resonated": "concise reason",
"takeaway_for_us": "one-sentence insight applicable to our SKU"
}
]
}
Pick mode by platform.
Subagent execution. WebSearch / fetch-reference path.
competitor_products[].socials[<platform>] URLs (multiple entries may share the same handle).fetch-reference subagent — orchestrator handles the spawning. This skill receives back summary / key_points / images per page.competitor_product to the rival entry name (or join names with " / " if multiple entries share the URL).similar_to to that entry's brand-level value (or join if multiple).relevant_to from the post content itself: which of our SKUs (md-903 | md-905 | both | neither) does the post topically map to? Use the post's text + media to decide; do not default to similar_to.tone, layout, hook, why_it_resonated, takeaway_for_us.Main-session execution only — subagents cannot reach Playwright MCP. Sequential per URL.
For each unique competitor URL:
mcp__playwright__browser_navigate to the profile URL.mcp__playwright__browser_evaluate to grab the first 3 post / reel anchor hrefs from the grid:
() => [...new Set([...document.querySelectorAll('a[href*="/p/"], a[href*="/reel/"]')]
.map(a => a.href).filter(h => h.includes('/<handle>/')))]
.slice(0, 3)
mcp__playwright__browser_navigatemcp__playwright__browser_evaluate:
() => ({
og: document.querySelector('meta[property="og:description"]')?.content,
time: document.querySelector('time[datetime]')?.getAttribute('datetime')
})
og.content is shaped: "<likes> likes, <comments> comments - <handle> on <date>: \"<caption verbatim>\". ". Parse it.topic_research_rows[] entry per the schema. views and shares are not in og:description → leave null.mcp__playwright__browser_close (releases profile lock per OPERATING_RULES §9).Mode B constraints (enforced):
og:description extract only. NEVER like / comment / share. Do NOT click story rings (story view exposes the brand account to the competitor).Why this works without contamination: og:description is server-rendered for the OG protocol (link-preview crawlers). Login state does not change what og:description returns; it only changes whether the SPA-rendered comment thread / engagement UI loads (which we do not need).
tone: short phrase (e.g. "technical-demo", "high-energy hype", "mock-academic").layout: structure description (e.g. "TFT close-up + 2-line caption + 8 hashtags").hook: first 70 chars of the post that does the work.why_it_resonated: 1 sentence; tie to emotion / utility / timing / format novelty / community-specific reference.takeaway_for_us: 1 sentence applicable to one of our SKUs.reports/plans/<brand>/<iso_week>/research/<platform>.json.og:description extract only. NEVER like / comment / share / follow / open stories.null.