AugmentClaude

Publish Weekly

Send weekly newsletters to Payload CMS as draft articles using API authentication.

Installation

  1. Make sure Claude is on your device and in your terminal.

    Skills load from ~/.claude/skills/ when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then run claude in any terminal to verify.

    One-time setup
    npm i -g @anthropic-ai/claude-code

    Already have it? Skip ahead.

  2. Paste into Claude Code or into your terminal.

    This copies the whole skill folder into ~/.claude/skills/publish-weekly-miantiao-me/ — the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.

    Faster alternative (instruction-only skills)

    Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.

    Quick install (SKILL.md only)
    Sign up to copy
  3. Restart Claude Code.

    Quit and reopen Claude Code (or any other agent that loads from ~/.claude/skills/). New skills are picked up on startup.

  4. Just ask Claude.

    Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.

Prefer to read the source first? Open on GitHub.

When Claude uses it

使用 Payload REST API 将周刊写入 CMS(发布为草稿),通过 users API Key 认证。

What this skill does

Publish Weekly(草稿发布)

此技能用于将本地生成的周刊 Markdown 文件发布到 Payload CMS 的 weekly 集合中,并保持为 草稿status: draft)。

前置条件

  • 环境变量 PAYLOAD_API_KEY:来自 Payload users 集合为某个用户生成的 API Key。
  • 环境变量 PAYLOAD_BASE_URL(推荐):Payload/Next.js 服务的公开地址(例如 http://localhost:3000)。

输入

/weekly 命令的参数块中获取:

  • week_id:如 Y26W12(写入 issueNumber
  • title:写入 title
  • filename:周刊 Markdown 文件名(从工作目录读取该文件内容,写入 content
  • current_date:写入 publishDate(ISO 日期字符串)

可选:

  • summary:周刊描述/摘要(写入 summary)。若未提供则从 content 提炼。
  • tags:标签(字符串数组,例如 ["模型", "工具"])。写入 tags 数组字段。
  • links:链接列表(对象数组,形如 [{ label, url }]),写入 links

发布目标

  • Collection: weekly
  • REST Endpoint:
    • 查询:GET {BASE_URL}/api/weekly?where[issueNumber][equals]={week_id}&limit=1
    • 创建:POST {BASE_URL}/api/weekly
    • 更新:PATCH {BASE_URL}/api/weekly/{id}

认证方式(HTTP Header)

必须使用 Payload 的 API Key 认证头:

Authorization: users API-Key {PAYLOAD_API_KEY}
Content-Type: application/json

字段映射

发布/更新时写入以下字段:

  • title(text, required): {title}
  • summary(textarea, required):
    • 若提供了 {summary}:直接使用
    • 否则:从 content 提炼 1-2 句话(不超过 200 字);如果文章开头已包含“摘要/导语”,优先复用
  • content(textarea, required): 读取 {filename} 的完整 Markdown 内容
  • issueNumber(text, required, unique): {week_id}
  • status(select, required): 固定写入 draft
  • publishDate(date, required): {current_date}(建议 YYYY-MM-DD

可选字段(若无就留空/不传):

  • links(array): {links},元素结构为 { label: string, url: string }
  • tags(array): 将 {tags}(字符串数组)转换为 [{ value: string }]

请求 Body 示例

{
  "title": "Agili 的 AIGC 周刊(Y26W12)",
  "issueNumber": "Y26W12",
  "publishDate": "2026-03-25",
  "status": "draft",
  "summary": "本期聚焦推理模型的工程化落地,以及一批值得试用的生产力工具。",
  "content": "# ...完整 Markdown...",
  "links": [{ "label": "在线阅读", "url": "https://aigc-weekly.agi.li" }],
  "tags": [{ "value": "模型" }, { "value": "工具" }]
}

行为约束

  1. 幂等:优先按 issueNumber == week_id 查询:
    • 若已存在:用 PATCH 更新(覆盖 title/summary/content/publishDate/status/links/tags)。
    • 若不存在:用 POST 创建。
  2. 保持草稿:无论是创建还是更新,都必须写入 status: "draft"
  3. 产物落盘:将创建/更新成功的响应 JSON 保存为 published/{week_id}.json,用于后续恢复与审计。
  4. 失败可诊断:若请求失败,输出:HTTP 状态码、响应 body(若有)、请求的 URL(不要泄露 PAYLOAD_API_KEY)。

Related skills