Files
study-tool 106818cfc2 docs: 消解 AGENTS.md 规则冲突,项目契约迁入架构文档
现象:AGENTS.md 里 5 处规则互相打架——逐次询问 vs 认领/提交/升版本;不构建 vs 前端必须
build;全部提交 vs 禁 add -A;每次提交 bump 版本号,而实际 24 次提交版本仍是 0.0.8。
docs/agent_board.md 没有 Agent 列,认领规则无法落地;docs/agent_workflow.md 是 0 字节;
docs/todo.md 与 docs/progress/todo.md 双账本漂移,旧文件还写 platforms/gdgxk.py。

根因:规则按「想防的事」逐条追加,没有回头消解冲突;项目契约和 Agent 行为混在同一个入口文件里。

边界:
- AGENTS.md 只留行为规则;日志 / 目录 / 插件契约指向 docs/architecture.md(两节内容已并入,未丢失)
- 版本号改为只在发版提交时 bump,普通提交不动
- 看板改四列表头,状态带时间戳「进行中 (MM-DD HH:mm)」,超 24h 可接管
- 删除 docs/todo.md;其中 2 条仍未修的代码问题已迁入 docs/progress/todo.md,待办按 待做 / 已知偏差 / 未验证 重排
- 不改代码、不改版本号、不打 tag

运行了什么:git status 自查(只提交这 6 个文档文件,uv.lock 是原有改动未提交);提交时 pre-commit 跑 ruff / web typecheck / commitizen
没跑什么:没跑测试、没构建、没跑 pnpm build(本次无代码改动)
2026-11-01 20:06:23 +08:00

2.7 KiB
Raw Permalink Blame History

后续待办

待做

  • 登录日志的 key 用错维度:routes/accounts.py 的 _log_login() 拿用户名(手机号)当 key 写 run_log,而卡片 「课程日志」按账号 id 读,两边对不上——登录行只有「登录记录」页能看到。要么统一成账号 id,要么卡片同时聚合两个 key。
  • ddddocr 的报错提示会误导:plugins/gdgxk/utils/login.py 把任何导入失败都写成「需要先装 ddddocr(pip install ddddocr)」, uv sync 在应用运行期间改写包造成的 DLL load failed 也会被说成「没装」。应区分 ImportError 与 OSError(DLL), 并把真实异常写进 runtime.log。
  • 前端补一条自动化回归(Playwright):空态、账号卡片、测验弹窗、设置保存、平台下拉。
  • pre-commit 首次接入还没跑过全量:ruff-format 会重排约 30 个文件,ruff check 会报 plugins/guanyixue/script/study_video.py:34 的 E402(脚本先改 sys.path 再 import,加 # noqa: E402 即可)。 找一次专门的提交跑 pre-commit run --all-files,别混进功能改动里。
  • 构建检查进 CI:cd web && pnpm install --frozen-lockfile && pnpm typecheck && pnpm build, 并校验 static/ 与源码同步。
  • 广东公需课:视频弹题仍未接入;answer.py 的两套按序答案留作考核备选,暂未使用。
  • 推送渠道目前只有呆呆面板(plugins/daidai_push/):要接 WxPusher / Telegram / 邮件,按 "kind": "notify" 再建一个插件目录即可,核心不用改;notify.send() 会发给所有已加载渠道。
  • 接入第二个学习平台时,建 plugins/<名字>/(plugin.json + main.py 的 Platform 子类),实现 session / login / list_courses / discover / study 并注册;账号在「添加账号」里选平台后即可用,登录与课程发现不需要再改路由。

已知偏差

  • 测验 /api/quiz/submit 已改成按 registry.get(platform).quiz_submit 分发(公需课也能交卷),但 /api/quiz* 三个接口仍由莞易学插件注册: 停用莞易学后公需课的「打开测验」会 404。要让接口彻底跟插件解耦,需把它们挪到 routes/,并把 AI 答题的提示词 / 解析一起下沉到核心。
  • engine.py 的 legacy / spa 日志标签、enable_quiz / optQuiz 字段、snapshots 表仍带着莞易学的概念, 有第二个平台再决定是否抽象。

未验证

  • 广东公需课:用一门未学完的课实测进度上报,确认平台端「已学时长 / 已完成」状态跟着变。
  • 广东公需课:试卷考核已接入(utils/exam.py:解析内嵌题面 → 题库/AI 答题 → finishTest2 交卷),待用 一门只差考核的课实测交卷响应与得分。