diff --git a/docs/consultant-review/audit-tracker.json b/docs/consultant-review/audit-tracker.json index fc4ec20..a73e0fc 100644 --- a/docs/consultant-review/audit-tracker.json +++ b/docs/consultant-review/audit-tracker.json @@ -1188,10 +1188,10 @@ "zh_title": "当降低 CRF 毫无效果:视频转码中 -maxrate 封顶与 SSIM 质量门禁的死锁", "category": "devops", "pub_date": "2026-10-27", - "status": "pending", + "status": "approved", "batch_id": "Batch-07", - "approved_at": null, - "notes": "2026-10-28 打包送审(Batch-07);发布先于审阅,结论回填后更新状态", + "approved_at": "2026-10-28 09:32", + "notes": "Batch-07 外部顾问审阅「需微调 → 通过」(事实4.8/人设4.7/CRO4.8/OPSEC4.7)。已落地:清日志残留符号、499 跨跳因果改写、I/O 余量措辞、details class+行数、双语第二人称清零、three→four、中文与含反引号标题补显式锚点;详见 report-batch-07.md", "en_chars": 8906, "zh_chars": 5042 }, @@ -1201,10 +1201,10 @@ "zh_title": "为什么 ffmpeg -map 0 会搞崩混流:跨容器多音轨、字幕与字体的深水区", "category": "engineering", "pub_date": "2026-10-27", - "status": "pending", + "status": "approved", "batch_id": "Batch-07", - "approved_at": null, - "notes": "2026-10-28 打包送审(Batch-07);发布先于审阅,结论回填后更新状态", + "approved_at": "2026-10-28 09:32", + "notes": "Batch-07 外部顾问审阅「需微调 → 通过」(事实4.8/人设4.7/CRO4.8/OPSEC4.7)。已落地:清日志残留符号、499 跨跳因果改写、I/O 余量措辞、details class+行数、双语第二人称清零、three→four、中文与含反引号标题补显式锚点;详见 report-batch-07.md", "en_chars": 10877, "zh_chars": 7332 }, @@ -1214,10 +1214,10 @@ "zh_title": "反代超时返回 HTML,前端报 SyntaxError:一次 499 事故复盘", "category": "engineering", "pub_date": "2026-10-28", - "status": "pending", + "status": "approved", "batch_id": "Batch-07", - "approved_at": null, - "notes": "2026-10-28 打包送审(Batch-07);发布先于审阅,结论回填后更新状态", + "approved_at": "2026-10-28 09:32", + "notes": "Batch-07 外部顾问审阅「需微调 → 通过」(事实4.8/人设4.7/CRO4.8/OPSEC4.7)。已落地:清日志残留符号、499 跨跳因果改写、I/O 余量措辞、details class+行数、双语第二人称清零、three→four、中文与含反引号标题补显式锚点;详见 report-batch-07.md", "en_chars": 15520, "zh_chars": 8813 } diff --git a/docs/consultant-review/reports/report-batch-07.md b/docs/consultant-review/reports/report-batch-07.md new file mode 100644 index 0000000..497268a --- /dev/null +++ b/docs/consultant-review/reports/report-batch-07.md @@ -0,0 +1,45 @@ +# Batch-07 审阅回执与落地记录(2026-10-28) + +**顾问结论**:A、B、C 三篇 **「需微调 → 通过」**,全部无需下线或重写。 +**四维得分**:事实 4.8 / 人设 4.7 / CRO 4.8 / OPSEC 4.7(对标 Batch-01~05 口径)。 +**核心裁决**:第五章 Q-A(缓存读 vs 全量审计是否苹果比橘子)与 Q-B(2,507 s 未做归因拆段)**均判定表述合规,无需补跑实验**;Q-B 仅建议顺带加固措辞。 + +--- + +## 一、落地清单(每一项均已改、已构建、已上线验证) + +| 编号 | 篇 | 顾问意见 | 落地方式 | 线上验证 | +|---|---|---|---|---| +| A-1 | A | 英文日志块第 5 行混入 `93.5s → 165.1s` 编辑残留,真实日志不可能有 `→` | 改为 `automation counts refreshed in 165.1s`,与中文版/第四章/第九章的 8 条记录一致 | `93.5s → 165.1s` 在 EN/ZH 页面均 **不再出现** | +| A-2 | A | 补齐「上游 SSO 门禁记 499、portal 只看到调用方离场」的咬合关系 | EN:`499` is the status portal nginx writes when its **caller** — here, the upstream SSO gate whose own timer expired well before the portal's 120-second limit — closes the connection…;ZH 同义改写 | EN/ZH 页面均命中「upstream SSO gate / SSO 门禁」 | +| A-3 | A | 金句加固(兼顾 I/O)+ 52 行代码不自包含 | 金句改为「CPU and I/O headroom it is allowed to borrow」/「CPU 与 I/O 余量」;`_automation_refreshing()` 调用改为读 `_automation_refreshing_flag[0]` | 已随构建上线 | +| A-4 | A | (我自查追加)`` 行数与实际不符 | 实测 53 行 / 18 行,原写 52 / 22 → 已改为 **53 行 / 18 行**(中英一致) | 折叠标题正确 | +| B-1 | B | 英文末段残留 `your` | 改为 `In an automated transcoding pipeline, quality metrics can never be evaluated in isolation from the rate-control ceiling.` | EN 正文 `you/your` **0 命中** | +| B-2 | B | 裸 `
`、`` 无产物与行数 | 改为 `
` + `🔍 … evaluate_quality_gate() (28 lines)` / `(28 行)`(实测 28 行) | 6 个页面 `tech-deep-dive` 全部命中 | +| B-3 | B | 中文 `jumpLinks` 依赖中文标题自动锚点 | 三条 `jumpLinks` 改英文 id,三处 H2 补 `` | dist 锚点审计 **OK ×3** | +| C-1 | C | 导语「三类」却列 4 条 | EN `four distinct ways` / ZH「四类」 | EN 页面实测 `fails catastrophically in four distinct ways` | +| C-2 | C | 双语 4 处第二人称 | 三处改写为无人称/第一人称(第一部分末段 EN/ZH、第四部分首段 EN) | EN/ZH 正文 `you/your/你` **0 命中** | +| C-3 | C | 裸 `
`、无行数 | `class="tech-deep-dive"` + `🔍 … (61 lines)` / `(63 行)`(按实际行数,非顾问估的 58/60) | 上线命中 | +| C-4 | C | 中文标题含反引号,锚点易漂移 | 三条 `jumpLinks` 改英文 id + 三处 H2 补 ``;**同时发现 EN 侧同类问题**:`## The naive \`-map 0\` …` 实际 slugify 成 `the-naive--map-0-…`(双连字符),已在该 H2 补显式 `` | dist 锚点审计 **EN/ZH 均 OK ×3** | + +## 二、未采纳的一项(已评估,理由留档) + +**C 篇英文标题 `Why ffmpeg -map 0 Breaks Your Remux: …` 中的 `Your`** —— 顾问标注为可选。 +未改原因:① 铁律约束的对象是**技术正文**,标题不在此列;② 改标题需连带重渲染 OG 卡片与中文标题对齐,且 slug 不能动(已收录);③ `Breaks Your Remux` 是更强的标题。**若顾问坚持,我按修改执行,代价是一次 OG 重渲染。** + +## 三、验证方式(不是看状态灯) + +- `node scripts/check-assets.mjs` → `assets: 188 published posts OK` +- `npm run build` → 静态页重新生成,Pagefind 索引重建 +- 六页线上实测:全部 `200`,`exec-summary` / `dynamic-cta` / `tech-deep-dive` **3/3 命中** +- dist 锚点审计:6 个页面 × 3 条 `jumpLinks`,实际 `id=` 全部对上(其中 EN-`-map 0` 一条由显式 `` 兜底) +- 正则闸门:三篇 EN/ZH 正文 `you|your|你` **0 命中**(仅剩 C 篇英文标题与两条图片路径含 `your`,均在正文之外) + +## 四、流程改进(已写入技能) + +本轮暴露的 4 类破绽全部属于「自动正则覆盖不到」的细节,已在 `hoelee-blog-publishing-sop` 技能中加入**出厂四闸门**,任何新稿发布前必过: + +1. 全文正则扫 `you|your|你`(正文,中英各一遍) +2. `
` + `` 写明产物与**实测**行数 +3. 中文 H2 一律补显式英文 ``(含**含反引号/连字符**的标题,slugify 会吃掉或重复连字符) +4. 导语里的数量词与下方列表项数逐条对齐;日志/输出块里的 `→` 等编辑符号一律清掉