Files
gaokao-volunteer-system/docs/IMPLEMENTATION_PLAN.md
Hermes Agent 56a9327e78 feat: 技术架构设计 + 详细实施计划
根据产品规划设计完成技术设计和实施分解:

1. docs/TECH_ARCHITECTURE.md(新,587行)
   - 分层架构图(接入层/网关/服务/数据/基础设施)
   - 技术栈选型(Python + SQLite + FastAPI)
   - 核心模块设计:
     * AI审核服务(49元版)
     * 反扎堆检测
     * 数据溯源
     * 订单管理
   - 数据架构与目录结构
   - 安全设计(脱敏/权限/审计)
   - 性能指标
   - 11项技术决策记录

2. docs/IMPLEMENTATION_PLAN.md(新,432行)
   - 5大开发任务(30天)
   - T1: AI审核服务(10天,P0核心)
   - T2: 反扎堆检测(5天,P0)
   - T3: 数据溯源(5天,P1)
   - T4: 订单管理(5天,P1)
   - T5: 集成测试(5天,P0)
   - 详细周计划(4周)
   - 每个Task的DoD
   - 风险与应对

3. docs/plans/ 新增3份详细计划:
   - T1-1-crowd-db-setup.md (扎堆数据库,3个子任务)
   - T1-2-audit-skill-and-parser.md (Skill+解析器)
   - T1-4-to-1-10-audit-completion.md (T1.4-1.8完整代码)

4. docs/NAVIGATION.md 更新
   - 添加新文档索引

每个实施计划都包含:
- TDD流程(写测试→失败→实现→通过→提交)
- 完整可复制代码
- 精确文件路径
- 验证命令和预期输出
- 提交步骤

技术决策:
- 选用SQLite(本地优先,零配置)
- FastAPI作为Web框架
- 扎堆数据库手动维护(合规考虑)
- 数据溯源JSON文件存储(Git友好)
2026-06-12 09:18:52 +08:00

