docs(ops): add blocked products owner pick list [skip ci]

This commit is contained in:
Your Name
2026-06-24 13:46:36 +08:00
parent c302e8c41f
commit 2775332753
3 changed files with 318 additions and 0 deletions

View File

@@ -1,3 +1,32 @@
## 2026-06-24Blocked products owner pick list readback
**背景**AwoooGo MacBook auth blocker closeout 後,接續盤點剩餘 8 個尚未能轉成 Gitea `dev` workspace 的產品。本輪只讀產品 repo只看 branch / HEAD / remote refs / dirty count / untracked count / path sample不 fetch、不 pull、不 push、不建立 `dev`、不複製 raw `.git`、不讀 `.env` 或 secret value。
**Readback**
- Blocked products `8`ready for remote dev branch creation `0`
- Remote `dev` missing2026FIFA、Agent Bounty、StockPlatform v2、VibeWork、ClawBot / OpenClaw。
- Internal or missing repo inventoryBitan、Tsenyang Website、VTuber。
- Smallest next candidateClawBot / OpenClawtracked dirty `2` (`docker-compose.yml`, `main.py`)untracked `0`
- Largest unsafe candidateStockPlatform v2tracked dirty `60`untracked `3800`shortstat `60 files changed, 8355 insertions(+), 3173 deletions(-)`
- Tsenyang dirty surface is small but internal repo inventory is missing: tracked dirty `6`, untracked `2` presentation outputs。
- VTuber remains repository identity repair first: Gitea `wooo/vtuber` returns repository not found and local HEAD readback is abnormal.
**新增文件 / snapshot**
- `docs/operations/codex-gitea-blocked-products-owner-pick-list.snapshot.json`
- `docs/operations/CODEX-GITEA-BLOCKED-PRODUCTS-OWNER-PICK-LIST-2026-06-24.md`
**下一步順序**
1. ClawBot / OpenClaw two-file drift owner decision。
2. Tsenyang Website internal inventory + small dirty review。
3. Agent Bounty source vs backup archive split。
4. 2026FIFA narrow analytics / web route drift review。
5. VibeWork packages / MCP / brand asset pick list。
6. StockPlatform v2 generated-vs-source classification。
7. Bitan owner export + public-content evidence review。
8. VTuber repository identity repair。
**邊界**:本輪沒有建立任何遠端 `dev` branch沒有 product repo write沒有 remote write沒有 secret collection沒有 runtime action。不能把這份 pick list 當作 owner approval。
## 2026-06-24MacBook Pro AwoooGo Gitea SSH 與 dev workspace readback
**背景**:上一輪 MacBook safe artifact sync 已清除 handoff artifact blocker但 AwoooGo 在 MacBook 端仍因 Gitea auth / visibility gate 無法 clone。本輪只處理 MacBook 自己的 Gitea SSH public key 授權與 AwoooGo dev workspace不複製 Mac Mini private key不使用或保存密碼 / token不同步 raw Codex App DB / auth / conversations / sessions、`.env`、runtime volume 或 raw `.git`

View File

