# AI Automation Mainline Work Items

> Updated: 2026-07-15 01:54 Asia/Taipei
> Governance: `global_product_governance_v2` + ADR-038
> Current P0: `GROWTH-P0-001 comparison coverage truth + autonomous refresh`

## Source Of Truth

- Production runtime receipt/post-verifier/durable DB receipt is authoritative.
- Gitea main, deploy marker, CD run and production readback are the only source/deploy truth; GitHub remains frozen.
- Source/test/UI/CD green does not mean runtime closure.
- Completion must report program, asset coverage and runtime closure separately.
- PixelRAG visual evidence cannot write formal prices or `ai_insights` before identity, PromotionGate and internal RAG canary proof.

## Ordered P0

| Order | ID | Status | Work item | Exit evidence / next machine action |
|---:|---|---|---|---|
| 1 | `SEC-P0-001` | Completed | Deny-by-default route access control | `governance/evidence/SEC-P0-001-20260711T122758Z.json` plus the current runtime receipt prove anonymous matrix 8/8 denied, public `/metrics` 404, exact internal target up, EwoooC product markers present, Prometheus identity preserved and `momo-db` unchanged. |
| 2 | `GROWTH-P0-001` | In progress (`runtime_partial`) | Comparison coverage truth + autonomous refresh | V10.795 is live. `pchome_sales_freshness_sla_v1` keeps `2026-07-13` decision-ready before the `2026-07-15 20:00` report cutoff: raw lag `2`, SLA lag `0`, state `grace`; scheduler and explicit production canary both closed as durable `completed_no_write`. Live and persisted source readiness now agree at `1/4`, so midnight false-staleness is closed but source redundancy is not. TOP50 truth is `5 ready + 4 candidate validation + 41 unmatched`; count coverage remains `10%`, while the primary revenue-weighted KPI is `NT$40,201 / NT$100,507 = 40%`. Same-item controlled apply has independently verified and committed 2 MOMO offers; the latest no-safe-candidate run produced 4/4 durable no-write receipts and zero failures. Registered platform runtime remains `1/15`. Next: execute lanes B -> C while Lane A continuously verifies the next report arrival. |
| 3 | `SEC-P0-002` | In progress (`canary_ready`) | Database identity + least-privilege RBAC | V10.789 is live and `governance/auth_identity_runtime_receipt.json` verifies required tables, two active admins, durable lockout, session revocation, trusted proxy policy and no-secret mutation audit readiness. Runtime is intentionally hybrid because zero database-admin success receipts have been captured; `auto` retires shared authority after two durable successes without a manual review gate. Next: capture database-admin login receipts and verify automatic database-only cutover. |
| 4 | `SEC-P0-003` | In progress | Webhook trust and replay protection | Telegram secret-token verification code exists; production secret activation remains unproven. Exit: secret provisioned outside source, required mode enabled, invalid-secret 401 and authorized callback canary pass. |
| 5 | `SUPPLY-P0-001` | In progress | Gitea-only secure software supply chain | Gitea-native checkout, secret-safe `.dockerignore`, commit-bound source receipt and governance gate are active. Exit: exact dependency lock, internal SAST/SCA/secret scan, SBOM, image digest/provenance, vulnerability SLA and production digest readback. |
| 6 | `GOV-P0-001` | In progress | Canonical full asset graph + runtime reconciliation | `governance/ewoooc_asset_inventory.json` seeds hosts, services, data, AI, routes, supply chain, observability and recovery. Exit: same-run probe receipt for every asset; drift auto-creates work items. |
| 7 | `GOV-P0-002` | Not started | Unified controlled-apply envelope | Introduce one `trace_id/run_id/work_item_id` across sensor, identity, SOT diff, decision, risk, dry-run, execution, verifier, rollback/retry and learning acknowledgement. Start with EventRouter + AutoHeal. |
| 8 | `RAG-P0-001` | Not started | Internal RAG candidate canary | V10.770 stops at candidate preview. Exit: bounded pgvector candidate canary, signature/readback/feedback receipt, no price write and no premature `ai_insights` promotion. Next: `run_internal_rag_candidate_canary`. |
| 9 | `MCP-P0-001` | In progress (`federation_source_ready`) | MCP/RAG production runtime closure | V10.796 source adds a strict public aggregate receipt for canonical `ewoooc` and `momo-pro-system` identities without opening authenticated internal APIs or exposing endpoint/tool payload data. Exit still requires V10.796 production `/health`, two fresh AWOOOI durable receipts with fingerprint recompute, live MCP servers/router/RAG, approved caller/tool boundary and production query canary. Current source readiness must not be reported as runtime closure. |
| 10 | `SEC-P0-004` | Not started | Security operations lifecycle and metrics | Add durable security incident state and publish MTTA, MTTR, recurrence, false positive, human intervention, verifier pass, rollback and freshness. Exit: detect-to-learn production receipt. |
| 11 | `REL-P0-001` | In progress | Formal deploy and visible proof discipline | Gitea runtime source is main `11d3865dfc15f8b52909ac853c7177a19fa7d5ee`; dev carries the same runtime changes through `fa94c31`. Action #1127 is waiting because no matching `ewoooc-host` runner is online, so it provides no execution evidence. A bounded exact-Git-object fallback deployed V10.795 after 10/10 staging and target SHA-256 checks; archive SHA-256 is `eb3f8618fb4a151e1e96671b0c16aefc35d561529cfc9e8a1fca4f14cca05217` and rollback backup is `/home/ollama/momo-deploy-backups/ewoooc-20260714T174327Z-11d3865`. Production `/health` is healthy at V10.795; all three application containers are healthy and retain their expected identities; `momo-db` remained running and unchanged at `cd092451cb5fd555d0ffff70642e109f3b742882c418beeab631793d1e9dc55d`. Desktop/mobile visible QA confirms the SLA label, 40% revenue KPI and no horizontal overflow. Next: restore the dedicated runner and require commit-bound automated CD/post-verifier proof for subsequent runtime changes. |

