# Gitea 清冊覆蓋 Owner Attestation

| 項目 | 內容 |
|------|------|
| 日期 | 2026-05-17 |
| 狀態 | 草案，等待 owner attestation |
| 資料契約 | `docs/schemas/gitea_inventory_coverage_attestation_v1.schema.json` |
| 快照 | `docs/security/gitea-inventory-coverage-attestation.snapshot.json` |
| 來源契約 | `gitea_repo_inventory_v1` |
| 上游請求 | `gitea_authenticated_inventory_export_request_v1` / `gitea_authenticated_inventory_import_acceptance_v1` |
| Response 收件包 | `docs/security/GITEA-INVENTORY-OWNER-ATTESTATION-RESPONSE.md` |
| 模式 | `coverage_attestation_only` |
| 執行面授權 | `false` |

## 0. 核心結論

S4.7 補的是「owner 怎麼說明 Gitea 清冊覆蓋缺口」。

S4.9 已補上 owner response request packet、template status ledger、audit event templates、redaction examples、display sections、collection checks 與收件包，規範 AwoooP 要如何提示 owner、如何逐 template 顯示 waiting / request ready、如何顯示 0 emitted 的脫敏 metadata audit template、如何提供脫敏 evidence 回覆範例、如何固定只讀顯示順序、如何維持 request / received / accepted 分離、owner 回覆這 5 個 items 時的必填欄位、驗收規則與拒收規則；目前仍未收到 response。

目前 `gitea_repo_inventory_v1` 仍是 public-only / partial：未認證公開範圍只看到 2 個 repos，本機 remote evidence 看到 4 個 Gitea unique repos，另有 4 個 110 internal adjacent sources 需要判定是否屬本輪 GitHub migration scope。

此文件不要求使用者貼 token，不匯入 payload，不寫 Gitea，不建立 GitHub repo，不 sync refs，也不切 GitHub primary。它只把 owner 需要表態的 5 個 coverage items 固定下來，讓 AwoooP 可以 mirror 成 review lane。

## 1. Attestation 摘要

| 指標 | 值 |
|------|----|
| owner attestation 狀態 | `waiting_owner_attestation` |
| 必要 attestation items | 5 |
| 已收到 attestation | 0 |
| 已接受 attestation | 0 |
| 已拒收 attestation | 0 |
| S4.9 owner response request packet | 1 |
| S4.9 owner response template statuses | 5 |
| S4.9 owner response audit event templates | 3 |
| S4.9 owner response redaction examples | 5 |
| S4.9 owner response display sections | 8 |
| S4.9 owner response collection checks | 6 |
| S4.9 owner response templates | 5 |
| 已收到 owner response | 0 |
| 未認證公開範圍 repos | 2 |
| 本機可見 Gitea unique repos | 4 |
| 本機 Gitea 覆蓋缺口 | 2 |
| 110 internal adjacent sources | 4 |
| 需要 owner scope decision | `true` |
| 允許收集 token value | `false` |
| 允許 repo write / refs sync | `false` |
| 授權切換 GitHub primary | `false` |

## 2. 必要 Attestation Items

| Item | 需要 owner 判定 | 目前缺口 |
|------|----------------|----------|
| `public_only_vs_local_gitea_gap` | `wooo/clawbot-v5`、`wooo/wooo-aiops` 是否仍屬本輪 scope | public-only 2 repos，本機 Gitea unique 4 repos |
| `org_user_endpoint_identity` | `wooo` 應以 user、org 或兩者盤點 | org endpoint blocked / 404 不等於沒有 private repos |
| `internal_110_adjacent_scope` | `bitan-pharmacy`、`root/momo-pro-system`、`tsenyang-website`、`wooo/wooo-infra-config` 是否納入 | 110 adjacent sources 未正式 scope decision |
| `repo_owner_canonical_scope` | 每個 in-scope repo 的 owner、canonical source、GitHub target、visibility 責任人 | GitHub target / canonical / owner 尚未全量確認 |
| `legacy_or_inaccessible_repo_disposition` | legacy、archived、external 或 inaccessible repo 的處置 | 未出現在 payload 的 repo 不能自動視為完成 |

## 3. 可接受決策值

| 決策值 | 意義 |
|--------|------|
| `in_scope` | 納入本輪 inventory / GitHub migration scope |
| `out_of_scope` | 排除本輪 scope，但必須留下 owner 理由 |
| `legacy_archived` | 歷史或封存來源，只保留 evidence 與後續 review |
| `external_system` | 由外部系統或非本輪 source-control 管線管理 |
| `inaccessible_requires_followup` | 目前不可讀，需要 owner / 管理者補 evidence |
| `unknown_requires_more_evidence` | evidence 不足，維持 blocker |

## 4. AwoooP 可做

1. 顯示 S4.7 owner attestation request 與 5 個 coverage items。
2. 將每個 item mirror 成 review lane 或 approval candidate。
3. 顯示目前 `received_attestation_count=0`、`accepted_attestation_count=0`。
4. 在 owner 提供決策後，只更新 read-only matrix、decision table、readiness gate 與 status rollup。
5. 維持 `gitea_repo_inventory_v1.status=partial`，直到 S4.6 payload 通過且 attestation 被接受。

## 5. AwoooP 不可做

1. 不要求使用者貼 token value。
2. 不保存 token、secret、cookie、session、private key。
3. 不用 write-capable token。
4. 不寫入 Gitea，不建立、刪除、封存或修改 repo。
5. 不建立 GitHub repo，不修改 visibility，不 sync refs，不 delete refs，不 force push。
6. 不把 owner attestation 當成 GitHub primary approval。
7. 不新增 scan / execute / repo / refs action button。

## 6. 階段定位

S4.7 是 S4.5 匯出請求與 S4.6 匯入驗收之後的 owner scope decision gate。

它解決的是「哪些缺口需要 owner 說清楚」，不是「開始搬 repo」。完成 S4.7 後，仍需 authenticated/admin export payload、refs truth、workflow / secret name parity、rollback ADR owner approval 與逐 repo runtime gate，才能談 GitHub primary cutover。
