OGSM v5.1-delta — Wave δ Quality Auditor 完成
HSW-002 Polish Loop · 2026-04-11 · 19/19 Robot 4 + 3 Robot 3 v2 + 3 Robot 4 v2 re-audit
版本:v5.1-delta · 所屬 Wave: δ (Quality Auditor) · 狀態:完成
與 v5.1-γ 的差異:Wave γ 提出 proposed patches,Wave δ 獨立審查每個 patch。3 個 patches 被 Robot 4 抓到需要 rework(Engagement Designer / Performance Supervisor / Learning Outcome Validator),自動進入 v2 cycle 後全部 ACCEPT-V2。這是 4-robot 架構第一次實際跑完整 recursive self-correction 循環。
v5.md 仍未修改——等你確認 4 個 user questions 後才進 apply 階段,生成 v5.1 snapshot(新 baseline 機器人內容)。
19-agent 最終 Audit 結果
| # | Agent | v1 Verdict | v2 Verdict | Apply 狀態 |
| 1 | Copy Editor | ✅ ACCEPT (7/7) | — | Ready |
| 2 | Content Director | ✅ APPROVE (7/7) | — | Ready |
| 3 | Investigator A | ✅ ACCEPT (8 hunks) | — | Ready |
| 4 | Writer B | ✅ APPROVE (8/8 contract) | — | Ready(配對 Writer A 同步) |
| 5 | Writer A | ⚠️ ACCEPT + 3 user Q | — | Ready + 即將 expand Tier C(4 欄/reasonableness/Markdown) |
| 6 | Compliance Reviewer | ✅ APPROVED (Tier C 3/3) | — | Ready |
| 7 | Engagement Designer | 🚨 REJECT (2 blockers) | ✅ ACCEPT-V2 | Ready(v2 patch) |
| 8 | Investigator B | ✅ ACCEPT (5 hunks, P-019) | — | Ready |
| 9 | Engineer HTML | ✅ PASS with deferrals | — | Ready |
| 10 | Commander | ⚠️ ACCEPT + ESCALATE M12 | — | Hunks 1/M7-M11/3 Ready,M12 等 Q1 |
| 11 | Sales Rep Advisor | ✅ APPROVED | — | Ready |
| 12 | Source Reviewer | ✅ APPROVE (2 nit only) | — | Ready |
| 13 | Fact Checker | ✅ APPROVE (P-019 ✓, P-015 ✓) | — | Ready |
| 14 | Project Architect Advisor | ⚠️ CONDITIONAL (2 blockers) | — | Q2 已決定 Option B(保 Gemini primary),即將套用 |
| 15 | Candidate Collector | ⚠️ REVISE (1 auto-fix) | — | Ready after 1-line auto-patch |
| 16 | Performance Supervisor | 🚨 APPROVE + 2 blockers | ✅ ACCEPT-V2 | Ready(v2 patch) |
| 17 | Quality Auditor | ⚠️ MINOR refinements | — | Ready after 3 auto-refinements + Fresh Eyes teeth addendum |
| 18 | Fresh Eyes Reviewer | ✅ APPROVED CONDITIONAL | — | Ready + QA enforcement teeth 配對 apply |
| 19 | Learning Outcome Validator | 🚨 CONDITIONAL (H4+H7 hold) | ✅ ACCEPT-V2 | Ready(v2 patch) |
🏆 Recursive self-correction 實錄:3 個 patches 從 REJECT 到 ACCEPT-V2
這是 4-robot 架構第一次實際跑完整循環:Robot 4 REJECT → Robot 3 v2 rework → Robot 4 v2 re-audit → ACCEPT-V2。全程 zero user intervention,factory 自己修好。
Engagement Designer:用錯分類法 + phantom contract
- v1 Blocker 1:Robot 3 v1 用「產品型態」分類(cam lift / spring hinge / self-closing hinge / concealed closer / surface closer),但 Compliance Reviewer line 483 canonical 是「功能類別」(hanging / securing / closing / controlling / protective)。Robot 4 catch:兩個是正交分類,v1 patch 直接落地會跟 Robot 2 的 deliverable 自相矛盾。
- v1 Blocker 2:Robot 3 v1 要求 Content Director 產出 7-role narrative map,但 Content Director 的 M schema (line 438) 根本沒有這個 field。Robot 4 catch:會讓 subagent 在 first dispatch 就 halt 在「等待上游提供不存在的輸入」的無限迴圈。
- v2 fix:改用 Compliance Reviewer canonical 5 類 + Engagement Designer 自己 derive slide roles from Writer A/B 輸出(decision tree 寫進 M bullet +
slide_role_derivation.md deliverable)。Content Director 零隱含義務。
- v2 mental run:5/5 stable PASS(v1 是 3/5)
Performance Supervisor:systemic 定義可繞過
- v1 Blocker 1:`systemic := ≥2 waves OR ≥3 cycles within 1 wave` 有 3 個漏洞——未綁 (same-agent, same-failure-class)、未說明 ≥2 waves 是否需連續、OR 兩個分支被碎化為 branch↔failure 一對一對應太緊
- v1 Blocker 2:`skill-invocation-gap → NOT format` 時間壓力下可改標 `architect-perspective` 繞過
- v2 fix:systemic 定義改成 6 行 hard-rule block,綁 (same-agent, same-failure-class) + 列 5 種合法 failure class + OR 非互斥 + 明確禁止 cross-class / cross-agent 累加。skill-invocation-gap 改成 three-condition lock (a) `content` 唯一合法 (b) IMMUTABLE (c) QA 驗證 retest。
Learning Outcome Validator:新 schema 欄位無消費者 + Tier B 邊界模糊
- v1 H4 HOLD:
wave3_blocked 是整份 v5.md 第一個 machine-readable YAML 布林欄位,命名不一致且 Gate 3 checklist 沒消費者
- v1 H7 HOLD:P-015 WebSearch 邊界寫「reference-lookup sub-tasks while authoring」,沒定義 persona simulation 進行中 / 之後如何處理;例子「Slide-07 NFPA 80 section」是 planted gap 並非真實 anchor
- v1 H6 minor:persona recalibration(換較軟 persona)不被 hunk 6 覆蓋
- v2 fix:rename →
halt_gate: <int>(state-flavored,wave-agnostic)+ coupling risk 明寫為 residual #6 (Commander follow-up)。H7 改成兩條 bright-line rules + IBC 2021 double-egress 真實例子。H6 新增 4th drift mode 枚舉 + H2 schema 加 prior_belief_seed 讓 recalibration 可逐字偵測。
跨 agent pattern 傳播成功案例
P-019 NEW-03 forbidden phrase — 3 個 agent 同步保護
Wave α Robot 1 在 Investigator A 發現的 NEW-03 fabricated-count pattern,Wave γ Iterator 自動傳播到:
- Investigator A(原始發現地,v5 已有 line 236 防線,強化 URL authenticity)
- Investigator B(P-019 domain 轉換:code+cost research 版本,7 phrase forbidden list)
- Fact Checker(P-019 轉換:verification 版本,7 phrase list + first-party URL 結構規則)
這是 G-022 scope-aware Iterator 能做到,1-subagent polish 做不到的——過去 scope creep 抑制會讓每個 agent 各自錯過 pattern。
P-015 WebSearch-primary — 5 個 research agent migration
之前 P-015 決定但 Wave β 忘了 operationalize(我自己的 dispatch prompt 沒 enforce)。Wave γ 一次傳播到 5 個 research-archetype agent:
- Investigator A — Hard Constraint 改「研究搜尋」,tool 欄位化
- Investigator B — line 1039 raw
gemini CLI 改 wrapper+WebSearch
- Fact Checker — S line 552 替換 "Gemini Pro with Google Search grounding"
- Learning Outcome Validator — WebSearch 限定於 pre-simulation 事實檢索
- Project Architect Advisor — persona routing 調整(Q2 Option B)
Data-layer finding:factory 自己的知識庫也有洞
Commander Robot 2 Wave β 實測 get_skills_for_role.sh commander 回「role not found」。spec 層沒寫 commander 的 skill invocation,data 層的 skill-invocation-map.md 也缺 commander row。Wave γ Commander Iterator 的 patch 特別包含 1 個 data-layer hunk:不改 v5.md,改 ~/.claude/skills/ogsm-framework/references/skill-invocation-map.md,新增 ## Role: commander section。這是 polish loop 第一次 recursive 到 factory 自己的 infrastructure,也是 4-robot 架構揭露的 meta-level 發現。
自主處理清單(我在 apply 階段執行)
- Candidate Collector: 補 1 句 auto-fill 契約(非-CC callers 不需顯式傳 3 個新 flag,skill 層預設
origin_agent = source_agent)
- Quality Auditor: 3 個 Tier-1 refinements(lane-scoped denominator / anti-pattern 4 加 "讀上游 audit ≠ 重跑"/
audit-of-audit-gap 定義為 content sub-label)
- Quality Auditor addendum:
false_clean_assert 審核程序 M bullet(Fresh Eyes Tier C enforcement teeth,Q4 Option A 派去做中)
- Writer A Tier C expand: 第 4 欄
voice_carryover + Content Director 合理性檢查 + Markdown 格式(Q3 決定)
- Project Architect Advisor wording: Opus 從「primary」改為「documented degraded-mode」(Q2 決定,Gemini 保 primary)
- Sales Rep Advisor: 可選加入 2 個 copy-edit(Source Reviewer audit 提的)
仍等 user decision:Q1
Q1 — Commander M12 canonical persona 檔案缺檔時的處理
A. Commander 只檢查檔案存在,缺檔 escalate Writer A(Robot 4 推薦,orchestration-only)
B. 完全拒絕 M12(persona 問題不在 Commander 解決)
C. 保留 Robot 3 原版(Commander 自己 include persona)
下一步
- 你回答 Q1 → 所有決定完成
- Parent Claude apply 19 個 patches 到 v5.md(sequential,配對處理 Writer A+B)
- 跑 4 個 validator 確認 PASS
- Commit + push v5.md + data-layer 修補(skill-invocation-map.md)
- 生成 v5.1 snapshot 頁面——取代當前 v5 baseline 機器人內容,含 diff highlight 標示哪些 bullet 被改動