Community生产力与协作github.com

builtnotboosted/scheduling

安全地将已完成的内容排入社交媒体调度器(或手动发布)。仅支持队列调度,使用明确的时区偏移量,实时去重已调度和已发布帖子,检查媒体就绪状态,正确处理帖子类型(短视频、Reels、轮播、首条评论、手动发布提醒),添加替代文本,并设置链接关卡——将含链接的文案退回重写而非直接删除。所有内容上线前均需确认,并会为每个内容包生成并保留调度清单。与任何调度器兼容;以 Publer 作为工作示例。当用户提出“排期”、“将这些帖子加入队列”、“放入 Publer”、“预订本周内容”、“在周二7点发布”、“移动那个帖子”、“查一下已有排期”或交付已完成的待发布内容包时使用。

scheduling 是什么?

调度技能负责社交媒体发布流程中至关重要的“最后一公里”:将已完成、已审核的帖子准确安排到队列中,确保在正确的时间、正确的账号上以正确的形式精确发布一次。该技能的核心原则是“错过一次可补救,错误或重复则无法挽回”,因此采用保守策略:在不确定时优先暂存并询问。它支持包括短视频(Shorts/Reels)、轮播、首条评论、手动发布提醒在内的多种帖子类型,并内置实时去重机制——同时检查“已调度”和“已发布”状态,避免重复发布。该技能还包含一个链接关卡:不直接移除不被允许的链接,而是将文案退回写作技能进行重写,确保内容完整性。最终,所有调度任务都会生成一个可展示的清单,并在获得明确确认后才执行。支持 Publer 等调度器,若无可用调度器,也可通过浏览器内平台原生的“安排”功能操作,或生成检查清单供用户手动处理。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/builtnotboosted/built-not-boosted-skills/tree/HEAD/plugins/built-not-boosted/skills/scheduling

Installed? Explore more 生产力与协作 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

调度

该技能负责“最后一公里”:将已完成、已审核的帖子排入队列,确保在正确的时间、正确的账号上以正确的形式精确发布一次。它掌握调度的 方法。它不撰写文案(writing 技能负责),不选择图片(image-generation 技能负责),也不读取性能数据(platform-data 技能负责)。它不决定 什么 内容要发布;内容包和人决定内容。

整个技能基于一个核心理念:错过一个帖子明天还能补救,但发布错误或重复的帖子一旦上线就无法撤回。 因此,有疑问时,暂存并询问,而非猜测。

开始之前

  1. 找到营销工作区(默认为 marketing/)。如果没有,用一句话说明,并提供运行 brand-setup 的选项;你仍可以直接询问基本信息(账号、时区、时间点)来安排调度。
  2. 读取 brand/brand-profile.md,特别是 ## Platforms(账号、发布渠道为手动或调度器、允许使用链接吗?)、## Tools(使用哪个调度器)、## Compliance 和 ## CTA & contact。品牌配置文件决定品牌常量和合规措辞;本技能决定方法。
  3. 读取内容包:content/<yyyy-mm-dd>-<slug>/PACKAGE.md 及其中的任何现有 SCHEDULE.md。
  4. 明确时区。使用品牌配置文件中的时区(或用户所在地的时区)。如果无法确定,询问一次;切勿假设为 UTC。
  5. 检查本次会话中实际连接了哪些调度器工具。如果没有,使用浏览器路线(见下文)或移交发布检查清单。