### GROWTH-P0-001 Fixed Execution Lanes

These lanes are one ordered current P0, not optional side work. They must advance in this order and keep formal-price writes behind verified same-item evidence.

| Lane | Status | Production baseline | Next machine action |
|---|---|---|---|
| A. Sales freshness | In progress (`sla_runtime_closed_source_redundancy_partial`) | Latest sales date `2026-07-13`; before the `2026-07-15 20:00` cutoff, raw lag is `2` but SLA lag is `0`, state is `grace` and decisions remain released. Scheduler receipt `0f24219e0bbb4740b7ad6645e7952296` and explicit canary receipt `6e2df008f65544fe8e557c11ff0dbb93` both persisted `completed_no_write`; durable decision is `no_candidate_fresh_no_write`. Live and persisted readiness now agree at Google Drive `1/4`; HTTPS, IMAP and local remain disabled. | Continue automatic report-arrival reconciliation. At/after 20:00 require `2026-07-14` or automatically block decision use, emit the bounded upstream action and verify the next arrival receipt; keep source redundancy partial until another approved source is live. |
| B. Verified same-item evidence | In progress | TOP50: `5` verified, `4` candidate/source validation, `41` unmatched. Count coverage is `10%`; revenue-weighted coverage is `NT$40,201 / NT$100,507 = 40%`. The first production canary independently verified and committed 2 exact MOMO offers; exact identity/fingerprint DB replay passed `2/2`. Latest run `d3db6b69a5fc46e4ad59424299d549cb` found no safe candidate and correctly persisted 4/4 `no_write` receipts, 0 failed, with a passing no-write post-verifier and 1-hour retry. | Continue revenue-prioritized bounded runs over the remaining 45 products, replay deterministic identity/unit/variant checks, promote only independent verifier passes, and publish both count and revenue coverage deltas per run. |
| C. Platform runtime coverage | In progress | `1/15` registered external sources currently contributes formal runtime data (`6.7%`). PixelRAG remains evidence-only. | Activate approved structured adapters in source-contract order, use PixelRAG/OCR/VLM only to generate replayable candidates, classify anti-bot pages as blocked evidence, and require provenance/freshness/verifier receipts before formal price promotion. |

## P1