@@ -0,0 +1,48 @@
# Codex Gitea Blocked Products Owner Pick List
- generated_at: `2026-06-24T13:40:00+08:00`
- scope: remaining products that are not yet safe to convert into Gitea `dev` workspaces
- blocked_products: `8`
- ready_for_remote_dev_branch_creation: `0`
## 結論
目前不能把剩餘 8 個產品直接建立成 Gitea `dev`。阻塞不是單純缺分支,而是本機工作樹含 drift、dirty、untracked、internal repo inventory 或 repository identity 問題。直接推會有三個風險:
- 把舊版本當最新版本。
- 把未審核刪檔 / untracked 產物 / 壓縮包 / log 混進 source control。
- 把 internal repo 或錯 repo 當成產品主線。
## 建議順序
| Order | Product | Why |
|------:|---------|-----|
| 1 | ClawBot / OpenClaw | 只有 2 個 tracked file drift最小可審核面。 |
| 2 | Tsenyang Website | internal repo 需 inventory但 dirty 面小。 |
| 3 | Agent Bounty | A2A / treasury surface 明確,但有 untracked source 和 backup archives 需要分離。 |
| 4 | 2026FIFA | local HEAD 與 Gitea main 不同,且 analytics / web route untracked 需要 path-based review。 |
| 5 | VibeWork | monorepo packages / MCP / brand assets 需要 owner pick。 |
| 6 | StockPlatform v2 | 60 tracked dirty + 3800 untracked必須先分類 generated vs source。 |
| 7 | Bitan | internal repo + 大 dirty 面 + public-content evidence需要先 owner export。 |
| 8 | VTuber | repository identity / HEAD 異常,先修 inventory。 |
## Product Gates
| Product | Current state | Owner decision before dev |
|---------|---------------|---------------------------|
| `clawbot-openclaw` | local head differs from Gitea main; dirty `docker-compose.yml`, `main.py`; untracked `0` | Review two-file drift, choose local head or Gitea main as baseline, approve `dev`. |
| `tsenyang-website` | internal repo; tracked dirty `6`; untracked `2` presentation outputs | Provide authenticated inventory/export, decide whether OG assets and presentation outputs are source. |
| `agent-bounty-protocol` | local head differs; untracked `19`; includes A2A / treasury routes and backup archives | Separate source from `sync-backup-*.tgz`, owner-pick included files, approve baseline. |
| `2026fifa` | local head differs; status/diff timeout; untracked `38` | Run narrow analytics / web route drift review, owner-pick local changes, approve baseline. |
| `vibework` | local head differs; status/diff timeout; untracked `97` | Bucket docs / packages / MCP / public brand assets and choose source baseline. |
| `stockplatform-v2` | local head equals Gitea main; tracked dirty `60`; untracked `3800` | Classify source / migration / asset / generated outputs before any remote branch. |
| `bitan-pharmacy` | internal repo; tracked dirty `64`; untracked `252` | Provide owner export, separate logs/generated outputs, review public-content evidence. |
| `vtuber` | Gitea repo not found; local head readback abnormal; untracked `84` | Repair repository identity before any Gitea action. |
## Hard Gates
- No remote `dev` branch creation in this stage.
- No product repo write in this stage.
- No raw `.git` copy.
- No `.env`, runtime volume, raw Codex App DB, raw conversations, or secret value sync.
- No source-control inclusion of backup archives, logs, generated outputs, or presentation exports unless owner marks them as release artifacts.

View File

