docs(security): 補 S4.9 owner response 缺口稽核 [skip ci]

This commit is contained in:
Your Name
2026-06-05 09:58:35 +08:00
parent f1bad81d32
commit b615bde5e2
3 changed files with 114 additions and 2 deletions

View File

@@ -1,3 +1,21 @@
## 2026-06-05S4.9 Owner Response Gate 現況缺口稽核
**背景**`P1-001 runtime surface inventory` 已由另一個 AwoooP Session 推進中;本視窗為避免同檔案衝突,改推平行安全的 P0S4.9 owner response gate 現況缺口稽核。這是 committed snapshot / 文件只讀稽核,不收 owner response、不送 request、不改 Gitea / GitHub、不碰 refs / workflow / secret / runner / runtime。
**本輪完成**
- 新增 `docs/security/S4-9-OWNER-RESPONSE-GATE-CURRENT-GAP-AUDIT.md`:列出 S4.9 已符合、仍不符合、需新增、需調整、五題 owner response 與驗收前必須維持的 `0 / false` 邊界。
- 更新 `docs/workplans/2026-06-04-iwooos-security-governance-p0.md`:最新 `gitea/main=f1bad81d`、P1-305 / P1-306 正式基準、P1-001 平行 Session 狀態與 P0-2c S4.9 current gap audit。
**完成度更新**
- S4.9 current gap audit`100%`
- S4.9 owner response gate`0%``request_sent=false`、received `0`、accepted `0`、rejected `0`
- IwoooS 整體:維持 `64%`active runtime gate 維持 `0`
- 本輪不調高 GitHub primary readiness、不調高 runtime landing、不新增 action button。
**下一步**
- S4.9 真正能往前的下一步仍是 owner 以脫敏 metadata 回覆 5 題public-only/local gap、org/user endpoint、110 adjacent scope、repo owner/canonical、legacy/inaccessible disposition。
- `P1-001 runtime surface inventory` 由另一個 AwoooP Session 繼續;本視窗推送後需同步 `gitea/main`,避免 LOGBOOK / workplan 衝突。
## 2026-06-05P1-305 / P1-306 任務批准邊界與進度彙總正式上線
**背景**:接續 P1-106 異地 / Escrow 準備度,本段收斂 AI Agent 自動化盤點的兩個可視化缺口:每個任務的批准邊界與 deterministic 進度百分比。這是 committed snapshot / API / 前台治理頁的只讀顯示,不是 runtime 執行授權、部署授權、owner response 接受或 active gate 提升。

View File

@@ -0,0 +1,91 @@
# S4.9 Owner Response Gate 現況缺口稽核
| 項目 | 內容 |
|------|------|
| 日期 | 2026-06-05 |
| 基準 | `gitea/main=f1bad81d docs(logbook): 記錄 P1-305 P1-306 正式驗證 [skip ci]` |
| 範圍 | S4.9 Gitea owner attestation response gate 與 S4.13 owner response validation rollup |
| 模式 | 只讀 committed snapshot / 文件稽核 |
| 不可誤讀 | 不是 request sent、不是 owner response received、不是 accepted、不是 repo / refs / workflow / secret / runtime 授權 |
## 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 拉高。
## 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 |
## 3. 目前仍不符合最新推進要求
| 缺口 | 影響 | 下一步 |
|------|------|--------|
| P0 主控總帳的同步基線仍停在較舊 commit | 新 Session 可能誤用舊 `gitea/main` 或舊 P1 狀態 | 將總帳更新到 `f1bad81d`,並標註 P1-001 由另一 Session 進行中 |
| S4.9 gate 仍只有 request-ready沒有 owner response | IwoooS 64% 不能因規範存在而往前解鎖 | 維持 `0%`,只準備收件缺口,不調高 progress |
| request packet 的欄位名稱存在同義詞 | `affected_repos``affected_sources``affected_repos_or_sources_or_namespace``evidence_refs` 與使用者要求的 `affected_scope``redacted_evidence_refs` 容易在 UI / handoff 中混用 | 後續顯示層以六欄 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 進來後,才能進補件、隔離、拒收、只讀更新候選 |
| 部分文件仍可能把 P1-305 / P1-306 或 P1-001 當下一步文字混用 | 平行 Session 正在推 P1-001S4.9 仍是獨立 P0 gate | 後續 LOGBOOK / workplan 每次都標註平行 Session 與最新基線 |
## 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 | 已執行,需持續 |
## 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 owner response gate | 0% | 沒有收到 owner response不得調高 |
| IwoooS 整體 | 維持 64% | 只讀稽核不改 runtime readiness |
| active runtime gate | 0 | 不變 |

View File

