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:
@@ -0,0 +1,43 @@
|
||||
# Source acquisition approval gate
|
||||
|
||||
Generated: 2026-05-20T16:49:26.553Z
|
||||
|
||||
Approvals valid: 1/2
|
||||
Checks passing: 14/23
|
||||
|
||||
This gate validates the local approval files that must be filled before any paid provider run. It does not call DataForSEO, Apify, or any paid API.
|
||||
|
||||
## Guardrails
|
||||
- Approval is local and explicit; it does not store provider credentials.
|
||||
- Approval must match the budget cap and staged run limits exactly.
|
||||
- A human approval cannot bypass source, budget, provider preflight, or post-run review gates.
|
||||
- Apify approval also requires a named gap from the DataForSEO pilot review.
|
||||
|
||||
## Checks
|
||||
- [blocked] DataForSEO Stage 1: Approved flag true — approved=false
|
||||
- [blocked] DataForSEO Stage 1: Approver recorded — missing approver
|
||||
- [blocked] DataForSEO Stage 1: Approval timestamp recorded — missing timestamp
|
||||
- [pass] DataForSEO Stage 1: Budget lane enabled — enabled=true
|
||||
- [pass] DataForSEO Stage 1: Cost plan ready — cost plan ready
|
||||
- [blocked] DataForSEO Stage 1: Max spend matches budget cap — GBP 0 approved / 5 budget
|
||||
- [blocked] DataForSEO Stage 1: Target cap matches staged lane — 0 approved / 10 expected
|
||||
- [blocked] DataForSEO Stage 1: Run limit matches staged lane — 0 approved / 1 expected
|
||||
- [blocked] DataForSEO Stage 1: Depth/request cap matches staged lane — 0 approved / 100 expected
|
||||
- [blocked] DataForSEO Stage 1: Hard stop acknowledged — hardStopAcknowledged=false
|
||||
- [blocked] DataForSEO Stage 1: No credential storage acknowledged — noCredentialStorageAcknowledged=false
|
||||
- [pass] Apify Stage 2: Approved flag true — approved=true
|
||||
- [pass] Apify Stage 2: Approver recorded — user
|
||||
- [pass] Apify Stage 2: Approval timestamp recorded — 2026-05-20T16:48:36.463Z
|
||||
- [pass] Apify Stage 2: Budget lane enabled — enabled=true
|
||||
- [pass] Apify Stage 2: Cost plan ready — cost plan ready
|
||||
- [pass] Apify Stage 2: Max spend matches budget cap — GBP 5 approved / 5 budget
|
||||
- [pass] Apify Stage 2: Target cap matches staged lane — 3 approved / 3 expected
|
||||
- [pass] Apify Stage 2: Run limit matches staged lane — 1 approved / 1 expected
|
||||
- [pass] Apify Stage 2: Depth/request cap matches staged lane — 100 approved / 100 expected
|
||||
- [pass] Apify Stage 2: Hard stop acknowledged — hardStopAcknowledged=true
|
||||
- [pass] Apify Stage 2: No credential storage acknowledged — noCredentialStorageAcknowledged=true
|
||||
- [pass] Apify Stage 2: Named Apify gap recorded — Top-3 raw competitor/social/review evidence expansion under starter budget
|
||||
|
||||
## Approval files
|
||||
- DataForSEO: `data/sources/approvals/dataforseo-stage1-approval.json` (blocked)
|
||||
- Apify: `data/sources/approvals/apify-stage2-approval.json` (valid)
|
||||
Reference in New Issue
Block a user