executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
zhiliGEO写直隶按察使公众号 GEO 垂直系列文章。当用户说「写一篇 GEO 文章」「帮我写 GEO""「GEO 系列」「GEO 选题」「GEO 文章」「写个 GEO 稿」或类似需求时触发。为直隶按察使公众号撰写 GEO 垂直类文章——对比 SEO 与 GEO、分析 GEO 案例、解读 AI 搜索趋势、讲解品牌在 AI 时代的信息基础设施。故事驱动 + 数据锚点 + 结尾洞察,格式为微信草稿箱 HTML。
Independent GitHub snapshot · Automated classification · Original documentation governs
⚠️ 硬性前置要求:每次写作前必须先
skill_view(name='human-writing')加载写作体系,用它的框架指导写作,而不是凭感觉下笔后依赖 renwei 查漏。 renwei 是中文关的自动化检查器,不是写作工具。
为「直隶按察使」公众号写 GEO(Generative Engine Optimization,生成式引擎优化)垂直系列文章。
不是 SEO 教程,不是行业报告,是品牌在 AI 搜索时代如何被准确理解的实战故事。
必读:references/geo-article-sample.md — GEO 系列第一篇原文,含全文骨架、每个模块的实际写法要点、金句位置、数据密度参考。写新 GEO 文章前通读一遍。
| 参数 | 值 |
|---|---|
| 公众号名 | 直隶按察使 |
| 作者 | 刘生 |
| 样式 | Georgia, Noto Serif SC / #f5f4ed 背景 / 强调色 #c9553d |
| 分隔符 | · · ·(三颗居中墨点) |
| 发布 | 微信草稿箱 JSON 编码:json.dumps(payload, ensure_ascii=False).encode("utf-8"),Content-Type: application/json |
每篇文章必须包含以下六个模块,顺序固定:
⚠️ 章节标题必须用
##开头(如## 一、信源路径),禁止写纯中文数字一、开头。因为render_zhili_article.py只识别##格式作为 H2,不识别一、。违反则 H2 数量为 0,样式A的#00d4aa左边框全部丢失。
开头有五种形态,每次写新文章前先决定用哪一种,不要每次都选同一种:
写法要求:
禁忌:
引入一个具体的研究数据。必须是可溯源的数字,不是模糊的"很多"。
来源优先顺序:
格式:数字 + 来源 + 一句话解读。不要堆数字,每个数据只服务一个观点。
用对比推进思考。推荐结构:
每次切换对比,在 · · · 分隔符后另起一段。
禁忌:
给出具体可操作的东西。结构选择:
用真实商业事件收尾。优先选:
这节证明 GEO 不是概念,是正在发生的事情。
最后一段回扣开头故事,给出一个认知升级。
格式:
这大概就是 GEO 的本质。不是 ____,不是 ____,是 ____。 (一句金句收尾,不加 CTA)
· 开头或 - 开头的列表)· · ·(每篇文章用 2–3 个最佳)| 位置 | 规则 |
|---|---|
| 标题 | 16–24 字,含 GEO 或 AI 搜索相关词 |
| 副标题 | 可选,补充角度或悬念 |
| 标题风格 | 悬念感 > 概括感("用户不搜了,AI 替你选了" > "GEO 与 SEO 的区别") |
| 文件 | 用途 |
|---|---|
references/geo-article-sample.md | GEO 系列第一篇原文,含全文骨架、写法要点、金句位置 |
references/style-guide.md | 六模块结构与开头钩子规范 |
references/geo-knowledge.md | GEO 核心概念(信源路径 / 算法权重 / AIBE / Prompt Map 等) |
references/renderer-pitfalls.md | render_zhili_article.py 已知限制(H2 格式/图片接口/超时处理) |
⚠️ 不要手写 HTML。所有 HTML 必须通过
render_zhili_article.py脚本生成,以确保样式A标准一致。
样式A CSS(不可修改):
| 元素 | 样式 |
|---|---|
| 正文背景 | #f5f4ed |
| 正文字体 | Georgia, 'Times New Roman', serif |
| H2 标题 | border-left: 4px solid #00d4aa + #1B365D 色 + 左边框是标志性特征 |
| 强调色 | #c9553d |
| 段落行高 | line-height: 1.85 |
| 段落字重 | 16px |
| 分隔符 | · · ·(居中墨点,color: #c9553d) |
渲染脚本用法:
# 1. 渲染 HTML(自动应用样式A)
python3 scripts/render_zhili_article.py --title "文章标题" draft.md output.html
# 2. 验证 HTML(4 重验证)
python3 scripts/validate_zhili_article.py output.html --title "文章标题"
# 3. 生成封面
python3 scripts/cover_pil.py draft.md cover.png
# 4. 推送草稿
python3 scripts/push.py --html output.html --cover cover.png
推送后自检清单:
border-left: 4px solid #00d4aa 左边框: 全为 0(中文冒号是验证器红线)—— 全为 0⚠️
render_zhili_article.py需要 两个位置参数(输入路径 输出路径),不是管道单参数。push.py用--html/--coverflag 传参。
标准步骤:
python3 scripts/render_zhili_article.py --title "文章标题" draft.md output.html
python3 scripts/validate_zhili_article.py output.html --title "文章标题"
python3 scripts/cover_pil.py draft.md cover.png
python3 scripts/push.py --html output.html --cover cover.png
封面图 media_id 类型决定草稿是否成功创建:
| 接口 | type 参数 | 返回字段 | 能否用于 draft/add |
|---|---|---|---|
media/upload | thumb | thumb_media_id | ❌ 导致 40007 invalid media_id |
material/add_material | image | media_id | ✅ 可用于 thumb_media_id 字段 |
推送草稿的标准步骤:
material/add_material?access_token=...&type=image 上传封面图 → 获得 media_idmedia/uploadimg 上传正文配图 → 获得 CDN URL(http://mmbiz.qpic.cn/...)img srcdraft/add 的 thumb_media_id 填第 1 步获得的 media_id,不是 thumb_media_id错误原因:微信内部 thumb_media_id 字段只认 material/add_material 的返回值,不认 media/upload 的 thumb_media_id。两者格式完全不同。
以上 API 细节由 push.py 内部处理,外部只需按标准步骤执行即可。