@@ -9,7 +9,7 @@
| 工作視窗 | IwoooS / AWOOOI 資安治理 P0 |
| 本次乾淨 worktree | `/Users/ogt/awoooi` |
| 本次分支 | `codex/iwooos-i18n-d2-visible-literals-20260605` |
| 最新觀察到的 `gitea/main` | `c2e327a6 docs(logbook): 補充 P1-106 最新正式驗證 [skip ci]` |
| 最新觀察到的 `gitea/main` | `f1bad81d docs(logbook): 記錄 P1-305 P1-306 正式驗證 [skip ci]` |
| 最新 P2-D0 繁中文案基準 | code `cd2275a2`、deploy marker `1920bd08`、code-review `2565`、CD `2564` |
| 最新 P2-D1 本地掃描基準 | `VISIBLE_LITERAL_TARGET_SCAN_OK files=221`;全站 TS / TSX 中文 literal 盤點 `35` 檔 / `752` 行;註解語氣 backlog `32` 筆 |
| 最新 P2-D1 正式部署基準 | code `f9bf8a28`、deploy marker `879b0a36`、CD `2578`、code-review `2579` |
@@ -17,6 +17,8 @@
| 最新 P2-D2 AIOps 範例資料基準 | code `d5ce17c7`、deploy marker `305b8175`AIOps sample/mock 字串、GenUI 測試語氣與 `sampleBadge` 已正式驗證 |
| 最新 P2-D2 Code Review 候選分類基準 | code `292cfec9`、deploy marker `4cfe5ff7`、CD `2586`、code-review `2587`Code Review route 可見文案已搬到 `codeReview` i18n namespace四類候選分類與人工批准流程已正式驗證 |
| 最新 P2-D2 AwoooP Runs fallback 文案基準 | code `7f6028c3`、deploy marker `bf016e91`、CD `2590`、code-review `2591`Runs / Callback / Source Flow fallback 文案已正式驗證 |
| 最新 AI Agent automation P1-305 / P1-306 基準 | code `4f0787f8`、deploy marker `af3a9d48`、CD `2592`、code-review `2593`任務批准邊界與進度彙總已正式驗證backlog `70%`、done `16/23`、下一步 `P1-001` |
| 目前平行 Session | AwoooP thread `019e9154-7d5e-7b72-85be-c9d97e43ecc9` 正在推 `P1-001 runtime surface inventory`;本視窗避免修改同一批 runtime surface schema / API / UI 檔 |
| 前一個正式 IwoooS 候選基準 | code `7b8fc093`、deploy marker `45c63488`、LOGBOOK `02cadee6` |
| 最新導航 IA 基準 | code `973fc7a4`、LOGBOOK `2555c811`、deploy marker `0260ec89` |
| 禁止事項 | 不 force push、不 destructive git、不 SSH 修改主機、不 active scan、不收 secrets 明文、不把 AwoooP approval 當資安批准、不把 UI 可見當 runtime 授權 |
@@ -44,9 +46,10 @@
|------|------|--------|--------|----------|
| P0-0 | 跨 Session 同步與乾淨 worktree | 100% | 每次改檔前重新 `git fetch gitea` 與檢查 `gitea/main` | `git status --short --branch``git log --oneline -8 gitea/main` |
| P0-1 | IwoooS 狀態總帳 | 100% | 本文件已落地;後續每階段只更新同一總帳與 LOGBOOK | Markdown 檢查、guard、不調高 0 / false gate |
| P0-2 | S4.9 owner response gate | 100% | 欄位、預檢、收件、驗收、拒收與補件條件已固定成人類可讀規範 | `source-control-owner-response-guard.py --root .` 通過 |
| P0-2 | S4.9 owner response 收件規範 | 100% | 欄位、預檢、收件、驗收、拒收與補件條件已固定成人類可讀規範;真正 owner response gate 仍維持 0% | `source-control-owner-response-guard.py --root .` 通過 |
| P0-2a | S4.9 current intake readiness | 100% | 五題缺口、合格封套、結果分流與只讀更新邊界已補進收件包與 S4.13 rollupowner response gate 仍 0% | JSON parse、owner response guard、progress guard |
| P0-2b | S4.9 request dispatch preflight 交接包 | 100% | 送件前檢查、交接封套欄位與送後不變條件已固定dispatch authorized 仍 false | JSON parse、owner response guard、progress guard |
| P0-2c | S4.9 current gap audit | 100% | 已新增 `S4-9-OWNER-RESPONSE-GATE-CURRENT-GAP-AUDIT.md`,列出已符合、仍不符合、需新增、需調整、五題回覆與 0 / false 邊界owner response gate 仍 0% | owner response guard、progress guard、diff check |
| P0-3 | AwoooP 同步封包 | 100% | 已送至 AwoooP 平行工作 thread `019e9154-7d5e-7b72-85be-c9d97e43ecc9`;後續仍需每次推版前重新 fetch / fast-forward | 本文件、thread send readback、mirror checklist readback |
| P0-4 | production live sanity 節點 | 100% | desktop / mobile / 展開區塊 / overflow / action href 檢查已完成 | Playwright production sanity 通過 |
| P0-5 | LOGBOOK 與完成度更新 | 100% | D2 comments-only、D2 AIOps sample、D2 Code Review 候選分類與 D2 AwoooP Runs fallback 皆已回填;可見 / bundle 變更皆已補 local / production desktop + mobile smoke | `docs/LOGBOOK.md` readback |