标准(绝不可违反)

  1. 仅限队列。 每篇帖子都以 已调度 状态创建,安排在未来的时间。除非用户明确要求“立即发布”某一个帖子,否则绝不调用“立即发布”路径。原因:立即发布跳过了所有安全网,一旦出错,几秒钟内就会公之于众。
  2. 每次指定时间时都明确带上时区偏移量。 使用带偏移量的 ISO 格式书写时间,例如英国冬季用 2026-11-12T18:00:00+00:00,英国夏季用 +01:00。检查 帖子发布日期 的夏令时,而非今天。原因:裸时间会被解读为 UTC 或服务器所在时区,导致时钟变更时帖子在错误的时间上线。
  3. 每次运行、针对已调度和已发布状态进行实时去重。 在创建任何内容之前,读取目标账号上已有的队列内容 以及 已发布的内容。原因:昨天上线的帖子在“已调度”中不再显示,如果只检查已调度内容,就会认为它不存在而再次发布。
  4. 故障时终止操作。 空、短、错误或明显不完整的读取结果不能证明帖子不存在。缩小范围重新读取(一个账号、一天);如果仍然无法信任,则暂存该帖子并说明情况。
  5. 绝不盲目重试。 如果创建或上传调用超时或挂起,先检查实际落地的内容,再决定是否重试。
  6. 创建后进行验证。 逐个回读已创建的帖子,确认其存在且时间、账号、类型标记和媒体都正确。成功消息不是证据;有些工具会返回成功信息但不存储任何内容。
  7. 任何内容上线前必须确认。 向用户展示计划(清单表格),在创建帖子之前获得明确同意,除非用户已经批准了该具体计划或在品牌配置文件中设置了常驻规则。

方法

  1. 构建清单。 在 content/<yyyy-mm-dd>-<slug>/SCHEDULE.md 中,每个平台上的每篇帖子生成一行,使用 references/schedule-manifest-template.md 模板。每行包含:平台、账号、帖子类型、带偏移量的时间、文案文件、媒体文件、替代文本、首条评论、链接状态、状态。这既是向用户展示的计划,也是所做操作的记录。
  2. 安排时间。 使用内容包或用户给出的时间。如果没有给出,使用品牌配置文件中的发布节奏,然后参考 brand/performance-learnings.md 或调度器提供的最佳时间数据。不同平台不必在同一天发布相同的内容;每个平台可以独立安排其一周的发布计划。灵活的内容应确定性(相同输入、相同位置)地安排,以便重新运行时落在同一位置。
  3. 对每条文案和评论运行链接关卡(见下文)。
  4. 检查媒体就绪情况。 每篇包含媒体的帖子需要确保文件存在、符合平台的格式要求(参见 references/platform-posting-notes.md),并且调度器可以获取。将成功上传至调度器视为真正的就绪测试。如果工具排队导入,则一次上传一个文件,等待每个文件完成。任何帖子在媒体就绪之前绝不发布;改为暂存。
  5. 为每张图片和轮播幻灯片附加替代文本,使用内容包中提供的文本。如果内容包中没有替代文本,写一段简洁的图片内容描述(不要重复文案),并在清单中注明。原因:屏幕阅读器用户是受众的一部分,且某些平台将替代文本用于搜索。
  6. 检查段落间距。 文案段落之间应有真正的空行。某些调度器将文案存储为 HTML 段落,渲染后可能没有间隙,导致原本间距合适的文案变成一整段文字墙。首次使用某个工具时,预览一篇帖子;如果段落合并了,在段落之间插入该工具的分隔符(空段落或空行)。
  7. 去重(标准 3 和 4)。首先检查当前内容包和最近内容包的清单状态(你写的记录比单次实时读取更可靠),然后读取调度器:目标账号的已调度和已发布内容,一天一天地读取。根据平台 + 账号 + 文案开头(+ 针对特定时间帖子的日期)进行匹配。如果清单显示已完成但实时读取找不到,不要重新创建;调查并标记。
  8. 展示计划并获得同意。
  9. 以正确的类型创建每个帖子(见下文),使用逐字复制的文案、媒体、替代文本和首条评论。
  10. 验证每个帖子(标准 6),并将状态和调度器的帖子引用写入清单。
  11. 以简表形式报告:已排队的帖子、被暂存及原因、需要用户手动处理的事项(手动发布、置顶评论)。

