用途
LinkedIn Post Writer 用于起草一条 LinkedIn 动态帖子。它的核心主张是:多数弱帖在写下第一个字之前就已经注定——作者从一个话题(“写点关于入职的东西”)出发,而不是从素材(一个数字、一个日期、客户说过的一句话)出发,于是草稿只能由泛泛之谈构成,而泛泛之谈听起来都一样。
这个技能把顺序反过来:先盘点作者真正拥有的素材,让素材决定十四种开头模式中哪些可用,用每个都需要事实支撑的节拍搭建正文,并在文本离开编辑器之前运行一道机械检查门。
主要能力
- 角度选择器(angle_picker.py):根据简报中的素材和既定目标,对十四种开头模式进行排序;打印每种模式的开头骨架、正文节拍和结尾;对简报无法支撑的每种模式,给出解锁它所需的问题。
- 发布前检查门(post_gate.py):包含十五项检查——开头契合度与措辞、长度、占位符与标记、段落密度、话题标签、链接、具体性、习惯抽查、结尾句;出现任何阻断项或警告过多时以退出码 1 结束。
- 参考文档:十四种开头模式(各自需要什么、如何构建、原创示例、常见出错方式、四种应避免的开头类型);每种模式的正文节拍、第二行写法、按目标分类的结尾、长度区间、排版,以及一份完整的示例草稿;检查门每项检查的级别与理由、平台机制及其注意事项、工具无法完成的人工检查、阈值调整方法。
- 素材模板:assets/post_brief_template.md 覆盖目标、受众、素材清单、约束和签核;assets/sample_brief.json 是一份虚构 COO 关于取消每周全员大会的已填写简报。
使用方式
快速开始:填写简报,运行选择器,从第一个选项起草,运行检查门。
工作流 1 — 从简报到角度
填写 assets/post_brief_template.md,或把笔记转换成 assets/sample_brief.json 的 JSON 结构。作者没有的素材字段留空。运行选择器,它只对素材支持的模式排序,其余列为锁定并附上解锁问题。阅读警示行:没有证据支撑的反向立场或预测只是观点。把排名前三的选项各用一行呈现给作者,由作者选择。
python3 tools/linkedin/linkedin-post-writer/scripts/angle_picker.py \
--input tools/linkedin/linkedin-post-writer/assets/sample_brief.json --top 3
工作流 2 — 起草帖子
按所选模式在 references/opening-patterns.md 中写开头,只使用作者的素材,要点必须落在第一个子句内。第二行要能在读者只看到第一行时也成立:增加利害,不要复述。按 references/post-structures.md 中该模式的节拍搭建正文,一段一个节拍,每段锚定一个事实,作者没有事实的节拍删掉。包含没成功的那部分——没有代价、例外或未解问题的帖子读起来像广告。按目标收尾:只有从业者才能回答的问题、最后一个事实,或什么都不写,绝不用套话式请求。再从排名第二的模式起草两个备选开头。
python3 tools/linkedin/linkedin-post-writer/scripts/angle_picker.py \
--input tools/linkedin/linkedin-post-writer/assets/sample_brief.json \
--top 5 --format json
工作流 3 — 粘贴前检查草稿
把草稿保存为纯文本,保留它在信息流中的换行。运行检查门:阻断项直接判失败,超过三条警告也判失败。先修阻断项(残留占位符或套话结尾绝不可接受),再按显示顺序处理警告。用 references/pre-publish-gate.md §4 的人工清单核对草稿中每个数字、姓名和引用都出现在简报里——这部分工具做不到。重复运行直到退出码为 0,然后交付文本及其字符数。需要完整风格审计时,把结果交给 linkedin-humanizer。
python3 tools/linkedin/linkedin-post-writer/scripts/post_gate.py \
--input tools/linkedin/linkedin-post-writer/assets/sample_draft.txt
python3 tools/linkedin/linkedin-post-writer/scripts/post_gate.py \
--input tools/linkedin/linkedin-post-writer/assets/sample_draft_revised.txt
第一个示例因两个阻断项和三条警告失败;同一帖子的修订版干净通过。
适用场景
- 有人要一条 LinkedIn 帖子,有话题但没有角度。
- 已有草稿,但开头不奏效。
- 作者有一个好事实(一个结果、一个错误、一句引用),想围绕它构建帖子。
- 代笔人需要一套可重复的方式为多位作者简报、起草和检查帖子。
- 草稿完成,粘贴前需要最后一道机械检查。
- 同一位作者反复产出同一形状的帖子,想要换一种。
决策框架
按素材选模式(模式由作者拥有什么决定,再按目标排序;目标契合度是编辑启发式,不是测量值):
- 一个精确数字 → 收据式开头(利于收藏、潜在兴趣)
- 一个日期加一件出错的事 → 带日期的错误(利于对话)
- 亲历的一个瞬间 → 冷场景(利于对话、转发)
- 放弃的一个信念 → 改变的想法(利于对话)
- 与通行做法相左且有证据 → 反向立场(利于对话、转发)
- 一个之前和一个之后 → 可测量的差距(利于收藏、潜在兴趣)
- 某人的原话 → 借用之句(利于对话)
- 一直坚持的一条规则 → 家规(利于收藏)
- 检查过的事物数量 → 实地计数(利于收藏、转发、潜在兴趣)
- 反复被问到的问题 → 被转述的问题(利于对话)
- 做了具体某事的一个人 → 具名致谢(利于转发)
- 受众误用的一个术语 → 平实定义(利于收藏)
- 带日期的预期 → 带日期的赌注(利于对话、转发)
- 三个或更多真实步骤 → 计数清单(利于收藏)
每份草稿都会遇到的选择:从话题还是从素材开始(推荐素材,没有就先要素材);开头用陈述还是提问(推荐陈述,把真问题放在结尾);关键事实放哪(推荐第一行第一个子句);几个想法(推荐一个);长度(推荐随事实而定,通常 600 到 1,400 字符);是否包含失败(推荐包含,精度与成功部分相同);话题标签(推荐零到三个,放最后一行);正文中的链接(实验性,除非链接就是重点,否则放第一条评论);提及作者产品(推荐一次,在故事走到那里时)。
检查门假定的平台机制
- 帖子字符上限:3,000(写作时有效,请在产品中核实)
- 截断前可见字符:140(写作时的保守移动端估计,桌面端显示更多,可用 --fold-chars 覆盖)
- Markdown 渲染:无(写作时星号和井号会按字面显示)
这些会随时变化,应视为配置而非知识。
反模式
- 先写开头再找帖子来配:作者有一句喜欢的话,再写四段来证明它。应先填简报,选择器会显示这句话背后空无一物。
- 借用格式却没有它需要的素材:可测量的差距需要两个用同一方式测量的数字和一个时间跨度;只有一个数字就是收据式开头,一个都没有则模式锁定。
- 试图一次达成所有目标:每条帖子一个目标,在简报中选定;其余放进下一条帖子的笔记。
- 省略出错的部分:保留一个代价、例外或未解决之处,精度与成功部分相同。
- 用泛泛的请求收尾:“你怎么看?”或“同意吗?”会被检查门直接阻断;改问只有经验才能回答的问题,或以最后一个事实结尾。
- 通过检查门就跳过通读:检查门只管机械层面,无法判断数字是否正确、被引用者是否同意、帖子是否有趣。
范围与限制
范围内:按素材和目标对十四种开头模式排序并打印骨架、节拍与结尾,给出解锁问题;用十五项检查把关草稿;提供每种模式的正文结构、按目标的结尾、长度区间和简报模板。
范围外:完整的机器痕迹审计、表情符号评分和声音指纹(见 linkedin-humanizer);作者没有素材时挖掘素材(见 linkedin-story-interviewer);把已有文章、演讲或推文串变成帖子(见 linkedin-content-repurposer);设计轮播图、图片或视频;发布、排期或抓取——用户自行把帖子粘贴到 LinkedIn。
重要注意事项:检查门不是事实核查器,它能看出数字存在,不能判断数字是否正确。长度区间、折叠位置和话题标签限制是编辑启发式;3,000 字符上限等平台数字为写作时有效,请在产品中核实。通过意味着没有检查被触发,references/pre-publish-gate.md 中的人工检查仍然适用。