Files
awoooi/docs/security/SOURCE-CONTROL-REF-TRUTH-CLASSIFICATION.md
Your Name 9e15fd08b3
All checks were successful
CD Pipeline / tests (push) Successful in 1m39s
Code Review / ai-code-review (push) Successful in 15s
CD Pipeline / build-and-deploy (push) Successful in 5m19s
CD Pipeline / post-deploy-checks (push) Successful in 2m11s
feat(web): land iwooos security posture surfaces
2026-05-25 20:35:52 +08:00

146 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Source Control Ref Truth Classification
| 項目 | 內容 |
|------|------|
| 日期 | 2026-05-13 |
| 狀態 | `draft_blocked` |
| 預設模式 | `classification_only` |
| 來源 snapshot | `docs/security/source-control-ref-detail-diff.snapshot.json` |
| Owner response 收件包 | `docs/security/SOURCE-CONTROL-REF-TRUTH-OWNER-RESPONSE.md` / `docs/security/source-control-ref-truth-owner-response.snapshot.json` |
| repo count | `3` |
| total items | `141` |
## 0. 核心結論
本檔把 branch/tag diff 轉成「人工審核分類」:哪些 ref 需要真相來源判定、哪些可能是 deprecated 候選、哪些 release / UAT tags 需要保留判定。S4.11 已補 owner response request packet、template status ledger、audit event templates、redaction examples、collection checks、intake preflight checks 與收件包,讓 AwoooP 可以提示 owner、逐項顯示 waiting、顯示 0 emitted 的脫敏 audit metadata 模板、安全回覆範例,並維持 request / received / accepted 分離後把 response 分類為可審、補證、隔離、拒收或等待;它仍不是同步計畫,也不授權 fetch、push、delete refs 或 GitHub primary 切換。
## 1. 摘要
| 指標 | 數量 |
|------|------|
| 需要人工指定真相來源 | `4` |
| 可能 deprecated / archive 候選 | `114` |
| release tag 待審核 | `3` |
| GitHub-only ref 待審核 | `20` |
| S4.11 request packet | `1` |
| S4.11 template status ledger | `5` |
| S4.11 audit event templates | `3` |
| S4.11 redaction examples | `5` |
| S4.11 collection checks | `6` |
| S4.11 intake preflight checks | `6` |
| S4.11 response templates | `5` |
| S4.11 received / accepted / rejected | `0 / 0 / 0` |
## 2. Repo 分類
### wooo/awoooi -> owenhytsai/awoooi
- Risk`HIGH`
- AwoooP consumption`approval_candidate`
- Item count`118`
| Ref | Type | Lane | Classification | Gitea | GitHub | 下一步 |
|-----|------|------|----------------|-------|--------|--------|
| `main` | `branch` | `main_truth_required` | `manual_truth_required` | `5294f071` | `202071f7` | 先確認目前 production deploy 真相來源、deploy marker、rollback 點,再決定單 repo reconcile。 |
| `dev` | `branch` | `active_branch_truth_required` | `manual_truth_required` | `25889d4b` | `無` | 確認 dev 是否仍為有效工作流;若有效,再決定單 branch 同步策略。 |
| `drift/adopt-00e93ec6-20260507202835` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-018dfeb6-20260510201057` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-036399ae-20260512101936` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-036399ae-20260512113011` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-03ab23eb-20260511190611` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-04532fd3-20260509104706` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-094107c8-20260511171658` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-0b67aa5a-20260508132246` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-0d55cf70-20260512152046` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `abdab853` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-0d7e2731-20260422111000` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `75b7d338` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-11d02e8c-20260505000302` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `40badc42` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-18d2841e-20260506203612` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `b2f0db07` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-1941d569-20260509001722` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-1b510a59-20260508071355` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-1d45b689-20260512101956` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-1ffaa1de-20260509191538` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-22d3c494-20260504010134` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `035fe20e` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-256b7b16-20260507082410` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `c52ebfc0` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-2582b60d-20260509160733` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-2b26cfe4-20260509104618` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-3254209e-20260505150522` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d08d1e49` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-3336b941-20260511111108` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-34bf86fd-20260421010616` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `3323a905` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-35e8371b-20260508222338` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-378290ab-20260510201203` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-381202c7-20260507171310` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `afb5f955` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-38e32fb9-20260506171242` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `76aaaf48` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-39383806-20260502230445` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `68e18238` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-3da139d9-20260503161425` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `e45b055e` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-44860c3d-20260510171817` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-46e77bf6-20260506235709` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `012cd27b` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-49920526-20260511111126` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-4b40fc0d-20260429080302` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `20009cdd` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-4d8f3bef-20260508212335` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-4e188293-20260504100431` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `035fe20e` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-4e5775dc-20260510233800` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-50d442fb-20260510201215` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| `drift/adopt-52fb18e5-20260512000119` | `branch` | `archive_or_deprecate_candidate` | `manual_review_deprecated_candidate` | `d356cd32` | `無` | 由 repo owner 確認是否仍有部署、PR、回滾或稽核用途確認前保留。 |
| 另有 `78` 筆 | | | 完整清單見 JSON snapshot | | | |
### wooo/clawbot-v5 -> owenhytsai/clawbot-v5
- Risk`MEDIUM`
- AwoooP consumption`approval_candidate`
- Item count`2`
| Ref | Type | Lane | Classification | Gitea | GitHub | 下一步 |
|-----|------|------|----------------|-------|--------|--------|
| `main` | `branch` | `main_truth_required` | `manual_truth_required` | `22074fbe` | `7a769de4` | 先確認目前 production deploy 真相來源、deploy marker、rollback 點,再決定單 repo reconcile。 |
| `v5.5-sprint1` | `tag` | `release_tag_missing_on_github` | `manual_review_release_tag` | `2b126871` | `無` | 確認 tag 對應 release / artifact / deploy marker再以單 repo approval 決定是否同步。 |
### wooo/wooo-aiops -> owenhytsai/wooo-aiops
- Risk`MEDIUM`
- AwoooP consumption`approval_candidate`
- Item count`21`
| Ref | Type | Lane | Classification | Gitea | GitHub | 下一步 |
|-----|------|------|----------------|-------|--------|--------|
| `main` | `branch` | `main_truth_required` | `manual_truth_required` | `507384a2` | `7c7aa109` | 先確認目前 production deploy 真相來源、deploy marker、rollback 點,再決定單 repo reconcile。 |
| `refactor/phase-9.3` | `branch` | `github_only_manual_review` | `manual_review_github_only` | `無` | `7261f94b` | 確認該 branch 是否為有效 refactor/feature 線,並判定是否回補到 Gitea 或保留 GitHub-only。 |
| `uat-20260316-1ec245f` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `1ec245fd` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260316-2d54a43` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `2d54a43b` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260316-3e8df86` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `3e8df861` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260316-95002f5` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `95002f50` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260316-9ebea63` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `9ebea633` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260316-a851c80` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `a851c809` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260316-e2ee674` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `e2ee6746` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260316-fa48be2` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `fa48be21` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260317-f768051` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `f7680510` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260318-20dde91` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `20dde91a` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260318-4025dde` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `4025dde5` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260318-5bfa151` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `5bfa1514` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260318-663b590` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `663b590d` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260318-78a3757` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `78a3757c` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260318-7c6f666` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `7c6f6665` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260318-c4d5669` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `c4d56690` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260318-cf42fd4` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `cf42fd4e` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260319-7c7aa10` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `7c7aa109` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
| `uat-20260319-ce5c72b` | `tag` | `github_only_uat_tag` | `manual_review_github_only` | `無` | `ce5c72b5` | 確認 UAT tag 是否仍需保留為稽核 evidence若已過期再列入封存決策。 |
## 3. AwoooP 消費方式
1. 只 mirror `source_control_ref_truth_classification_v1`
2. 可顯示 review lane、owner decision queue、S4.11 owner response request packet、template status ledger、audit event templates、redaction examples、collection checks、intake preflight checks 與 templates。
3. 可產生單 repo / 單 ref approval candidate但不得自動批准。
4. 收到 owner response 後,只能依 S4.11 驗收 / 拒收 / 隔離並更新 read-only evidence。
5. 不得新增 refs sync、delete、force-push、primary switch action。
## 4. 仍然禁止
- fetch
- push refs
- force push
- delete refs
- create GitHub repo
- change repo visibility
- switch GitHub primary
- disable Gitea
- move secret values