ai-content-publisher

SKILL.md

AI内容自动发布系统

自动搜索最新AI资讯、智能选题、生成高质量文章并发布到微信公众号草稿箱。内容专注对AI开发者、产品经理、创业者有价值的高质量信息。

架构说明:本系统复用以下 skills:

  • wechat-tech-writer:负责文章内容生成
  • wechat-article-formatter:负责格式化为微信HTML
  • wechat-draft-publisher:负责发布到草稿箱

本系统专注于:热点获取、智能选题、时间策略、发布调度。

⚠️ 硬性要求 - 封面图必须从封面库选择

  • 禁止使用 canvas-design 或任何其他方式生成封面图
  • 必须调用 scripts/select_cover.py 从封面库选择封面
  • 封面库位置:assets/covers/
  • 如果封面选择失败,整个发布流程必须报错退出

核心特性

  • 文章模式:支持标准模式和深度模式
    • 标准模式(默认):2000-3000字科普文章,适合日常发布
    • 深度模式:5000字深度分析,适合专题文章
  • 时间段策略:根据发布时间自动选择内容类型
    • 早8点:新工具/新模型介绍
    • 中午12点:实战教程/技巧
    • 晚上6点:行业动态/深度分析
  • 智能标题生成:吸引人且符合实际,避免标题党
  • 48小时时效性检查:确保内容是最新的
  • 智能过滤:自动排除融资、市值等对开发者无用的信息
  • 每次1篇:专注质量而非数量

目标读者

  • AI开发者:需要了解最新工具、技术、框架
  • AI产品经理:需要关注行业趋势、产品动态
  • AI创业者:需要获取市场洞察、竞争分析
  • AI新手/想入行者:需要实用教程和学习路径

触发条件

当用户说以下类似话术时触发:

  • "帮我生成今天的AI文章"
  • "写今天的公众号内容"
  • "AI内容自动发布"
  • "生成AI开发者文章"
  • "搜索AI动态并发布"

执行流程

步骤1:判断时间段和内容类型

from datetime import datetime
from scripts.title_generator import get_time_slot_type, TIME_SLOT_CONTENT

# 获取当前时间和目标类型
target_type, time_slot = get_time_slot_type()
time_info = TIME_SLOT_CONTENT[time_slot]

print(f"当前时间: {datetime.now().strftime('%H:%M')}")
print(f"时段: {time_slot}")
print(f"内容类型: {time_info['description']}")
print(f"内容重点: {time_info['focus']}")
print(f"目标读者: {time_info['target_audience']}")

时间段映射

  • 6:00-11:00 → morning → 新工具/新模型介绍
  • 11:00-16:00 → afternoon → 实战教程/技巧
  • 16:00-6:00 → evening → 行业动态/深度分析

步骤2:获取当前日期并获取热点

# 确认当前日期
date_str=$(date +"%Y年%m月%d日")
echo "今天是: $date_str"

# 获取热点
cd /home/ubuntu/.claude/skills/ai-content-publisher
python3 scripts/fetch_hotspots.py

热点来源

  • AI公司官方博客(OpenAI、Anthropic、DeepMind、Meta AI、Hugging Face、Mistral)
  • 技术媒体RSS(The Verge AI、VentureBeat AI、TechCrunch AI、MIT Tech Review)
  • GitHub Trending(AI/ML热门项目)

重要:只获取48小时内的热点,确保内容是最新的。

步骤3:智能选题(选择1篇)

python3 scripts/selector.py

选题策略

  1. 根据时间段确定目标类型
  2. 过滤排除:排除融资、市值、人事变动等无用信息
  3. 针对性评分:优先选择匹配目标类型的高分话题
  4. 选择最佳:只选择1个评分最高的选题

选中话题保存到:cache/selected_topic.json

步骤4:生成吸引人的标题

from scripts.title_generator import generate_title

# 读取选中的话题
import json
with open('cache/selected_topic.json', 'r') as f:
    topic = json.load(f)

# 生成标题(会根据内容类型自动选择合适的模板)
generated_title = generate_title(topic, topic['content_type'])

