docs(security): add GitHub target owner handoff [skip ci]
This commit is contained in:
@@ -1,3 +1,36 @@
|
||||
## 2026-06-04|IwoooS P1-3 GitHub Target Owner Response Handoff
|
||||
|
||||
**背景**:P1-2 已把 Gitea authenticated inventory request handoff 補齊;本段接著補 P1-3 / S4.10 GitHub target owner response handoff。目標是讓 owner 逐項回覆 7 個 GitHub target 的 owner、visibility、canonical 與 target disposition,同時避免把 `not_found_or_private` 誤讀成 repo 不存在或可直接建立。
|
||||
|
||||
**本輪完成**:
|
||||
- 更新 `GITHUB-TARGET-OWNER-DECISION-RESPONSE.md`:日期改為 2026-06-04,新增 P1-3 handoff 摘要、6 項送件前檢查、9 欄交接封套與送後不變條件。
|
||||
- 更新 `github-target-owner-decision-response.snapshot.json`:新增 `target_owner_handoff_package_ready=true`、`target_owner_handoff_completion_percent=100`、`target_owner_handoff_check_count=6`、`target_owner_handoff_packet_field_count=9`,並維持 `received_response_count=0`、`accepted_response_count=0`、`repo_creation_authorized=false`、`visibility_change_authorized=false`。
|
||||
- 更新 `github_target_owner_decision_response_v1.schema.json`:同步納入 handoff preflight、handoff packet 與 post-dispatch invariants,避免 snapshot 與 schema 漂移。
|
||||
- 更新 IwoooS P0/P1 主控總帳:P1 只讀重盤工作完成度從 `64%` 調到 `66%`;GitHub primary readiness gate 仍 `0`。
|
||||
|
||||
**完成度更新**:
|
||||
- P1-3 GitHub target owner response handoff:`100%`。
|
||||
- P1 GitHub primary readiness 只讀重盤階段:`66%`。
|
||||
- S4.10 owner response gate:`0%`,received / accepted / rejected 全部為 `0`。
|
||||
- GitHub primary readiness gate:`0`。
|
||||
|
||||
**驗證**:
|
||||
- `python3 -m json.tool docs/security/github-target-owner-decision-response.snapshot.json`:通過。
|
||||
- `python3 -m json.tool docs/schemas/github_target_owner_decision_response_v1.schema.json`:通過。
|
||||
- 本段自訂結構檢查:`GITHUB_TARGET_OWNER_HANDOFF_STRUCTURE_OK`。
|
||||
- `git diff --check`:通過。
|
||||
- `python3 scripts/security/source-control-owner-response-guard.py --root .`:`SOURCE_CONTROL_OWNER_RESPONSE_GUARD_OK`。
|
||||
- `python3 scripts/security/security-mirror-progress-guard.py --root .`:`SECURITY_MIRROR_PROGRESS_GUARD_OK`。
|
||||
- URL credential pattern 檢查:本段異動檔案無命中。
|
||||
- Schema validator 限制:本地沒有 Python `jsonschema` 與 Node AJV,未跑完整 JSON Schema validator;本段以 JSON parse、自訂結構檢查與既有 guard 補位。
|
||||
- Production 頁面檢查:本段只改 docs / snapshot / schema / LOGBOOK,未改前端、未部署、未宣稱新的 production 狀態;沿用 P0 `/zh-TW/iwooos` desktop / mobile live sanity 作為基準。
|
||||
|
||||
**目前邊界**:
|
||||
- `not_found_or_private` 只代表 read-only probe 看不到,不代表 repo 不存在、可建立或可改 visibility。
|
||||
- `nexu-io/open-design` 只作 external scope evidence,不納入 AWOOOI 7 個 approval-required target queue。
|
||||
- 不建立 GitHub repo、不改 visibility、不同步或刪除 refs、不 force push、不修改 workflow / secret、不切 GitHub primary、不停 Gitea。
|
||||
- S4.10 response 即使未來通過,也只能更新 read-only target decision table、approval package、approval board 與 readiness wording。
|
||||
|
||||
## 2026-06-04|IwoooS P1-2 Gitea Authenticated Inventory Request Handoff
|
||||
|
||||
**背景**:P1 GitHub primary readiness 只讀重盤仍卡在 Gitea authenticated / admin export 全量清冊缺口;public-only user endpoint 只能看到 2 個 repo,本機 remote evidence 至少有 4 個 unique Gitea repos,不能把 public-only 結果當完整清冊。本段補 P1-2 請求交接封套,讓後續 owner / 管理者知道可以提供什麼、禁止提供什麼,以及 S4.9 owner response gate 仍是先行條件。
|
||||
|
||||
@@ -14,6 +14,9 @@
|
||||
"target_contract",
|
||||
"source_indexes",
|
||||
"summary",
|
||||
"target_owner_handoff_preflight_checks",
|
||||
"target_owner_handoff_packet",
|
||||
"post_dispatch_invariants",
|
||||
"response_templates",
|
||||
"acceptance_checks",
|
||||
"rejection_rules",
|
||||
@@ -75,7 +78,16 @@
|
||||
"refs_sync_authorized",
|
||||
"github_primary_switch_authorized",
|
||||
"secret_value_collection_allowed",
|
||||
"action_buttons_allowed"
|
||||
"action_buttons_allowed",
|
||||
"target_owner_handoff_package_ready",
|
||||
"target_owner_handoff_completion_percent",
|
||||
"target_owner_handoff_check_count",
|
||||
"target_owner_handoff_packet_field_count",
|
||||
"target_owner_request_dispatch_authorized",
|
||||
"not_found_or_private_as_absent_allowed",
|
||||
"repo_creation_allowed_without_owner_response",
|
||||
"visibility_change_allowed_without_owner_response",
|
||||
"github_target_owner_response_handoff_not_approval"
|
||||
],
|
||||
"properties": {
|
||||
"owner_response_status": {
|
||||
@@ -101,10 +113,112 @@
|
||||
"refs_sync_authorized": {"type": "boolean", "const": false},
|
||||
"github_primary_switch_authorized": {"type": "boolean", "const": false},
|
||||
"secret_value_collection_allowed": {"type": "boolean", "const": false},
|
||||
"action_buttons_allowed": {"type": "boolean", "const": false}
|
||||
"action_buttons_allowed": {"type": "boolean", "const": false},
|
||||
"target_owner_handoff_package_ready": {"type": "boolean", "const": true},
|
||||
"target_owner_handoff_completion_percent": {
|
||||
"type": "integer",
|
||||
"minimum": 0,
|
||||
"maximum": 100
|
||||
},
|
||||
"target_owner_handoff_check_count": {"type": "integer", "minimum": 0},
|
||||
"target_owner_handoff_packet_field_count": {"type": "integer", "minimum": 0},
|
||||
"target_owner_request_dispatch_authorized": {"type": "boolean", "const": false},
|
||||
"not_found_or_private_as_absent_allowed": {"type": "boolean", "const": false},
|
||||
"repo_creation_allowed_without_owner_response": {"type": "boolean", "const": false},
|
||||
"visibility_change_allowed_without_owner_response": {"type": "boolean", "const": false},
|
||||
"github_target_owner_response_handoff_not_approval": {"type": "boolean", "const": true}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"target_owner_handoff_preflight_checks": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"check_id",
|
||||
"display_order",
|
||||
"check",
|
||||
"current_status",
|
||||
"execution_authorized"
|
||||
],
|
||||
"properties": {
|
||||
"check_id": {"type": "string"},
|
||||
"display_order": {"type": "integer", "minimum": 1},
|
||||
"check": {"type": "string"},
|
||||
"current_status": {
|
||||
"type": "string",
|
||||
"enum": ["defined_not_dispatched"]
|
||||
},
|
||||
"execution_authorized": {"type": "boolean", "const": false}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"minItems": 1
|
||||
},
|
||||
"target_owner_handoff_packet": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"request_id",
|
||||
"stage_id",
|
||||
"prerequisite_gates",
|
||||
"requested_templates",
|
||||
"target_probe_summary",
|
||||
"recipient_role_or_team_required",
|
||||
"required_response_fields",
|
||||
"forbidden_inputs",
|
||||
"not_approval",
|
||||
"execution_authorized"
|
||||
],
|
||||
"properties": {
|
||||
"request_id": {"type": "string"},
|
||||
"stage_id": {"type": "string"},
|
||||
"prerequisite_gates": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"minItems": 1
|
||||
},
|
||||
"requested_templates": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"minItems": 1
|
||||
},
|
||||
"target_probe_summary": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"candidate_count",
|
||||
"exists_count",
|
||||
"not_found_or_private_count",
|
||||
"external_scope_summary_repo"
|
||||
],
|
||||
"properties": {
|
||||
"candidate_count": {"type": "integer", "minimum": 0},
|
||||
"exists_count": {"type": "integer", "minimum": 0},
|
||||
"not_found_or_private_count": {"type": "integer", "minimum": 0},
|
||||
"external_scope_summary_repo": {"type": "string"}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"recipient_role_or_team_required": {"type": "boolean", "const": true},
|
||||
"required_response_fields": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"minItems": 1
|
||||
},
|
||||
"forbidden_inputs": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"minItems": 1
|
||||
},
|
||||
"not_approval": {"type": "boolean", "const": true},
|
||||
"execution_authorized": {"type": "boolean", "const": false}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"post_dispatch_invariants": {
|
||||
"type": "array",
|
||||
"items": {"type": "string"},
|
||||
"minItems": 1
|
||||
},
|
||||
"owner_response_request_packet": {
|
||||
"type": "object",
|
||||
"description": "AwoooP 可直接顯示給 owner 的 S4.10 GitHub target owner decision 回覆請求;只說明要填什麼與不得貼什麼,不授權 repo、visibility、refs 或 primary 執行。",
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
| 項目 | 內容 |
|
||||
|------|------|
|
||||
| 日期 | 2026-05-17 |
|
||||
| 狀態 | 草案,等待 owner response |
|
||||
| 日期 | 2026-06-04 |
|
||||
| 狀態 | 草案與 P1-3 handoff 已整理,等待 owner response |
|
||||
| 資料契約 | `docs/schemas/github_target_owner_decision_response_v1.schema.json` |
|
||||
| 快照 | `docs/security/github-target-owner-decision-response.snapshot.json` |
|
||||
| 來源契約 | `github_target_decision_v1` |
|
||||
@@ -44,6 +44,56 @@ S4.10 不是 repo creation approval、不是 visibility change approval、不是
|
||||
| 授權切換 GitHub primary | `false` |
|
||||
| 允許收集 secret value | `false` |
|
||||
| 允許 action button | `false` |
|
||||
| P1-3 handoff package | `ready` |
|
||||
| request dispatch authorized | `false` |
|
||||
| `not_found_or_private` 當不存在 | `false` |
|
||||
|
||||
## 1.0 2026-06-04 P1-3 GitHub Target Owner Handoff
|
||||
|
||||
本段把 S4.10 從「收件包已定義」推到「P1-3 可交接請 owner 逐項回覆」。這是 handoff readiness,不是 request sent、不是 owner response received、不是 repo 建立或 visibility 變更批准。S4.9 owner response gate 與 P1-2 Gitea authenticated inventory request handoff 仍是前置依賴;未通過前不得把 GitHub target decision 視為可執行。
|
||||
|
||||
| 指標 | 值 |
|
||||
|------|----|
|
||||
| P1-3 handoff package | ready |
|
||||
| handoff completion | 100% |
|
||||
| request dispatch authorized | false |
|
||||
| target probe candidates | 8 |
|
||||
| approval-required targets | 7 |
|
||||
| external scope summary target | `nexu-io/open-design` |
|
||||
| `not_found_or_private` targets | 3 |
|
||||
| owner response received | 0 |
|
||||
| owner response accepted | 0 |
|
||||
| repo creation authorized | false |
|
||||
| visibility change authorized | false |
|
||||
|
||||
### 1.0.1 送件前檢查
|
||||
|
||||
| 順序 | 檢查項 | 完成條件 | 目前狀態 |
|
||||
|------|--------|----------|----------|
|
||||
| 1 | 基線同步 | 送件前確認 `gitea/main`、GitHub target probe、S4.9 / P1-2 最新狀態 | 已定義,未送件 |
|
||||
| 2 | 七個 target 範圍 | 只向 7 個 approval-required targets 收 owner / visibility / canonical 回覆 | 已定義,未送件 |
|
||||
| 3 | external scope 摘要 | `nexu-io/open-design` 只作 external scope evidence,不納入 AWOOOI target approval queue | 已定義,未送件 |
|
||||
| 4 | `not_found_or_private` 語意 | 只能表示 read-only probe 看不到;不得視為 repo 不存在或可直接建立 | 已定義,未送件 |
|
||||
| 5 | 回覆欄位 | 必須有 owner role/team、decision、reason、canonical source、target disposition、visibility review owner、redacted evidence refs | 已定義,未送件 |
|
||||
| 6 | 執行要求拒收 | repo creation、visibility change、refs sync、workflow / secret 修改、primary switch 全部 hard reject | 已定義,未送件 |
|
||||
|
||||
### 1.0.2 交接封套欄位
|
||||
|
||||
| 欄位 | 內容規則 |
|
||||
|------|----------|
|
||||
| `request_id` | `p1_3_github_target_owner_response_handoff` |
|
||||
| `stage_id` | `S4.10` |
|
||||
| `prerequisite_gates` | S4.9 owner response gate、P1-2 Gitea authenticated inventory request handoff |
|
||||
| `requested_templates` | 只引用本文件第 3 節七個 template id |
|
||||
| `target_probe_summary` | 8 個 candidates、5 個 exists、3 個 `not_found_or_private`、1 個 external scope summary |
|
||||
| `recipient_role_or_team` | 只填 role / team,不收個人敏感資料或 credential |
|
||||
| `required_response_fields` | owner role/team、decision、decision reason、canonical source、target disposition、visibility review owner、redacted evidence refs、followup owner |
|
||||
| `forbidden_inputs` | token、secret、private key、private clone URL credential、repo archive、git object pack、API request body |
|
||||
| `not_approval` | 必須為 `true` |
|
||||
|
||||
### 1.0.3 送件後不變條件
|
||||
|
||||
即使後續 owner 實際回覆,也只能先進 S4.10 intake preflight 與 reviewer validation。通過後可更新 read-only GitHub target decision table、approval package、approval board 與 readiness wording;不得直接建立 repo、修改 visibility、sync / delete refs、force push、改 workflow / secret、切 GitHub primary 或停用 Gitea。
|
||||
|
||||
## 1.1 Owner Response Request Packet
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema_version": "github_target_owner_decision_response_v1",
|
||||
"status": "draft_waiting_owner_response",
|
||||
"date": "2026-05-17",
|
||||
"date": "2026-06-04",
|
||||
"mode": "owner_decision_response_intake_only",
|
||||
"runtime_execution_authorized": false,
|
||||
"source_contract": "github_target_decision_v1",
|
||||
@@ -37,8 +37,116 @@
|
||||
"refs_sync_authorized": false,
|
||||
"github_primary_switch_authorized": false,
|
||||
"secret_value_collection_allowed": false,
|
||||
"action_buttons_allowed": false
|
||||
"action_buttons_allowed": false,
|
||||
"target_owner_handoff_package_ready": true,
|
||||
"target_owner_handoff_completion_percent": 100,
|
||||
"target_owner_handoff_check_count": 6,
|
||||
"target_owner_handoff_packet_field_count": 9,
|
||||
"target_owner_request_dispatch_authorized": false,
|
||||
"not_found_or_private_as_absent_allowed": false,
|
||||
"repo_creation_allowed_without_owner_response": false,
|
||||
"visibility_change_allowed_without_owner_response": false,
|
||||
"github_target_owner_response_handoff_not_approval": true
|
||||
},
|
||||
"target_owner_handoff_preflight_checks": [
|
||||
{
|
||||
"check_id": "p1-3-baseline-sync",
|
||||
"display_order": 1,
|
||||
"check": "送件前確認 gitea/main、GitHub target probe、S4.9 / P1-2 最新狀態。",
|
||||
"current_status": "defined_not_dispatched",
|
||||
"execution_authorized": false
|
||||
},
|
||||
{
|
||||
"check_id": "p1-3-seven-target-scope",
|
||||
"display_order": 2,
|
||||
"check": "只向 7 個 approval-required targets 收 owner / visibility / canonical 回覆。",
|
||||
"current_status": "defined_not_dispatched",
|
||||
"execution_authorized": false
|
||||
},
|
||||
{
|
||||
"check_id": "p1-3-external-scope-summary",
|
||||
"display_order": 3,
|
||||
"check": "nexu-io/open-design 只作 external scope evidence,不納入 AWOOOI target approval queue。",
|
||||
"current_status": "defined_not_dispatched",
|
||||
"execution_authorized": false
|
||||
},
|
||||
{
|
||||
"check_id": "p1-3-not-found-or-private-semantics",
|
||||
"display_order": 4,
|
||||
"check": "not_found_or_private 只能表示 read-only probe 看不到;不得視為 repo 不存在或可直接建立。",
|
||||
"current_status": "defined_not_dispatched",
|
||||
"execution_authorized": false
|
||||
},
|
||||
{
|
||||
"check_id": "p1-3-required-owner-fields",
|
||||
"display_order": 5,
|
||||
"check": "必須有 owner role/team、decision、reason、canonical source、target disposition、visibility review owner、redacted evidence refs。",
|
||||
"current_status": "defined_not_dispatched",
|
||||
"execution_authorized": false
|
||||
},
|
||||
{
|
||||
"check_id": "p1-3-execution-request-rejected",
|
||||
"display_order": 6,
|
||||
"check": "repo creation、visibility change、refs sync、workflow / secret 修改、primary switch 全部 hard reject。",
|
||||
"current_status": "defined_not_dispatched",
|
||||
"execution_authorized": false
|
||||
}
|
||||
],
|
||||
"target_owner_handoff_packet": {
|
||||
"request_id": "p1_3_github_target_owner_response_handoff",
|
||||
"stage_id": "S4.10",
|
||||
"prerequisite_gates": [
|
||||
"S4.9 owner response gate",
|
||||
"P1-2 Gitea authenticated inventory request handoff"
|
||||
],
|
||||
"requested_templates": [
|
||||
"target-awoooi-refs-blocked",
|
||||
"target-clawbot-v5-refs-blocked",
|
||||
"target-wooo-aiops-refs-blocked",
|
||||
"target-wooo-infra-config-internal-remote",
|
||||
"target-ewoooc-private-or-new",
|
||||
"target-bitan-pharmacy-private-or-new",
|
||||
"target-tsenyang-website-private-or-new"
|
||||
],
|
||||
"target_probe_summary": {
|
||||
"candidate_count": 8,
|
||||
"exists_count": 5,
|
||||
"not_found_or_private_count": 3,
|
||||
"external_scope_summary_repo": "nexu-io/open-design"
|
||||
},
|
||||
"recipient_role_or_team_required": true,
|
||||
"required_response_fields": [
|
||||
"owner_role_or_team",
|
||||
"decision",
|
||||
"decision_reason",
|
||||
"canonical_source",
|
||||
"github_target_disposition",
|
||||
"visibility_review_owner",
|
||||
"redacted_evidence_refs",
|
||||
"followup_owner"
|
||||
],
|
||||
"forbidden_inputs": [
|
||||
"token_value",
|
||||
"secret_value",
|
||||
"private_key",
|
||||
"private_clone_url_credential",
|
||||
"repo_archive",
|
||||
"git_object_pack",
|
||||
"api_request_body",
|
||||
"repo_creation_command",
|
||||
"visibility_change_command",
|
||||
"refs_sync_or_delete_request",
|
||||
"github_primary_switch_request"
|
||||
],
|
||||
"not_approval": true,
|
||||
"execution_authorized": false
|
||||
},
|
||||
"post_dispatch_invariants": [
|
||||
"Owner response 到來後仍需先進 S4.10 intake preflight 與 reviewer validation。",
|
||||
"not_found_or_private 不得自動視為 repo 不存在或可建立。",
|
||||
"通過後只可更新 read-only target decision table、approval package、approval board 與 readiness wording。",
|
||||
"不得直接建立 repo、修改 visibility、sync/delete refs、force push、改 workflow / secret、切 GitHub primary 或停用 Gitea。"
|
||||
],
|
||||
"owner_response_request_packet": {
|
||||
"request_id": "s4_10_github_target_owner_decision_response_request",
|
||||
"display_status": "ready_to_request_owner_response",
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
| runtime landing | 40-45% | 否 | production 只讀頁存在,不等於 runtime ingestion 或 execution router |
|
||||
| active runtime gate | 0 | 否 | 必須維持 0,直到獨立人工批准、rollback、post-check 與 guard 成立 |
|
||||
| S4.9 owner response gate | 0% | 可在收到合格回覆後調整 | 目前只定義欄位、預檢、收件與驗收,不標記 received / accepted |
|
||||
| GitHub primary readiness | 0 | 否 | primary gate 仍為 0;P1 只讀重盤工作本身目前約 64%,不代表可切 primary |
|
||||
| GitHub primary readiness | 0 | 否 | primary gate 仍為 0;P1 只讀重盤工作本身目前約 66%,不代表可切 primary |
|
||||
| Kali 112 維護準備 | 只讀證據已納管,維護尚未開始 | 否 | 不更新套件、不重啟、不 hardening、不 active scan |
|
||||
| 111 / 168 開發主機納管 | observe-only mapping 已有,維護包需補強 | 可補文件,不調 runtime | 仍不 credentialed scan、不讀未授權資料、不自動修復 |
|
||||
| VibeWork 納入 IwoooS | 前端態勢已有 onboarding 欄位,產品邊界需補規範 | 可補文件 | 保留 VibeWork 獨立產品邊界 |
|
||||
@@ -147,16 +147,17 @@ S4.9 是目前 IwoooS 64% 能往前的第一優先 gate。驗收前所有 count
|
||||
|------|--------|-----------------|--------|
|
||||
| `awoooi` Gitea / GitHub refs refresh | 100% | Gitea heads `170`、GitHub heads `2`、Gitea tags `2`、GitHub tags `0`、main SHA 不一致 | 已重產 ref detail diff / ref truth classification;下一步收 S4.11 owner response |
|
||||
| Gitea public repo inventory refresh | 100% | user endpoint public-only 仍只見 `wooo/awoooi`、`wooo/ewoooc`;org endpoint 仍 blocked / 404 | 取得只讀 token 或 redacted admin export 批准 |
|
||||
| GitHub target probe refresh | 100% | 8 個候選中 5 個可讀、3 個 `not_found_or_private`;`open-design` heads `644` 只作 external scope evidence | owner / visibility / canonical response 仍待收 |
|
||||
| GitHub target probe refresh | 100% | 8 個候選中 5 個可讀、3 個 `not_found_or_private`;`open-design` heads `644` 只作 external scope evidence | P1-3 handoff 已補;owner / visibility / canonical response 仍待收 |
|
||||
| Workflow / secret 名稱本機 evidence refresh | 100% | 31 個 workflow files、42 個 unique referenced secret names、`secret_value_detected=false` | 補 webhook、runner owner、deploy key、branch protection、secret name parity |
|
||||
| Primary readiness gate 文件更新 | 90% | 已寫入 2026-06-04 refs truth 重產結果與禁止誤讀規則 | 跑 guard 後以 LOGBOOK 封存 |
|
||||
| Gitea authenticated inventory request handoff | 100% | S4.5 請求已對齊 S4.9 owner response gate,補 5 項 request dispatch preflight、8 欄 handoff packet 與送後不變條件 | 仍未收 token value、未收 payload、未 import inventory;S4.6/S4.9 驗收前不得標記 status=ok |
|
||||
| GitHub target owner response handoff | 100% | S4.10 已對齊 2026-06-04 target probe,補 6 項 target owner handoff preflight、9 欄 handoff packet 與送後不變條件 | `not_found_or_private` 不得視為不存在;received / accepted 仍 0,不建 repo、不改 visibility |
|
||||
| 全量 Gitea 專案版本盤點 | 25% | 目前仍是 public-only + 本機輔助 evidence | 需只讀 token / admin export;不使用 write credential |
|
||||
| 逐 repo refs truth queue | 100% | S4.11 current queue 已重產為 `194` refs review items:真相來源 `4`、deprecated / archive 候選 `142`、release tag `3`、GitHub-only `20` | 送 owner response;received / accepted 仍維持 0 |
|
||||
| Workflow / runner / secret parity owner response | 15% | 有 local evidence 與 template,但 received / accepted 皆 0 | 只收 redacted metadata,不收 value |
|
||||
| GitHub primary cutover readiness | 0% | `primary_ready_count=0`、`github_primary_switch_authorized=false` | 需 owner、parity、rollback ADR、人工批准全部成立 |
|
||||
|
||||
P1 只讀重盤階段整體完成度:`64%`。它代表 freshness / inventory / handoff 工作進度,不代表 GitHub primary gate、authenticated inventory gate 或 runtime gate 提升。
|
||||
P1 只讀重盤階段整體完成度:`66%`。它代表 freshness / inventory / handoff 工作進度,不代表 GitHub primary gate、authenticated inventory gate、owner response accepted 或 runtime gate 提升。
|
||||
|
||||
## 6.2 規範分析:已不符合、需新增、需調整
|
||||
|
||||
@@ -179,7 +180,7 @@ P1 只讀重盤階段整體完成度:`64%`。它代表 freshness / inventory /
|
||||
|------|------|------|----------|
|
||||
| P1-1 | Source-control refs truth 重產 | 以 2026-06-04 `awoooi` refs refresh 重產 detail diff / truth classification | 新 queue 已改為 `194` items,不再引用舊 `141` 為 current |
|
||||
| P1-2 | Gitea authenticated inventory request | 已補 2026-06-04 request handoff package;S4.9 owner response gate 作先行條件,只讀 token API / redacted admin export 二選一 | 只收 metadata,不保存 token value;received / accepted / imported 全部仍為 0 |
|
||||
| P1-3 | GitHub target owner response | 對 7 個 in-scope targets 收 owner / visibility / canonical 決策 | received / accepted 前仍全部 0 |
|
||||
| P1-3 | GitHub target owner response | 已補 2026-06-04 target owner handoff package;對 7 個 in-scope targets 收 owner / visibility / canonical 決策 | received / accepted 前仍全部 0;`not_found_or_private` 不代表不存在或可建立 |
|
||||
| P1-4 | Workflow / runner / secret parity evidence | webhook、runner owner、deploy key、branch protection、CODEOWNERS、secret name parity | redacted evidence refs 完整,secret value 仍拒收 |
|
||||
| P1-5 | Primary rollback ADR 補強 | 逐 repo rollback owner、trigger、validation window、fallback role | ADR approved 前不切 primary |
|
||||
| P1-6 | AwoooP Session 同步 | 同步 commits、runs、production sanity、P1 refresh counts、gate 0 / false | 另一 Session 不再使用舊 refs count |
|
||||
@@ -207,6 +208,8 @@ P1 只讀重盤階段整體完成度:`64%`。它代表 freshness / inventory /
|
||||
| P1 workflow / secret 名稱 refresh | 31 個 workflow files、42 個 unique referenced secret names、`secret_value_detected=false` |
|
||||
| P1-2 Gitea authenticated inventory request handoff | S4.5 request 日期更新為 2026-06-04;補 5 項 dispatch preflight、8 欄 request handoff packet、送後不變條件;payload received / accepted / imported 仍 0 |
|
||||
| P1-2 JSON parse / structure check | `gitea-authenticated-inventory-export-request.snapshot.json` 與 schema JSON parse 通過;本段自訂結構檢查 `GITEA_AUTHENTICATED_INVENTORY_HANDOFF_STRUCTURE_OK`;本地無 `jsonschema` / AJV,未跑完整 schema validator |
|
||||
| P1-3 GitHub target owner response handoff | S4.10 日期更新為 2026-06-04;補 6 項 target owner handoff preflight、9 欄 handoff packet、送後不變條件;received / accepted / rejected 仍 0 |
|
||||
| P1-3 JSON parse / structure check | `github-target-owner-decision-response.snapshot.json` 與 schema JSON parse 通過;本段自訂結構檢查 `GITHUB_TARGET_OWNER_HANDOFF_STRUCTURE_OK`;本地無 `jsonschema` / AJV,未跑完整 schema validator |
|
||||
| P1 JSON parse | `gitea-github-awoooi-inventory`、`github-target-probe`、`source-control-primary-readiness-gate`、`source-control-workflow-secret-name-local-evidence`、Gitea repo / search / org blocked snapshots 皆通過 |
|
||||
| P1 production 頁面檢查 | 本輪未改前端、未改 production 文案、未新增 deploy;不宣稱新的 production 狀態,沿用 P0 live sanity 作為基準 |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user