hookehuyr

refactor(scripts): 重组脚本目录结构

将 scripts 目录按功能分组:
- api-generator/ - API 代码生成工具
- doc-parser/ - 文档解析工具
- changelog/ - CHANGELOG 管理工具

变更:
- 为每个子目录添加 README.md 说明文档
- 更新 package.json 中的脚本路径
- 添加 scripts/README.md 主说明文档
- 添加 整理报告.md 记录整理过程

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
...@@ -29,15 +29,15 @@ ...@@ -29,15 +29,15 @@
29 "postinstall": "weapp-tw patch", 29 "postinstall": "weapp-tw patch",
30 "lint": "eslint --ext .js,.vue src", 30 "lint": "eslint --ext .js,.vue src",
31 "test": "vitest run", 31 "test": "vitest run",
32 - "api:generate": "node scripts/generateApiFromOpenAPI.js", 32 + "api:generate": "node scripts/api-generator/generateApiFromOpenAPI.js",
33 - "changelog:check": "bash scripts/check-changelog.sh 7", 33 + "changelog:check": "bash scripts/changelog/check-changelog.sh 7",
34 - "changelog:check:30": "bash scripts/check-changelog.sh 30", 34 + "changelog:check:30": "bash scripts/changelog/check-changelog.sh 30",
35 - "changelog:check:all": "bash scripts/check-changelog.sh 0", 35 + "changelog:check:all": "bash scripts/changelog/check-changelog.sh 0",
36 "prepare": "husky", 36 "prepare": "husky",
37 - "parse:docs": "node scripts/parse-docs.js", 37 + "parse:docs": "node scripts/doc-parser/parse-docs.js",
38 - "parse:docs:list": "node scripts/parse-docs.js --list", 38 + "parse:docs:list": "node scripts/doc-parser/parse-docs.js --list",
39 - "parse:docs:status": "node scripts/parse-docs.js --status", 39 + "parse:docs:status": "node scripts/doc-parser/parse-docs.js --status",
40 - "parse:docs:file": "node scripts/parse-docs.js --file=", 40 + "parse:docs:file": "node scripts/doc-parser/parse-docs.js --file=",
41 "release": "standard-version" 41 "release": "standard-version"
42 }, 42 },
43 "browserslist": [ 43 "browserslist": [
......
1 +# Scripts 目录说明
2 +
3 +> 最后更新: 2026-02-15
4 +
5 +本目录包含项目的各类开发工具脚本,按功能分组存放在子目录中。
6 +
7 +## 📁 目录结构
8 +
9 +```
10 +scripts/
11 +├── api-generator/ # API 代码生成工具
12 +├── doc-parser/ # 文档解析工具
13 +├── changelog/ # CHANGELOG 管理工具
14 +└── README.md # 本说明文件
15 +```
16 +
17 +---
18 +
19 +## 🚀 快速使用
20 +
21 +### API 代码生成
22 +```bash
23 +pnpm api:generate # 从 OpenAPI 生成 API 接口
24 +```
25 +
26 +### 文档解析
27 +```bash
28 +pnpm parse:docs # 解析待处理文档
29 +pnpm parse:docs:list # 查看待处理文档
30 +pnpm parse:docs:status # 查看解析状态
31 +```
32 +
33 +### CHANGELOG 检查
34 +```bash
35 +pnpm changelog:check # 检查最近 7 天的漏记
36 +pnpm changelog:check:30 # 检查最近 30 天的漏记
37 +```
38 +
39 +---
40 +
41 +## 📦 子目录详情
42 +
43 +| 目录 | 用途 | 相关 npm scripts |
44 +|------|------|-----------------|
45 +| `api-generator/` | 从 OpenAPI 规范生成 JavaScript API 代码 | `api:generate` |
46 +| `doc-parser/` | 解析 PDF/DOCX 等文档,智能提取配置字段 | `parse:docs:*` |
47 +| `changelog/` | 检查和归档 CHANGELOG 记录 | `changelog:check:*` |
48 +
49 +---
50 +
51 +## 🔗 相关文档
52 +
53 +- [API 生成指南](./api-generator/GUIDE.md)
54 +- [文档解析快速开始](./doc-parser/QUICKSTART.md)
55 +- [CHANGELOG 规范](../docs/CHANGELOG.md)
1 +# API 代码生成工具
2 +
3 +从 OpenAPI 规范自动生成 JavaScript API 接口代码。
4 +
5 +## 📁 文件说明
6 +
7 +| 文件 | 说明 | 使用频率 |
8 +|------|------|---------|
9 +| `generateApiFromOpenAPI.js` | 主脚本 - 从 OpenAPI 生成 API 代码 | ⭐⭐⭐ 高频 |
10 +| `apiDiff.js` | API 对比工具 - 检测 API 变更和破坏性改动 | ⭐⭐ 中频 |
11 +| `test-generate.js` | 测试脚本 - 验证生成的 API 文件是否正确 | ⭐ 低频 |
12 +| `API_GUIDE.md` | 使用指南 - 详细的 API 维护工作流文档 | 📖 文档 |
13 +
14 +## 🚀 使用方式
15 +
16 +```bash
17 +# 生成所有 API 接口
18 +pnpm api:generate
19 +
20 +# 生成指定模块
21 +pnpm api:generate -- --module=user
22 +```
23 +
24 +## 📖 详细文档
25 +
26 +参见 [API_GUIDE.md](./API_GUIDE.md) 了解完整的 API 维护工作流。
27 +
28 +## 🔧 工作原理
29 +
30 +1. 扫描 `docs/api-specs/` 目录下的 OpenAPI 文档
31 +2. 解析 Markdown 文件中的 YAML 规范
32 +3. 检测 API 变更(新增、修改、删除)
33 +4. 生成符合项目规范的 JavaScript API 代码
34 +5. 保存到 `src/api/` 目录
35 +
36 +## 📝 生成代码示例
37 +
38 +输入 (OpenAPI YAML):
39 +```yaml
40 +paths:
41 + /user/info:
42 + get:
43 + summary: 获取用户信息
44 + parameters:
45 + - name: user_id
46 + in: query
47 +```
48 +
49 +输出 (JavaScript):
50 +```javascript
51 +/**
52 + * 获取用户信息
53 + * @param {Object} params
54 + * @param {string} params.user_id - 用户ID
55 + */
56 +export const getUserInfoAPI = (params) => {
57 + return buildApiUrl('user_info', params)
58 +}
59 +```
1 +# CHANGELOG 管理工具
2 +
3 +检查和归档项目的 CHANGELOG 记录。
4 +
5 +## 📁 文件说明
6 +
7 +| 文件 | 说明 | 使用频率 |
8 +|------|------|---------|
9 +| `check-changelog.sh` | 漏记检查 - 扫描 git 提交,检查 CHANGELOG 漏记 | ⭐⭐⭐ 高频 |
10 +| `archive-changelog.sh` | 归档脚本 - 当记录超过 20 条时自动归档 | ⭐ 低频 |
11 +
12 +## 🚀 使用方式
13 +
14 +### 检查漏记
15 +
16 +```bash
17 +# 检查最近 7 天(默认)
18 +pnpm changelog:check
19 +
20 +# 检查最近 30 天
21 +pnpm changelog:check:30
22 +
23 +# 检查所有提交
24 +pnpm changelog:check:all
25 +
26 +# 直接运行
27 +./scripts/changelog/check-changelog.sh 7
28 +```
29 +
30 +### 归档旧记录
31 +
32 +```bash
33 +# 直接运行归档脚本
34 +./scripts/changelog/archive-changelog.sh
35 +```
36 +
37 +## 📋 检查输出示例
38 +
39 +```
40 +======================================
41 + CHANGELOG 漏记检查工具
42 +======================================
43 +
44 +检查范围: 最近 7 天
45 +
46 +[1/4] 正在获取 git 提交记录...
47 + 找到 5 个提交
48 +
49 +[2/4] 正在读取 CHANGELOG 记录...
50 + 找到 3 条记录
51 +
52 +[3/4] 正在对比...
53 +
54 +[4/4] 生成报告...
55 +
56 +⚠️ 发现 2 处漏记:
57 +
58 +1. feat(plan): 添加计划书表单验证
59 + 提交: abc1234 (2026-02-14)
60 + 建议: 在 CHANGELOG 中添加此功能记录
61 +
62 +2. fix(login): 修复登录跳转问题
63 + 提交: def5678 (2026-02-13)
64 + 建议: 在 CHANGELOG 中添加此修复记录
65 +```
66 +
67 +## 🔧 归档规则
68 +
69 +`docs/CHANGELOG.md` 记录数超过 20 条时:
70 +1. 自动将旧记录移动到 `docs/changelog-archive/`
71 +2. 主文件只保留最近 20 条记录
72 +3. 归档文件以日期命名:`CHANGELOG-archive-YYYYMMDD.md`
73 +
74 +## 📝 最佳实践
75 +
76 +1. **每次提交后检查**:运行 `pnpm changelog:check` 确保没有漏记
77 +2. **及时记录**:在提交代码时同步更新 CHANGELOG
78 +3. **定期归档**:每月运行一次归档脚本
1 +# 文档解析工具
2 +
3 +从 PDF、DOCX 等文档中智能提取配置字段,自动生成计划书模板配置。
4 +
5 +## 📁 文件说明
6 +
7 +| 文件 | 说明 | 使用频率 |
8 +|------|------|---------|
9 +| `parse-docs.js` | 主脚本 - 文档解析和配置生成 | ⭐⭐⭐ 高频 |
10 +| `smart-field-extractor.js` | 智能字段提取器 - 从文档中提取表单字段 | ⭐⭐ 中频 |
11 +| `product-splitter.js` | 产品分割器 - 识别和分割多产品文档 | ⭐⭐ 中频 |
12 +| `parse-config.js` | 配置文件 - markitdown 和 AI 服务配置 | 📋 配置 |
13 +| `parse-docs.test.js` | 测试文件 - 单元测试 | 🧪 测试 |
14 +| `QUICKSTART.md` | 快速开始指南 | 📖 文档 |
15 +
16 +## 🚀 使用方式
17 +
18 +```bash
19 +# 解析所有待处理文档
20 +pnpm parse:docs
21 +
22 +# 查看待处理文档列表
23 +pnpm parse:docs:list
24 +
25 +# 查看解析状态
26 +pnpm parse:docs:status
27 +
28 +# 解析指定文件
29 +pnpm parse:docs -- --file=产品说明书.pdf
30 +
31 +# 应用审核通过的配置
32 +pnpm parse:docs -- --apply=计划书模版4
33 +
34 +# 预览应用配置(不实际修改)
35 +pnpm parse:docs -- --apply=计划书模版4 --dry-run
36 +```
37 +
38 +## 📖 详细文档
39 +
40 +参见 [QUICKSTART.md](./QUICKSTART.md) 了解完整的快速开始指南。
41 +
42 +## 🔧 工作原理
43 +
44 +1. 扫描 `docs/to-parse/` 目录下的待处理文档
45 +2. 使用 markitdown 将文档转换为 Markdown
46 +3. 调用 AI 服务提取配置字段
47 +4. 生成可审核的配置文件
48 +5. 审核通过后应用到 `src/config/plan-templates.js`
49 +
50 +## 📝 支持的文档格式
51 +
52 +- PDF (`.pdf`)
53 +- Word (`.doc`, `.docx`)
54 +- 文本 (`.txt`, `.md`)
55 +
56 +## 🤖 AI 配置
57 +
58 +`.env` 文件中配置 AI 服务:
59 +
60 +```env
61 +# markitdown 服务 URL(可选)
62 +MARKITDOWN_URL=http://localhost:8000/convert
63 +
64 +# AI 服务配置(用于智能字段提取)
65 +AI_SERVICE_URL=your_ai_service_url
66 +AI_API_KEY=your_api_key
67 +```
68 +
69 +## 📋 输出示例
70 +
71 +解析后会生成:
72 +- `docs/parsed/产品名称.json` - 解析结果
73 +- `docs/parsed/产品名称.audit.md` - 审核报告
1 +# Scripts 目录整理报告
2 +
3 +> 整理日期: 2026-02-15
4 +
5 +## ✅ 整理完成
6 +
7 +### 新目录结构
8 +
9 +```
10 +scripts/
11 +├── README.md # 主说明文档
12 +├── CLAUDE.md # Claude Code 指南(待处理)
13 +
14 +├── api-generator/ # API 代码生成工具
15 +│ ├── README.md # 使用说明
16 +│ ├── GUIDE.md # 详细指南
17 +│ ├── generateApiFromOpenAPI.js # 主脚本 ⭐
18 +│ ├── apiDiff.js # API 对比工具
19 +│ └── test-generate.js # 测试脚本
20 +
21 +├── doc-parser/ # 文档解析工具
22 +│ ├── README.md # 使用说明
23 +│ ├── QUICKSTART.md # 快速开始
24 +│ ├── .env.example # 环境变量示例
25 +│ ├── parse-docs.js # 主脚本 ⭐
26 +│ ├── parse-config.js # 配置文件
27 +│ ├── smart-field-extractor.js # 字段提取器
28 +│ ├── product-splitter.js # 产品分割器
29 +│ └── parse-docs.test.js # 测试文件
30 +
31 +└── changelog/ # CHANGELOG 管理工具
32 + ├── README.md # 使用说明
33 + ├── check-changelog.sh # 漏记检查 ⭐
34 + └── archive-changelog.sh # 归档脚本
35 +```
36 +
37 +### npm scripts 已更新
38 +
39 +| 命令 | 新路径 |
40 +|------|--------|
41 +| `pnpm api:generate` | `scripts/api-generator/generateApiFromOpenAPI.js` |
42 +| `pnpm parse:docs` | `scripts/doc-parser/parse-docs.js` |
43 +| `pnpm changelog:check` | `scripts/changelog/check-changelog.sh` |
44 +
45 +---
46 +
47 +## ⚠️ 未使用文件列表
48 +
49 +以下文件**没有在 package.json 或其他脚本中直接调用**,请判断是否需要保留:
50 +
51 +### 1. `scripts/changelog/archive-changelog.sh`
52 +
53 +**状态**: 🟡 未直接引用
54 +**功能**: CHANGELOG 归档脚本,当记录超过 20 条时自动归档
55 +**使用方式**: 手动运行 `./scripts/changelog/archive-changelog.sh`
56 +**建议**:
57 +- [ ] 保留 - 作为手动维护工具
58 +- [ ] 删除 - 不再需要归档功能
59 +
60 +---
61 +
62 +### 2. `scripts/api-generator/test-generate.js`
63 +
64 +**状态**: 🟡 未直接引用
65 +**功能**: 测试生成的 API 文件是否正确
66 +**使用方式**: 手动运行 `node scripts/api-generator/test-generate.js`
67 +**建议**:
68 +- [ ] 保留 - 作为开发调试工具
69 +- [ ] 删除 - 已有其他测试方式
70 +
71 +---
72 +
73 +### 3. `scripts/CLAUDE.md`
74 +
75 +**状态**: 🟡 需要评估
76 +**功能**: 给 Claude Code 的说明文档
77 +**位置**: 当前在 scripts 根目录
78 +**建议**:
79 +- [ ] 保留在当前位置 - 作为 Claude 指南
80 +- [ ] 移动到 doc-parser 目录 - 因为主要与文档解析相关
81 +- [ ] 删除 - 内容已整合到其他文档
82 +
83 +---
84 +
85 +## 📝 整理后的改进
86 +
87 +1. **✅ 功能分组清晰** - 按用途分为 3 个子目录
88 +2. **✅ 每个子目录有 README** - 包含使用说明和文件介绍
89 +3. **✅ 路径引用已更新** - package.json 已同步更新
90 +4. **✅ 单个文件已收录** - 所有脚本都在对应的功能目录中
91 +
92 +---
93 +
94 +## 🔧 后续操作建议
95 +
96 +1. **确认未使用文件** - 对上述 3 个文件做出保留/删除决定
97 +2. **更新 CLAUDE.md** - 如果项目根目录的 CLAUDE.md 已包含相关内容,可以删除 scripts/CLAUDE.md
98 +3. **测试脚本** - 运行 `pnpm api:generate``pnpm parse:docs` 确保路径更新正确