657 lines
14 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.
# 实施计划
## v2.1 详细开发任务分解
**版本**: v2.1
**目标**: 实现AI审核、反扎堆检测、数据溯源、订单管理
**时间**: 2026年6月15日 - 7月15日30天
**方法**: TDD + 频繁提交
---
## 总览
### 4个核心开发任务
| 任务 | 工时 | 优先级 | 状态 |
| ------------------------------ | :--: | :----: | :--: |
| T1: AI审核服务49元版⭐核心 | 10天 | P0 | 📋 |
| T2: 反扎堆检测功能 | 5天 | P0 | 📋 |
| T3: 数据溯源功能 | 5天 | P1 | 📋 |
| T4: 订单管理基础 | 5天 | P1 | 📋 |
| T5: 集成测试与发布 | 5天 | P0 | 📋 |
**总工时**: 30天
---
## T1: AI审核服务49元版⭐核心
### 1.1 任务清单
#### T1.1 准备扎堆数据库结构
**目标**: 建立大厂AI推荐数据库的初始结构
**步骤**:
1. 创建 `data/crowd_db/` 目录
2. 创建 `data/crowd_db/.gitkeep`
3. 创建 `data/crowd_db/README.md` 说明数据格式
4. 创建 `data/crowd_db/hunan.json` 初始数据(手动整理)
**文件**:
- `data/crowd_db/README.md`
- `data/crowd_db/hunan.json`
**验收**:
- 目录结构存在
- JSON格式正确
- README说明清晰
#### T1.2 创建审核服务Skill
**目标**: 创建 gaokao-audit skill基础结构
**文件**:
- `skills/gaokao-audit/SKILL.md`
- `skills/gaokao-audit/scripts/__init__.py`
- `skills/gaokao-audit/templates/audit_report.html`
- `skills/gaokao-audit/examples/sample_audit.md`
- `skills/gaokao-audit/tests/__init__.py`
- `skills/gaokao-audit/tests/test_audit_service.py`
**内容**:
- SKILL.md 定义角色和接口
- 模板: 审核报告HTML
- 测试文件: 基础测试
#### T1.3 实现方案解析器
**目标**: 实现 plan_parser.py支持PDF/文本/截图输入
**文件**:
- `skills/gaokao-audit/scripts/plan_parser.py`
- `skills/gaokao-audit/tests/test_plan_parser.py`
**功能**:
- PDF文本提取pdfplumber
- 文本直接解析
- 院校/专业/分数提取
- 格式标准化
**TDD流程**:
1. 写测试: 给定PDF文本应能提取院校列表
2. 实现: 用正则表达式提取
3. 测试通过
4. 提交
#### T1.4 实现规范检查集成
**目标**: 调用现有 gaokao-spec-checker 检查方案
**文件**:
- `skills/gaokao-audit/scripts/checker_integration.py`
- `skills/gaokao-audit/tests/test_checker_integration.py`
**功能**:
- 导入 gaokao-spec-checker 模块
- 复用 PROVINCE_RULES
- 检查结果结构化
#### T1.5 实现扎堆检测器
**目标**: crowd_detector.py检测方案中院校的扎堆风险
**文件**:
- `skills/gaokao-audit/scripts/crowd_detector.py`
- `skills/gaokao-audit/tests/test_crowd_detector.py`
- `data/crowd_db/loader.py` - 数据加载器
**功能**:
- 加载 crowd_db JSON
- 院校匹配fuzzy match
- 风险等级计算
- 替代方案推荐
**TDD流程**:
1. 测试: 给定院校列表和分数,应返回扎堆风险列表
2. 实现: 数据加载+匹配
3. 测试通过
#### T1.6 实现审核服务主类
**目标**: audit_service.py主入口
**文件**:
- `skills/gaokao-audit/scripts/audit_service.py`
- `skills/gaokao-audit/tests/test_audit_service.py`
**接口**:
```python
def audit_plan(plan_content: str, plan_format: str) -> AuditResult:
"""审核方案主入口"""
```
**TDD流程**:
1. 写测试: 端到端测试
2. 实现: 组合各模块
3. 测试通过
#### T1.7 实现报告生成器
**目标**: report_generator.py生成审核报告PDF
**文件**:
- `skills/gaokao-audit/scripts/report_generator.py`
- `skills/gaokao-audit/tests/test_report_generator.py`
**功能**:
- 加载HTML模板
- 填充审核数据
- weasyprint生成PDF
- 保存到指定路径
#### T1.8 创建命令行入口
**目标**: gaokao-audit 可执行脚本
**文件**:
- `scripts/gaokao-audit` (软链接到 skills/gaokao-audit/scripts/audit_cli.py)
- `skills/gaokao-audit/scripts/audit_cli.py`
**功能**:
- 接受文件路径参数
- 调用审核服务
- 输出PDF报告路径
#### T1.9 集成到龙老师Skill
**目标**: 在 gaokao-counselor-long 中支持审核场景
**文件**:
- `skills/gaokao-counselor-long/SKILL.md` (更新)
- `skills/gaokao-counselor-long/references/quick-guide.md` (更新)
**变更**:
- 添加审核场景说明
- 添加调用 gaokao-audit 的指令
#### T1.10 审核服务集成测试
**目标**: 端到端测试,验证完整流程
**文件**:
- `tests/test_audit_integration.py`
**测试场景**:
- 上传大厂AI方案文本
- 解析 → 检查 → 扎堆检测 → 生成报告
- 验证报告内容
---
## T2: 反扎堆检测功能
### 2.1 任务清单
#### T2.1 整理大厂AI推荐数据
**目标**: 手动整理湖南省大厂AI热门推荐数据
**文件**:
- `data/crowd_db/hunan.json`
**数据来源**:
- 千问/元宝/百度/豆包公开推荐
- 6月15-30日期间手动整理
- 50-100条热门推荐
**数据结构**:
```json
{
"provinces": {
"湖南": {
"score_ranges": [
{
"range": [560, 580],
"recommendations": [
{
"name": "长沙理工大学",
"major": "会计学",
"frequency": 4,
"platforms": ["千问", "元宝", "百度", "豆包"],
"predicted_increase": 18,
"alternatives": [...]
}
]
}
]
}
}
}
```
#### T2.2 实现数据加载器
**目标**: 加载 crowd_db JSON
**文件**:
- `data/crowd_db/loader.py`
- `data/crowd_db/tests/test_loader.py`
**功能**:
- 读取JSON
- 验证格式
- 提供查询接口
#### T2.3 实现扎堆检测算法
**目标**: 检测方案的扎堆风险
**文件**:
- `skills/gaokao-audit/scripts/crowd_detector.py` (同T1.5)
- `scripts/gaokao-crowd-detector` (CLI入口)
**算法**:
```python
def detect_crowd_risk(plan, user_score, province):
"""
1. 加载对应省份的crowd_db
2. 遍历用户方案的每条志愿
3. 在crowd_db中查找匹配
4. 返回风险列表
"""
```
#### T2.4 创建扎堆报告展示
**目标**: 在方案生成结果中集成扎堆提示
**文件**:
- `skills/gaokao-college-advisor/SKILL.md` (更新)
- `skills/gaokao-college-advisor/scripts/report_integration.py` (新)
**功能**:
- 方案生成后自动检测扎堆
- 在报告中标注风险等级
- 给出替代建议
#### T2.5 扎堆检测单元测试
**目标**: 完整测试覆盖
**文件**:
- `tests/test_crowd_detection.py`
**测试用例**:
- 高风险院校识别
- 替代方案推荐
- 跨省份处理
- 数据加载异常
---
## T3: 数据溯源功能
### 3.1 任务清单
#### T3.1 扩展院校数据模型
**目标**: 院校数据增加溯源字段
**文件**:
- `data/colleges/hunan.json` (示例)
- `data/colleges/.gitkeep`
- `data/colleges/README.md`
**数据模型**:
```json
{
"name": "湖南工商大学",
"score_2025": 565,
"rank_2025": 28500,
"source": "湖南省教育考试院",
"source_url": "http://jyt.hunan.gov.cn/...",
"source_type": "official",
"data_year": 2025,
"confidence": 0.95,
"last_updated": "2025-08-15"
}
```
#### T3.2 实现溯源数据加载器
**目标**: 加载院校数据 + 溯源元数据
**文件**:
- `data/colleges/loader.py`
- `data/colleges/tests/test_loader.py`
**功能**:
- 加载JSON
- 验证溯源字段
- 提供查询接口
#### T3.3 实现溯源报告生成
**目标**: 报告模板中集成溯源展示
**文件**:
- `skills/gaokao-college-advisor/templates/report_with_trace.html` (新)
- `skills/gaokao-college-advisor/scripts/report_traced.py` (新)
**功能**:
- 加载院校时附带溯源信息
- 在报告中展示
- 标注置信度
#### T3.4 数据溯源CLI
**目标**: 提供数据查询CLI
**文件**:
- `scripts/gaokao-data-trace`
**功能**:
- 输入:院校名称
- 输出:完整数据 + 溯源
---
## T4: 订单管理基础
### 4.1 任务清单
#### T4.1 设计数据模型
**目标**: 设计订单表结构
**文件**:
- `data/orders.db` (新建SQLite)
- `data/orders_schema.sql`
**Schema**:
```sql
CREATE TABLE orders (
id TEXT PRIMARY KEY,
source TEXT NOT NULL,
external_id TEXT,
service_version TEXT NOT NULL,
amount INTEGER NOT NULL,
status TEXT NOT NULL,
customer_name TEXT,
customer_phone_encrypted TEXT,
customer_wechat TEXT,
candidate_info_json TEXT,
assigned_consultant TEXT,
plan_file TEXT,
audit_report TEXT,
pdf_path TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
paid_at TIMESTAMP,
delivered_at TIMESTAMP,
completed_at TIMESTAMP,
notes TEXT,
tags TEXT
);
```
#### T4.2 实现数据访问层
**目标**: orders_dao.py数据库CRUD
**文件**:
- `data/orders_dao.py`
- `data/tests/test_orders_dao.py`
**功能**:
- 创建订单
- 查询订单
- 更新状态
- 统计查询
#### T4.3 实现订单管理CLI
**目标**: 命令行订单管理
**文件**:
- `scripts/gaokao-order-manager`
**子命令**:
- create: 创建订单
- list: 列表
- show: 详情
- update: 更新
- pay: 标记支付
- deliver: 标记交付
- stats: 统计
#### T4.4 实现升级订单流程
**目标**: 49元→99元补差价升级
**文件**:
- `data/orders_dao.py` (扩展)
- `scripts/gaokao-order-manager` (扩展)
**流程**:
1. 原订单标记"已升级"
2. 创建新订单,关联 upgrade_from
3. 金额 = 新版本价格 - 原版本价格
4. 用户支付差价
---
## T5: 集成测试与发布
### 5.1 任务清单
#### T5.1 端到端测试
**目标**: 完整业务流测试
**文件**:
- `tests/test_e2e.py`
**测试场景**:
1. 用户咨询 → 方案生成
2. AI审核 → 报告生成
3. 闲鱼订单 → 管理后台录入 → 服务交付
4. 升级订单流程
5. 数据溯源展示
#### T5.2 性能测试
**目标**: 验证性能指标
**测试**:
- 100次连续方案生成
- 50次审核报告生成
- 数据库查询性能
**指标**:
- 响应时间 < 5秒
- 成功率 > 95%
#### T5.3 文档更新
**目标**: 更新所有相关文档
**文件**:
- `docs/API.md` - 添加新API
- `docs/ARCHITECTURE.md` - 更新架构图
- `skills/gaokao-audit/SKILL.md` - 完善文档
- `CHANGELOG.md` - 添加v2.1变更
#### T5.4 发布准备
**目标**: 准备v2.1发布
**任务**:
- [ ] Git tag v2.1
- [ ] 推送到3个仓库
- [ ] 整理发布说明
- [ ] 备份关键数据
---
## 详细任务时间表
### 第1周 (6/15-6/21)
| 日期 | 任务 | 工时 |
| --------- | ----------------------------- | :--: |
| 6/15 (一) | T1.1 准备数据, T1.2 创建Skill | 8h |
| 6/16 (二) | T1.3 实现plan_parser | 8h |
| 6/17 (三) | T1.3 继续 + 测试 | 8h |
| 6/18 (四) | T1.4 checker_integration | 8h |
| 6/19 (五) | T1.5 crowd_detector | 8h |
| 6/20 (六) | T1.6 audit_service主类 | 8h |
| 6/21 (日) | T1.7 report_generator | 4h |
### 第2周 (6/22-6/28)
| 日期 | 任务 | 工时 |
| --------- | ----------------------------- | :--: |
| 6/22 (一) | T1.8 CLI入口, T1.9 集成龙老师 | 8h |
| 6/23 (二) | T1.10 集成测试 | 8h |
| 6/24 (三) | T2.1 整理大厂AI数据 | 6h |
| 6/25 (四) | T2.2 数据加载器, T2.3 算法 | 8h |
| 6/26 (五) | T2.4 报告集成 | 8h |
| 6/27 (六) | T2.5 扎堆测试 | 6h |
| 6/28 (日) | T3.1 扩展数据模型 | 4h |
### 第3周 (6/29-7/5)
| 日期 | 任务 | 工时 |
| --------- | ------------------------- | :--: |
| 6/29 (一) | T3.2 溯源加载器 | 8h |
| 6/30 (二) | T3.3 溯源报告 | 8h |
| 7/1 (三) | T3.4 数据溯源CLI | 6h |
| 7/2 (四) | T4.1 订单schema, T4.2 DAO | 8h |
| 7/3 (五) | T4.3 订单CLI | 8h |
| 7/4 (六) | T4.4 升级订单流程 | 8h |
| 7/5 (日) | T5.1 端到端测试 | 6h |
### 第4周 (7/6-7/12)
| 日期 | 任务 | 工时 |
| --------- | -------------------------- | :--: |
| 7/6 (一) | T5.1 端到端测试(续) | 8h |
| 7/7 (二) | T5.2 性能测试 | 8h |
| 7/8 (三) | T5.3 文档更新 | 6h |
| 7/9 (四) | T5.3 文档更新(续) | 6h |
| 7/10 (五) | T5.4 发布准备 | 6h |
| 7/11 (六) | T5.4 发布Git tag, 推送) | 4h |
| 7/12 (日) | 收尾、复盘 | 4h |
**总工时**: 约30天
---
## 验收标准
### 每个Task的DoD (Definition of Done)
- [ ] 代码已实现
- [ ] 单元测试已写且通过
- [ ] 集成测试通过(如适用)
- [ ] 文档已更新
- [ ] 已提交到Git
- [ ] 已推送到3个仓库
### 整个v2.1的DoD
- [ ] AI审核服务可运行49元版
- [ ] 反扎堆检测可运行
- [ ] 数据溯源在报告中可见
- [ ] 订单管理可工作
- [ ] 端到端测试100%通过
- [ ] 3个仓库代码同步
- [ ] 文档完整
- [ ] 已通过闲鱼承接2+大厂AI用户
---
## 风险与应对
| 风险 | 可能性 | 影响 | 应对措施 |
| -------------------------- | ------ | ---- | ----------------------- |
| **大厂AI推荐数据收集困难** | 中 | 高 | 手动整理+用户案例补充 |
| **扎堆预测不准** | 中 | 中 | 保守估计+明确标注"预测" |
| **数据溯源链接失效** | 中 | 低 | 定期检查+多源备份 |
| **订单管理SQLite并发** | 低 | 中 | 写入锁+后续可升级 |
| **进度延期** | 中 | 中 | 砍T3.4/4.4等P1功能 |
---
## 相关文档
- [PRD](../product/PRD.md) - 产品需求
- [TECH_ARCHITECTURE](TECH_ARCHITECTURE.md) - 技术架构
- [BUSINESS_SCENE](BUSINESS_SCENE.md) - 业务场景
- [COMPETITIVE_ANALYSIS](COMPETITIVE_ANALYSIS.md) - 竞品分析
---
**版本**: v1.0
**最后更新**: 2026-06-11
**下次评审**: 任务完成后