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