帖子类型

  • 短视频(YouTube Shorts、Instagram Reels、TikTok、Facebook Reels):明确标记类型;许多调度器默认将视频标记为普通信息流视频,未标记的 Reel 或 Short 会丢失其传播渠道。YouTube Shorts 需要标题。验证时确认标记已正确保存。
  • 轮播: 按顺序附加幻灯片,每张幻灯片提供替代文本。LinkedIn 轮播通常是一个 PDF 文档帖子。在计划包含视频和图片的混合轮播前,检查工具是否支持。
  • 首条评论: 用于放置链接或话题标签。验证评论是否实际保存;在某些工具和平台上,评论会静默丢失。首条评论通常事后无法编辑,因此创建前要确保正确。
  • 手动发布提醒: 某些账号无法通过任何第三方工具自动发布(常见的如个人 Facebook 个人主页)。如果工具支持,创建一个提醒或通知帖子;否则,在报告的手动发布列表中添加一行,包含可直接粘贴的文案和媒体。
  • 置顶评论及工具不支持的操作(例如 YouTube 置顶评论):在报告中列为手动操作,并附上确切文本。
  • 本地商家列表(例如 Google 商家资料):通常每个帖子一个按钮,指向专用的商家页面链接,绝不使用短链接或链接聚合页面。详情见 references/platform-posting-notes.md。

链接关卡(安全网,非编辑器)

不同平台对链接的处理方式各异且经常变化(参见 references/platform-posting-notes.md)。品牌配置文件 ## Platforms 部分说明了允许使用链接的位置。针对每个帖子:

  1. 扫描文案和评论中任何类似链接的内容:http、www.、.com/、.co.uk/、短链接服务、链接聚合页面。同时扫描要求评论关键词的行为(例如“评论 GUIDE 我就发给你”),大多数平台现在将此视为互动诱导并降低权重。
  2. 允许(平台和帖子目的允许使用链接):按原样调度。
  3. 看起来应该允许但未被标记(例如活动帖子中的预订链接、新文章的链接):暂存并询问。移除链接会使帖子失去意义。
  4. 不允许: 不要移除链接后直接发布。围绕链接撰写的帖子移除链接后读起来支离破碎。将文案退回 writing 技能进行不含链接的重写(指向个人主页、提及文章名称、以真诚的问题结尾),让 review-loop 审核重写内容,将新文案写回到内容包中以保持内容包与已发布帖子一致,然后再调度。
  5. 没有时间在截止时间前重写和审核: 暂存并标记。错过一个时段胜于发布一个不完整的帖子。

如果品牌配置文件设定了链接预算(例如每月 Facebook 链接帖子上限),在报告中计数,并将超预算的帖子视为“不允许”。

编辑和移动帖子

  • 在工具对编辑操作不可靠时(许多工具如此:时间会偏移、媒体会脱落、标记会重置),优先选择删除后重新创建而非原地编辑已调度时间。 先删除,再创建,然后验证。某些平台不允许同一账号在每分钟内发布两篇帖子,因此确保旧帖子已完全删除再创建新帖子。某些工具在删除后的几分钟内会阻止创建相同文案的帖子;仅在故意的重创建时使用工具的“允许重复”选项。
  • 向纯文本已调度帖子添加媒体、更改首条评论或添加列表按钮等操作通常也需要删除后重新创建。
  • 仅移动用户要求移动的内容。未经询问,绝不删除不是你创建的帖子;绝不删除提醒帖子。

无调度器?通过浏览器在平台内发布

如果没有连接调度器但有浏览器工具可用(例如 Chrome 中的 Claude),你可以使用平台自有的编辑器。大多数平台在编辑器内提供原生的“安排”选项(Facebook 和 Instagram 的 Meta Business Suite、LinkedIn 的时钟图标、YouTube Studio、TikTok 的网页上传器)。同样适用本技能的所有规则:选择“安排”而非“立即发布”,检查平台显示的时区,添加替代文本,为清单截取确认截图。如果出现登录、双重验证弹窗或支付界面,停止操作并交由用户处理。如果没有浏览器工具可用,则根据清单生成发布检查清单,以便用户能在几分钟内手动处理。

交付前的检查