@@ -0,0 +1,241 @@
{
"schema_version": "codex_gitea_blocked_products_owner_pick_list_v1",
"generated_at": "2026-06-24T13:40:00+08:00",
"scope": "Remaining products that are not yet safe to convert into Gitea dev workspaces",
"summary": {
"blocked_product_count": 8,
"remote_dev_missing_count": 5,
"internal_or_missing_repo_count": 3,
"local_head_drift_count": 4,
"dirty_or_untracked_count": 8,
"ready_for_remote_dev_branch_creation_count": 0,
"remote_write_performed": false,
"local_product_write_performed": false,
"secret_values_collected": false,
"raw_git_sync_allowed": false,
"raw_conversation_sync_allowed": false,
"env_or_runtime_volume_sync_allowed": false
},
"products": [
{
"product_id": "2026fifa",
"priority": "P1",
"risk_class": "local_head_drift_and_heavy_status",
"local_path": "/Users/ogt/Documents/2026FIFAWorldCup",
"local_branch": "main",
"local_head": "118954e781b97843fe4457731951bc0fcaecd402",
"gitea_repo": "wooo/2026FIFAWorldCup",
"remote_main": "f26def598fe58562067170dc3cc4c2521933846a",
"remote_dev": "",
"tracked_status": "timeout",
"untracked_count": 38,
"diff_shortstat": "timeout",
"sample_paths": [
"docs/crawler-source-policy.md",
"docs/fifa-official-data-seed-2026-06-14.md",
"platform/backend/app/analytics/agent_review_worker.py",
"platform/web/app/agent-verification/page.tsx",
"platform/web/app/api/analytics/source-health/route.ts"
],
"owner_decision_required": [
"accept_or_reject_gitea_main_as_dev_baseline",
"decide_whether_local_untracked_analytics_and_web_routes_are_product_changes",
"approve_remote_dev_branch_creation_only_after_pick_list"
],
"recommended_next_gate": "Build a narrow path-based drift review for analytics / web route additions before any dev branch creation."
},
{
"product_id": "agent-bounty-protocol",
"priority": "P1",
"risk_class": "local_head_drift_and_untracked_product_surface",
"local_path": "/Users/ogt/Documents/agent-bounty-protocol",
"local_branch": "main",
"local_head": "0601df8bd9c0aaedb9ce3a226a6f1aeca645ca0a",
"gitea_repo": "wooo/agent-bounty-protocol",
"remote_main": "b7a733f44f4f645dd21a9b4a9075b89c4a324f64",
"remote_dev": "",
"tracked_status": "timeout",
"untracked_count": 19,
"diff_shortstat": "timeout",
"sample_paths": [
"apps/web/src/app/agents/connect/actions.ts",
"apps/web/src/app/api/a2a/agents/connect/route.ts",
"apps/web/src/app/api/admin/treasury/usdc-balance/route.ts",
"apps/web/src/lib/a2a-agent-connect.ts",
"sync-backup-a2a-campaign-kit-20260611183651.tgz"
],
"owner_decision_required": [
"decide_whether_a2a_and_treasury_untracked_files_are_latest_product_source",
"exclude_sync_backup_archives_from_source_control_unless_owner_marks_them_as_release_artifacts",
"approve_dev_branch_baseline_after_pick_list"
],
"recommended_next_gate": "Separate source files from backup archives, then create an owner-selected include / exclude list."
},
{
"product_id": "stockplatform-v2",
"priority": "P1",
"risk_class": "large_dirty_worktree",
"local_path": "/Users/ogt/stockplatform-v2",
"local_branch": "main",
"local_head": "1ef097e148ff6645e608fe5823aff9f038314512",
"gitea_repo": "wooo/stockplatform-v2",
"remote_main": "1ef097e148ff6645e608fe5823aff9f038314512",
"remote_dev": "",
"tracked_dirty_count": 60,
"untracked_count": 3800,
"diff_shortstat": "60 files changed, 8355 insertions(+), 3173 deletions(-)",
"sample_paths": [
"apps/admin/src/app/admin-dashboard.tsx",
"apps/api/app/api/routes/recommendations.py",
"apps/api/app/main.py",
"apps/admin/src/app/agents/page.tsx",
"apps/api/migrations/versions/20260613_0035_notification_action_audit_trail.py"
],
"owner_decision_required": [
"classify_3800_untracked_paths_before_source_control",
"separate_generated_assets_from_source",
"approve_stock_dev_branch_only_after_dirty_review"
],
"recommended_next_gate": "Run a path-classification inventory that buckets source / migration / asset / generated outputs before any remote branch write."
},
{
"product_id": "vibework",
"priority": "P1",
"risk_class": "local_head_drift_and_large_untracked_product_surface",
"local_path": "/Users/ogt/Documents/VibeWork",
"local_branch": "main",
"local_head": "48275cc52be79107e887147d3fe10310a887afe9",
"gitea_repo": "wooo/vibework",
"remote_main": "76a4ee15026af278a3660ad4b4547e9308b107be",
"remote_dev": "",
"tracked_status": "timeout",
"untracked_count": 97,
"diff_shortstat": "timeout",
"sample_paths": [
"docs/PHASE_1_COMMERCIAL_BATTLE_PLAN.md",
"packages/contracts/src/index.ts",
"packages/mcp-server/src/index.ts",
"pnpm-workspace.yaml",
"public/brand/vibework-logo-full.svg"
],
"owner_decision_required": [
"decide_whether_local_monorepo_packages_are_latest_source",
"review_brand_assets_and_docs_before_source_control",
"approve_dev_branch_after_pick_list"
],
"recommended_next_gate": "Bucket docs / packages / public brand assets, then decide which become the Gitea dev baseline."
},
{
"product_id": "clawbot-openclaw",
"priority": "P1",
"risk_class": "small_tracked_drift",
"local_path": "/Users/ogt/clawbot-v5",
"local_branch": "main",
"local_head": "f4b84d730ae0ef2cb2fb5cc49b4eb585b10246e2",
"gitea_repo": "wooo/clawbot-v5",
"remote_main": "22074fbe4d6ec6c11c86f76139eea55756d1d160",
"remote_dev": "",
"tracked_dirty_count": 2,
"untracked_count": 0,
"diff_shortstat": "2 files changed, 9 insertions(+), 1 deletion(-)",
"sample_paths": [
"docker-compose.yml",
"main.py"
],
"owner_decision_required": [
"review_docker_compose_and_main_py_drift",
"decide_whether_local_head_or_gitea_main_is_dev_baseline",
"approve_dev_branch_creation"
],
"recommended_next_gate": "This is the smallest next candidate: inspect two tracked files and create a precise owner decision record."
},
{
"product_id": "bitan-pharmacy",
"priority": "P2",
"risk_class": "internal_repo_large_dirty_worktree",
"local_path": "/Users/ogt/bitan-pharmacy",
"local_branch": "main",
"local_head": "e122c8cbd9522999fd9844c2b63790fadcc89c20",
"gitea_repo": "internal:bitan-pharmacy",
"remote_main": "",
"remote_dev": "",
"tracked_dirty_count": 64,
"untracked_count": 252,
"diff_shortstat": "64 files changed, 4069 insertions(+), 665 deletions(-)",
"sample_paths": [
"messages/zh-TW.json",
"next.config.ts",
"src/app/admin/layout.tsx",
"scripts/deploy-production-safe.sh",
"logs/public-content-cleanliness.latest.json"
],
"owner_decision_required": [
"provide_authenticated_gitea_inventory_or_owner_export",
"separate_logs_and_generated_outputs_from_source",
"review_public_content_cleanliness_evidence_before_dev_branch"
],
"recommended_next_gate": "Resolve internal repo inventory first, then run dirty review."
},
{
"product_id": "tsenyang-website",
"priority": "P2",
"risk_class": "internal_repo_small_dirty_worktree",
"local_path": "/Users/ogt/tsenyang-website",
"local_branch": "main",
"local_head": "b369ed8cb6666e8ddaa2d31e1418a02794fdea9d",
"gitea_repo": "internal:tsenyang-website",
"remote_main": "",
"remote_dev": "",
"tracked_dirty_count": 6,
"untracked_count": 2,
"diff_shortstat": "6 files changed, 163 insertions(+), 63 deletions(-)",
"sample_paths": [
"public/og/taiwan-ai-agent-checklist.png",
"public/og/taiwan-ai-agent-webinar.svg",
"outputs/manual-20260605-ai-agent-deck-v2/presentations/tsenyang-ai-agent-proposal-fixed/output/TsenYang_AI_Agent_Proposal_V2_Fixed_20260605.pptx"
],
"owner_decision_required": [
"provide_authenticated_gitea_inventory_or_owner_export",
"decide_whether_presentation_outputs_belong_in_source_control",
"approve_dev_branch_after_small_dirty_review"
],
"recommended_next_gate": "Small candidate after internal repo inventory: review OG assets and presentation outputs."
},
{
"product_id": "vtuber",
"priority": "P3",
"risk_class": "repository_inventory_repair_required",
"local_path": "/Users/ogt/VTuber",
"local_branch": "main",
"local_head": "HEAD",
"gitea_repo": "wooo/vtuber",
"remote_error": "remote: Repository not found",
"tracked_dirty_count": 2,
"untracked_count": 84,
"diff_shortstat": "",
"sample_paths": [
"apps/admin/public/.gitkeep",
"apps/web/public/.gitkeep",
".env.example",
"README.md",
"apps/api/package.json"
],
"owner_decision_required": [
"repair_local_HEAD_or_confirm_new_repo_bootstrap",
"create_or_identify_correct_gitea_repository",
"exclude_env_and_generated_outputs_before_source_control"
],
"recommended_next_gate": "Repair repository identity before any Gitea action."
}
],
"recommended_execution_order": [
"clawbot-openclaw",
"tsenyang-website",
"agent-bounty-protocol",
"2026fifa",
"vibework",
"stockplatform-v2",
"bitan-pharmacy",
"vtuber"
]
}