From d454ebd505c93440c797877d15f542a84c779bbe Mon Sep 17 00:00:00 2001 From: hoelee Date: Tue, 27 Oct 2026 04:13:47 +0800 Subject: [PATCH] docs(review): record approval and feedback resolution for batch-04 (consultant batch-05) --- docs/consultant-review/AUDIT-TRACKER.md | 22 ++++---- docs/consultant-review/audit-tracker.json | 56 +++++++++---------- .../reports/report-batch-04.md | 20 +++++++ 3 files changed, 59 insertions(+), 39 deletions(-) create mode 100644 docs/consultant-review/reports/report-batch-04.md diff --git a/docs/consultant-review/AUDIT-TRACKER.md b/docs/consultant-review/AUDIT-TRACKER.md index 358ee36..5022899 100644 --- a/docs/consultant-review/AUDIT-TRACKER.md +++ b/docs/consultant-review/AUDIT-TRACKER.md @@ -1,7 +1,7 @@ # 全站文章顾问审阅状态总控台 (Audit Tracker) -> **最后同步时间**:2026-10-27 04:06:09 -> **全站总文章数**:91 篇 | **已审批完成**:20 篇 (22.0%) | **待审阅**:71 篇 +> **最后同步时间**:2026-10-27 04:09:14 +> **全站总文章数**:91 篇 | **已审批完成**:29 篇 (31.9%) | **待审阅**:62 篇 ## 一、操作命令速查 - `python scripts/manage_review.py list` — 查看待审与已审概览 @@ -50,15 +50,15 @@ | 36 | `devops` | `docker-reported-exit-0-the-oom-killer-disagreed` | Docker 报告退出码 0,内核却早已执行 OOM-Kill | ✅ 已通过 | Batch-03 | 2026-10-27 03:49 | 外部顾问审阅完成,已采纳并落地全量修改意见 | | 37 | `devops` | `every-player-stuttered-the-file-was-fine` | 每个播放器都在同一个视频上卡顿,而文件本身是无辜的 | ✅ 已通过 | Batch-03 | 2026-10-27 03:49 | 外部顾问审阅完成,已采纳并落地全量修改意见 | | 38 | `devops` | `hardening-a-tor-onion-service` | 加固 Tor 洋葱服务:真正重要的是什么 | ✅ 已通过 | Batch-03 | 2026-10-27 03:49 | 外部顾问审阅完成,已采纳并落地全量修改意见 | -| 39 | `devops` | `it-reported-success-nothing-had-changed` | 它报告了成功,可实际上什么都没变 | ⏳ 待审阅 | Batch-04 | - | | -| 40 | `devops` | `n8n-v1-to-v2-upgrade-gotchas` | n8n v1 升级到 v2:一个日志文件里的七项废弃警告 | ⏳ 待审阅 | Batch-04 | - | | -| 41 | `devops` | `one-hostname-public-tracker-sso-dashboard` | 公开的埋点与要 SSO 的仪表盘,怎么共用一个域名 | ⏳ 待审阅 | Batch-04 | - | | -| 42 | `devops` | `passbolt-hang-three-failure-modes` | Passbolt 界面反复卡死——一个缺失的配置文件引发的三种故障模式 | ⏳ 待审阅 | Batch-04 | - | | -| 43 | `devops` | `patching-workbench-26-for-mariadb` | 当数据库客户端对你撒谎:为 MariaDB 修补 Workbench 26 | ⏳ 待审阅 | Batch-04 | - | | -| 44 | `devops` | `php2shell-patching-every-php-runtime-i-manage` | PHP2Shell:我管的每台机器,PHP 运行时全都中了 | ⏳ 待审阅 | Batch-04 | - | | -| 45 | `devops` | `putting-a-front-door-on-an-app-you-cant-modify` | 给自己改不了源码的应用装一扇前门 | ⏳ 待审阅 | Batch-04 | - | | -| 46 | `devops` | `read-only-nocodb-dashboard-for-a-remote-database` | 给另一台机器上的数据库配一个 NocoDB 只读看板 | ⏳ 待审阅 | Batch-04 | - | | -| 47 | `devops` | `replacing-rdpguard-with-ipban` | 用 IPBan 替换 RDPGuard:没人写出来的三个坑 | ⏳ 待审阅 | Batch-04 | - | | +| 39 | `devops` | `it-reported-success-nothing-had-changed` | 它报告了成功,可实际上什么都没变 | ✅ 已通过 | Batch-04 | 2026-10-27 04:09 | 外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补) | +| 40 | `devops` | `n8n-v1-to-v2-upgrade-gotchas` | n8n v1 升级到 v2:一个日志文件里的七项废弃警告 | ✅ 已通过 | Batch-04 | 2026-10-27 04:09 | 外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补) | +| 41 | `devops` | `one-hostname-public-tracker-sso-dashboard` | 公开的埋点与要 SSO 的仪表盘,怎么共用一个域名 | ✅ 已通过 | Batch-04 | 2026-10-27 04:09 | 外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补) | +| 42 | `devops` | `passbolt-hang-three-failure-modes` | Passbolt 界面反复卡死——一个缺失的配置文件引发的三种故障模式 | ✅ 已通过 | Batch-04 | 2026-10-27 04:09 | 外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补) | +| 43 | `devops` | `patching-workbench-26-for-mariadb` | 当数据库客户端对你撒谎:为 MariaDB 修补 Workbench 26 | ✅ 已通过 | Batch-04 | 2026-10-27 04:09 | 外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补) | +| 44 | `devops` | `php2shell-patching-every-php-runtime-i-manage` | PHP2Shell:我管的每台机器,PHP 运行时全都中了 | ✅ 已通过 | Batch-04 | 2026-10-27 04:09 | 外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补) | +| 45 | `devops` | `putting-a-front-door-on-an-app-you-cant-modify` | 给自己改不了源码的应用装一扇前门 | ✅ 已通过 | Batch-04 | 2026-10-27 04:09 | 外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补) | +| 46 | `devops` | `read-only-nocodb-dashboard-for-a-remote-database` | 给另一台机器上的数据库配一个 NocoDB 只读看板 | ✅ 已通过 | Batch-04 | 2026-10-27 04:09 | 外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补) | +| 47 | `devops` | `replacing-rdpguard-with-ipban` | 用 IPBan 替换 RDPGuard:没人写出来的三个坑 | ✅ 已通过 | Batch-04 | 2026-10-27 04:09 | 外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补) | | 48 | `devops` | `space-reclamation-wasnt-stuck-it-was-waiting` | 空间回收没卡住,它只是在等明天早上 09:29 | ⏳ 待审阅 | Batch-05 | - | | | 49 | `devops` | `synology-spreadsheet-api-is-a-container` | Synology 电子表格 API 是一个容器,不是一个 API 端点 | ⏳ 待审阅 | Batch-05 | - | | | 50 | `devops` | `that-dying-ssd-was-just-a-bad-sata-cable` | 我差点把这颗 SSD 送修——真正坏的是 SATA 数据线 | ⏳ 待审阅 | Batch-05 | - | | diff --git a/docs/consultant-review/audit-tracker.json b/docs/consultant-review/audit-tracker.json index 5e81c7b..acb4bb9 100644 --- a/docs/consultant-review/audit-tracker.json +++ b/docs/consultant-review/audit-tracker.json @@ -395,10 +395,10 @@ "zh_title": "它报告了成功,可实际上什么都没变", "category": "devops", "pub_date": "2026-10-08", - "status": "pending", + "status": "approved", "batch_id": "Batch-04", - "approved_at": null, - "notes": "", + "approved_at": "2026-10-27 04:09", + "notes": "外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补)", "en_chars": 8349, "zh_chars": 3886 }, @@ -460,10 +460,10 @@ "zh_title": "n8n v1 升级到 v2:一个日志文件里的七项废弃警告", "category": "devops", "pub_date": "2026-09-18", - "status": "pending", + "status": "approved", "batch_id": "Batch-04", - "approved_at": null, - "notes": "", + "approved_at": "2026-10-27 04:09", + "notes": "外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补)", "en_chars": 12262, "zh_chars": 6712 }, @@ -486,10 +486,10 @@ "zh_title": "公开的埋点与要 SSO 的仪表盘,怎么共用一个域名", "category": "devops", "pub_date": "2026-09-30", - "status": "pending", + "status": "approved", "batch_id": "Batch-04", - "approved_at": null, - "notes": "", + "approved_at": "2026-10-27 04:09", + "notes": "外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补)", "en_chars": 14400, "zh_chars": 6837 }, @@ -512,10 +512,10 @@ "zh_title": "Passbolt 界面反复卡死——一个缺失的配置文件引发的三种故障模式", "category": "devops", "pub_date": "2026-01-07", - "status": "pending", + "status": "approved", "batch_id": "Batch-04", - "approved_at": null, - "notes": "", + "approved_at": "2026-10-27 04:09", + "notes": "外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补)", "en_chars": 7864, "zh_chars": 4187 }, @@ -525,10 +525,10 @@ "zh_title": "当数据库客户端对你撒谎:为 MariaDB 修补 Workbench 26", "category": "devops", "pub_date": "2026-09-19", - "status": "pending", + "status": "approved", "batch_id": "Batch-04", - "approved_at": null, - "notes": "", + "approved_at": "2026-10-27 04:09", + "notes": "外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补)", "en_chars": 15965, "zh_chars": 9501 }, @@ -538,10 +538,10 @@ "zh_title": "PHP2Shell:我管的每台机器,PHP 运行时全都中了", "category": "devops", "pub_date": "2026-10-23", - "status": "pending", + "status": "approved", "batch_id": "Batch-04", - "approved_at": null, - "notes": "", + "approved_at": "2026-10-27 04:09", + "notes": "外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补)", "en_chars": 22354, "zh_chars": 12531 }, @@ -564,10 +564,10 @@ "zh_title": "给自己改不了源码的应用装一扇前门", "category": "devops", "pub_date": "2025-06-24", - "status": "pending", + "status": "approved", "batch_id": "Batch-04", - "approved_at": null, - "notes": "", + "approved_at": "2026-10-27 04:09", + "notes": "外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补)", "en_chars": 13927, "zh_chars": 7415 }, @@ -577,10 +577,10 @@ "zh_title": "给另一台机器上的数据库配一个 NocoDB 只读看板", "category": "devops", "pub_date": "2026-09-29", - "status": "pending", + "status": "approved", "batch_id": "Batch-04", - "approved_at": null, - "notes": "", + "approved_at": "2026-10-27 04:09", + "notes": "外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补)", "en_chars": 12009, "zh_chars": 6287 }, @@ -603,12 +603,12 @@ "zh_title": "用 IPBan 替换 RDPGuard:没人写出来的三个坑", "category": "devops", "pub_date": "2026-09-19", - "status": "pending", + "status": "approved", "batch_id": "Batch-04", - "approved_at": null, - "notes": "", + "approved_at": "2026-10-27 04:09", + "notes": "外部顾问审阅完成,已采纳并落地全量修改意见(含数字矛盾/OPSEC脱敏/双语CTA/技术细节修补)", "en_chars": 13131, - "zh_chars": 7789 + "zh_chars": 7795 }, "running-ai-video-locally-on-a-12gb-gpu": { "slug": "running-ai-video-locally-on-a-12gb-gpu", diff --git a/docs/consultant-review/reports/report-batch-04.md b/docs/consultant-review/reports/report-batch-04.md new file mode 100644 index 0000000..c735496 --- /dev/null +++ b/docs/consultant-review/reports/report-batch-04.md @@ -0,0 +1,20 @@ +# `blog.hoelee.com` 外部顾问审阅报告 — Batch-04 (顾问标注 Batch-05) + +> **对应资料包**:`docs/consultant-review/batches/batch-04.md`(共 9 篇,中英双语对照) +> **审批状态**:已全量采纳并落地修改,9 篇已在 `audit-tracker.json` 中标记为 `approved`。 + +--- + +## 逐篇审阅意见与落地执行总结 + +| 序号 | 文章 Slug | 顾问结论 | 落地执行措施 | +| --- | --- | --- | --- | +| **01** | `it-reported-success-nothing-had-changed` | 需微调 | 1. 修正谎言二数据:统一为 `archive-04.mp4` 与 `1,137,704,960 bytes (1085 MiB)`,解决与日志 `1085 MB` 的计算矛盾;
2. 修复英文版 `## The discipline` 1-6 编号列表换行折叠问题;
3. 中英文版末尾补齐双轨 CTA 咨询模块,并在 frontmatter 增加 `dynamicCta: true`。 | +| **02** | `n8n-v1-to-v2-upgrade-gotchas` | 需微调 | 1. 修正废弃列表统计:准确说明 5 项来自警告块,其余 2 项在后续启动日志;
2. 补充 `N8N_RUNNERS_MODE=external` 需要在 Compose 编排中搭配 `n8nio/runners` sidecar 容器;
3. 修正附加章节标题为“那个不在废弃列表里的:我的 AI 沙盒把自己关掉了”;
4. frontmatter 添加 `dynamicCta: true`。 | +| **03** | `one-hostname-public-tracker-sso-dashboard` | 需微调 | 1. 人设去玩具化:“我家路由器”改为“自托管边缘网关”,“一天个位数访问”改为中小型独立项目合理并发阐述;
2. 架构防御:在权衡说明中补充为何收敛策略于 authentik(避免在 nginx 与隧道重复维护正则),并点出边缘 bypass 的取舍;
3. frontmatter 添加 `dynamicCta: true`。 | +| **04** | `passbolt-hang-three-failure-modes` | 通过(微调) | 1. `passbolt.php` 配置示例改为使用 `env('PASSBOLT_GPG_SERVER_KEY_FINGERPRINT', ...)` 动态读取;
2. 文末 mailto CTA 添加主题参数;
3. frontmatter 添加 `dynamicCta: true`。 | +| **05** | `patching-workbench-26-for-mariadb` | 需微调 | 1. 精确修正 Windows 机制:明确只读属性会抛 `UnauthorizedAccessException`,而真正的静默无效果是由于 CRLF/LF 不匹配导致 `.Replace()` 未命中;
2. 中英文版文末补齐数据库运维与迁移咨询 CTA;
3. frontmatter 添加 `dynamicCta: true`。 | +| **06** | `php2shell-patching-every-php-runtime-i-manage` | 需重点修订 | 1. 修正 AI/越权视角:重写批量修补通道为“由于日常收敛攻击面关闭了密码 SSH 直连,通过既有的 Docker API 起一次性维护容器调 `synopkg`”;
2. OPSEC 脱敏:移除真实公网 IP `41.216.187.102` 改为 `VPS (203.0.113.10)`;所有客户真实域名与用户名脱敏;
3. frontmatter 添加 `dynamicCta: true`。 | +| **07** | `putting-a-front-door-on-an-app-you-cant-modify` | 需微调 | 1. 代码块补齐第 3 条 `sub_filter`(英文翻译脚本层注入),与“三行注入”一致;
2. 补充 nginx 中 `location = /` 使用 `try_files` 避开 `index` 内部重定向的架构细节说明;
3. frontmatter 添加 `dynamicCta: true`。 | +| **08** | `read-only-nocodb-dashboard-for-a-remote-database` | 通过(微调) | 1. 用词去玩具化:“小 VM”统一替换为“独立虚拟机 / dedicated VM”;
2. 补充 NocoDB UI Schema Read-Only 与 MySQL 底层 `GRANT SELECT` 纵深防御机制;
3. frontmatter 添加 `dynamicCta: true`。 | +| **09** | `replacing-rdpguard-with-ipban` | 需微调 | 1. 修正 `DisplayName=` 矛盾:代码块指定 `DisplayName= "IPBan Service"`,正文调整为提醒初次执行漏传的经验;
2. OPSEC 修正:攻击用户名修改为“尝试根据公网域名品牌推测账号,而非机器真实存在此账户”;
3. 开篇补充 3389 暴露的过渡期/遗留场景架构背景;代码块高亮改为 `cmd` / `powershell`;
4. frontmatter 添加 `dynamicCta: true`。 |