用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/RonShih/social-media-bot --skill publish-threads命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 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-threads |
| description | Publish a Threads post (text, image, or video) via Playwright. Threads identity = Instagram identity. |
Common rules:
docs/OPERATING_RULES.md. Threads-specific quirks only.
caption: post text (≤ 500 chars).hashtags: list of strings (Threads recommends ≤ 1, appended after a space).mode: post (text + optional image) | video.local_image_path / local_video_path: optional / required per mode.{ "post_url": "https://www.threads.net/@<handle>/post/...", "platform": "threads" }
browser_navigate → https://www.threads.net/.{ "error": "login expired, run /first-time-login" }).caption + " " + hashtags.join(" ") into the textarea.browser_file_upload.contenteditable div, not an <input> — typing must go through browser_type with the element ref, not via evaluate('elem.value = ...').extra.reply_control is provided.After publish, navigate to socials.threads.url (e.g. https://www.threads.net/@<handle>). Read the first post in the profile grid:
(handle) => {
const a = document.querySelector(`a[href*="/@${handle}/post/"]`);
return a ? new URL(a.getAttribute('href'), location.origin).href : null;
}
Wait up to 90 seconds for the profile to refresh. Two failures → { "post_url": null, "error": "url_extraction_failed" }.
browser_close.{ "status": "dry_run_ok" } or the failure form.