12 KiB
12 KiB
S4.9 Owner Response Gate 現況缺口稽核
| 項目 | 內容 |
|---|---|
| 日期 | 2026-06-15 |
| 基準 | gitea/main=57df61da docs(iwooos): 記錄 AwoooP 前台脫敏正式驗證 [skip ci];runtime deploy marker 166497ee;AwoooP 高可見頁 redaction code commit 94a9c612 |
| 範圍 | S4.9 Gitea owner attestation response gate、S4.13 owner response validation rollup、public surface identity redaction boundary |
| 模式 | 只讀 committed snapshot / 文件稽核 |
| 不可誤讀 | 不是 request sent、不是 owner response received、不是 accepted、不是 repo / refs / workflow / secret / runtime 授權 |
| Machine-readable snapshot | docs/security/s4-9-owner-response-gap-audit.snapshot.json |
| Schema | docs/schemas/s4_9_owner_response_gap_audit_v1.schema.json |
1. 核心結論
S4.9 的基礎規範已存在,且已能被 source-control-owner-response-guard.py 檢查:1 個 request packet、5 個 response templates、6 個 intake preflight checks、5 個 intake outcome lanes、8 個 acceptance checks、10 個 rejection rules 都已固定。
真正尚未完成的是「owner 回覆本身」。目前 request_sent=false、received=0、accepted=0、rejected=0,所以 S4.9 owner response gate 仍是 0%。任何 UI、request template、AwoooP 顯示、reviewer checklist 或 LOGBOOK 文字都不得把這個 gate 拉高。
本輪另外把使用者指出的前台資訊揭露問題納入 S4.9 缺口稽核:前台、public API、HTML、bundle 與 messages 不得顯示個人 namespace、外部 raw namespace、工作視窗對話或內部 session 語句。AwoooP Tenants / Runs / Approvals / Contracts / Work Items 已完成高可見頁脫敏與 bundle sensitive scan,但此規則必須持續由 guard 與 production desktop / mobile sensitive scan 保護。
2. 已符合目前要求
| 類別 | 現況 | 依據 |
|---|---|---|
| 五題 response templates | 已固定 5 題:public-only/local gap、org/user endpoint、110 adjacent scope、repo owner/canonical、legacy/inaccessible disposition | gitea-inventory-owner-attestation-response.snapshot.json |
| 必填 owner 欄位 | 已要求 owner role/team、decision、decision reason、affected scope、evidence refs、followup owner | preflight-required-owner-fields |
| 脫敏 evidence refs | 已要求只收 repo 文件、snapshot、ticket / hash / metadata pointer | preflight-redacted-evidence-only |
| 執行要求拒收 | 已拒收 repo write、repo create、visibility change、refs sync/delete/force-push、workflow/secret/runner、scan、runtime action | preflight-no-execution-request |
| 五題齊備才可 accepted | 已要求 5 個 response templates 都收到可驗收回覆,部分回覆只能 waiting 或 request_more_evidence | preflight-all-five-items-before-accepted |
| 四包收件順序 | S4.9 -> S4.10 -> S4.11 -> S4.12 已固定 | source-control-owner-response-validation-rollup.snapshot.json |
| 安全旗標 | token、secret、repo write、refs sync、GitHub primary、action button 全部 false |
owner response guard |
| Public surface redaction | /zh-TW/awooop/tenants、runs、approvals、contracts、work-items 與 public API 已改用公開名稱、SRC-###、已脫敏摘要與 bundle-level 防洩漏 |
security-mirror-progress-guard.py、production desktop / mobile verification |
3. 目前仍不符合最新推進要求
| 缺口 | 影響 | 下一步 |
|---|---|---|
P0 主控總帳與缺口稽核基準需跟上最新 gitea/main |
平行 Session 已推進高可見頁脫敏、Backup / Restore、Public Gateway、K8s / ArgoCD、SSH / network acceptance ledger 與 production Browser smoke;舊 commit 基準會讓新 Session 誤判下一步 | 本輪已更新到 gitea/main=57df61da 與 deploy marker 166497ee;最新 S4.9 仍是等待 owner response,後續每次推送前仍需 fetch、讀 LOGBOOK 最新段落與同步 runs / deploy marker |
| S4.9 gate 仍只有 request-ready,沒有 owner response | IwoooS 64% 不能因規範存在而往前解鎖 | 維持 0%,只準備收件缺口,不調高 progress |
| S4.13 rollup 文件曾殘留舊模板總數 | Snapshot 已是 5 + 9 + 5 + 5 = 24,但文件仍可能寫成 22,會造成 reviewer 誤判 S4.10 目標數 |
已同步文件並把 source-control-owner-response-guard.py 納入文件一致性檢查 |
| request packet 的欄位名稱存在同義詞 | affected_repos、affected_sources、affected_repos_or_sources_or_namespace、evidence_refs 與使用者要求的 affected_scope、redacted_evidence_refs 容易在 UI / handoff 中混用 |
已補 S4-9-CANONICAL-OWNER-RESPONSE-ENVELOPE.md,後續顯示層以六欄 canonical envelope 呈現;source templates 可保留細分欄位 |
| 沒有實際 dispatch / received audit event | 目前 audit event templates 仍是 template-only,不能證明已送件或已收件 | 等人工送件後才增加 request_sent metadata;未送前所有 count 維持 0 |
| 尚未有 owner response reviewer outcome | reviewer checklist 存在,但沒有任何可分類 response | 等脫敏 metadata 進來後,才能進補件、隔離、拒收、只讀更新候選 |
| 部分文件仍可能把近期 P2-403I/J/K 或資安 P1 工作誤當 S4.9 已解鎖 | 平行 Session 已推進 AI Agent 報表 / 告警路由,但 S4.9 owner response 仍是獨立 P0 gate | 後續 LOGBOOK / workplan 每次都標註平行 Session、最新基線與 S4.9 received / accepted 仍為 0 / 0 |
| P0-PUBLICENV 與 P2-105 容易被誤讀為 S4.9 owner response | 公開主機 alias redaction、bundle clean、production smoke、critic / reviewer scorecard 都不是 owner role / team、decision、reason、scope、redacted refs、followup owner 的實際回覆 | 在 rollup 與 LOGBOOK 明確標記:這些進展不增加 request_sent、received、accepted 或 runtime gate |
| 前台 raw namespace 或工作視窗內容外洩 | 產品頁若直接顯示 raw source-control evidence,會暴露個人 namespace、外部 namespace 或內部協作脈絡 | 已補 AwoooP 高可見頁脫敏;後續新增頁面 / API / bundle 必須先走 public surface redaction gate 與 production sensitive scan |
| 內部 evidence 與產品文案邊界不清 | docs/security 可能保留必要技術識別供內部稽核,但不得被直接接到前台渲染 |
前台只能顯示 redacted scope id、aggregate count、risk tier、readiness state、redacted evidence ref |
repo-local MEMORY.md 缺檔 |
啟動規範要求讀 MEMORY.md,但本 release worktree 沒有此檔 |
已改讀全域 memory 摘要與 LOGBOOK;後續需把此視為啟動程序缺口,不得假稱 repo-local MEMORY.md 已讀 |
4. 需要新增或強化的規範
| 規範 | 內容 | 狀態 |
|---|---|---|
| Canonical owner response envelope | 對外與 AwoooP 顯示固定六欄:owner_role_or_team、decision、decision_reason、affected_scope、redacted_evidence_refs、followup_owner |
已補文件規範;後續 UI / handoff 切片需沿用 |
| Source template alias 規則 | 允許 source template 保留 affected_repos、affected_sources、canonical_namespace 等細分欄位,但必須映射回 affected_scope |
已補文件規範;後續顯示層 mapping 需照表實作 |
| Request sent 與 received 分離 | request packet 顯示、人工送件、owner response received、accepted 必須是四個獨立狀態 | 已有規範,需在後續 audit metadata 實作時保持 |
| Quarantine-first 收件 | 疑似 token、secret、private key、cookie、session、authorization header、private URL credential、未脫敏截圖先隔離,不渲染 raw payload | 已有規範,需維持 |
| 平行 Session 衝突規則 | 任一 Session 推送前必須 fetch / fast-forward 到最新 gitea/main,並同步 commit / run / production evidence / gate 0 false |
已執行,需持續 |
| Public surface redaction gate | 前台、public API、HTML、bundle、messages 不得出現 raw owner namespace、個人識別、外部 raw namespace、內部狀態碼或工作視窗對話 | 已補 snapshot 與 guard 接入;每次前端 / API / client bundle 變更需 production sensitive scan |
| Internal evidence private boundary | 內部 source-control raw evidence 只能留在 private evidence / docs,不得直接作為產品渲染來源 | 已納入 s4-9-owner-response-gap-audit.snapshot.json |
| Machine-readable S4.9 gap audit | S4.9 缺口稽核不得只停在 MD,必須有 snapshot 與 guard | 已新增 s4_9_owner_response_gap_audit_v1 |
5. 下一個 owner response 需要補的五題
| 順序 | Template | Owner 必須回覆 | 不得夾帶 |
|---|---|---|---|
| 1 | response-public-only-vs-local-gitea-gap |
wooo/clawbot-v5、wooo/wooo-aiops 是否屬本輪 inventory / migration scope |
repo 建立、refs sync、token value |
| 2 | response-org-user-endpoint-identity |
wooo 應以 user、org 或兩者盤點,canonical endpoint 是什麼 |
write/admin token、未脫敏 API response |
| 3 | response-internal-110-adjacent-scope |
bitan-pharmacy、root/momo-pro-system、tsenyang-website、wooo/wooo-infra-config 是否 in scope |
fetch / push / delete refs |
| 4 | response-repo-owner-canonical-scope |
in-scope repo 的 owner、canonical source、GitHub target candidate、visibility review owner | repo visibility change、GitHub repo creation |
| 5 | response-legacy-or-inaccessible-disposition |
legacy / inaccessible / external repo 的 disposition、理由與後續 owner | archive/delete/disable Gitea repo |
6. 驗收前必須維持 0 / false
| 欄位 | 必須維持 |
|---|---|
request_sent / request_sent_count |
false / 0,直到有人工送件 audit metadata |
received_response_count |
0,直到收到完整且脫敏的 owner response metadata |
accepted_response_count |
0,直到 5 題皆通過 preflight、reviewer checklist 與 cross-packet consistency |
rejected_response_count |
0,直到實際有不合格 response 被分類 |
token_value_collection_allowed / secret_value_collection_allowed |
false |
repo_write_allowed / refs_sync_allowed / force_push_authorized |
false |
workflow_modification_authorized / runner_enablement_authorized |
false |
github_primary_switch_authorized |
false |
runtime_execution_authorized / action_buttons_allowed |
false |
7. 驗證規則
| 情境 | 必跑 |
|---|---|
| 更新本文件 / 總帳 | git diff --check、python3 scripts/security/source-control-owner-response-guard.py --root . |
| 更新 IwoooS projection 或 security mirror snapshot | 加跑 python3 scripts/security/security-mirror-progress-guard.py --root . |
| 改前端顯示 | i18n parse、typecheck、build、desktop / mobile Browser smoke |
| 宣稱 production 狀態 | 必須實際開 production 頁面,確認 horizontalOverflow=0、無 action button、gate 仍 0 / false |
8. 本輪完成度
| 工作 | 完成度 | 說明 |
|---|---|---|
| S4.9 現況缺口稽核 | 100% | 已列出已符合、仍不符合、需新增、需調整、五題回覆與 0 / false 邊界 |
| S4.9 machine-readable gap audit snapshot | 100% | 已新增 s4-9-owner-response-gap-audit.snapshot.json 與 schema,固定 gaps=8、new_rules=7、adjustments=7、owner gate 0、runtime gate 0 |
| Public surface identity redaction boundary | 100% | Tenants 前台 / public API 已用 SRC-###;後續由 guard 與 production sensitive scan 持續保護 |
| S4.9 canonical owner response envelope | 100% | 已補六欄信封、alias 映射、五題投影、quarantine-first 與 reviewer checklist |
| S4.9 owner response gate | 0% | 沒有收到 owner response,不得調高 |
| S4.9 基準與日期一致性 | 100% | 已跟到 gitea/main=57df61da、deploy marker 166497ee,並要求 guard 擋下過期 rollup 日期與舊模板公式 |
| S4.13 rollup 文件一致性 | 100% | 已把 22 舊口徑修正為 24,並由 guard 檢查 |
| IwoooS 整體 | 維持 64% | 只讀稽核不改 runtime readiness |
| active runtime gate | 0 | 不變 |