docs: 注释规范要求精简可读,并清理生产代码中的历史叙事
AGENTS.md 的注释规范新增三节可执行约束:
- 只写代码真实逻辑:注释只回答"做什么"与"为什么必须这么做",禁止写决策/
修改时间、历史版本对比、实测数据与实验结论、事故与缺陷编号(run_xxxx /
batch_xxxx / R01 等)——这些属 docs/decisions.md 与审查跟踪文件;当前生效
的约束可以写,但不附带它何时因何变成这样。
- 精简可读:单段连续注释不超过 3 行;docstring 一句话概括职责,不重复函数名
已表达的信息;不写逐行翻译代码的废话注释,只在非显然处(业务规则、边界、
易错点、外部约束)加注。
- 覆盖范围:测试注释只说明验证什么行为,回归用例可保留一句溯源;并明确
参数说明应写在**参数读取处**附近,而不是把多个参数的解释堆在离使用位置
很远的注释块里。
按此清理生产代码(注释净减 70 行,18 个文件),典型处理:
- nodes/whisper.py:删掉堆在一起、含"用户 2026-08 决定 / 实测 savr-1054"
等叙事的参数块,把各参数说明移到各自的读取处与 model.transcribe 调用处;
- nodes/llm_filter.py、nodes/subtitle_cleanup.py:模块 docstring 去掉英文
背景叙事与条数统计,保留"默认只跑规则层""整条删除而非 '-' 占位"等当前
行为;
- src/wov_app/{batch,db,scheduler}.py 与 routers:去掉 batch_xxx/run_xxx 事故
编号与"修复前……"对比,改为一句"否则会出现什么问题";
- nodes/ass.py、frame_extract.py:去掉废弃值对比与日期,保留判据本身。
安全验证:用 AST 对比(剥离 docstring 后比较语法树)确认 18 个文件**零逻辑
变更**;`nodes/proper_nouns.py` 的规则表 reason 字段会注入 LLM 提示词,属于
数据而非注释,已恢复原值。全量测试 476 passed。
This commit is contained in:
@@ -130,7 +130,7 @@ def test_style_row_uses_translucent_fill_and_outline() -> None:
|
||||
|
||||
|
||||
def test_default_margin_top_is_700() -> None:
|
||||
"""默认顶部安全边距常量是 700(2026-09 调整,历史 120 已废弃)。"""
|
||||
"""默认顶部安全边距常量为 700(样式单一事实来源,改动需同步文档)。"""
|
||||
# 数据:模块常量。
|
||||
# 测试过程与验证结果
|
||||
assert DEFAULT_MARGIN_TOP == 700
|
||||
|
||||
@@ -401,8 +401,8 @@ def test_invoke_fails_when_input_missing(tmp_path: Path) -> None:
|
||||
def test_rule_layer_on_real_ocr_output(tmp_path: Path) -> None:
|
||||
"""真实任务 1666 条 OCR 输出:规则层产出与已确认基线一致。
|
||||
|
||||
基线(2026-09 人工审查确认):保留 863 条、删除 803 条,且不再有任何
|
||||
真实对话被误删(旧 LLM 层误删 73 条)。基线变动需同步 docs/decisions.md。
|
||||
基线:保留 863 条、删除 803 条,且无真实对话被误删。基线变动需同步
|
||||
docs/decisions.md 与本文件的期望值。
|
||||
"""
|
||||
# 数据:真实任务 run_ac7f480a3ccb 的 OCR 输出。
|
||||
if not REAL_OCR_SRT.is_file():
|
||||
|
||||
@@ -450,7 +450,7 @@ def test_invoke_keeps_moan_when_filter_disabled(tmp_path: Path, monkeypatch) ->
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
# 已废弃的模型目录(不得用于测试):V3 已全面停用,全部改用 V2。
|
||||
# 已废弃的模型目录:全系统只用 V2,V3 权重不得进入测试。
|
||||
_DEPRECATED_MODEL_DIRS = ("faster-whisper-large-v3",)
|
||||
|
||||
|
||||
@@ -460,8 +460,8 @@ def _v2_model_candidates() -> list[Path]:
|
||||
解析顺序:
|
||||
1. `nodes.whisper` 文档化的默认候选(通用 V2 转写模型);
|
||||
2. `model/` 下其它已下载的 V2 权重(例如中文直出模型)。
|
||||
V3 权重已全面停用(用户 2026-09 决定:均改用 V2),即使留在盘上也不得
|
||||
被测试使用,否则测的不是线上实际运行的模型。
|
||||
V3 权重已全面停用(全系统只用 V2),即使留在盘上也不得被测试使用,
|
||||
否则测的不是线上实际运行的模型。
|
||||
"""
|
||||
candidates = [p for p in _local_model_candidates() if p.name not in _DEPRECATED_MODEL_DIRS]
|
||||
model_root = Path(__file__).resolve().parents[3] / "model"
|
||||
|
||||
Reference in New Issue
Block a user