feat: editorial review dashboard + elite-grade pilot batch (5 SKUs)

Ships the second dashboard surface — a Pattern Library + Preview Theatre — that
presents the 4-section PDP pilot batch back to Umar, compliance, and the board
in an editorial format. Adds the full data layer that drives it: 5 source-backed
per-SKU drafts at QA 100/100, 15 competitor PDP semantic extracts, PubMed
evidence packs, EFSA claims library extension, JV brand voice guide, hand-curated
product FAQs, and the Matrixify-ready CSV exports for Lewis.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Omair Saleh
2026-06-02 18:20:17 +08:00
parent e470e113ee
commit 056c47581f
3302 changed files with 391779 additions and 854 deletions
@@ -0,0 +1,14 @@
Sequence,Stage,Provider,Action,Status,SpendAllowed,Owner,Evidence,CommandOrFile,StopRule,WhyNext
1,0,No paid provider,Fill and verify Stage 1 ASIN map,blocked,no spend required,Research / project owner,6 ASINs present / 4 missing; 4 web lookup aids; 2 rejected not-target leads; 575 DataForSEO product-result items saved; 4 unresolved targets have no exact DataForSEO candidate and stay out of the paid payload,"bun run dataforseo:products-live with explicit allow flag, then bun run dataforseo:live-asin-evidence && bun run dataforseo:unresolved-asins; data/sources/dataforseo/asin-map.csv",Only accept exact Just Vitamins Amazon UK product matches; leave blank if uncertain.,"This remains useful no-spend research, but the capped pilot payload already uses only the live-confirmed ASINs."
2,0,No paid provider,Promote only Amazon-confirmed high-confidence ASIN candidates,blocked,no spend required,Research,0 promotion confirmations ready; 0 candidates promoted / 4 candidate rows,bun run dataforseo:asin-confirmations && bun run dataforseo:promote-asins,Only rows marked ready in the confirmation report plus amazon_confirmed_exact_match and Confidence=high can be copied into asin-map.csv; existing ASINs are not overwritten.,This closes confirmed ASINs safely while keeping uncertain third-party candidate evidence out of paid task payloads.
3,1,DataForSEO,Regenerate capped Amazon Reviews task payload,ready,no spend required,Research,6 ready task rows / 10 capped targets; 4 unresolved ASINs remain outside the payload,bun run dataforseo:pilot,Payload must stay within Stage 1 cap before any provider call.,Turns the verified ASINs into a reviewable paid-call payload without calling DataForSEO.
4,1,DataForSEO,Record an explicit Stage 1 budget cap before approval,blocked,blocked,Project owner,6/9 budget checks passing,data/sources/budgets/source-acquisition-budget.json,"Budget must include max spend, max tasks, review depth, and hard stop after the first run. Do not put credentials here.",A subscription is only safe after the hard cap is written down locally and can be checked by the spend gate.
5,1,DataForSEO,Record current pricing and estimated cost for the capped pilot,blocked,blocked,Project owner / research,0.00675 estimated / 1 max spend; 5 pricing refs and 5 scenarios available,content_population_exports/source_acquisition_cost_scenarios.md + data/sources/budgets/source-acquisition-cost-plan.json && bun run source:cost-plan,Do not enable budget or approval from guessed pricing; record current provider pricing source and keep estimate within max spend.,This is the anti-credit-burn step before subscription: it turns pricing into an explicit capped first-run estimate.
6,1,DataForSEO,Record human spend approval for one capped pilot run,blocked,blocked,Project owner,4/14 spend-gate checks passing; approval valid=false,bun run dataforseo:approval-request && bun run source:approvals && data/sources/approvals/dataforseo-stage1-approval.json,"Approval should name the cap, provider, marketplace, target count, and expected max spend before credentials are used.",Prevents accidental credit burn; approval is deliberately local and explicit.
7,1,DataForSEO,Run only the approved DataForSEO pilot and save raw task_get JSON,blocked,blocked,Research,0 review tasks posted / 0 reviews returned; 0 raw files / 0 converted reviews,bun run dataforseo:reviews-live then data/sources/dataforseo/raw/,"Do not run a second batch until raw output, useful fields, and actual credit cost are reviewed.",This is the first paid step and should be a single controlled proof of data quality and cost.
8,1 support,DataForSEO,Send provider support escalation if Reviews endpoint remains 50304,ready,no spend required,Project owner / support,50304: This function temporarily unavailable. Please contact support for more information.; official docs unavailable=true,"bun run dataforseo:reviews-docs-status && bun run dataforseo:support-escalation then content_population_exports/dataforseo_support_escalation.md; when support replies, fill data/sources/provider-responses/dataforseo-reviews-endpoint-response.json and run bun run dataforseo:support-response","Escalation packet must contain no credentials and should include endpoint, status code, tiny payload shape, and proof that Products endpoint works.",This turns the provider-side blocker into an actionable support request instead of more retries or guessing.
9,1 fallback,Manual capture,Capture Amazon reviews manually if DataForSEO support remains blocked,ready,no provider spend,Research,6 manual capture targets; 0/6 files present; 0/6 files valid; 0 reviews captured,bun run amazon:manual-capture && bun run amazon:manual-capture-validate then content_population_exports/manual_amazon_review_capture_validation.md,Capture only the listed Stage 1 ASINs; do not broaden to catalogue scraping.,This gives a no-spend fallback source path while the DataForSEO Reviews endpoint is unavailable.
10,1,DataForSEO,Normalize raw provider output into the standard Amazon source-drop path,blocked,no additional spend,Research / dashboard,0 converted files / 0 ingest issues,bun run dataforseo:ingest && bun run validate:sources,"Converted source files must preserve review text, rating, date, source URL, SKU, and provider provenance.",Keeps DataForSEO evidence on the same validation path as manual Amazon drops.
11,1 review,DataForSEO,"Review quality, fields, and cost; decide scale vs Apify vs stop",blocked,blocks all scale-up spend,Project owner / research,1/7 review checks passing; decision=pending,data/sources/reviews/dataforseo-stage1-review.json,"Decision must be one of scale_dataforseo, run_apify_gapfill, or stop_adjust_source_map.",Prevents the pilot from silently turning into full-catalogue scraping.
12,2,Apify selective,Run Apify only for named gaps after DataForSEO review,blocked,blocked,Research,3 first-batch targets / 4 held; Apify preflight 2/8; Apify budget allowed=false; cost ready=false; approval valid=false; Apify spend allowed=false,bun run apify:task-preflight then content_population_exports/apify_competitor_pdp_input_template.json,"One actor, first batch only, inspect raw dataset quality/cost before any further run.","Apify is useful for PDP/social/browser gaps, but only after the cheaper structured pilot proves what is missing."
13,control,All source packet lanes,Refresh source packet and delivery index after every change,ready,no spend required,Dashboard,27/27 required source packet files present,bun run source:refresh-packet && bun run delivery:index,Packet freshness does not mean final handoff readiness; verify:handoff remains the final gate.,Keeps the Export Console and handoff packet aligned with the latest source-acquisition state.
1 Sequence Stage Provider Action Status SpendAllowed Owner Evidence CommandOrFile StopRule WhyNext
2 1 0 No paid provider Fill and verify Stage 1 ASIN map blocked no spend required Research / project owner 6 ASINs present / 4 missing; 4 web lookup aids; 2 rejected not-target leads; 575 DataForSEO product-result items saved; 4 unresolved targets have no exact DataForSEO candidate and stay out of the paid payload bun run dataforseo:products-live with explicit allow flag, then bun run dataforseo:live-asin-evidence && bun run dataforseo:unresolved-asins; data/sources/dataforseo/asin-map.csv Only accept exact Just Vitamins Amazon UK product matches; leave blank if uncertain. This remains useful no-spend research, but the capped pilot payload already uses only the live-confirmed ASINs.
3 2 0 No paid provider Promote only Amazon-confirmed high-confidence ASIN candidates blocked no spend required Research 0 promotion confirmations ready; 0 candidates promoted / 4 candidate rows bun run dataforseo:asin-confirmations && bun run dataforseo:promote-asins Only rows marked ready in the confirmation report plus amazon_confirmed_exact_match and Confidence=high can be copied into asin-map.csv; existing ASINs are not overwritten. This closes confirmed ASINs safely while keeping uncertain third-party candidate evidence out of paid task payloads.
4 3 1 DataForSEO Regenerate capped Amazon Reviews task payload ready no spend required Research 6 ready task rows / 10 capped targets; 4 unresolved ASINs remain outside the payload bun run dataforseo:pilot Payload must stay within Stage 1 cap before any provider call. Turns the verified ASINs into a reviewable paid-call payload without calling DataForSEO.
5 4 1 DataForSEO Record an explicit Stage 1 budget cap before approval blocked blocked Project owner 6/9 budget checks passing data/sources/budgets/source-acquisition-budget.json Budget must include max spend, max tasks, review depth, and hard stop after the first run. Do not put credentials here. A subscription is only safe after the hard cap is written down locally and can be checked by the spend gate.
6 5 1 DataForSEO Record current pricing and estimated cost for the capped pilot blocked blocked Project owner / research 0.00675 estimated / 1 max spend; 5 pricing refs and 5 scenarios available content_population_exports/source_acquisition_cost_scenarios.md + data/sources/budgets/source-acquisition-cost-plan.json && bun run source:cost-plan Do not enable budget or approval from guessed pricing; record current provider pricing source and keep estimate within max spend. This is the anti-credit-burn step before subscription: it turns pricing into an explicit capped first-run estimate.
7 6 1 DataForSEO Record human spend approval for one capped pilot run blocked blocked Project owner 4/14 spend-gate checks passing; approval valid=false bun run dataforseo:approval-request && bun run source:approvals && data/sources/approvals/dataforseo-stage1-approval.json Approval should name the cap, provider, marketplace, target count, and expected max spend before credentials are used. Prevents accidental credit burn; approval is deliberately local and explicit.
8 7 1 DataForSEO Run only the approved DataForSEO pilot and save raw task_get JSON blocked blocked Research 0 review tasks posted / 0 reviews returned; 0 raw files / 0 converted reviews bun run dataforseo:reviews-live then data/sources/dataforseo/raw/ Do not run a second batch until raw output, useful fields, and actual credit cost are reviewed. This is the first paid step and should be a single controlled proof of data quality and cost.
9 8 1 support DataForSEO Send provider support escalation if Reviews endpoint remains 50304 ready no spend required Project owner / support 50304: This function temporarily unavailable. Please contact support for more information.; official docs unavailable=true bun run dataforseo:reviews-docs-status && bun run dataforseo:support-escalation then content_population_exports/dataforseo_support_escalation.md; when support replies, fill data/sources/provider-responses/dataforseo-reviews-endpoint-response.json and run bun run dataforseo:support-response Escalation packet must contain no credentials and should include endpoint, status code, tiny payload shape, and proof that Products endpoint works. This turns the provider-side blocker into an actionable support request instead of more retries or guessing.
10 9 1 fallback Manual capture Capture Amazon reviews manually if DataForSEO support remains blocked ready no provider spend Research 6 manual capture targets; 0/6 files present; 0/6 files valid; 0 reviews captured bun run amazon:manual-capture && bun run amazon:manual-capture-validate then content_population_exports/manual_amazon_review_capture_validation.md Capture only the listed Stage 1 ASINs; do not broaden to catalogue scraping. This gives a no-spend fallback source path while the DataForSEO Reviews endpoint is unavailable.
11 10 1 DataForSEO Normalize raw provider output into the standard Amazon source-drop path blocked no additional spend Research / dashboard 0 converted files / 0 ingest issues bun run dataforseo:ingest && bun run validate:sources Converted source files must preserve review text, rating, date, source URL, SKU, and provider provenance. Keeps DataForSEO evidence on the same validation path as manual Amazon drops.
12 11 1 review DataForSEO Review quality, fields, and cost; decide scale vs Apify vs stop blocked blocks all scale-up spend Project owner / research 1/7 review checks passing; decision=pending data/sources/reviews/dataforseo-stage1-review.json Decision must be one of scale_dataforseo, run_apify_gapfill, or stop_adjust_source_map. Prevents the pilot from silently turning into full-catalogue scraping.
13 12 2 Apify selective Run Apify only for named gaps after DataForSEO review blocked blocked Research 3 first-batch targets / 4 held; Apify preflight 2/8; Apify budget allowed=false; cost ready=false; approval valid=false; Apify spend allowed=false bun run apify:task-preflight then content_population_exports/apify_competitor_pdp_input_template.json One actor, first batch only, inspect raw dataset quality/cost before any further run. Apify is useful for PDP/social/browser gaps, but only after the cheaper structured pilot proves what is missing.
14 13 control All source packet lanes Refresh source packet and delivery index after every change ready no spend required Dashboard 27/27 required source packet files present bun run source:refresh-packet && bun run delivery:index Packet freshness does not mean final handoff readiness; verify:handoff remains the final gate. Keeps the Export Console and handoff packet aligned with the latest source-acquisition state.