print(f"生成标题: {generated_title}")

标题生成原则

  • ✅ 包含具体数字("3个技巧"、"5步搞定")
  • ✅ 直接利益点("让你效率提升10倍")
  • ✅ 明确具体(不模糊)
  • ✅ 适当长度(避免被截断)
  • ✅ 符合实际(标题与内容匹配)
  • ❌ 避免标题党("震惊!"、"必看!"等)

步骤5:生成文章内容

使用 wechat-tech-writergenerate.py 脚本生成文章:

# 标准模式(默认)
python3 /home/ubuntu/wechat_article_skills/wechat-tech-writer/generate.py \
  --topic "$TOPIC_TITLE" \
  --url "$TOPIC_URL" \
  --type "$CONTENT_TYPE" \
  --output "$OUTPUT_DIR" \
  --mode standard

# 深度模式(5000字专题文章)
python3 /home/ubuntu/wechat_article_skills/wechat-tech-writer/generate.py \
  --topic "$TOPIC_TITLE" \
  --url "$TOPIC_URL" \
  --type "$CONTENT_TYPE" \
  --output "$OUTPUT_DIR" \
  --mode deep

模式说明

  • standard:2000-3000字,标准科普文章(定时任务使用)
  • deep:5000字,深度分析文章(手动触发特殊需求时使用)

将生成的文章保存到:

output/{日期}/article/
├── article.md

步骤5.5:从封面库选择封面图(⚠️ 强制要求)

# 根据内容类型从封面库选择封面
python3 scripts/select_cover.py "$CONTENT_TYPE" "output/{日期}/article/"

封面选择规则

  • new_tooltool_*.png(蓝色AI工具、深色编码、橙色生产力)
  • tutorialtutorial_*.png(绿色学习)
  • industry_newsnews_*.png(蓝色数据、紫色分析)

封面复制为:output/{日期}/article/cover.png

⚠️ 严禁

  • 禁止使用 /canvas-design 生成封面
  • 禁止使用任何AI生成封面
  • 如果 select_cover.py 失败,必须报错退出

步骤6:格式化HTML

使用 wechat-article-formatter 转换:

python3 /home/ubuntu/.claude/skills/wechat-article-formatter/convert.py \
  --input output/{日期}/article/article.md \
  --theme tech \
  --output output/{日期}/article/article_wechat.html

步骤7:发布到草稿箱

使用 wechat-draft-publisher 发布:

python3 /home/ubuntu/.claude/skills/wechat-draft-publisher/publisher.py \
  --title "{文章标题}" \
  --content output/{日期}/article/article_wechat.html \
  --cover output/{日期}/article/cover.png \
  --author "阳桃AI干货"

步骤8:发布到小红书(新增)

使用 xiaohongshu-publisher 发布精简版:

# 1. 复制封面图到Docker挂载目录
cp output/{日期}/article/cover.png /home/ubuntu/xiaohongshu-mcp/docker/images/xhs_cover_{日期}.png

# 2. 通过API发布到小红书
curl -s -X POST http://localhost:18060/api/v1/publish \
  -H "Content-Type: application/json" \
  -d '{
    "title": "{压缩标题(≤20字)}",
    "content": "{精简正文(≤1000字,保留核心要点)}",
    "images": ["/app/images/xhs_cover_{日期}.png"],
    "tags": ["AI", "编程工具"]
  }'

内容精简规则

  • 标题:≤20字(从微信标题提取关键词)
  • 正文:≤1000字(提取3-5个核心要点)
  • 风格:使用emoji、短句、列表格式
  • 互动:结尾添加引导语("欢迎评论点赞收藏")

注意:Docker服务必须运行在 http://localhost:18060

步骤9:完成总结

✅ AI内容生成完成(双平台发布)

生成时间:{当前时间}
内容类型:{类型}

【微信公众号】
标题:{完整标题}
字数:{字数}字
状态:已发布到草稿箱
Media ID:{media_id}

【小红书】
标题:{压缩标题}
字数:{压缩字数}字
状态:已发布
链接:小红书App查看

