/SKILL.md
开发文档自动化生成和维护工具。在完成需求开发后自动生成需求文档(PRD)和API接口文档,在代码更新后自动维护CHANGELOG和API CHANGELOG。触发时机:用户说"生成文档"、"写文档"、"更新文档",或提到PRD、API文档、changelog、需求文档时自动触发。
npx skillsauth add hautran11325/dev-docs-skill dev-docsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
多平台支持: 本文件可作为 Cursor IDE 的 Skill (
~/.cursor/skills/) 或 Claude Code 的 Skill (~/.claude/skills/) 使用。
本技能帮助在开发过程中自动生成和维护项目文档,确保文档与代码保持同步。
当完成一个新功能的开发后,执行以下步骤:
分析代码变更
生成需求文档 → docs/requirements/REQ-{feature_name}.md
更新 API 文档 → docs/api/API.md
更新 CHANGELOG → docs/CHANGELOG.md
更新 API CHANGELOG → docs/api/API_CHANGELOG.md
当对现有功能进行修改后:
文件位置:docs/requirements/REQ-{feature_name}.md
# {功能名称} - 需求文档
## 文档信息
| 属性 | 值 |
|------|-----|
| 文档编号 | REQ-{编号} |
| 版本 | v1.0 |
| 创建日期 | {YYYY-MM-DD} |
| 最后更新 | {YYYY-MM-DD} |
| 作者 | {作者} |
| 状态 | 草稿/评审中/已批准/已实现 |
---
## 1. 功能概述
### 1.1 简要描述
{一句话描述该功能的核心目的}
### 1.2 关键词
{功能相关的关键术语}
---
## 2. 背景和目标
### 2.1 背景
{为什么需要这个功能?解决什么问题?}
### 2.2 目标
- 目标 1:{具体可衡量的目标}
- 目标 2:{具体可衡量的目标}
### 2.3 非目标
{明确声明此功能不做什么}
---
## 3. 功能需求
### 3.1 用户故事
| 编号 | 角色 | 需求 | 价值 |
|------|------|------|------|
| US-01 | 作为{角色} | 我希望{功能} | 以便{价值} |
### 3.2 功能清单
| 编号 | 功能名称 | 优先级 | 描述 |
|------|----------|--------|------|
| F-01 | {功能名} | P0/P1/P2 | {详细描述} |
### 3.3 业务规则
- BR-01:{业务规则描述}
---
## 4. 非功能需求
### 4.1 性能要求
- 响应时间:{具体指标}
- 吞吐量:{具体指标}
### 4.2 安全要求
- {安全相关要求}
### 4.3 兼容性
- {浏览器/系统兼容性要求}
---
## 5. UI/交互设计
### 5.1 页面布局
{描述或引用设计稿}
### 5.2 交互流程
{用户操作的步骤流程}
### 5.3 状态说明
| 状态 | 显示效果 | 触发条件 |
|------|----------|----------|
| {状态名} | {效果} | {条件} |
---
## 6. 数据模型
### 6.1 新增/修改的数据表
{使用 Mermaid ER 图或表格描述}
### 6.2 数据字段说明
| 字段名 | 类型 | 必填 | 描述 |
|--------|------|------|------|
| {字段} | {类型} | 是/否 | {说明} |
---
## 7. 验收标准
### 7.1 功能验收
- [ ] AC-01:{验收条件}
- [ ] AC-02:{验收条件}
### 7.2 测试用例
| 用例编号 | 描述 | 预期结果 |
|----------|------|----------|
| TC-01 | {测试步骤} | {预期结果} |
---
## 8. 时间节点
| 里程碑 | 计划日期 | 实际日期 | 状态 |
|--------|----------|----------|------|
| 需求评审 | {日期} | {日期} | {状态} |
| 开发完成 | {日期} | {日期} | {状态} |
| 测试完成 | {日期} | {日期} | {状态} |
| 上线发布 | {日期} | {日期} | {状态} |
---
## 附录
### A. 相关文档
- [API 文档](../api/API.md)
- [架构文档](../architecture.md)
### B. 变更历史
| 版本 | 日期 | 作者 | 变更说明 |
|------|------|------|----------|
| v1.0 | {日期} | {作者} | 初始版本 |
文件位置:docs/api/API.md
# {项目名称} API 接口文档
## 文档信息
| 属性 | 值 |
|------|-----|
| 版本 | v{版本号} |
| 最后更新 | {YYYY-MM-DD} |
| 基础URL | {API基础路径} |
---
## 1. 概述
### 1.1 简介
{API 的用途和范围}
### 1.2 基础信息
- **协议**: HTTPS
- **数据格式**: JSON
- **字符编码**: UTF-8
---
## 2. 认证方式
### 2.1 认证类型
{JWT / API Key / OAuth 等}
### 2.2 认证方式
Authorization: Bearer {token}
### 2.3 获取 Token
{获取认证 Token 的方式}
---
## 3. 接口列表
### 3.1 {模块名称}
#### {接口名称}
| 属性 | 值 |
|------|-----|
| 路径 | `{HTTP方法} {路径}` |
| 认证 | 是/否/可选 |
| 描述 | {接口功能描述} |
**请求参数**
| 参数名 | 位置 | 类型 | 必填 | 描述 |
|--------|------|------|------|------|
| {参数} | path/query/body | {类型} | 是/否 | {描述} |
**请求示例**
```json
{
"field": "value"
}
响应参数
| 参数名 | 类型 | 描述 | |--------|------|------| | {参数} | {类型} | {描述} |
响应示例
{
"code": 0,
"message": "success",
"data": {}
}
| 字段名 | 类型 | 必填 | 描述 | |--------|------|------|------| | {字段} | {类型} | 是/否 | {描述} |
| 错误码 | HTTP状态码 | 描述 | 解决方案 | |--------|------------|------|----------| | 0 | 200 | 成功 | - | | 10001 | 400 | 参数错误 | 检查请求参数 | | 10002 | 401 | 未授权 | 检查认证信息 | | 10003 | 403 | 禁止访问 | 检查权限 | | 10004 | 404 | 资源不存在 | 检查请求路径 | | 10005 | 500 | 服务器错误 | 联系管理员 |
curl -X POST "{base_url}/api/endpoint" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"key": "value"}'
import requests
response = requests.post(
"{base_url}/api/endpoint",
headers={"Authorization": f"Bearer {token}"},
json={"key": "value"}
)
print(response.json())
const response = await fetch("{base_url}/api/endpoint", {
method: "POST",
headers: {
"Authorization": `Bearer ${token}`,
"Content-Type": "application/json"
},
body: JSON.stringify({ key: "value" })
});
const data = await response.json();
---
### CHANGELOG 模板
文件位置:`docs/CHANGELOG.md`
遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/) 格式:
```markdown
# Changelog
本文件记录项目的所有重要变更。
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
## [Unreleased]
### Added
- {新增的功能}
### Changed
- {修改的功能}
### Fixed
- {修复的问题}
### Removed
- {移除的功能}
---
## [1.0.0] - {YYYY-MM-DD}
### Added
- 初始版本发布
- {功能1}
- {功能2}
---
[Unreleased]: {repo_url}/compare/v1.0.0...HEAD
[1.0.0]: {repo_url}/releases/tag/v1.0.0
文件位置:docs/api/API_CHANGELOG.md
# API Changelog
本文件记录 API 接口的所有变更。
## [Unreleased]
### 新增接口
- `{METHOD} {path}` - {描述}
### 接口变更
- `{METHOD} {path}` - {变更说明}
### 废弃接口
- `{METHOD} {path}` - 将在 v{版本} 移除,请使用 {替代接口}
### 移除接口
- `{METHOD} {path}` - {原因}
---
## [1.0.0] - {YYYY-MM-DD}
### 新增接口
- `POST /api/xxx` - {描述}
- `GET /api/xxx` - {描述}
首次使用时,检查并创建文档目录结构:
docs/
├── CHANGELOG.md # 项目变更日志
├── architecture.md # 架构文档(已存在)
├── api/
│ ├── API.md # API 接口文档
│ └── API_CHANGELOG.md # API 变更日志
└── requirements/
└── REQ-{feature}.md # 各功能的需求文档
根据变更类型执行相应操作:
| 变更类型 | 操作 | |----------|------| | 新功能 | 创建需求文档 + 更新 API 文档 + 追加 CHANGELOG | | 功能修改 | 更新需求文档 + 更新 API 文档 + 追加 CHANGELOG | | Bug 修复 | 追加 CHANGELOG (Fixed) | | 接口变更 | 更新 API 文档 + 追加 API CHANGELOG |
本技能提供两个自动化脚本,位于 scripts/ 目录下。
自动分析 Git 变更并生成文档更新建议。
用法
# 分析当前未提交的变更
python scripts/analyze_changes.py
# 分析从指定 commit 到 HEAD 的变更
python scripts/analyze_changes.py --since HEAD~5
# 输出为 JSON 格式
python scripts/analyze_changes.py --json
# 保存到文件
python scripts/analyze_changes.py --output changes_report.txt
输出内容
提供命令行工具来更新各类文档。
初始化文档目录
python scripts/update_docs.py init
更新 CHANGELOG
# 添加新功能
python scripts/update_docs.py changelog -t added -m "新增用户认证功能"
# 记录变更
python scripts/update_docs.py changelog -t changed -m "优化PDF解析性能"
# 记录修复
python scripts/update_docs.py changelog -t fixed -m "修复日期格式解析错误"
# 记录移除
python scripts/update_docs.py changelog -t removed -m "移除旧版API支持"
更新 API CHANGELOG
# 新增接口
python scripts/update_docs.py api -t add -e "POST /api/users" -d "创建用户"
# 接口变更
python scripts/update_docs.py api -t change -e "GET /api/users" -d "新增分页参数"
# 废弃接口
python scripts/update_docs.py api -t deprecate -e "GET /api/old" -d "将在v2.0移除"
# 移除接口
python scripts/update_docs.py api -t remove -e "DELETE /api/legacy" -d "已废弃"
创建需求文档
# 创建新的需求文档
python scripts/update_docs.py req -n "user-auth" -t "用户认证功能" -a "Jem"
# 强制覆盖已存在的文档
python scripts/update_docs.py req -n "user-auth" --force
# 1. 开发完成后,分析代码变更
python scripts/analyze_changes.py
# 2. 创建需求文档
python scripts/update_docs.py req -n "feature-name" -t "功能标题"
# 编辑生成的需求文档,填写详细内容
# 3. 更新 CHANGELOG
python scripts/update_docs.py changelog -t added -m "新增XX功能"
# 4. 如果有新 API,更新 API 文档
python scripts/update_docs.py api -t add -e "POST /api/xxx" -d "接口描述"
# 5. 提交代码和文档
git add .
git commit -m "feat: 新增XX功能"
# 1. 修复完成后,更新 CHANGELOG
python scripts/update_docs.py changelog -t fixed -m "修复XX问题"
# 2. 提交
git add .
git commit -m "fix: 修复XX问题"
# 1. 更新 API CHANGELOG
python scripts/update_docs.py api -t change -e "GET /api/xxx" -d "变更说明"
# 2. 手动更新 API.md 中的接口详情
# 3. 更新 CHANGELOG
python scripts/update_docs.py changelog -t changed -m "更新XX接口"
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.
development
End-to-end Parallels smoke, upgrade, and rerun workflow for OpenClaw across macOS, Windows, and Linux guests. Use when Codex needs to run, rerun, debug, or interpret VM-based install, onboarding, gateway smoke tests, latest-release-to-main upgrade checks, fresh snapshot retests, or optional Discord roundtrip verification under Parallels.