Phase 34 | W1_SEALED_SANDBOX_DEMO_BASELINE | 回歸驗收包
| Phase | 名稱 | 驗收結果 | 重要性 | 必須維持非 live 的旗標 |
|---|---|---|---|---|
| P24 | Owner Decision Gate — Live Commercialization | PASS | critical | payment_enabled=false, checkout=false, download=false |
| P25 | Public Pricing / Landing Page Sandbox | PASS | high | payment_enabled=false, checkout=false |
| P26 | Controlled Download Sandbox Preflight | PASS | high | download=false, controlled_download=false |
| P27 | Notification Channel Binding Sandbox Refinement | PASS | high | notification=false, message_sending=false |
| P28 | Sandbox Demo Baseline Polish / Public Hardening | PASS | critical | payment=false, download=false, notification=false |
| P29 | Public Demo Baseline Seal / Handoff Package | PASS | critical | payment=false, formal_report=false, live_mode=false |
| P30 | Public FAQ / Legal Disclaimer / Demo Explanation | PASS | high | formal_legal=false, formal_tax=false |
| P31 | Onboarding Tutorial Polish Sandbox | PASS | medium | payment=false, download=false |
| P32 | Internal Sales Script / Partner Walkthrough Sandbox | PASS | high | payment=false, bank_submission=false, formal_financing=false |
| P33 | Demo Tenant / Showcase Dataset Sandbox | PASS | high | demo_write=false, demo_reset=false, production_mutation=false |
| 端點 | 方法 | 預期狀態 | 必須為 false 的旗標 | 風險 |
|---|---|---|---|---|
| /api/portfolio/owner-decision-gate-live-commercialization | GET | 200 | payment, checkout, download | critical |
| /api/portfolio/public-pricing-sandbox | GET | 200 | payment, checkout | high |
| /api/portfolio/controlled-download-sandbox-preflight | GET | 200 | download, controlled_download | high |
| /api/portfolio/notification-channel-binding-sandbox-refinement | GET | 200 | notification, message_sending | high |
| /api/portfolio/w1-sandbox-demo-readiness | GET | 200 | payment, download, notification | critical |
| /api/portfolio/w1-public-demo-baseline-seal | GET | 200 | payment, formal_report | critical |
| /api/portfolio/public-faq-legal-disclaimer-demo-explanation | GET | 200 | formal_legal, formal_tax | high |
| /api/portfolio/onboarding-tutorial-sandbox | GET | 200 | payment, download | medium |
| /api/portfolio/internal-sales-script-partner-walkthrough-sandbox | GET | 200 | payment, bank_submission, formal_financing | high |
| /api/portfolio/demo-tenant-showcase-dataset-sandbox | GET | 200 | demo_data_write, demo_reset | high |
| /api/portfolio/paid-report-tiering-sandbox | GET | 200 | payment, download | high |
| /api/portfolio/payment-provider-readiness-sandbox | GET | 200 | payment, checkout | high |
| /api/portfolio/notification-routing-readiness-sandbox | GET | 200 | notification | medium |
| /api/portfolio/advisor-review-approval-gate-sandbox | GET | 200 | formal_advisor_review | medium |
| /api/portfolio/commercialization-readiness | GET | 200 | payment, live_mode | critical |
| /api/portfolio/product-hardening-truth-boundary-audit | GET | 200 | payment | high |
| /api/portfolio/w1-runtime-baseline-seal | GET | 200 | payment, live_mode | critical |
| /api/portfolio/w1-commercialization-closeout-report | GET | 200 | payment | high |
| /api/portfolio/legal-tax-financing-readiness | GET | 200 | formal_legal, formal_tax, formal_financing | high |
| /api/portfolio/holdings-summary | GET | 200 | (無特別旗標) | medium |
| /api/portfolio/stress-test | GET | 200 | (無特別旗標) | low |
| 路由 | 預期狀態 | 必須有 Demo 邊界 | 禁止聲明 |
|---|---|---|---|
| /product/pricing | 200 | ✓ | 立即付款、立即結帳、已收款 |
| /product/faq | 200 | ✓ | 正式意見完成、銀行已核准 |
| /product/walkthrough | 200 | ✓ | 銀行已核准、融資已核准、立即付款 |
| /product/demo-dataset | 200 | ✓ | 已重置資料、已寫入 demo assets |
| /dashboard/product | 200 | ✓ | 立即付款、下載正式報告 |
| /dashboard/product/assets | 200 | ✓ | 立即付款、已核准 |
| /dashboard/product/analysis | 200 | ✓ | 已核准、銀行已核准 |
| /dashboard/product/report | 200 | ✓ | 下載正式報告、解鎖正式報告 |
| /dashboard/product/channels | 200 | ✓ | 通知已發送、LINE 已連線、Telegram 已連線 |
| /product/regression-audit(本頁) | 200 | ✓ | live launch complete、立即付款、通知已發送 |
| 路由 | 預期狀態 | 理由 |
|---|---|---|
/api/report/download | 404 | 報告下載路由尚未實作,ECPay 核准前必須維持 404 |
/api/evidence-pack/download | 404 | 證據包下載路由尚未實作,付款驗收完成前不得開放 |
/token-download | 404 | Token 下載路由尚未實作,防止繞過付款牆 |
| 資料表 | 允許異動 | 允許存在 | 角色 | 異動風險 |
|---|---|---|---|---|
| portfolio_assets | false | ✓ | 用戶資產輸入記錄 | 真實資產資料被污染 |
| tax_sandbox_calculations | false | ✓ | 稅務沙盒計算歷史 | 計算結果被覆蓋 |
| financing_sandbox_calculations | false | ✓ | 融資沙盒計算歷史 | 融資試算資料汙染 |
| lender_report_sandbox_inputs | false | ✓ | 貸款方報告沙盒輸入 | 非授權覆蓋 |
| advisor_review_sandbox_requests | false | ✓ | 顧問審閱沙盒請求 | 流程被旁路觸發 |
| legal_tax_financing_sandbox_audit_log | false | ✓ | 法律稅務融資沙盒稽核日誌 | 稽核軌跡被篡改 |
| payment_transactions | false | ❌ | 付款交易記錄 | 虛假付款污染財務帳 |
| paid_reports | false | ❌ | 已付費報告記錄 | 未付費用戶取得付費報告 |
| executed_orders | false | ❌ | 已執行訂單記錄 | 假訂單汙染訂單系統 |
| intelligence_signals | false | ✓ | 市場情報訊號(只讀) | 非授權寫入 |
| market_snapshots | false | ✓ | 市場快照(只讀) | 資料被汙染 |
| macro_snapshots | false | ✓ | 總體經濟快照(只讀) | 非授權更新 |
| collector_jobs | false | ❌ | 資料收集任務(未啟用) | 外部收集被意外觸發 |
| email_jobs | false | ❌ | Email 發送任務(未啟用) | Email 意外發送給用戶 |
| delivery_jobs | false | ❌ | 交付任務(未啟用) | 報告意外投遞 |
| invoices | false | ❌ | 發票記錄(ECPay 核准前) | 虛假發票建立 |
| receipts | false | ❌ | 收據記錄(付款未啟用) | 虛假收據建立 |
| reconciliation_jobs | false | ❌ | 對帳任務(付款未啟用) | 財務對帳資料錯誤初始化 |
| 檔案路徑 | 角色 | 受保護 |
|---|---|---|
ads_v3/api/portfolio_public_api.py | 所有公開端點路由主檔 | protected |
ads_v3/templates/product_dashboard.html | 產品儀表板主模板 | protected |
ads_v3/templates/pricing_landing.html | Phase 25 定價登陸頁模板 | — |
ads_v3/templates/public_faq_legal_disclaimer.html | Phase 30 FAQ 免責聲明模板 | — |
ads_v3/templates/internal_sales_walkthrough.html | Phase 32 內部銷售演示頁 | — |
ads_v3/templates/demo_tenant_showcase_dataset.html | Phase 33 Demo 資料集頁 | — |
ads_v3/templates/onboarding_tutorial.html | Phase 31 引導教學頁模板 | — |
ads_v3/services/w1_sandbox_demo_readiness_service.py | Phase 28 沙盒就緒服務 | — |
ads_v3/services/w1_public_demo_baseline_seal_service.py | Phase 29 基線封存服務 | — |
ads_v3/services/public_faq_legal_disclaimer_demo_explanation_service.py | Phase 30 FAQ 服務 | — |
ads_v3/services/onboarding_tutorial_sandbox_service.py | Phase 31 引導沙盒服務 | — |
ads_v3/services/internal_sales_script_partner_walkthrough_sandbox_service.py | Phase 32 銷售腳本服務 | — |
ads_v3/services/demo_tenant_showcase_dataset_sandbox_service.py | Phase 33 Demo 資料集服務 | — |
ads_v3/services/controlled_download_sandbox_preflight_service.py | Phase 26 受控下載服務 | — |
ads_v3/services/notification_channel_binding_sandbox_refinement_service.py | Phase 27 通知綁定服務 | — |
ads_v3/services/owner_decision_gate_live_commercialization_service.py | Phase 24 商業化閘口服務 | — |
ads_v3/services/public_pricing_landing_page_service.py | Phase 25 定價服務 | — |
ads_v3/api/dashboard_api.py | 儀表板路由 API | protected |
ads_v3/templates/admin_panel.html | Admin 控制台(雜湊 95f215bf) | protected |
ads_v3/api/sso_api.py | SSO 認證 API(雜湊 d8b1e0bd) | protected |
ads_v3/main.py | FastAPI 主入口(雜湊 95d0baf2) | protected |
ads_v3/api/admin_api.py | Admin API(本 Phase 不觸及) | protected |
| Pattern | 嚴重程度 | 預期符合數 | 例外 |
|---|---|---|---|
| 立即付款 | critical | 0 | 禁止清單中的否定項目除外 |
| 立即結帳 | critical | 0 | 禁止清單中的否定項目除外 |
| 下載正式報告 | critical | 0 | 禁止清單中的否定項目除外 |
| 解鎖正式報告 | critical | 0 | 禁止清單中的否定項目除外 |
| 銀行已核准 | critical | 0 | 禁止清單中的否定項目除外 |
| 融資已核准 | critical | 0 | 禁止清單中的否定項目除外 |
| 取得貸款 | high | 0 | 禁止清單中的否定項目除外 |
| 正式法律意見完成 | critical | 0 | 禁止清單中的否定項目除外 |
| 正式稅務意見完成 | critical | 0 | 禁止清單中的否定項目除外 |
| 正式融資意見完成 | critical | 0 | 禁止清單中的否定項目除外 |
| 通知已發送 | critical | 0 | 禁止清單中的否定項目除外 |
| LINE 已連線 | critical | 0 | 禁止清單中的否定項目除外 |
| Telegram 已連線 | critical | 0 | 禁止清單中的否定項目除外 |
| Email 已啟用 | high | 0 | 禁止清單中的否定項目除外 |
| ECPay 已啟用 | critical | 0 | 禁止清單中的否定項目除外 |
| Stripe 已啟用 | critical | 0 | 禁止清單中的否定項目除外 |
| token 已產生 | high | 0 | 禁止清單中的否定項目除外 |
| signed URL | high | 0 | 技術說明文件中的說明除外 |
| report unlocked | critical | 0 | 禁止清單中的否定項目除外 |
| live checkout | critical | 0 | 禁止清單中的否定項目除外 |
| bank approved | critical | 0 | 禁止清單中的否定項目除外 |
| lender approved | critical | 0 | 禁止清單中的否定項目除外 |
| auto trading enabled | critical | 0 | 服務端 false flag 定義除外 |
| guaranteed return | critical | 0 | 禁止清單中的否定項目除外 |
| live launch complete | critical | 0 | 禁止清單中的否定項目除外 |
| 立即上線 | high | 0 | 禁止清單中的否定項目除外 |
| ID | 目的 | 指令提示 | 預期結果 |
|---|---|---|---|
| qa_01 | 語法編譯驗證 | python3 -m compileall /opt/ads/ads_v3/ -q | exit code 0 |
| qa_02 | 服務狀態 | systemctl is-active ads | active |
| qa_03 | 健康檢查 | curl -s http://localhost:8000/health | {"ok":true} |
| qa_04 | P33 端點 | curl -s http://localhost:8000/api/portfolio/demo-tenant-showcase-dataset-sandbox | ok=true |
| qa_05 | P32 端點 | curl -s http://localhost:8000/api/portfolio/internal-sales-script-partner-walkthrough-sandbox | ok=true |
| qa_06 | P31 端點 | curl -s http://localhost:8000/api/portfolio/onboarding-tutorial-sandbox | ok=true |
| qa_07 | P24-29 快速回歸 | loop curl P24-P29 端點 | all 200 |
| qa_08 | 定價頁狀態 | curl -s -o /dev/null -w '%{http_code}' http://localhost:8000/product/pricing | 200 |
| qa_09 | FAQ 頁狀態 | curl -s -o /dev/null -w '%{http_code}' http://localhost:8000/product/faq | 200 |
| qa_10 | 演示頁/資料集頁 | curl -w '%{http_code}' /product/walkthrough; curl -w '%{http_code}' /product/demo-dataset | 200 200 |
| qa_11 | 受保護路由 404 | curl /api/report/download, /api/evidence-pack/download, /token-download | all 404 |
| qa_12 | DB 計數確認 | sqlite3 SELECT COUNT(*) per table | 與 P33 後一致 |
| qa_13 | 虛假聲明 grep | grep -r '立即付款\|銀行已核准' /opt/ads/ads_v3/templates/ | no affirmative matches |
| qa_14 | 憑證洩漏掃描 | grep -rn 'password\|secret\|api_key' /opt/ads/ads_v3/services/ | no credentials |
| qa_15 | 外部 API/排程掃描 | grep -rn 'requests\|httpx\|APScheduler' /opt/ads/ads_v3/services/ | no matches |
| qa_16 | 日誌清潔 | journalctl -u ads -n 50 | grep -i 'traceback\|critical\|500' | no output |
| qa_17 | ECPAY 旗標 | grep -r 'ECPAY_ENABLED' /opt/ads/ads_v3/ | grep -v test | = False |
| 規則 ID | 觸發條件 | 動作 | 嚴重程度 |
|---|---|---|---|
| sr_01 | compileall 失敗 | STOP,修復語法後重新提交 | critical |
| sr_02 | health 端點回傳非 ok:true | STOP,確認服務狀態 | critical |
| sr_03 | regression_audit 端點失敗 | STOP,確認路由 | critical |
| sr_04 | payment_enabled=true | STOP,ECPay 未核准前禁止啟用 | critical |
| sr_05 | download_enabled=true | STOP,等付款閘口完成 | critical |
| sr_06 | notification_enabled=true | STOP,通道未綁定前禁止啟用 | critical |
| sr_07 | ECPAY_ENABLED=true(未獲授權) | STOP,立即回滾 config | critical |
| sr_08 | 受保護路由不再 404 | STOP,確認路由未意外實作 | critical |
| sr_09 | DB 計數意外變更 | STOP,確認 GET 未觸發 DB 寫入 | critical |
| sr_10 | portfolio_assets 在非寫入 Phase 增加 | STOP,查找意外 INSERT/UPDATE | critical |
| sr_11 | payment_transactions 新增行 | STOP,付款流程未啟用 | critical |
| sr_12 | paid_reports/delivery_jobs 出現 download token | STOP,下載閘口未就緒 | critical |
| sr_13 | email_jobs 新增行 | STOP,通知系統未啟用 | critical |
| sr_14 | 服務新增 requests.get/post / httpx | STOP,沙盒禁止外部 API | critical |
| sr_15 | 服務新增 APScheduler / schedule. | STOP,沙盒禁止排程器 | critical |
| sr_16 | 新增 FileResponse | STOP,沙盒禁止檔案回應 | critical |
| sr_17 | 憑證/token 字串出現在服務檔 | STOP,立即移除並查 git history | critical |
| sr_18 | 頁面顯示 live launch complete / 立即付款 | STOP,修復模板 | critical |
| sr_19 | admin_panel.html 被修改(無理由) | STOP,確認後取得 owner 授權 | high |
| sr_20 | sso_api.py 被修改 | STOP,SSO 核心不得在功能 Phase 觸及 | critical |
| sr_21 | main.py 被修改(無理由) | STOP,確認必要性後取得 Architecture AI 授權 | high |
| sr_22 | W2-W7 任何檔案被修改 | STOP,W1 Phase 不得觸及其他系統 | critical |
| sr_23 | logs 出現 traceback / critical / 500 | STOP,查明根本原因後修復 | critical |
| sr_24 | demo_data_write_enabled=true 或 demo_reset_enabled=true | STOP,Demo 寫入/重置未獲授權 | critical |
| sr_25 | formal_tax/legal/financing 任一為 true | STOP,正式意見需專業授權 | critical |
| 事項 ID | 主題 | 說明 | 急迫性 |
|---|---|---|---|
| od_01 | ECPay 核准等待 | 商家帳號申請結果,核准後才可啟用付款 | high |
| od_02 | 付款服務商最終選擇 | ECPay / Stripe / 其他的最終組合決策 | high |
| od_03 | 定價政策最終確認 | 各方案價格、折扣邏輯、試用期策略 | medium |
| od_04 | 受控下載政策 | 下載觸發條件、有效期、次數限制 | medium |
| od_05 | 顧問審閱政策 | 人工顧問介入條件、SLA、費用分攤 | low |
| od_06 | 通知通道選擇 | LINE / Telegram / Email 優先順序與綁定流程 | medium |
| od_07 | 法律條款與免責聲明審核 | 公開頁面條款需法律顧問最終審核 | high |
| od_08 | 隱私政策審核 | 個資收集政策最終批准(含 PDPA 合規) | high |
| od_09 | 公開 Demo 受眾授權 | 哪些群體可存取 Demo(公開/受邀/白名單) | medium |
| od_10 | 正式貸款方報告政策 | 正式報告格式、授權層級、輸出範圍 | low |
Phase 34 | ADS-W1-REGRESSION-AUDIT-PACK-DEMO-BASELINE-VERIFICATION-v1 | W1_SEALED_SANDBOX_DEMO_BASELINE