用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/RonShih/social-media-bot --skill publish-facebook命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Per-platform top-post analysis of competitor products via fetch-reference (public).
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).
基于 SOC 职业分类
正在显示 SKILL.md
| name | publish-facebook |
| description | Publish a Facebook post (image or video / Reel) via Playwright. Reads brand from active YAML. |
Common rules:
docs/OPERATING_RULES.md. This file only documents FB-specific quirks.
caption: post text.hashtags: list of strings, appended after caption with one blank line.mode: post (image) | video (Reel or feed video).local_image_path: absolute path (required for mode: post).local_video_path: absolute path (required for mode: video).{ "post_url": "https://...", "platform": "facebook" }
browser_navigate → socials.facebook.url from active brand YAML.caption + "\n\n" + hashtags.join(" ") into the composer text area.browser_file_upload with the asset.name: '發佈', exact: true (or the exact en label) — partial match risks hitting "Boost post" / "加強推廣貼文" which also contains "發佈".mode: post (image)Step 5 → upload one image. Wait until the image thumbnail appears in the composer.
mode: video (Reel / feed video)Preferred: Meta Business Suite. Read socials.facebook.asset_id, then browser_navigate to:
https://business.facebook.com/latest/posts/published_posts?asset_id=<asset_id>
Find the latest row, open its dropdown menu, read getAttribute('href') from the "View on Facebook" / "在 Facebook 查看貼文" item. Do not click — read the attribute.
Fallback: if asset_id is missing or Business Suite is inaccessible, return to the page profile and browser_snapshot every 10 seconds for up to 90 seconds, looking for a freshly added /reel/<id>/ or /posts/pfbid... link.
If both fail → { "post_url": null, "error": "url_extraction_failed" }. Do not invent a URL.
mode: post: stop after step 6 (preview rendered). Do not click Post.mode: video Reel: drive to Stage C "Reel Settings" and stop before clicking "Publish".browser_close.{ "status": "dry_run_ok" } or { "status": "dry_run_failed", "step_failed": "...", "error": "..." }.