标题(20-200 字符) · 锁定 title 仅 draft 状态可编辑。如需修改,请先回退到 draft。 描述(背景/上下文) 【scheduled】audit scan.py 抑制 self-test 副作用 + 3 项自审能力改进。 ## 背景(已记录于 REQ 创建时) 2026-06-28 处理 25 条 scan.py burst feedback,根因分析确认 scan.py _safe_emit_fatal() 无条件 emit,pytest fixture (test_main_lock_blocks / test_main_hard_gate_blocker_exits) 触发 scan.main() 时每次都向 arch 平台写一条 fake feedback。pytest tmp_path 出现在 summary 中(/tmp/pytest-of-hq/pytest-XXX/test_main_lock_blocks0/...)。 **影响**:反馈信道被噪声污染,真实 feedback 被淹没。违反 CLAUDE.md 反馈原则 + 一致性原则。 ## 用户故事 作为 audit 用户,我希望 scan.py 在测试环境/dry-run 模式下不 emit feedback,这样反馈信道不被噪声污染。同时希望 --self-check scope 隔离、PositioningStabilityCheck 读 changelog、--json flag 发版纳入。 ## 验收标准 T1: pytest 跑 test_scan.py:test_main_lock_blocks / test_main_hard_gate_blocker_exits 不再 emit 任何 arch feedback T2: scan.py --self-check 输出 finding <30 条(从 ~134) T3: changelog 中已登记的 description 变更不产生 warn T4: scan.py --json 输出结构化 JSON 可被 arch-platform 自审消费 ## 任务清单 - T1 scan.py emit 抑制:--no-emit CLI flag / PYTEST_CURRENT_TEST 检测 / dry-run 自动 no-emit - T2 --self-check scope 隔离:AuditConfig.scan_root 字段 / lib/modules/ 改 cfg.scan_root 函数级读取 - T3 PositioningStabilityCheck 读 changelog:## Changelog 解析 / 描述变更日期匹配则豁免 - T4 --json flag 发版纳入:本地 commit 已存在,等 audit skill 下次发版 ## 关联 - 原 FB:5d361525 / 0ace3c94 / f2f10e7a / efcf954e burst 25 条代表 - 复用 component:audit v1.1.0 (f8059a73) ## 依赖 - 与 REQ-8221cc84(W-A 父)同主题但目标独立,scope 不冲突,可并行 用户故事 验收标准(JSON,数组,每项 given/when/then) [] 支持 JSON 数组格式。空数组表示无 AC。 非功能需求(JSON 对象,key/value 字符串) {} 优先级 P0 P1 P2 P3 负责人 截止日期 标签(逗号分隔) 保存修改 取消