Coding

blog-kimi-test-kit

Try it

博客内容发布工具,管理博客系统全部 REST API(文章/标签/用户/评论/留言/说说/文件上传/健康检查)

What it does

1. 严禁读取 data/、configs/、sessions.db、user_accounts 等 Grape 内部数据。 2. API 返回 403/无权限时:立即停止该操作并回复用户,严禁尝试其他 token 或绕行手段。 3. 所有 curl / API 调用设 30s 超时——超时判定失败,不 hang。 4. 严禁 mock 模式/假数据:所有 API 调用必须真实访问目标系统。 5. 调用目标 API 一律以 为准:严禁根据经验/记忆/猜测自行拼写 API 路径。

The skill document

blog-kimi-test-kit

安全硬约束(必须遵守)

通用约束(所有 skill 必含)

  1. 严禁读取 data/、configs/、sessions.db、user_accounts 等 Grape 内部数据。
  2. API 返回 403/无权限时:立即停止该操作并回复用户,严禁尝试其他 token 或绕行手段。
  3. 所有 curl / API 调用设 30s 超时——超时判定失败,不 hang。
  4. 严禁 mock 模式/假数据:所有 API 调用必须真实访问目标系统。
  5. 调用目标 API 一律以 references/api-reference.md 为准:严禁根据经验/记忆/猜测自行拼写 API 路径。

评论规范

  • 所有 Issue/PR 评论 body 必须以 [blog-kimi-test-kit] 开头
  • 引用用户原文:> {用户评论}\n\n[blog-kimi-test-kit] {回复}

Configuration

