skills/gigglepro-article/SKILL.md
使用用户 API Key 完成文章投稿、文章列表翻页/筛选、文章详情查询、以及投稿统计查询。适用于用户要求投稿或查看自己的文章相关信息的场景。
npx skillsauth add giggle-official/skills gigglepro-articleInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
X-User-Api-Key(对用户统一称为 appKey)。invalid_user_api_key,必须先提示并引导用户配置:
X-User-Api-Key)uak_ + 32 位十六进制字符(正则:^uak_[0-9a-fA-F]{32}$)。article/categories,仅当 code === 0 才允许进入后续业务流程。article_id、分页参数等)。请求:
{
"action": "article/categories"
}
成功响应(示例):
{
"code": 0,
"message": "success",
"data": {
"categories": [
{ "label": "Technology", "value": "technology" },
{ "label": "Business", "value": "business" }
]
}
}
校验与缓存规则:
data.categories[].value 作为投稿分类枚举源。categories 为空数组,禁止进入投稿流程,并提示用户稍后重试。POST https://swwgusxefvtbdwyoppir.supabase.co/functions/v1/open-apiContent-Type: application/json; charset=utf-8X-User-Api-Key: <appKey>x-www-form-urlencodedcode === 0code !== 0code: numbermessage: stringdata: object | nullaction: string,必填title: string,必填,1..50 字符category: string,必填,必须命中 categories[].valuesummary: string,可选,0..200 字符content: string,必填,HTML 原文page: integer,可选,默认 1,最小 1page_size: integer,可选,默认 10,范围 1..50approval_status: string,可选,枚举 pending|approved|rejectedarticle_id: string,必填,不可空归一化规则:
page、page_size 外,文本字段在发起请求前都转换为 string。content 做二次 URL 编码或 HTML 转义。S0 收到用户意图S1 校验 appKey 是否存在且格式合法S2 调用 article/categories 验证 key 并缓存分类S3 意图路由:投稿 / 列表 / 详情 / 统计S4 参数收集与归一化S5 发起业务请求S6 输出结果(成功字段或失败建议)禁止跳步:
S2 通过前,禁止进入 S4 参数收集。invalid_user_api_key 时,必须回退到 S1。若用户意图不清,先确认要执行:
请输入文章标题(最多50字)categories[].value 选择请填写摘要(简短描述文章内容,最多200字)请输入富文本正文(HTML)title 不可空,长度 <= 50category 必须命中分类枚举summary 若提供,长度 <= 200content 不可空,且为 HTML 原文{
"action": "article/submit",
"title": "<title>",
"category": "<category>",
"summary": "<summary>",
"content": "<html_content>"
}
{
"code": 0,
"message": "success",
"data": {
"article": {
"id": "art_123",
"approval_status": "pending",
"created_at": "2026-04-29T09:00:00Z"
}
}
}
article.id、approval_status、created_atpage(可选,整数,默认 1)page_size(可选,整数,默认 10,最大 50)approval_status(可选,pending|approved|rejected)page < 1 或非整数:提示修正并重问;用户未明确修正则回退 1page_size 越界或非整数:提示修正并重问;用户未明确修正则回退 10approval_status 非枚举值:提示可选值并重问;未提供则不传{
"action": "article/list",
"page": 1,
"page_size": 10,
"approval_status": "pending"
}
{
"code": 0,
"message": "success",
"data": {
"page": 1,
"page_size": 10,
"total": 23,
"items": [
{
"id": "art_123",
"title": "Title",
"category": "technology",
"approval_status": "approved",
"points_awarded": 30,
"created_at": "2026-04-28T08:00:00Z"
}
]
}
}
page、page_size、totalid、title、category、approval_status、points_awarded、created_atarticle_id(必填,string,不可空){
"action": "article/detail",
"article_id": "<article_id>"
}
{
"code": 0,
"message": "success",
"data": {
"id": "art_123",
"title": "Title",
"category": "technology",
"summary": "Summary",
"approval_status": "rejected",
"rejection_reason": "reason text",
"points_awarded": 0,
"created_at": "2026-04-28T08:00:00Z",
"updated_at": "2026-04-28T10:00:00Z",
"content": "<p>HTML content</p>"
}
}
id、title、category、summaryapproval_status、rejection_reason、points_awardedcreated_at、updated_at、content{
"action": "article/stats"
}
{
"code": 0,
"message": "success",
"data": {
"total": 23,
"pending": 2,
"approved": 18,
"rejected": 3,
"points_awarded_total": 260
}
}
total、pending、approved、rejected、points_awarded_totalinvalid_user_api_key:
article/categories 验证)invalid_category:
article/categoriesarticle_not_found:
message重试策略(标准化):
invalid_user_api_key:不自动重试业务接口,必须先完成 key 重新验证操作结果:成功关键字段:<按各接口要求输出>操作结果:失败失败原因:<message 或标准错误码解释>下一步建议:<可执行动作>development
Talking-head video from image + driving audio: submit tasks via the wrapped generation API and poll for results; requests go through the Giggle gateway.
development
Discord-specific markdown syntax for formatting message strings. Use when constructing strings that will be sent as Discord messages, including: text formatting (bold, italic, underline, strikethrough, spoilers), headers, subtext, code blocks, block quotes, lists, and masked links.
development
Discord bot development - community management, moderation, notifications, and AI integration
development
Auto-deploy a Discord AI bot connected to OpenClaw Gateway. Handles Node.js bot setup, PM2 process management, and Gateway API integration. Use when the user has completed Discord Bot onboarding and needs the bot deployed and running.