Three independently ugly bugs that all fed the same log flood:
* Electron's `WebFrameMain.send` writes every "Render frame was disposed"
to stderr via `console.error`. When the worker fans a second
agent-event past a reloading renderer, we produced thousands of
identical lines and stalled the main loop on stderr I/O. Added a
`mainFrame.detached` guard so the send is short-circuited before
Electron's own catch block fires, and installed a targeted filter in
`suppress-warnings.ts` (now actually imported from the entry point)
so the specific `console.error("Error sending from webFrameMain:"…)`
noise never reaches the terminal. Any other payload still surfaces.
* `dispatchAgentMessage` accepted the human-reader sentinel as a wake
target when an agent replied to `__board__` — `wakeAgentIfPossible`
then called `db.getAgent("__board__")`, threw, and the dispatcher
kept repeating on every send. Strip `HUMAN_SENDER_ID` at
`resolveMessageWakeTargets`, and keep a defense-in-depth guard in the
heartbeat so a stray caller (future automation fan-out) cannot
reintroduce the crash.
* Pi's skills loader rejects any SKILL.md whose frontmatter `name`
diverges from its parent directory. The four bundled `my-writing-style`
copies declared `name: writing-style-skill`, so every install emitted
a warning and dropped the skill. They also lived as orphan gitlinks
(mode 160000 without .gitmodules), and the global `*.md` gitignore
hid every other SKILL.md from version control. Fixed the frontmatter
to match the dir, converted the dangling submodules to plain trees,
and allowlisted `builtin-skills/**/*.md` so a fresh clone carries the
catalogue instead of silently losing it.
2.0 KiB
2.0 KiB
name, description
| name | description |
|---|---|
| wechat-article-writer | 公众号文章自动化写作流程。支持资料搜索、文章撰写、爆款标题生成、排版优化。当用户提到写公众号、微信文章、自媒体写作、爆款文章、内容创作时使用此 skill。 |
公众号文章写作流程
4 步完成高质量公众号文章:搜索资料 → 撰写文章 → 生成标题 → 排版优化
Step 1: 搜索资料
使用 WebSearch 工具搜索主题相关资料:
搜索要求:
1. 并行搜索多个来源(官方文档、X/Twitter、Reddit、技术论坛)
2. 优先获取最新资料(当月/当季)
3. 可启动多个并行 Task 加速搜索
4. 深度总结搜索结果
Step 2: 撰写文章
必须先读取用户的 CLAUDE.md 获取写作风格
撰写要求:
- 5000-10000 字
- 故事化开头,带情感色彩(兴奋/焦虑/好奇)
- 准备 2-3 个备选标题
- 结构:效果展示 → 问题描述 → 步骤教学 → 升华总结
- 遵循 CLAUDE.md 中定义的写作风格和结尾语
Step 3: 生成标题
生成 5 个爆款标题,特点:
- 痛点明确:直击读者痛处("还在手动...")
- 数字吸引:具体数字更有说服力("3分钟"、"5个技巧")
- 结果导向:承诺具体收益("效率暴涨10倍")
- 情绪调动:惊、神技、秘籍等词汇
- 悬念设置:引发好奇心
Step 4: 排版优化
优化建议:
- 段落结构:每段 3-5 行,重要数据单独成段加粗
- 配图位置:标题下方封面图、步骤后效果图、结尾总结图
- 代码块:前后留白,语法高亮
- 金句:单独成段,增强记忆点
示例
用户请求:
帮我写一篇关于 Claude Code 使用技巧的公众号文章
执行流程:
- 搜索 Claude Code 最新功能和使用技巧
- 读取 CLAUDE.md 获取写作风格
- 撰写 1200 字左右的教程文章
- 生成 5 个爆款标题供选择
- 提供排版和配图建议