refactor(web): Step 5 去 LLM 推测 + Step 2 UI 隐藏 + hidden step 提交过滤
本批 3 个独立任务合并提交(互相有依赖:hidden 机制引入 → 暴露了一个 bug → 修复)。
【Step 5 缺失注释字段检查:去 LLM 推测,改纯规则】
- web/core/step_impl/step5_missing_comments.py(全文重写)
· 删 LLMClient 导入 / llm 参数 / 整段批量推测逻辑
· TabProtocol 简化为 4 列:表名+注释 / 字段名 / 类型 / 可空
· 新增 _is_missing() 工具函数
· 输出 missing_comments[:200](限制条数,避免渲染过大)
- web/core/orchestrator.py
· _run_missing_comments 不再向 step5 传 llm(签名保留 # noqa: ARG001)
· register_step("missing_comments", ...) llm_mode="none" + title/desc/detail 全重写
· CRITICAL_STEPS: {"merge_redundancy", "missing_comments"} → {"merge_redundancy"}
· 顶部 docstring L9 同步
- CLAUDE.md
· 目标 L10 加变更说明
· LLM 依赖表 Step 5: required → none,预检提示改 "Step 2"
【Step 2「表合并与冗余字段分析」UI 隐藏:通用 hidden 机制】
- web/core/orchestrator.py
· StepDef 加 hidden: bool = False 字段
· register_step() 同步加 hidden 入参
· merge_redundancy 注册设 hidden=True
· 顶部 docstring L7 加 "UI 隐藏" 标注
- web/api/routes.py(/api/analysis-tree)
· by_id 过滤 sd.hidden
· 遍历 children 时 hidden/unregistered 不记入 missing(避免误导)
· 「未分组」兜底组自然不会泄露 hidden step
- web/configs/analysis_tree.json
· 「基础检查」组直接删掉 merge_redundancy 那行(之前用 // 注释导致 JSON 解析失败,已纠正)
- CLAUDE.md · LLM 依赖表 Step 2 加 "2026-08-11 起 UI 隐藏,但代码保留"
【hidden step 提交过滤(隐藏 step 仍被执行 的 bug 修复)】
- web/api/routes.py(/api/steps)
· 与 /api/analysis-tree 一致:for sd in get_step_defs() if not sd.hidden
- web/static/index.html(loadSteps)
· 新增兜底分支:form.steps 非空时也清掉残留 hidden step
(应对浏览器未刷新 / Vue 状态缓存)
【关键:hidden 只影响 UI 入口】
- 后端 run_job() 不加 hidden 校验 —— 保留「代码保留可手动触发」的灵活性
- 手动 POST /api/jobs 指定 hidden step 仍能跑(内测可用)
- CRITICAL_STEPS 不动 —— hidden step 不在提交路径上,自然不会失败终止
【未提交】
- scripts/_tmp_build_violations_md.py(一次性调试脚本)
- data_dictionary/standard_fields_violations_report.md(生成报告)
docs/WORKLOG.md 顶部已追加本次 3 个任务的完整记录(含根因 + 验证 + 后续如何加回 LLM)。
Showing
This diff is collapsed.
Please register or sign in to comment