Files
skill-template/references/REQUIREMENTS.md
chendelian ba3d86553f
All checks were successful
技能自动化发布 / release (push) Successful in 25s
docs: add requirements template
2026-04-13 14:48:28 +08:00

339 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 技能需求文档模板
这份文档用于给技术人员、产品人员和实施人员统一描述某个 skill 的研发需求。
建议原则:
- 一个 skill 对应一份主需求文档
- 需求先写清楚,再进入开发
- 文档描述“要做什么”和“做到什么程度”,不要在这里堆实现细节
- 实现方式、代码结构、发布流程,分别放到 `DEVELOPMENT.md``CLI.md``SCHEMA.md``RUNTIME.md`
如果你是从 `skill-template` 复制新技能,请复制本文件后,把下面所有占位内容替换成你的真实项目内容。
---
# REQUIREMENTS
## 1. 文档目标
说明这份需求文档的作用,以及它解决什么问题。
模板写法:
- 本文档用于明确 `【技能名称】` 的研发范围、交付标准、依赖关系和验收要求。
- 技术人员应以本文件作为开发范围依据,以避免实现偏差、范围蔓延或理解不一致。
示例:
- 本文档用于明确 `weibo-publisher` 的研发需求,约束该 skill 的功能边界、输入输出和验收标准,作为开发、测试和上线验证的统一依据。
## 2. 业务背景
说明为什么要做这个 skill它服务什么业务场景解决什么实际问题。
模板写法:
- 当前业务场景中,用户需要在 `【目标平台】` 完成 `【业务动作】`
- 现有流程主要依赖人工处理,存在 `【效率低 / 容易出错 / 不可批量 / 不可追踪】` 等问题。
- 因此需要开发 `【技能名称】`,将该流程标准化、自动化,并接入匠厂技能体系中。
示例:
- 当前内容运营团队需要将内容库中的文章批量发布到微博平台,但人工登录后台、复制文章、填写标题和确认发布的流程效率较低,且不便于统一记录发布历史。
- 因此需要开发 `weibo-publisher`,用于把内容库文章按规范发布到微博平台,并记录发布结果,支持后续排查与复用。
## 3. 开发目标
说明本次开发希望最终交付什么结果。
模板写法:
- 完成 `【技能名称】` 的标准目录结构搭建
- 完成 CLI 入口与基础命令
- 完成核心业务流程
- 完成与兄弟技能或外部系统的必要集成
- 完成正式环境发布验证
示例:
- 完成 `weibo-publisher` 的标准 skill 结构建设
- 提供 `health``version``publish``logs``log-get` 等命令
- 支持从兄弟技能读取账号与文章,并执行微博发布流程
- 支持记录发布日志,并可在正式环境中安装验证
## 4. 功能范围
说明这次开发明确要实现哪些功能。
模板写法:
- 支持 `【命令1】`
- 支持 `【命令2】`
- 支持读取 `【数据来源】`
- 支持执行 `【核心业务动作】`
- 支持记录 `【日志 / 状态 / 结果】`
建议将功能拆成“必须实现”和“可后续扩展”。
示例:
### 必须实现
- 支持 `python scripts/main.py health`
- 支持 `python scripts/main.py version`
- 支持 `python scripts/main.py publish`
- 支持从 `account-manager` 获取可用账号
- 支持从 `content-manager` 获取待发布文章
- 支持执行微博后台发布流程
- 支持写入发布日志
### 可后续扩展
- 支持定时发布
- 支持失败自动重试
- 支持多账号轮询发布
## 5. 非功能要求
说明除功能外,对稳定性、可维护性、目录规范、日志、编码等方面的要求。
模板写法:
- 目录结构必须符合当前 skill 模板规范
- 入口必须统一为 `scripts/main.py`
- 输出格式应尽量机读友好
- 错误前缀统一为 `ERROR:`
- Windows 环境下需保证 UTF-8 输出兼容
- 必须具备基本日志能力
示例:
- 项目结构必须对齐 `skill-template`
- CLI 入口统一使用 `scripts/main.py`
- 关键执行结果应可通过 JSON 或固定文本结构返回
- 发布日志必须可追踪
- 不允许重新引入旧模板中的 `docs/``optional/``scripts/skill_main.py`
## 6. 输入输出要求
说明这个 skill 接收什么输入,产出什么输出。
模板写法:
### 输入
- `【输入参数1】`
- `【输入参数2】`
- `【依赖系统返回的数据】`
### 输出
- `【标准输出】`
- `【错误输出】`
- `【数据库记录】`
- `【日志文件】`
示例:
### 输入
- `account_id`:可选,指定发布账号
- `article_id`:可选,指定发布文章
- `account-manager` 返回的账号信息
- `content-manager` 返回的文章信息
### 输出
- 发布成功时返回成功结果
- 发布失败时返回 `ERROR:``FAIL:` 前缀的错误信息
- 在本地数据库中写入 `publish_logs`
- 在日志目录中写入执行日志
## 7. 依赖的兄弟技能或外部系统
说明开发该 skill 时依赖哪些内部技能或外部平台。
模板写法:
### 兄弟技能依赖
- `【skill-a】`:作用是 `【用途】`
- `【skill-b】`:作用是 `【用途】`
### 外部系统依赖
- `【平台名】`:作用是 `【用途】`
- `【浏览器 / API / 第三方服务】`:作用是 `【用途】`
示例:
### 兄弟技能依赖
- `account-manager`:提供账号信息
- `content-manager`:提供文章数据
### 外部系统依赖
- 微博后台:目标发布平台
- Chromium / Chrome / Edge用于浏览器自动化
- Gitea用于代码托管和发布工作流
- 匠厂客户端:用于正式环境安装与验证
## 8. 不在本次范围内的内容
这一节非常重要,用来明确本次“不做什么”,避免研发越做越散。
模板写法:
- 本次不实现 `【功能A】`
- 本次不处理 `【平台B】`
- 本次不做 `【高级能力】`
- 本次不兼容 `【旧结构 / 旧逻辑】`
示例:
- 本次不实现多平台统一发布
- 本次不实现定时任务调度
- 本次不实现自动重试机制
- 本次不兼容旧模板中的历史目录结构
## 9. 验收标准
说明什么情况下才算真正开发完成。
模板写法:
- 代码结构符合模板规范
- 最小命令可运行
- 核心命令可运行
- 正式环境可安装
- 匠厂中可看到最新版本
- 可以在新建任务中实际使用
示例:
- `health``version` 命令执行正常
- `publish` 主流程可运行
- 发布后 Gitea 工作流成功
- 匠厂技能市场能看到最新版本
- skill 可以正常安装
- 安装后可在“新建任务”中调用
## 10. 开发注意事项
说明研发过程中必须特别注意的事项。
模板写法:
- 不要修改无关 skill
- 不要破坏现有模板规范
- 优先遵守目录和分层约定
- 不要在 CLI 层堆业务逻辑
- 发布前必须先做本地最小验证
示例:
- 只允许修改当前 skill 仓库,不要改动其他兄弟项目
- 如使用浏览器自动化,优先复用已验证过的定位器和流程
- `cli` 只做参数解析,核心逻辑统一放到 `service`
- 发布前必须完成本地验证、工作流验证和正式环境安装验证
## 11. 变更记录
这一节用于记录需求文档本身的变化,不是 git 提交记录的替代,而是给技术人员看“需求范围怎么变了”。
模板写法:
| 日期 | 版本 | 变更人 | 变更内容 |
|------|------|--------|----------|
| 2026-04-13 | v1.0 | 张三 | 初版需求文档 |
| 2026-04-14 | v1.1 | 李四 | 增加正式环境验收要求 |
---
## 建议使用方式
建议每个新 skill 开发时,按下面顺序使用文档:
1. 先写 `references/REQUIREMENTS.md`
2. 再按 `references/DEVELOPMENT.md` 进入开发
3. 开发过程中补充 `CLI.md``SCHEMA.md``RUNTIME.md`
4. 发布前回到 `REQUIREMENTS.md` 对照验收标准逐项检查
## 最小模板示例
下面给出一个可直接参考的简化版示例:
```md
# REQUIREMENTS
## 1. 文档目标
本文档用于明确 `weibo-publisher` 的研发需求、范围和验收标准,作为开发与测试的统一依据。
## 2. 业务背景
运营团队需要将内容库中的文章发布到微博平台,现有人工操作效率低,且缺少统一的发布记录。
## 3. 开发目标
- 完成 `weibo-publisher` 的标准 skill 结构
- 支持文章发布主流程
- 支持发布日志记录
## 4. 功能范围
- 支持 `health`
- 支持 `version`
- 支持 `publish`
- 支持查询发布日志
## 5. 非功能要求
- 入口统一为 `scripts/main.py`
- 保持 UTF-8 输出
- 结构符合 skill 模板规范
## 6. 输入输出要求
### 输入
- `account_id`
- `article_id`
### 输出
- 成功结果
- 错误信息
- 发布日志记录
## 7. 依赖的兄弟技能或外部系统
- `account-manager`
- `content-manager`
- 微博后台
## 8. 不在本次范围内的内容
- 不实现定时发布
- 不实现自动重试
## 9. 验收标准
- 命令可运行
- 能完成正式环境安装验证
- 能在新建任务中使用
## 10. 开发注意事项
- 不修改无关项目
- 不引入旧模板结构
## 11. 变更记录
| 日期 | 版本 | 变更人 | 变更内容 |
|------|------|--------|----------|
| 2026-04-13 | v1.0 | 张三 | 初版 |
```