| Order | ID | Status | Work item | Exit evidence / next machine action |
|---:|---|---|---|---|
| 12 | `RES-P1-001` | Not started | Backup/offsite/restore automation | Fresh checksum and offsite coverage plus isolated non-destructive restore drill with measured RPO/RTO. |
| 13 | `PLAT-P1-001` | Not started | Non-root container and capability hardening | Shadow non-root image, writable-path inventory, capability drop/read-only filesystem canary, three-app rollout. |
| 14 | `APPSEC-P1-001` | In progress | CSP and DOM/XSS hardening | Security headers are present and CSP is report-only. Collect violations, remove high-risk `innerHTML`/inline sinks, then enforce CSP by canary. |
| 15 | `APPSEC-P1-002` | Not started | Unsafe shared-cache serialization removal | Replace writable pickle caches in dashboard/daily-sales/EDM/sales with constrained JSON or signed schema. |
| 16 | `ARCH-P1-001` | In progress | Split oversized policy/executor/verifier modules | Current top debts include 44k-line PChome mapping and 14k-line smoke service. Split by bounded family and independent tests. |
| 17 | `UX-P1-001` | In progress | Professional full-site UI/UX | V10.795 closes the PChome growth dashboard slice: primary KPI is 40% revenue coverage, raw 10% count coverage remains secondary truth, mapping/automation text walls are structured grids, and the first viewport now distinguishes raw calendar lag from report-arrival SLA. Desktop `1512px` and mobile `390px` DOM smoke show no horizontal overflow; the `430px` mobile screenshot shows the full title, SLA state and KPI cards. Continue the same first-viewport, progressive-disclosure, accessibility and state coverage across every remaining primary page. |
| 18 | `PIXELRAG-P1-001` | Not started | Ollama-first multimodal embedding benchmark | Verify approved visual embedding on GCP-A -> GCP-B -> 111 and design pgvector-compatible visual metadata; FAISS remains disallowed without ADR. |
| 19 | `MARKET-P1-001` | In progress | Marketplace source contracts | Finish stable, public-boundary, provenance and rate-limit contracts for Shopee, Coupang, Yahoo, ETMall, Friday and Rakuten; blocked pages remain non-product data. |
| 20 | `QA-P1-001` | In progress | Deterministic test and CI governance | V10.795 full local baseline is 2,081 passed / 9 skipped / 0 failed; focused SLA/runtime regression scope is 103 passed and the dev conflict-preservation scope is 73 passed. Security governance strict release gate passes with zero blocking failures. Action #1127 remains waiting without runner execution, so CI parity is not claimed. Next: reproduce the same terminal in Gitea CI after runner recovery, split deterministic release tests from nightly integration and production canaries, and prevent workstation disk pressure from invalidating evidence. |

## P2

| Order | ID | Status | Work item | Exit evidence / next machine action |
|---:|---|---|---|---|
| 21 | `GOV-P2-001` | Not started | Continuous NIST/ASVS control trend | Persist governance snapshots, compare control/asset/runtime drift and create ordered work items automatically. |
| 22 | `DATA-P2-001` | Not started | Data classification and retention enforcement | Classify business, personal, operational and model data; automate retention, deletion eligibility and audit evidence without destructive default actions. |
| 23 | `CHAOS-P2-001` | Not started | Controlled resilience exercises | Run non-destructive model-host, MCP, queue, Telegram and app-container failure drills with rollback and learning receipts. |

## Completed Foundations

These are reusable foundations, not proof that the full program is complete.

| Status | Capability | Current boundary |
|---|---|---|
| Completed | Multi-commerce PixelRAG visual evidence for momo, pchome, shopee_tw, coupang_tw, yahoo_shopping_tw, etmall_tw, friday_tw, rakuten_tw | Evidence-only; blocked pages are not product data. |
| Completed | External MCP/RAG capability inventory | Registry/integration readback exists; runtime enablement remains P0. |
| Completed | PixelRAG receipt -> RAG candidate replay | Candidate-only; no formal knowledge or price write. |
| Completed | Source-contract replay worker | Public-boundary artifact receipts only. |
| Completed | Marketplace adapter preflight and dry-run | Deterministic no-write contracts. |
| Completed | Marketplace identity matcher replay | Candidate identity only. |
| Completed | PromotionGate replay | No production write. |
| Completed | Embedding-signature guard replay | Signature readiness only. |
| Completed | Candidate knowledge replay | Internal RAG preview only; canary remains P0. |
| Completed | PixelRAG application portfolio | Commerce/RAG/UX/ops/marketing/governance inventory. |
| Completed | Ollama-first VLM route readiness and replay worker | Evidence-bound artifact output; no direct price write. |
| Completed | Platform probe worker | Shopee/Coupang barriers become structured fallback/backoff receipts. |

## Definition Of Done

A work item can be `Completed` only when the same production run contains:

1. sensor/source receipt;
2. normalized canonical asset identity;
3. source-of-truth diff;
4. AI decision and candidate action;
5. risk/policy decision;
6. check-mode/dry-run receipt;
7. idempotent bounded execution receipt;
8. independent post-verifier and rollback/no-write terminal;
9. incident/Telegram/KM/RAG/MCP/PlayBook durable acknowledgement.

Missing any stage means `partial`, `degraded` or `blocked_with_safe_next_action`.
