Merge remote-tracking branch 'gitea-ssh/main' into codex/p0-product-manifest-standard-20260629
This commit is contained in:
@@ -49393,3 +49393,19 @@ production browser smoke:
|
||||
|
||||
**仍維持**:
|
||||
- 未寫 credential marker、未讀 secret / token / `.env` / raw sessions / SQLite / auth,未做 host / Docker / Nginx / firewall / K3s / DB 操作,未使用 GitHub。
|
||||
|
||||
## 2026-06-29 — 14:09 P0-003 Gitea-only private inventory scorecard
|
||||
|
||||
**完成內容**:
|
||||
- 新增 `scripts/security/gitea-private-inventory-p0-scorecard.py`,把 P0-003 收斂為 Gitea-only scorecard;GitHub lane 固定 `stopped_retired_do_not_use`,且 `github_lane_excluded_from_p0_blocker_count=true`。
|
||||
- 產生 `docs/operations/awoooi-gitea-private-inventory-p0-scorecard.snapshot.json`:目前 `gitea_repo_inventory.status=partial`、`visibility_scope=public_only`、public repo count `2`,authenticated/admin export payload accepted `0`,owner coverage attestation received `0`。
|
||||
- 讀回 active product rows:expected `11`、present `11`、missing `0`、ready `3`、blocked `8`,`all_active_product_repos_have_gitea_owner_readiness_row=true`。
|
||||
- 更新 priority readback 的 P0-003 row:active blockers 只剩 Gitea authenticated/admin export redacted payload 與 owner coverage attestation,不再把 GitHub recovery/primary/target 當 P0 blocker。
|
||||
|
||||
**本地驗證結果**:
|
||||
- `python3.11 -m py_compile scripts/security/gitea-private-inventory-p0-scorecard.py`:通過。
|
||||
- `python3.11 -m pytest scripts/security/tests/test_gitea_private_inventory_p0_scorecard.py -q`:`3 passed`。
|
||||
- `python3 scripts/security/gitea-private-inventory-p0-scorecard.py --generated-at 2026-06-29T14:09:49+08:00 --output docs/operations/awoooi-gitea-private-inventory-p0-scorecard.snapshot.json` + `jq empty`:通過。
|
||||
|
||||
**未做**:
|
||||
- 沒有使用 GitHub / gh / GitHub API;沒有讀 token / secret / `.env` / raw sessions / SQLite / auth;沒有寫 Gitea repo / refs / branch / secret;沒有 host 或 runtime 操作。
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
{
|
||||
"schema_version": "awoooi_gitea_private_inventory_p0_scorecard_v1",
|
||||
"generated_at": "2026-06-29T14:09:49+08:00",
|
||||
"workplan_id": "P0-003",
|
||||
"status": "blocked_waiting_gitea_authenticated_or_owner_export_inventory",
|
||||
"source_control_authority": "gitea",
|
||||
"private_inventory_source": "gitea",
|
||||
"github_status": "stopped_retired_do_not_use",
|
||||
"github_lane_excluded_from_p0_blocker_count": true,
|
||||
"github_api_used": false,
|
||||
"github_cli_used": false,
|
||||
"github_primary_switch_authorized": false,
|
||||
"gitea_inventory": {
|
||||
"schema_version": "gitea_repo_inventory_v1",
|
||||
"status": "partial",
|
||||
"visibility_scope": "public_only",
|
||||
"repo_count": 2,
|
||||
"token_present": false,
|
||||
"blocking_reason": "未提供 token,結果只代表公開可見 repo;private/internal repos 仍需只讀 token 或管理匯出"
|
||||
},
|
||||
"authenticated_import_acceptance": {
|
||||
"schema_version": "gitea_authenticated_inventory_import_acceptance_v1",
|
||||
"status": "draft_waiting_redacted_inventory_payload",
|
||||
"accepted_payload_count": 0,
|
||||
"token_value_collection_allowed": false,
|
||||
"execution_authorized": false
|
||||
},
|
||||
"coverage_attestation": {
|
||||
"schema_version": "gitea_inventory_coverage_attestation_v1",
|
||||
"status": "draft_waiting_owner_attestation",
|
||||
"received_attestation_count": 0,
|
||||
"accepted_attestation_count": 0,
|
||||
"execution_authorized": false
|
||||
},
|
||||
"product_row_coverage": {
|
||||
"expected_product_count": 11,
|
||||
"present_product_row_count": 11,
|
||||
"missing_product_row_count": 0,
|
||||
"ready_product_count": 3,
|
||||
"blocked_product_count": 8,
|
||||
"internal_or_authenticated_inventory_required_count": 3,
|
||||
"all_active_product_repos_have_gitea_owner_readiness_row": true
|
||||
},
|
||||
"product_rows": [
|
||||
{
|
||||
"product_id": "awoooi",
|
||||
"state": "ready",
|
||||
"status": "ready",
|
||||
"gitea_repo": "wooo/awoooi",
|
||||
"remote_main_present": true,
|
||||
"remote_dev_present": true,
|
||||
"next_gate": "use codex-workspaces/awoooi-dev and branch from dev for tasks",
|
||||
"blockers": [],
|
||||
"owner_readiness_row_present": true
|
||||
},
|
||||
{
|
||||
"product_id": "momo-pro",
|
||||
"state": "ready",
|
||||
"status": "ready",
|
||||
"gitea_repo": "wooo/ewoooc",
|
||||
"remote_main_present": true,
|
||||
"remote_dev_present": true,
|
||||
"next_gate": "use this workspace for Codex tasks by branching from dev into codex/*; do not edit dev directly",
|
||||
"blockers": [],
|
||||
"owner_readiness_row_present": true
|
||||
},
|
||||
{
|
||||
"product_id": "awooogo",
|
||||
"state": "ready",
|
||||
"status": "ready",
|
||||
"gitea_repo": "wooo/AwoooGo",
|
||||
"remote_main_present": true,
|
||||
"remote_dev_present": true,
|
||||
"next_gate": "use this workspace for Codex tasks by branching from dev into codex/*; do not edit dev directly",
|
||||
"blockers": [],
|
||||
"owner_readiness_row_present": true
|
||||
},
|
||||
{
|
||||
"product_id": "2026fifa",
|
||||
"state": "blocked",
|
||||
"status": "blocked_local_drift_review_required",
|
||||
"gitea_repo": "",
|
||||
"remote_main_present": false,
|
||||
"remote_dev_present": false,
|
||||
"next_gate": "build narrow drift review and owner pick list before any dev branch creation",
|
||||
"blockers": [
|
||||
"local_head_differs_from_gitea_main",
|
||||
"diff_readback_timeout",
|
||||
"production_branch_checked_out"
|
||||
],
|
||||
"owner_readiness_row_present": true
|
||||
},
|
||||
{
|
||||
"product_id": "agent-bounty-protocol",
|
||||
"state": "blocked",
|
||||
"status": "blocked_local_drift_review_required",
|
||||
"gitea_repo": "",
|
||||
"remote_main_present": false,
|
||||
"remote_dev_present": false,
|
||||
"next_gate": "owner pick list for A2A/traffic/propose changes before dev branch creation",
|
||||
"blockers": [
|
||||
"local_head_differs_from_gitea_main",
|
||||
"tracked_dirty_worktree",
|
||||
"production_branch_checked_out"
|
||||
],
|
||||
"owner_readiness_row_present": true
|
||||
},
|
||||
{
|
||||
"product_id": "stockplatform-v2",
|
||||
"state": "blocked",
|
||||
"status": "blocked_dirty_worktree_review_required",
|
||||
"gitea_repo": "",
|
||||
"remote_main_present": false,
|
||||
"remote_dev_present": false,
|
||||
"next_gate": "review dirty files and owner-selected include/exclude list before dev branch creation",
|
||||
"blockers": [
|
||||
"tracked_dirty_worktree",
|
||||
"production_branch_checked_out"
|
||||
],
|
||||
"owner_readiness_row_present": true
|
||||
},
|
||||
{
|
||||
"product_id": "vibework",
|
||||
"state": "blocked",
|
||||
"status": "blocked_local_drift_review_required",
|
||||
"gitea_repo": "",
|
||||
"remote_main_present": false,
|
||||
"remote_dev_present": false,
|
||||
"next_gate": "owner pick list for growth/admin/runtime changes before dev branch creation",
|
||||
"blockers": [
|
||||
"local_head_differs_from_gitea_main",
|
||||
"tracked_dirty_worktree",
|
||||
"production_branch_checked_out"
|
||||
],
|
||||
"owner_readiness_row_present": true
|
||||
},
|
||||
{
|
||||
"product_id": "clawbot-openclaw",
|
||||
"state": "blocked",
|
||||
"status": "blocked_local_drift_review_required",
|
||||
"gitea_repo": "",
|
||||
"remote_main_present": false,
|
||||
"remote_dev_present": false,
|
||||
"next_gate": "review docker-compose and main.py drift before dev branch creation",
|
||||
"blockers": [
|
||||
"local_head_differs_from_gitea_main",
|
||||
"tracked_dirty_worktree",
|
||||
"production_branch_checked_out"
|
||||
],
|
||||
"owner_readiness_row_present": true
|
||||
},
|
||||
{
|
||||
"product_id": "bitan-pharmacy",
|
||||
"state": "blocked",
|
||||
"status": "blocked_internal_inventory_and_dirty_review_required",
|
||||
"gitea_repo": "",
|
||||
"remote_main_present": false,
|
||||
"remote_dev_present": false,
|
||||
"next_gate": "owner export or authenticated inventory plus dirty review",
|
||||
"blockers": [
|
||||
"internal_repo_requires_owner_export_or_authenticated_inventory",
|
||||
"dirty_worktree"
|
||||
],
|
||||
"owner_readiness_row_present": true
|
||||
},
|
||||
{
|
||||
"product_id": "tsenyang-website",
|
||||
"state": "blocked",
|
||||
"status": "blocked_internal_inventory_and_dirty_review_required",
|
||||
"gitea_repo": "",
|
||||
"remote_main_present": false,
|
||||
"remote_dev_present": false,
|
||||
"next_gate": "owner export or authenticated inventory plus dirty review",
|
||||
"blockers": [
|
||||
"internal_repo_requires_owner_export_or_authenticated_inventory",
|
||||
"dirty_worktree"
|
||||
],
|
||||
"owner_readiness_row_present": true
|
||||
},
|
||||
{
|
||||
"product_id": "vtuber",
|
||||
"state": "blocked",
|
||||
"status": "blocked_repository_inventory_repair_required",
|
||||
"gitea_repo": "",
|
||||
"remote_main_present": false,
|
||||
"remote_dev_present": false,
|
||||
"next_gate": "repair local repository inventory before any Gitea action",
|
||||
"blockers": [
|
||||
"remote_repository_not_found_or_unauthenticated",
|
||||
"local_head_readback_abnormal",
|
||||
"dirty_worktree"
|
||||
],
|
||||
"owner_readiness_row_present": true
|
||||
}
|
||||
],
|
||||
"active_blockers": [
|
||||
"gitea_repo_inventory_status_not_ok",
|
||||
"gitea_visibility_scope_public_only_or_unknown",
|
||||
"gitea_authenticated_inventory_payload_not_accepted",
|
||||
"gitea_owner_coverage_attestation_not_received"
|
||||
],
|
||||
"exit_criteria": [
|
||||
"private_inventory_source=gitea",
|
||||
"github_lane_excluded_from_p0_blocker_count=true",
|
||||
"gitea_repo_inventory.status=ok",
|
||||
"gitea_repo_inventory.visibility_scope in authenticated/admin_export",
|
||||
"all_active_product_repos_have_gitea_owner_readiness_row=true"
|
||||
],
|
||||
"safe_next_step": "obtain_gitea_authenticated_or_admin_export_redacted_inventory_payload_then_validate_import_acceptance_and_owner_attestation"
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"schema_version": "awoooi_priority_work_order_readback_v1",
|
||||
"generated_at": "2026-06-29T14:05:53+08:00",
|
||||
"status": "p0_005_dr_escrow_checklist_ready_waiting_redacted_refs",
|
||||
"generated_at": "2026-06-29T14:11:34+08:00",
|
||||
"status": "p0_005_waiting_refs_p0_003_gitea_only_scorecard_ready",
|
||||
"source_refs": {
|
||||
"global_scorecard": "~/.codex/product-runtime-governance-completion-scorecard.snapshot.json",
|
||||
"workstation_dashboard": "~/.codex/codex-workstation-sync-dashboard.snapshot.json",
|
||||
@@ -10,10 +10,11 @@
|
||||
"delivery_closure_workbench": "https://awoooi.wooo.work/api/v1/agents/delivery-closure-workbench",
|
||||
"public_gitea_queue_readback": "ops/runner/read-public-gitea-actions-queue.py --json",
|
||||
"credential_escrow_scorecard": "/tmp/awoooi-credential-escrow-intake-scorecard-20260629-1200-priority.json",
|
||||
"dr_escrow_evidence_checklist_generator": "scripts/reboot-recovery/dr-escrow-evidence-checklist.py"
|
||||
"dr_escrow_evidence_checklist_generator": "scripts/reboot-recovery/dr-escrow-evidence-checklist.py",
|
||||
"gitea_private_inventory_p0_scorecard": "docs/operations/awoooi-gitea-private-inventory-p0-scorecard.snapshot.json"
|
||||
},
|
||||
"current_head": {
|
||||
"gitea_main_sha": "c98e6d5e5309dad9f0be4399a3d2e1fe2ec669ca",
|
||||
"gitea_main_sha": "86e674cf9e31118c6c52067a27b9c4e8e69cf8a0",
|
||||
"latest_successful_deploy_marker": "9362588ce chore(cd): deploy a423301 [skip ci]",
|
||||
"latest_successful_deployed_source_sha": "a4233017ad5fd03977233f3db6a4bb45d71507ed",
|
||||
"latest_source_readiness_commit_sha": "0c8d4e88c39157b92322fa41a92e6b15c317ac49",
|
||||
@@ -148,17 +149,33 @@
|
||||
{
|
||||
"workplan_id": "P0-003",
|
||||
"title": "取得 Gitea private inventory 權限",
|
||||
"status": "blocked_external_or_authenticated_inventory_required",
|
||||
"reason": "Global scorecard still reports private/internal inventory incomplete; GitHub remains stopped and must not be used as a fallback.",
|
||||
"status": "blocked_waiting_gitea_authenticated_or_owner_export_inventory",
|
||||
"reason": "P0-003 now has a Gitea-only scorecard. GitHub is excluded from active P0 blocker math; remaining blockers are Gitea authenticated/admin export payload and owner coverage attestation.",
|
||||
"evidence": {
|
||||
"private_inventory_source": "gitea",
|
||||
"github_lane_excluded_from_p0_blocker_count": true,
|
||||
"gitea_inventory_status": "partial",
|
||||
"gitea_visibility_scope": "public_only",
|
||||
"gitea_public_repo_count": 2,
|
||||
"accepted_inventory_payload_count": 0,
|
||||
"owner_coverage_attestation_received_count": 0,
|
||||
"expected_product_count": 11,
|
||||
"present_product_row_count": 11,
|
||||
"missing_product_row_count": 0,
|
||||
"all_active_product_repos_have_gitea_owner_readiness_row": true
|
||||
},
|
||||
"professional_fix": {
|
||||
"owner": "Gitea inventory lane",
|
||||
"action": "Use Gitea-only inventory readback and retire GitHub from P0 completion math; keep GitHub as do_not_use historical context only.",
|
||||
"action": "Use the Gitea-only P0 scorecard, accept only redacted authenticated/admin export inventory payloads, and keep GitHub as do_not_use historical context only.",
|
||||
"exit_criteria": [
|
||||
"private_inventory_source=gitea",
|
||||
"github_lane_excluded_from_p0_blocker_count=true",
|
||||
"all active product repos have Gitea owner/readiness row"
|
||||
"gitea_repo_inventory.status=ok",
|
||||
"gitea_repo_inventory.visibility_scope in authenticated/admin_export",
|
||||
"all_active_product_repos_have_gitea_owner_readiness_row=true"
|
||||
]
|
||||
}
|
||||
},
|
||||
"safe_next_step": "validate_gitea_authenticated_or_admin_export_redacted_inventory_payload"
|
||||
},
|
||||
{
|
||||
"workplan_id": "P0-006",
|
||||
|
||||
Reference in New Issue
Block a user