coder
|
ef4bb46295
|
docs(orders): T4.2 DAO 文档 + 实施记录 + CHANGELOG
- data/orders/README.md: 增加 DAO API 一览表 + 加密透明化边界表
- docs/plans/T4-2-orders-dao.md: 实施记录 (设计原则 / DoD / 验证 / 风险)
- CHANGELOG.md: T4.2 条目(51 用例 / 163 总 / 386 data 全绿)
|
2026-06-12 16:36:32 +08:00 |
|
Hermes Agent
|
6af6e0156b
|
feat(crowd-db): T2.4 扎堆报告生成器 + 端到端渲染验证
- data/crowd_db/risk_report.py: build_crowd_risks 把 RiskFinding 转
模板所需 crowd_risks 字典;高/中/低三色 emoji(🔴/🟡/🟢);
group_by_risk / format_risk_summary / render_risk_table 辅助能力;
LoaderLike Protocol 避免对 CrowdDBLoader 强依赖
- data/crowd_db/tests/test_risk_report.py: 22 用例覆盖三色 emoji、
模板字段、alternatives 重映射、防御 fallback、空方案、不存在
省份、自定义 loader 注入
- scripts/verify_t2_4_e2e.py: 用真实湖南 575 分数据 + audit_report.html
模板渲染一遍,6/6 集成断言通过
- CHANGELOG: T2.4 记录
验证:data/crowd_db/tests/ 105/105、仓库全量 392/392、ruff All checks
passed、validate_template.py PASS
|
2026-06-12 16:35:20 +08:00 |
|
Hermes Agent
|
e18abedb4f
|
feat(orders): T11.2 敏感字段展示脱敏工具 + to_dict 三态策略
- 新增 data/orders/masking.py (141 行):
- mask_phone: 11 位 → 138****1234;支持 +86/86 国家码剥离、空格/横杠分隔符
- mask_id_card: 18 位 → 430102********1234(保留前 6 行政区划 + 末 4);15 位老版兼容;13-14 位非标准也走前 6 后 4 遮罩
- mask_name: 1 字原样 / 2 字 张* / 3 字 张*丰 / 4+ 字 张**;非中日韩字符全遮
- mask_sensitive_dict: 一键遮罩订单字典中所有已知 PII 字段,不动 _enc/_hash 索引/密文
- 默认安全:None/空串/非字符串均不抛错,统一返回 None/''
- 扩展 Order.to_dict(decrypt_sensitive) 三态策略:
- True : 完整明文(权限内接口使用,如后台人工核对)
- False : 完全移除明文(对外公开统计/审计日志)
- 'mask' : 部分遮罩(默认,推荐;列表/详情直接可用)
- 未知字符串策略值回退为 mask(防误传 plaintext 导致明文泄露)
- 新增 data/orders/tests/test_masking.py (246 行,32 个 pytest 用例):
- 覆盖各 mask 函数边界(标准/带 +86/短串/非法输入)
- 覆盖 Order.to_dict 三态与默认 mask 的串联通路
- 验证:
- data/orders/tests 全套 112 用例通过(原 80 + 新增 32)
- 全仓 344/344 通过
- ruff check 0 warning / ruff format --check 已规范
- 与 T4.1 落盘加密的关系:crypto 负责'落盘形态'(密文+hash),
masking 负责'展示形态'(部分遮罩),两者正交互补。
|
2026-06-12 16:26:57 +08:00 |
|
Hermes Agent
|
bdd361e50f
|
docs(orders): T11.2 展示脱敏文档 + 字段分类表更新
- data/orders/README.md 新增 T11.2 段:展示脱敏三态策略示例代码
- 文件结构表新增 masking.py / test_masking.py
- 字段分类表:强/弱敏感 PII 增加'展示遮罩'列
- DoD 勾选'展示脱敏'项
- 版本号 v1.0 → v1.1
代码改动见下个 feat commit(分离便于回滚/review)。
|
2026-06-12 16:26:32 +08:00 |
|
Hermes Agent
|
00e596ab10
|
feat(crowd-db): add provenance query and validation
|
2026-06-12 16:25:05 +08:00 |
|
Hermes Agent
|
a11480cf10
|
feat(orders): add encrypted sqlite order model
|
2026-06-12 15:24:20 +08:00 |
|
hermes-coder
|
29f3f4d362
|
feat(share): T7.1 短链接生成 (base62 + SQLite 映射表)
CI / pytest (Python 3.10) (push) Has been cancelled
CI / pytest (Python 3.11) (push) Has been cancelled
CI / pytest (Python 3.12) (push) Has been cancelled
- data/share/short_link.py (657 行):ShortLinkService 核心模块
- base62 编解码 + secrets.choice 加密随机短码
- SQLite WAL 模式持久化,share_links 表 + 3 索引
- 访问控制:permission (read/comment/edit/admin) + sha256 密码 + expires_at + revoked
- 完整 CRUD: create/get/resolve/revoke/list_by_*/get_stats/purge_expired
- route_short_link() 路由辅助供 Flask/FastAPI 等挂载 /s/<code>
- data/share/tests/test_short_link.py (447 行):25 个 pytest 用例覆盖全部 API
- scripts/gaokao-shortlink (271 行):CLI 入口 (create/resolve/revoke/list/stats/purge)
|
2026-06-12 15:20:10 +08:00 |
|
Hermes Agent
|
55bf84610b
|
feat(crowd_db): T2.3 扎堆检测算法
CI / pytest (Python 3.10) (push) Has been cancelled
CI / pytest (Python 3.11) (push) Has been cancelled
CI / pytest (Python 3.12) (push) Has been cancelled
- 新增 detect_crowd_risk(plan, user_score, province) 入口
- 遍历方案每条志愿,匹配该分数段内 crowd_db 记录
- 风险等级:frequency >=4 high / 2-3 medium / 1 low / 0 跳过
- 院校模糊匹配(互相包含),专业可选
- 支持 dict / CrowdRecommendation / tuple / list 多种 plan 形态
- 支持注入 loader 便于测试,结果按 frequency 降序
- 20 个单元测试覆盖各分支(136/136 全套通过)
|
2026-06-12 11:00:03 +08:00 |
|
Hermes Agent
|
b9673d7501
|
feat(crowd_db): T2.1 扩展湖南数据覆盖 - 专科批+省外顶尖段
- 新增 [440,480] 专科批临界段(4 条)
- 新增 [660,690] 省外顶尖段(清北复交浙,6 条)
- 更新 source 字段说明 T2.1 整理动作
- 总条目 58 -> 68,仍在 50-100 范围内
- 10 个分数段连续覆盖 440-690,无 gap/overlap
- 频次分布 2/3/4 = 18/26/24,平台覆盖均衡
- 5/5 单元测试通过
|
2026-06-12 10:47:40 +08:00 |
|
Hermes
|
552526a3f1
|
feat(crowd_db): T1.1 数据加载器 + 目录完善
- data/crowd_db/README.md 补全字段说明、文件命名、数据来源
- data/crowd_db/hunan.json 已有 T2.1 整理的 8 个分数段 58 条数据
- 新增 loader.py: CrowdDBLoader + CrowdRecommendation
- 省份→文件名映射(湖南→hunan.json) + 多种命名兜底
- load_province / find_recommendations / find_recommendation_by_school
- risk_level 派生属性(frequency>=4=high)
- tests/test_loader.py 5 测试全通过
Plan: docs/plans/T1-1-crowd-db-setup.md DoD 达成
|
2026-06-12 10:29:53 +08:00 |
|
Hermes Agent
|
a146fe942c
|
feat(audit): 完整审核+修订版实施计划
【审核工作】
基于 plan-audit skill 对 11 份文档(5874行)做完整审核:
- 文档完整性: A级 ✅
- 业务对齐: A级 ✅
- 差异化策略: A级 ✅
- 技术选型: A级 ✅
- 任务分解: A级 ✅
- 行业实践: C级 🔴 (5/10)
- 实施可执行: B级 🟡 (62.5%)
【发现14项差距】
4项重大缺失:
G-01: Web端完全未在实施计划
G-02: 管理后台(432行设计)无对应实施
G-03: 分享功能(274行设计)无对应实施
G-04: AI审核PRD标P1但实际应P0
4项中等缺失:
G-05: 测试覆盖仅6用例(需≥80%)
G-06: 渠道SDK集成未设计
G-07: 错误处理体系缺失
G-08: CI/CD流程未设计
3项设计偏差:
D-01: data/crowd_db目录不存在
D-02: 性能目标无验证任务
D-03: 数据加密未实施
3项建议优化
【关键产出】
1. docs/AUDIT_REPORT_2026-06-11.md (382行)
- 完整审核报告
- 行业最佳实践对照
- 风险评估
- 行动建议
2. docs/REMEDIATION_TASK_BOARD_2026-06-11.md (386行)
- 14项修复任务清单
- 最短闭环路径
- 决策记录
3. docs/IMPLEMENTATION_PLAN_v2.md (412行)
- 11个核心任务(原5个+新增6个)
- 工期30天→40天
- 强制TDD覆盖率门槛
- 6周详细时间表
【已修复P0】
- PRD: F020 AI审核 P1→P0
- 创建 data/crowd_db/ 目录(D-01修复)
- 修订IP为v2版(10.1→11任务)
- 加入测试覆盖率门槛
【决策记录】
D-01: AI审核提升至P0
D-02: 管理后台/分享纳入MVP
D-03: Web端推迟到v2.3
D-04: 测试覆盖设硬指标
D-05: CI/CD简化版
【行业实践差距】
标准达标: 5/10 (50%)
- 测试覆盖: 🔴
- 错误处理: 🔴
- CI/CD: 🔴
- 降级策略: 🔴
- API版本: 🔴
- 日志审计: 🟡
- 性能监控: 🟡
- 数据备份: 🟡
- 安全认证: 🟡
- 文档: 🟡
【下一步】
启动T1 AI审核服务实施(10天)
|
2026-06-12 10:05:13 +08:00 |
|
Hermes Agent
|
6b067d9c24
|
v2.0: 初始化项目,建立完整目录结构
- 创建项目目录 /home/long/projects/gaokao-volunteer-system/
- 迁移3个Skills(gaokao-college-advisor, gaokao-spec-checker, zhangxuefeng-skillset)
- 迁移独立脚本(5个当前版本+4个legacy版本)
- 复制所有文档和示例
- 创建规则库(rules/)
- provinces/ 省份规则
- errors/ 错误模式库(15种)
- 创建文档体系(docs/)
- case-studies/ 真实案例
- optimization-log/ 优化日志
- future-plan.md 未来规划
- 添加 .gitignore 排除临时文件
- 添加 README.md 和 CHANGELOG.md
- 已支持27个省份自动适配
- 已识别15种错误模式
|
2026-06-11 16:06:34 +08:00 |
|