---
请前往微信公众号后台查看草稿:
https://mp.weixin.qq.com

标题写作参考

好标题的要素

要素 说明 示例
具体数字 "3个技巧"、"5步搞定" "3步用LangChain搭建AI应用"
直接利益 "让...效率提升..." "Claude Code:让开发者效率提升3倍"
明确具体 不模糊,有针对性 "OpenAI o3:AI开发者需要知道的3个变化"
适当长度 避免被截断 微信限制64字节(约20个汉字)
符合实际 标题与内容匹配 不夸大、不模糊

标题模板

工具介绍类

  • {工具名}:让{benefit}的AI助手
  • 发布!{工具名},{core_feature}
  • {tool_name}:{benefit}的完整指南

教程类

  • {action}:用{tool}实现{goal}
  • {number}步教你{action}(附代码)
  • 手把手教你:用{tool}{action}

行业动态类

  • {event}:{impact}需要知道的事
  • {event}发布,{target_audience}如何应对
  • 解读{event}:{core_change}

技巧总结类

  • {number}个{skill}技巧,让{benefit}
  • 提升{skill}的{number}个方法
  • {skill}进阶:{number}个实用技巧

避免标题党

不要用

  • "震惊!"、"必看!"、"惊呆了!"
  • "你绝对想不到..."
  • 过度承诺
  • 故意模糊

应该用

  • 实事求是
  • 突出价值
  • 明确具体
  • 适度吸引

配置文件

config/sources.yaml

  • RSS源列表
  • GitHub配置
  • 时效性设置(48小时)
  • 每次获取数量限制

输出目录

output/
└── {日期}/
    └── article/
        ├── article.md           # 原始文章
        ├── cover.png            # 封面图(从封面库选择,⚠️ 禁止生成)
        └── article_wechat.html  # 微信HTML格式

cache/ ├── hotspots.json # 原始热点 └── selected_topic.json # 选中的话题(单个)


## 定时任务配置

### Crontab 配置

```bash
# 编辑定时任务
crontab -e

# 添加以下内容(早8点、中午12点、晚上6点)
0 8,12,18 * * * cd /home/ubuntu && claude skill ai-content-publisher >> /var/log/ai-content.log 2>&1

Cron 表达式说明

┌───────────── 分钟 (0-59)
│  ┌────────── 小时 (0-23)
│  │   ┌────── 日期 (1-31)
│  │   │  ┌─── 月份 (1-12)
│  │   │  │ ┌ 星期 (0-7)
│  │   │  │ │
*  *  *  *  *  命令
  • 0 8,12,18 * * * = 每天 8:00、12:00、18:00 执行
  • >> /var/log/ai-content.log = 日志追加到文件
  • 2>&1 = 错误也重定向到日志

质量标准

内容质量要求

  • 原创性:用自己的语言重新组织,不照搬原文
  • 准确性:事实和数据必须可靠
  • 实用性:必须有具体价值,对读者有帮助
  • 可读性:语言自然流畅,适合公众号风格
  • 字数要求:2000-3000字

标题质量要求

  • 长度限制:不超过64字节(约20个汉字)
  • 吸引力:让人想点击,但不夸张
  • 信息量:包含核心信息,让读者知道会学到什么
  • 匹配度:标题与内容完全一致

注意事项

  1. ⚠️ 封面图强制要求

    • 必须从封面库选择(assets/covers/
    • 禁止使用 /canvas-design 生成封面
    • 禁止使用任何AI生成封面
    • 封面选择失败则报错退出,不继续发布
  2. 日期检查:所有搜索操作前必须先确认当前日期

  3. 时效性:只使用48小时内的热点

  4. 时间段策略:根据时间自动选择合适的内容类型

  5. 质量第一:宁可少发,也要保证质量

  6. 标题规范:吸引人但不标题党

  7. 草稿箱发布:先保存到草稿箱,用户可人工审核后正式发布

参考资源

标题写作技巧

Weekly Installs
13
GitHub Stars
27
First Seen
Jan 28, 2026
Installed on
cursor12
opencode11
codex11
gemini-cli11
github-copilot10
kimi-cli10