# 技能需求文档模板 这份文档用于给技术人员、产品人员和实施人员统一描述某个 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 | 张三 | 初版 | ```