docs: generalize skill-template references + add TESTING.md

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-10 10:00:44 +08:00
parent f3f59278b4
commit f0032b2201
9 changed files with 368 additions and 122 deletions

View File

@@ -26,7 +26,7 @@
示例:
- 本文档用于明确 `weibo-publisher` 的研发需求,约束该 skill 的功能边界、输入输出和验收标准,作为开发、测试和上线验证的统一依据
- 本文档用于明确 `your-skill-slug`(示例:`disburse-payroll-icbc`的研发范围、交付标准、依赖关系和验收要求
## 2. 业务背景
@@ -40,8 +40,8 @@
示例:
- 当前内容运营团队需要将内容库中的文章批量发布到微博平台,但人工登录后台、复制文章、填写标题和确认发布的流程效率较低,且不便于统一记录发布历史
- 因此需要开发 `weibo-publisher`,用于把内容库文章按规范发布到微博平台,并记录发布结果,支持后续排查与复用
- 当前财务团队需要将工资代发批次与银行接口对账,人工导出表格、核对差异耗时且易错
- 因此需要开发 `disburse-payroll-icbc`,用于自动拉取代发结果、写入任务日志 `task_logs` 并输出对账摘要,支持审计追踪
## 3. 开发目标
@@ -57,10 +57,10 @@
示例:
- 完成 `weibo-publisher` 的标准 skill 结构建设
- 提供 `health``version``publish``logs``log-get` 等命令
- 支持从兄弟技能读取账号与文章,并执行微博发布流程
- 支持记录发布日志,并可在正式环境中安装验证
- 完成 `your-skill-slug` 的标准 skill 结构建设
- 提供 `health``version``run``logs``log-get` 等命令
- 支持对接银行 / 薪酬系统 API示例并记录任务执行结果
- 支持写入任务日志 `task_logs`,并可在正式环境中安装验证
## 4. 功能范围
@@ -82,17 +82,16 @@
- 支持 `python scripts/main.py health`
- 支持 `python scripts/main.py version`
- 支持 `python scripts/main.py publish`
- 支持从 `account-manager` 获取可用账号
- 支持`content-manager` 获取待发布文章
- 支持执行微博后台发布流程
- 支持写入发布日志
- 支持 `python scripts/main.py run`
- 支持从 `some-sibling-skill` 读取批次元数据(如需要)
- 支持执行核心业务编排HTTP / 批处理 / 可选 RPA
- 支持写入任务日志(`task_logs`
### 可后续扩展
- 支持定时发布
- 支持定时批跑
- 支持失败自动重试
- 支持多账号轮询发布
- 支持多目标轮询
## 5. 非功能要求
@@ -112,7 +111,7 @@
- 项目结构必须对齐 `skill-template`
- CLI 入口统一使用 `scripts/main.py`
- 关键执行结果应可通过 JSON 或固定文本结构返回
- 发布日志必须可追踪
- 任务日志必须可追踪`task_logs`
- 不允许重新引入旧模板中的 `docs/``optional/``scripts/skill_main.py`
## 6. 输入输出要求
@@ -138,16 +137,15 @@
### 输入
- `account_id`:可选,指定发布账号
- `article_id`:可选,指定发布文章
- `account-manager` 返回的账号信息
- `content-manager` 返回的文章信息
- `target_id`:可选,指定任务目标(账号 / 客户 / 平台)
- `input_id`:可选,指定输入批次或记录
- 兄弟技能返回的结构化数据(如有)
### 输出
- 发布成功时返回成功结果
- 发布失败时返回 `ERROR:` `FAIL:` 前缀的错误信息
- 在本地数据库写入 `publish_logs`
- 成功结果stdout / JSON
- 错误输出(`ERROR:` / `FAIL:`
- 在本地数据库写入 `task_logs`
- 在日志目录中写入执行日志
## 7. 依赖的兄弟技能或外部系统
@@ -170,13 +168,12 @@
### 兄弟技能依赖
- `account-manager`:提供账号信息
- `content-manager`:提供文章数据
- `some-sibling-skill`:提供主数据或凭证索引(按业务填写)
### 外部系统依赖
- 微博后台:目标发布平台
- Chromium / Chrome / Edge用于浏览器自动化
- 银行 / 政务 HTTP API示例核心外部接口
- Chromium / Chrome / Edge(可选):用于浏览器自动化
- Gitea用于代码托管和发布工作流
- 匠厂客户端:用于正式环境安装与验证
@@ -193,8 +190,8 @@
示例:
- 本次不实现多平台统一发布
- 本次不实现定时任务调度
- 本次不实现多租户隔离之外的附加报表
- 本次不实现实时流式处理
- 本次不实现自动重试机制
- 本次不兼容旧模板中的历史目录结构
@@ -214,12 +211,16 @@
示例:
- `health``version` 命令执行正常
- `publish` 主流程可运行
- `run` 主流程可运行
- 发布后 Gitea 工作流成功
- 匠厂技能市场能看到最新版本
- skill 可以正常安装
- 安装后可在“新建任务”中调用
- `python tests/run_tests.py -v` 必跑测试全部通过
- 任务日志task_logs写入和查询符合预期
- 真实联调(如有)已在 tests/integration/ 中验证,且默认套件不包含真实外联
## 10. 开发注意事项
说明研发过程中必须特别注意的事项。
@@ -258,7 +259,7 @@
1. 先写 `references/REQUIREMENTS.md`
2. 再按 `references/DEVELOPMENT.md` 进入开发
3. 开发过程中补充 `CLI.md``SCHEMA.md``RUNTIME.md`
3. 开发过程中补充 `CLI.md``SCHEMA.md``RUNTIME.md``TESTING.md`
4. 发布前回到 `REQUIREMENTS.md` 对照验收标准逐项检查
## 最小模板示例
@@ -270,24 +271,24 @@
## 1. 文档目标
本文档用于明确 `weibo-publisher` 的研发需求、范围和验收标准,作为开发与测试的统一依据。
本文档用于明确 `your-skill-slug` 的研发需求、范围和验收标准,作为开发与测试的统一依据。
## 2. 业务背景
运营团队需要将内容库中的文章发布到微博平台,现有人工操作效率低,且缺少统一的发布记录
采购审计需要将政府采购公告结构化归档;人工复制粘贴效率低,需要可追溯的任务日志
## 3. 开发目标
- 完成 `weibo-publisher` 的标准 skill 结构
- 支持文章发布主流程
- 支持发布日志记录
- 完成 `your-skill-slug` 的标准 skill 结构
- 支持核心业务批处理 / HTTP 对接主流程
- 支持任务日志记录task_logs
## 4. 功能范围
- 支持 `health`
- 支持 `version`
- 支持 `publish`
- 支持查询发布日志
- 支持 `run`
- 支持查询任务日志logs / log-get
## 5. 非功能要求
@@ -299,29 +300,30 @@
### 输入
- `account_id`
- `article_id`
- `target_id`
- `input_id`
### 输出
- 成功结果
- 错误信息
- 发布日志记录
- task_logs 记录
## 7. 依赖的兄弟技能或外部系统
- `account-manager`
- `content-manager`
- 微博后台
- (按需填写兄弟 skill
- 政务公告站点 HTTP API示例
## 8. 不在本次范围内的内容
- 不实现定时发布
- 不实现浏览器可视化回放(如需另行立项)
- 不实现自动重试
## 9. 验收标准
- 命令可运行
- `python tests/run_tests.py -v` 全部通过
- task_logs 写入符合 SCHEMA 约定
- 能完成正式环境安装验证
- 能在新建任务中使用