目标系统 API 地址必须在使用前确定。所有命令中的 {base_url} 替换为实际地址(格式 http://:)。

{base_url} 解析优先级:

  1. 项目知识 — 检查 .project-info/ 目录下 JSON 配置文件(config.BLOG_KIMI_TEST_KIT_BASE_URL)
  2. 环境变量BLOG_KIMI_TEST_KIT_BASE_URL
  3. 当前上下文 — 用户直接提供或 A2A context 中已包含
  4. 交互输入 — 以上都无时提示用户输入

配置指导

方式一:环境变量(临时,推荐快速测试)

export BLOG_KIMI_TEST_KIT_BASE_URL="{base_url}"

方式二:项目知识 JSON 文件(持久化,推荐生产使用)

在项目根目录下创建 .project-info/ 目录,放入任意名称的 .json 文件:

{
  "config": {
    "BLOG_KIMI_TEST_KIT_BASE_URL": "http://:"
  }
}

key 必须按 BLOG_KIMI_TEST_KIT_ 前缀命名,避免与其他系统凭据冲突。 ⚠️ .project-info/ 含敏感凭据,不提交到 git 仓库(加入 .gitignore)。

场景 / When to Use

  • 用户需要管理博客系统的文章内容(CRUD 操作)
  • 用户需要管理博客标签、用户、评论、留言、说说
  • 用户需要上传/管理文件,查询博客系统健康状态
  • 用户需要批量管理文章(后台管理功能)

Don't use for: 非博客系统的 REST API 操作,或博客系统前端页面访问。

知识 / Knowledge

API Base URL

{base_url}

本系统为公开 API,无认证。API base_url 通过环境变量 BLOG_KIMI_TEST_KIT_BASE_URL 配置。

Endpoints

按资源分组:

Health

MethodPathDescription
GET/health健康检查

Articles

MethodPathParametersBodyDescription
GET/api/articlespage, size, lid, keyword分页查询文章列表
POST/api/articlesArticleCreate发布新文章
GET/api/articles/{article_id}article_id(path)查询文章详情
PUT/api/articles/{article_id}article_id(path)ArticleUpdate更新文章
DELETE/api/articles/{article_id}article_id(path), soft删除文章(支持软删除)
POST/api/articles/{article_id}/restorearticle_id(path)恢复已软删除的文章
GET/api/articles/heat/toplimit获取热门文章排行

Labels(注意:API 路径实际为 /api/lables)

MethodPathBodyDescription
GET/api/lables查询标签列表
POST/api/lablesLableCreate创建新标签

Users

MethodPathBodyDescription
GET/api/users查询用户列表
POST/api/usersUserCreate创建新用户

Comments

MethodPathBodyDescription
POST/api/commentsCommentCreate创建评论
GET/api/comments/{aid}查询文章评论列表
DELETE/api/comments/{comment_id}删除评论

Messages

MethodPathBodyDescription
GET/api/messages查询留言列表
POST/api/messagesMessageCreate创建留言
POST/api/messages/replyMessage2Create回复留言
DELETE/api/messages/{message_id}删除留言

Moods

MethodPathBodyDescription
GET/api/moods查询说说列表
POST/api/moodsMoodCreate创建说说
DELETE/api/moods/{mood_id}删除说说

File Upload

MethodPathBodyDescription
POST/api/uploadmultipart/form-data (file)单文件上传
POST/api/upload/multiplemultipart/form-data (files)批量文件上传
GET/api/uploads/list查询上传文件列表
DELETE/api/uploads/{filename}删除上传文件

Admin

MethodPathBodyDescription
POST/admin/api/delete批量删除文章

认证方式

  • 无认证(公开 API)
  • API 地址:BLOG_KIMI_TEST_KIT_BASE_URL

凭据前缀:由 skill name 推导(blog-kimi-test-kitBLOG_KIMI_TEST_KIT)。

凭据读取优先级(4 级,与 base_url 一致)

  1. 项目知识 — 递归扫描 .project-info/ 下所有 JSON 文件,读取 secrets.BLOG_KIMI_TEST_KIT_* 字段
  2. 环境变量 — 项目知识缺失时扫描 BLOG_KIMI_TEST_KIT_* 开头变量
  3. 当前上下文 — A2A context 已注入的环境变量(已包含在步骤 2)
  4. 交互输入 — 以上都无时提示用户输入

Common Pitfalls

  1. API 不可达。 先检查 base_url 是否正确,curl {base_url}/health 确认可达。
  2. 标签路径拼写。 API 实际路径为 /api/lables(拼写错误),子命令名用正确拼写 list-labels / create-label
  3. 软删除恢复。 --soft true 为软删除,可用 restore-article 恢复;不传 --soft 则物理删除不可恢复。
  4. 文件上传参数。 上传用 --filepath,批量用 --filepaths 接多个路径。
  5. 关联 ID。 创建评论需 --uid + --aid;回复留言需 --uid + --mid

字段说明

字段类型必填默认值说明
titlestring文章标题
contentstring文章/评论/留言/说说内容
uidinteger用户 ID
lidinteger0标签 ID(筛选用)
lnamestring标签名称
unamestring用户名
pageinteger1分页页码
sizeinteger10每页数量(≤100)
keywordstring""关键词搜索
softbooleanfalse是否软删除
limitinteger热门文章返回数量

步骤 / Steps

1. 检查 API 可达性

export BLOG_KIMI_TEST_KIT_BASE_URL="{base_url}"
python3 scripts/blog-kimi-test-kit.py health-check

Expected: {"status":"ok","service":"blog-api","version":"1.0.0"}

2. 查询可用资源

python3 scripts/blog-kimi-test-kit.py list-articles --page 1 --size 10
python3 scripts/blog-kimi-test-kit.py list-labels
python3 scripts/blog-kimi-test-kit.py list-users
python3 scripts/blog-kimi-test-kit.py list-moods
python3 scripts/blog-kimi-test-kit.py list-messages

Expected: 返回各资源的列表数据(JSON 格式)

3. 执行操作

health-check

python3 scripts/blog-kimi-test-kit.py health-check

Expected: {"status":"ok","service":"blog-api","version":"1.0.0"}

list-articles

python3 scripts/blog-kimi-test-kit.py list-articles --page 1 --size 10

Expected: 返回文章列表(分页数据) 参数:--page --size --lid --keyword --format

create-article

python3 scripts/blog-kimi-test-kit.py create-article --title "标题" --content "内容"

Expected: 创建成功,返回文章 ID 的 JSON 参数:--title(必填) --content(必填) --uid --lid --img --heat --format

get-article

python3 scripts/blog-kimi-test-kit.py get-article --article-id 1

Expected: 返回文章详情 JSON

参数说明:

  • --article-id(必填):文章 ID

update-article

python3 scripts/blog-kimi-test-kit.py update-article --article-id 1 --title "新标题" --content "新内容"

Expected: 更新成功,返回更新后的文章 JSON

delete-article

python3 scripts/blog-kimi-test-kit.py delete-article --article-id 1 --soft true

Expected: 删除成功,返回确认信息

restore-article

python3 scripts/blog-kimi-test-kit.py restore-article --article-id 1

Expected: 恢复成功,返回确认信息

top-articles

python3 scripts/blog-kimi-test-kit.py top-articles --limit 5

Expected: 返回热门文章排行列表

list-labels

python3 scripts/blog-kimi-test-kit.py list-labels

Expected: 返回标签列表 JSON

create-label

python3 scripts/blog-kimi-test-kit.py create-label --lname "新标签"

Expected: 创建成功,返回新标签 JSON

list-users

python3 scripts/blog-kimi-test-kit.py list-users

Expected: 返回用户列表 JSON

create-user

python3 scripts/blog-kimi-test-kit.py create-user --uname "用户名"

Expected: 创建成功,返回新用户 JSON

create-comment

python3 scripts/blog-kimi-test-kit.py create-comment --uid 1 --aid 1 --content "评论内容"

Expected: 创建成功,返回新评论 JSON

list-comments

python3 scripts/blog-kimi-test-kit.py list-comments --aid 1

Expected: 返回指定文章的评论列表

delete-comment

python3 scripts/blog-kimi-test-kit.py delete-comment --comment-id 1

Expected: 删除成功

list-messages

python3 scripts/blog-kimi-test-kit.py list-messages

Expected: 返回留言列表

create-message

python3 scripts/blog-kimi-test-kit.py create-message --uid 1 --content "留言内容"

Expected: 创建成功

reply-message

python3 scripts/blog-kimi-test-kit.py reply-message --uid 1 --mid 1 --content "回复内容"

Expected: 回复成功

delete-message

python3 scripts/blog-kimi-test-kit.py delete-message --message-id 1

Expected: 删除成功

list-moods

python3 scripts/blog-kimi-test-kit.py list-moods

Expected: 返回说说列表

create-mood

python3 scripts/blog-kimi-test-kit.py create-mood --content "说说内容"

Expected: 创建成功

delete-mood

python3 scripts/blog-kimi-test-kit.py delete-mood --mood-id 1

Expected: 删除成功

upload-file

python3 scripts/blog-kimi-test-kit.py upload-file --filepath /path/to/file.jpg

Expected: 上传成功,返回文件信息

upload-files

python3 scripts/blog-kimi-test-kit.py upload-files --filepaths /path/a.jpg /path/b.jpg

Expected: 批量上传成功,返回文件信息列表

list-uploads

python3 scripts/blog-kimi-test-kit.py list-uploads

Expected: 返回已上传文件列表

delete-upload

python3 scripts/blog-kimi-test-kit.py delete-upload --filename example.jpg

Expected: 删除成功

admin-delete-articles

python3 scripts/blog-kimi-test-kit.py admin-delete-articles

Expected: 批量删除成功

capability-list

python3 scripts/blog-kimi-test-kit.py capability-list

Expected: 列出所有能力项(28 项)

python3 scripts/blog-kimi-test-kit.py capability-list --format md

Expected: Markdown 表格格式的能力清单

判断标准 / Verification

  • API 可达(health-check 返回 200)
  • 只读操作返回有效数据(非空/字段完整)
  • 脚本 --help 无语法错误
  • 退出码正确(0=成功/2=参数错误/3=缺少配置/4=API失败)
  • capability-list 返回所有 28 项能力
  • create-article + delete-article 写入和清理功能正常

输出规范 / Output Format

脚本输出

  • 默认输出:JSON
  • 可选输出:Markdown 表格(--format md
  • 使用示例:cd skills/blog-kimi-test-kit/ && python3 scripts/blog-kimi-test-kit.py list-articles --page 1 --size 10

Issue 评论格式

执行完操作后,Issue 评论 body 格式:

[blog-kimi-test-kit] ✅ {操作名称}完成

## 操作结果

| 操作 | 状态 | 资源 ID | 详情 |
|------|------|---------|------|
| {操作名} | ✅ 成功 / 🔴 失败 | {id} | {简要说明} |

**API 地址**:{base_url}
**执行时间**:{UTC ISO}

失败时:

[blog-kimi-test-kit] 🔴 {操作名称}失败

## 错误分析

- **操作**:{操作名}
- **错误**:{API 返回的错误信息}
- **HTTP 状态码**:{code}
- **原因**:{分析原因}

### 修复建议
{修复步骤}

参考文档 / References

  • API 端点文档
  • 测试用例

分析结论示例

成功时:

分析结论:
- 场景:{API 操作}
- Skill:blog-kimi-test-kit v0.1.0
- 操作:{subcommand} {params}
- 结果:✅ 成功({API 返回的关键数据摘要})
- 必须执行:Issue 评论汇总结果 → 任务结束

失败时:

分析结论:
- 场景:{API 操作}
- Skill:blog-kimi-test-kit v0.1.0
- 操作:{subcommand} {params}
- 结果:🔴 失败({错误原因})
- 必须执行:Issue 评论报告错误 → 任务结束

任务结束

完成所有业务动作后,在最终答复末尾输出以下 JSON 块并结束任务:

{
  "actions": ["{具体执行的操作,如 list-articles: 返回 N 篇文章}"],
  "conclusion": "{处理结论}",
  "artifacts": ["{产生的产物}"],
  "next_step": "{下一步建议}",
  "issue_summary": "{Issue 最新聚合结论,紧凑文本,用 | 分隔}"
}

Related skills

Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.

by nssa.io1.0k installs47 stars

Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.

by Iván854 installs69 stars

Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.

by fly0pants4.3k installs296 stars

Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.

by johnpatternai21 installs8 stars

Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.

by Iván555 installs18 stars

More from yangaiwu

Browse all skills

管理 Blog System API v1.0.0 的文章/标签/用户/评论/留言/说说/文件上传/健康检查。 无认证公开 API,27 个子命令(26 API + 1 capability-list),输出 JSON 与 Markdown 表格。 纯 CLI 管理 skill,不含 Grape Agent 加载集成与自动回复 Issue 能力。

by yangaiwu1 installs

Manage Blog System API v1.0.0 via 27 CLI subcommands covering articles, tags, users, comments, messages, moods, uploads, and health checks.

by yangaiwu

查询华为云 CES(云监控服务)监控指标列表与指标数据。支持指标列表查询(ListMetrics) 按命名空间/指标名/维度/排序过滤,以及指标数据查询(ShowMetricData)按时间范围、 聚合粒度、聚合方式获取监控数据点。只读操作,JSON 输出全部字段,AK/SK 环境变量认证。

by yangaiwu1 installs

查询华为云 CCI(Cloud Container Instances,云容器实例)实例详情的只读 Skill。 通过 KooCLI(hcloud)执行 CCI 只读查询命令,覆盖命名空间列表、Pod 列表与详情、 Deployment/StatefulSet/Service/Network 等资源的只读查询场景。 适用于日常巡检、故障排查、资源管理。仅 List/Read 只读操作,不涉及 Create/Delete/Update。

by yangaiwu1 installs

管理 Blog System (FastAPI) 全部 32 个 API 端点:文章/标签/用户/评论/留言/说说/ 文件上传/健康检查/博客页面/后台管理。无认证公开 API,支持 CLI 子命令调用。

by yangaiwu

博客内容发布 Skill,基于 FastAPI 博客系统 OpenAPI 文档自动生成。 覆盖文章/标签/用户/评论/留言/说说/文件上传/健康检查全部 API。

by yangaiwu