publish-weekly
Publishes Markdown-based weekly reports as drafts to a Payload CMS collection.
Install
mkdir -p .claude/skills/publish-weekly && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/4988" && unzip -o skill.zip -d .claude/skills/publish-weekly && rm skill.zipInstalls to .claude/skills/publish-weekly
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
使用 Payload REST API 将周刊写入 CMS(发布为草稿),通过 users API Key 认证。Key capabilities
- →Upload weekly newsletter content to Payload CMS
- →Map local Markdown files to CMS fields
- →Authenticate via users API Key
- →Perform idempotent updates using issue numbers
How it works
It uses the Payload REST API to create or update entries in the weekly collection, ensuring all content is saved as a draft.
Inputs & outputs
When to use publish-weekly
- →Upload weekly newsletter draft
- →Update existing weekly issue content
- →Sync local report metadata to CMS
About this skill
Publish Weekly(草稿发布)
此技能用于将本地生成的周刊 Markdown 文件发布到 Payload CMS 的 weekly 集合中,并保持为 草稿(status: draft)。
前置条件
- 环境变量
PAYLOAD_API_KEY:来自 Payloadusers集合为某个用户生成的 API Key。 - 环境变量
PAYLOAD_BASE_URL(推荐):Payload/Next.js 服务的公开地址(例如http://localhost:3000)。
输入
从 /weekly 命令的参数块中获取:
week_id:如Y26W12(写入issueNumber)title:写入titlefilename:周刊 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): 固定写入draftpublishDate(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": "工具" }]
}
行为约束
- 幂等:优先按
issueNumber == week_id查询:- 若已存在:用
PATCH更新(覆盖title/summary/content/publishDate/status/links/tags)。 - 若不存在:用
POST创建。
- 若已存在:用
- 保持草稿:无论是创建还是更新,都必须写入
status: "draft"。 - 产物落盘:将创建/更新成功的响应 JSON 保存为
published/{week_id}.json,用于后续恢复与审计。 - 失败可诊断:若请求失败,输出:HTTP 状态码、响应 body(若有)、请求的 URL(不要泄露
PAYLOAD_API_KEY)。
When not to use it
- →Publishing content directly to production status
Prerequisites
Limitations
- →Always forces status to draft
- →Requires specific environment variables for authentication
How it compares
It automates the synchronization of local Markdown content to a CMS, replacing manual data entry and API requests.
Compared to similar skills
publish-weekly side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| publish-weekly (this skill) | 1 | 6mo | No flags | Intermediate |
| canny | 0 | — | Review | Intermediate |
| fumadocs-mdx-structure | 2 | 6mo | No flags | Beginner |
| update-release-notes | 1 | 28d | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by miantiao-me
View all by miantiao-me →You might also like
canny
eliferjunior
>-
fumadocs-mdx-structure
TheOrcDev
Create MDX documentation files with proper frontmatter, imports, and component integration. Apply when creating or updating Fumadocs documentation pages in content/docs/.
update-release-notes
tldraw
Update the release notes file at `apps/docs/content/releases/next.mdx` based on PRs merged to main since the previous release, or archive `next.mdx` to a versioned file when a new version is published.
docs
matteocervelli
Build and publish project documentation — Starlight (Astro) for apps, markdown for libraries/services, with IT+EN i18n and VPS deploy. Use when writing user guides, scaffolding a docs site, or publishing docs. Trigger on "write docs", "documentation site", "user guide", "publish docs".
site-contentlayer-authoring
josenaldo
Authoring and maintenance workflow for this repo's Contentlayer content (content/*). Use when adding/editing blog posts or chapters; when frontmatter is missing/broken; or when Contentlayer build fails.
gpt-home-seo
curtiv3
SEO optimization specifically for GPT Home (gpthome.space) — an autonomous AI homepage / living AI experiment project. Use this skill whenever Kevin asks about GPT Home SEO, discoverability, traffic, meta tags, schema, content strategy, or how to make gpthome.space rank better. Also trigger for ques