feature-link-test-writer
API 测试链撰写规范。在编写后端接口测试脚本、生成接口文档时激活,确保测试覆盖完整、文档自动生成。
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
API 测试链撰写规范。在编写后端接口测试脚本、生成接口文档时激活,确保测试覆盖完整、文档自动生成。
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
GitHub Release 发布操作规范。在需要发布版本、上传安装包到 GitHub Release 时激活,确保使用正确的命令和流程。
确认/删除等交互弹框统一使用 showTolyPopPicker 底部弹出样式。在需要弹出确认框、删除确认、操作选择时激活,确保交互风格一致。
后端服务启动与数据库操作规范。在需要启动后端服务、运行 API 测试、执行数据库迁移或遇到连接错误时激活,确保使用正确的命令和流程。
功能归档规范。在归档功能版本、更新功能网、创建存档快照时激活,确保节点编号正确、网络图完整。
使用 tolyui_mediax 实现媒体预览。适用于图片九宫格展示、全屏预览、手势缩放、视频播放、Hero 动画等场景。
Flutter Widget/Page 组件代码评审技能。在需要审查组件代码质量、发现设计问题时激活,确保输出结构化的问题清单和改进建议。
| name | feature-link-test-writer |
| description | API 测试链撰写规范。在编写后端接口测试脚本、生成接口文档时激活,确保测试覆盖完整、文档自动生成。 |
| metadata | {"model":"manual","last_modified":"Tue, 13 May 2026 00:00:00 GMT"} |
你是一名 API 测试链编写者。基于已有的后端接口(design.md 或 routes.rs),为指定功能模块编写测试链 Python 脚本,脚本运行后自动测试所有接口并生成接口文档。
{module}.py)docs/features/{feature}/api/
├── {module}/
│ ├── request/
│ │ └── {module}.py # Python 测试脚本
│ └── doc/
│ ├── 00_link.md # 大纲表格,可跳转到各接口文档
│ ├── 01_{name}.md # 接口文档(自动生成)
│ ├── 02_{name}.md
│ └── ...
├── {module2}/
│ ├── request/
│ │ └── {module2}.py
│ └── doc/
│ └── ...
└── ...
命名规则:
{feature} = 功能域(如 im/group){module} = 具体模块(如 group、conversation){name} = 接口简称(如 create_group、search)01_、02_...00_link.md 固定为大纲doc/ 目录每个脚本包含三部分:
subprocess 调用 curl.exe(Windows 自带,避免 Python requests 依赖)-s 静默模式,-w "\n%{http_code}" 获取状态码{"status": int, "body": str, "data": dict/list, "curl": str}curl 字段是完整可复制的 curl 命令(带真实 token)# ANSI 颜色
CYAN = "\033[36m"
GREEN = "\033[32m"
RED = "\033[31m"
YELLOW = "\033[33m"
RESET = "\033[0m"
def step(n, desc): print(f"{CYAN}========== [{n}] {desc} =========={RESET}") # 不加空行
def fail(msg): print(f"{RED}[FAIL] {msg}{RESET}"); sys.exit(1)
def ok(): print(f"{GREEN}[PASS]{RESET}")
write_doc(...) # 生成单个接口文档 md
write_link() # 生成 00_link.md 大纲
脚本放在 {module}/request/ 下,文档输出到 {module}/doc/:
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
DOCS_DIR = os.path.join(SCRIPT_DIR, "..", "doc")
os.makedirs(DOCS_DIR, exist_ok=True)
step(1, "POST /conversations - create private")
j = json.dumps({"peer_user_id": uid_b})
r = Curl.post(f"{BASE}/conversations", j, token_a)
if r["status"] != 200: fail(f"create failed: {r['status']}")
conv_id = r["data"]["id"]
print(f"conversation_id: {conv_id}")
ok()
write_doc("01_create_private.md", "POST", "/conversations",
"创建私聊会话。", j, r["status"], r["body"], token_a,
params_desc=[
{"name": "peer_user_id", "type": "int", "required": "是", "desc": "对方用户 ID"},
])
每个 NN_{name}.md 包含:
# {METHOD} {path}
{一句话中文描述}
## Parameters
| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| peer_user_id | int | 是 | 对方用户 ID |
```json
{请求体}
{status_code}{实际响应}
{完整可执行的 curl 命令,带真实 token}
{备注}(可选)
关键要求:
- 描述和备注使用中文
- 有请求参数时,先展示参数表格,再展示 JSON 请求体
- curl 必须是完整可执行的,带真实 token
- Response 是实际运行的真实响应
- 错误场景的响应如果为空,写 `(empty body)`
## 00_link.md 格式
```markdown
# {module} - API test link
Base URL: `{base_url}`
| # | Interface | Status | Result | Doc |
|---|-----------|--------|--------|-----|
| 1 | `POST /conversations` | `200` | PASS | [01_create_private.md](01_create_private.md) |
| 2 | ... | ... | ... | ... |
如果模块需要认证,在 pre 步骤中:
现有模板文件:
docs/features/im/friend/api/friend/request/friend.pydocs/features/im/group/api/group/request/group.py编写新模块时,复制模板的 Curl 类和测试框架函数,只需替换测试步骤。
用户触发:/link-test-writer {module_name} {design.md路径或routes.rs路径}
AI 执行:
{module}.py