在步骤 8(展示计划)之前,将清单提交 review-loop 审核或自行检查:每一行都包含未来带偏移量的时间、正确的账号、帖子类型、媒体存在且可获取、替代文本、链接状态已解决、去重已完成、文案与内容包逐字一致、品牌配置文件中的合规措辞已按要求出现。

适配

  • 你的调度器: 在品牌配置文件 ## Tools 中指定。对于 Publer,阅读 references/publer.md。对于其他工具,首先在一个废弃草稿上了解其特性,并在你的工作区中记录(可创建一个简短的 brand/tools-notes.md 文件)。
  • 你的节奏: 发布日和发布时间记录在品牌配置文件中,platform-data 技能可根据你的实际效果进行优化。
  • 无人值守运行: 如果调度任务在无人监控的情况下按定时器运行,可以在品牌配置文件中批准一个常驻计划来保留确认规则,并更严格地依赖故障时终止操作。某些工具要求通过聊天界面确认删除操作;这是一个好特性,将删除操作保留在有人值守的会话中。

参考资料

  • references/schedule-manifest-template.md:清单格式。在构建或更新 SCHEDULE.md 时打开。
  • references/platform-posting-notes.md:各平台帖子类型、链接行为、媒体格式、已知特性。对时效性敏感;在关键时刻进行实时验证。
  • references/publer.md:使用官方 Publer MCP 和开源 publer-mcp-server 的工作示例。

了解更多:https://builtnotboosted.com/skills/scheduling

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

builtnotboosted/image-generation

Produces finished social images with any image model (Google Gemini image, "Nano Banana", as the worked example) - feed statics, carousel slides, short-form video covers, YouTube and article thumbnails, local listing cards and animated statics. Bakes the headline into the scene instead of pasting text on top, keeps text inside the profile-grid safe zone, locks the likeness of real people to their reference photos, hits exact platform sizes, writes alt text and re-judges every re-roll on the filed file. Use when someone says "make an image for this post", "create a thumbnail", "make a cover from my video", "design a carousel", "animate this static", "the image model won't do 4:5", "my headline is getting cut off in the grid", or when a content pack needs its visuals.

builtnotboosted/review-loop

The quality gate every piece of content passes before it is filed, scheduled or posted. Runs a self-critique, then an independent review by a fresh subagent that sees only the finished work and the criteria (never the builder's reasoning), then fix and re-judge until there is a clean pass. Covers what to do when a piece can't pass unattended (hold, flag, ship the rest). Use when someone says "review this", "check this before it goes out", "QA the pack", "is this ready to post", "get a second pair of eyes on this", "proofread the captions", or when any other Built Not Boosted skill hands work over for checks.

builtnotboosted/video-editing

Edits filmed talking-head footage into release-ready vertical shorts (1080x1920) and 16:9 YouTube long-forms with ffmpeg and Whisper. Keeps exactly one clean read of every script line (no stumbles, restarts or double reads), never leaves a flat single shot (punch-ins, reframes, B-roll, motion graphics), captions from the finished audio, normalises loudness to -14 LUFS, makes a real-frame cover and runs a QA gate that re-transcribes the render and refuses delivery until it passes. Syncs extra cameras by sound and writes YouTube chapters. Use when someone says "edit my video", "cut this clip", "remove my retakes", "edit out the fluffs", "add captions to my video", "make a short from this footage", "sync my two cameras", "make a thumbnail from my video", or hands over raw footage and a script.

builtnotboosted/video-scripting

Writes video scripts that sound like the person who will say them, for shorts (Reels, TikTok, YouTube Shorts) and long-form YouTube. Warm hook rather than a shout, who-am-I and follow early, a retention shape that delays the answer, a soft earned close, length that follows the story, real-problem substance, reactive scripts for news and data releases. Output is teleprompter-ready (think-breaks, shot reminders) with short edit notes for the video-editing skill. Use when someone says "write me a script", "script a reel about", "I need a short on", "plan a YouTube video", "turn this post into a video", "react to today's news on video", "what should I say on camera", or before a filming session.

相关技能