056c47581f
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>
368 lines
15 KiB
JSON
368 lines
15 KiB
JSON
{
|
|
"generatedAt": "2026-05-20T02:31:26.897Z",
|
|
"ready": true,
|
|
"note": "This proves the staged source-acquisition packet can be regenerated. Run delivery:index after this control run to refresh the overall handoff packet index. It does not mean provider spend or final handoff is allowed.",
|
|
"counts": {
|
|
"steps": 32,
|
|
"passing": 32,
|
|
"blocked": 0,
|
|
"required": 32,
|
|
"requiredPassing": 32
|
|
},
|
|
"steps": [
|
|
{
|
|
"Name": "source_acquisition_plan",
|
|
"Command": "bun run source:acquisition",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:26.897Z",
|
|
"FinishedAt": "2026-05-20T02:31:27.058Z",
|
|
"Stdout": "Source acquisition plan ready: false\nStage 1 targets: 10\nApify gap-fill targets: 7",
|
|
"Stderr": "$ bun scripts/generate-source-acquisition-plan.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_pilot_intake",
|
|
"Command": "bun run dataforseo:pilot",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:27.058Z",
|
|
"FinishedAt": "2026-05-20T02:31:27.227Z",
|
|
"Stdout": "DataForSEO pilot ready: true\nStage 1 targets: 10\nReady task payload rows: 6\nMissing ASINs: 4",
|
|
"Stderr": "$ bun scripts/generate-dataforseo-pilot.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_products_live_guard",
|
|
"Command": "bun run dataforseo:products-live",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:27.228Z",
|
|
"FinishedAt": "2026-05-20T02:31:27.396Z",
|
|
"Stdout": "DataForSEO live product search blocked: explicit allow flag missing\nSet JV_SOURCE_ALLOW_PAID=dataforseo-product-search to intentionally spend the small live Amazon Products search task credits.",
|
|
"Stderr": "$ bun scripts/run-dataforseo-products-live-search.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_live_connection_evidence",
|
|
"Command": "bun run dataforseo:live-asin-evidence",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:27.396Z",
|
|
"FinishedAt": "2026-05-20T02:31:28.912Z",
|
|
"Stdout": "DataForSEO live evidence ready: true\nAccount: 20000 Ok.\nExact ASINs: 6/10\nTask payload rows: 6\nMissing ASINs: 4",
|
|
"Stderr": "$ bun scripts/refresh-dataforseo-live-asin-evidence.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_asin_candidates",
|
|
"Command": "bun run dataforseo:asin-candidates",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:28.912Z",
|
|
"FinishedAt": "2026-05-20T02:31:29.069Z",
|
|
"Stdout": "DataForSEO ASIN candidates ready: false\nCandidates: 4\nHigh-confidence confirmed: 0\nNeeds Amazon confirmation: 4",
|
|
"Stderr": "$ bun scripts/validate-dataforseo-asin-candidates.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_asin_web_evidence",
|
|
"Command": "bun run dataforseo:asin-web-evidence",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:29.069Z",
|
|
"FinishedAt": "2026-05-20T02:31:29.236Z",
|
|
"Stdout": "DataForSEO ASIN web evidence ready: false\nEvidence rows: 6\nAmazon-confirmed exact matches: 0\nThird-party lookup aids: 4",
|
|
"Stderr": "$ bun scripts/validate-dataforseo-asin-web-evidence.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_unresolved_asin_evidence",
|
|
"Command": "bun run dataforseo:unresolved-asins",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:29.236Z",
|
|
"FinishedAt": "2026-05-20T02:31:29.373Z",
|
|
"Stdout": "DataForSEO unresolved ASIN evidence ready: true\nUnresolved targets: 4\nKeep out of paid payload: 4",
|
|
"Stderr": "$ bun scripts/validate-dataforseo-unresolved-asins.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_asin_confirmations",
|
|
"Command": "bun run dataforseo:asin-confirmations",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:29.373Z",
|
|
"FinishedAt": "2026-05-20T02:31:29.516Z",
|
|
"Stdout": "DataForSEO ASIN confirmations ready: false\nConfirmation rows: 10\nReady for promotion: 0\nBlocked: 10",
|
|
"Stderr": "$ bun scripts/validate-dataforseo-asin-confirmations.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_asin_promotion",
|
|
"Command": "bun run dataforseo:promote-asins",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:29.516Z",
|
|
"FinishedAt": "2026-05-20T02:31:29.653Z",
|
|
"Stdout": "DataForSEO ASIN promotion ready: false\nPromoted rows: 0\nASINs ready after promotion: 6\nASINs missing after promotion: 4",
|
|
"Stderr": "$ bun scripts/promote-dataforseo-asin-candidates.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_pilot_packet",
|
|
"Command": "bun run dataforseo:pilot",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:29.653Z",
|
|
"FinishedAt": "2026-05-20T02:31:29.763Z",
|
|
"Stdout": "DataForSEO pilot ready: true\nStage 1 targets: 10\nReady task payload rows: 6\nMissing ASINs: 4",
|
|
"Stderr": "$ bun scripts/generate-dataforseo-pilot.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_asin_lookup",
|
|
"Command": "bun run dataforseo:asin-lookup",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:29.763Z",
|
|
"FinishedAt": "2026-05-20T02:31:29.886Z",
|
|
"Stdout": "DataForSEO ASIN lookup ready: false\nTargets: 10\nASINs present: 6\nMissing ASINs: 4",
|
|
"Stderr": "$ bun scripts/generate-dataforseo-asin-lookup.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_reviews_docs_status",
|
|
"Command": "bun run dataforseo:reviews-docs-status",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:29.886Z",
|
|
"FinishedAt": "2026-05-20T02:31:31.201Z",
|
|
"Stdout": "DataForSEO Reviews docs status ready: false\nOfficial unavailable note: true\nChecks passing: 2/3",
|
|
"Stderr": "$ bun scripts/validate-dataforseo-reviews-docs-status.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_task_preflight",
|
|
"Command": "bun run dataforseo:task-preflight",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:31.201Z",
|
|
"FinishedAt": "2026-05-20T02:31:31.331Z",
|
|
"Stdout": "DataForSEO task preflight ready: false\nChecks passing: 5/10\nTask rows: 6",
|
|
"Stderr": "$ bun scripts/validate-dataforseo-task-preflight.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_reviews_live_guard",
|
|
"Command": "bun run dataforseo:reviews-live",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:31.331Z",
|
|
"FinishedAt": "2026-05-20T02:31:31.465Z",
|
|
"Stdout": "DataForSEO reviews pilot blocked: explicit allow flag missing\nSet JV_SOURCE_ALLOW_PAID=dataforseo-stage1 only for the approved paid pilot run.",
|
|
"Stderr": "$ bun scripts/run-dataforseo-reviews-live-pilot.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_support_escalation",
|
|
"Command": "bun run dataforseo:support-escalation",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:31.465Z",
|
|
"FinishedAt": "2026-05-20T02:31:31.604Z",
|
|
"Stdout": "DataForSEO support escalation ready: true\nIssue: 50304: This function temporarily unavailable. Please contact support for more information.\nPayload rows: 6",
|
|
"Stderr": "$ bun scripts/generate-dataforseo-support-escalation.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_support_response_gate",
|
|
"Command": "bun run dataforseo:support-response",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:31.604Z",
|
|
"FinishedAt": "2026-05-20T02:31:31.728Z",
|
|
"Stdout": "DataForSEO support response gate ready: false\nChecks passing: 3/6",
|
|
"Stderr": "$ bun scripts/validate-dataforseo-support-response.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_approval_request",
|
|
"Command": "bun run dataforseo:approval-request",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:31.728Z",
|
|
"FinishedAt": "2026-05-20T02:31:31.864Z",
|
|
"Stdout": "DataForSEO Stage 1 approval request ready: false\nApproval checks ready: 2/6\nPayload rows: 6",
|
|
"Stderr": "$ bun scripts/generate-dataforseo-approval-request.ts"
|
|
},
|
|
{
|
|
"Name": "manual_amazon_review_capture",
|
|
"Command": "bun run amazon:manual-capture",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:31.864Z",
|
|
"FinishedAt": "2026-05-20T02:31:31.986Z",
|
|
"Stdout": "Manual Amazon review capture ready: true\nTargets: 6",
|
|
"Stderr": "$ bun scripts/generate-manual-amazon-review-capture.ts"
|
|
},
|
|
{
|
|
"Name": "manual_amazon_review_capture_validation",
|
|
"Command": "bun run amazon:manual-capture-validate",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:31.986Z",
|
|
"FinishedAt": "2026-05-20T02:31:32.123Z",
|
|
"Stdout": "Manual Amazon capture validation ready: false\nFiles valid: 0/6\nReviews captured: 0",
|
|
"Stderr": "$ bun scripts/validate-manual-amazon-review-capture.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_ingest_waiting_room",
|
|
"Command": "bun run dataforseo:ingest",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:32.124Z",
|
|
"FinishedAt": "2026-05-20T02:31:32.258Z",
|
|
"Stdout": "DataForSEO ingest ready: false\nRaw files: 0\nConverted files: 0\nConverted reviews: 0\nIssues: 0",
|
|
"Stderr": "$ bun scripts/ingest-dataforseo-amazon-reviews.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_pilot_review_gate",
|
|
"Command": "bun run dataforseo:review",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:32.258Z",
|
|
"FinishedAt": "2026-05-20T02:31:32.385Z",
|
|
"Stdout": "DataForSEO pilot review ready: false\nDecision: pending\nChecks passing: 1/7",
|
|
"Stderr": "$ bun scripts/validate-dataforseo-pilot-review.ts"
|
|
},
|
|
{
|
|
"Name": "apify_gapfill_packet",
|
|
"Command": "bun run apify:gapfill",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:32.385Z",
|
|
"FinishedAt": "2026-05-20T02:31:32.515Z",
|
|
"Stdout": "Apify gap-fill packet ready: false\nTargets: 7\nFirst-batch targets: 3\nHold targets: 4\nExisting PDP probes: 7",
|
|
"Stderr": "$ bun scripts/generate-apify-gapfill-packet.ts"
|
|
},
|
|
{
|
|
"Name": "apify_task_preflight",
|
|
"Command": "bun run apify:task-preflight",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:32.515Z",
|
|
"FinishedAt": "2026-05-20T02:31:32.615Z",
|
|
"Stdout": "Apify task preflight ready: false\nChecks passing: 2/8\nFirst-batch targets: 3",
|
|
"Stderr": "$ bun scripts/validate-apify-task-preflight.ts"
|
|
},
|
|
{
|
|
"Name": "source_pricing_references",
|
|
"Command": "bun run source:pricing-refs",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:32.615Z",
|
|
"FinishedAt": "2026-05-20T02:31:32.769Z",
|
|
"Stdout": "Source acquisition pricing references ready: true\nReferences: 5",
|
|
"Stderr": "$ bun scripts/generate-source-pricing-references.ts"
|
|
},
|
|
{
|
|
"Name": "source_cost_scenarios",
|
|
"Command": "bun run source:cost-scenarios",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:32.769Z",
|
|
"FinishedAt": "2026-05-20T02:31:32.931Z",
|
|
"Stdout": "Source acquisition cost scenarios ready: true\nScenarios: 5\nDataForSEO standard estimate USD: 0.0075",
|
|
"Stderr": "$ bun scripts/generate-source-cost-scenarios.ts"
|
|
},
|
|
{
|
|
"Name": "source_budget_gate",
|
|
"Command": "bun run source:budget",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:32.931Z",
|
|
"FinishedAt": "2026-05-20T02:31:33.077Z",
|
|
"Stdout": "Source acquisition budget gate ready: false\nDataForSEO budget allowed: false\nApify budget allowed: false\nChecks passing: 6/9",
|
|
"Stderr": "$ bun scripts/validate-source-acquisition-budget.ts"
|
|
},
|
|
{
|
|
"Name": "source_cost_plan",
|
|
"Command": "bun run source:cost-plan",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:33.077Z",
|
|
"FinishedAt": "2026-05-20T02:31:33.212Z",
|
|
"Stdout": "Source acquisition cost plan ready: false\nDataForSEO cost ready: false\nApify cost ready: false\nChecks passing: 7/12",
|
|
"Stderr": "$ bun scripts/validate-source-acquisition-cost-plan.ts"
|
|
},
|
|
{
|
|
"Name": "source_approval_gate",
|
|
"Command": "bun run source:approvals",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:33.212Z",
|
|
"FinishedAt": "2026-05-20T02:31:33.347Z",
|
|
"Stdout": "Source acquisition approval gate ready: false\nApprovals valid: 0/2\nChecks passing: 1/23",
|
|
"Stderr": "$ bun scripts/validate-source-acquisition-approvals.ts"
|
|
},
|
|
{
|
|
"Name": "source_spend_gate",
|
|
"Command": "bun run source:spend-gate",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:33.347Z",
|
|
"FinishedAt": "2026-05-20T02:31:33.476Z",
|
|
"Stdout": "Source acquisition spend gate ready: false\nDataForSEO spend allowed: false\nApify spend allowed: false\nChecks passing: 4/14",
|
|
"Stderr": "$ bun scripts/validate-source-acquisition-spend.ts"
|
|
},
|
|
{
|
|
"Name": "dataforseo_task_preflight_final",
|
|
"Command": "bun run dataforseo:task-preflight",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:33.476Z",
|
|
"FinishedAt": "2026-05-20T02:31:33.576Z",
|
|
"Stdout": "DataForSEO task preflight ready: false\nChecks passing: 5/10\nTask rows: 6",
|
|
"Stderr": "$ bun scripts/validate-dataforseo-task-preflight.ts"
|
|
},
|
|
{
|
|
"Name": "source_subscription_decision",
|
|
"Command": "bun run source:subscription-decision",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:33.576Z",
|
|
"FinishedAt": "2026-05-20T02:31:33.688Z",
|
|
"Stdout": "Source subscription decision ready: true\nDo not subscribe or spend provider credits yet; DataForSEO is the first paid lane once ASINs and gates are ready, Apify stays held.\nRows: 4",
|
|
"Stderr": "$ bun scripts/generate-source-subscription-decision.ts"
|
|
},
|
|
{
|
|
"Name": "source_next_actions",
|
|
"Command": "bun run source:next-actions",
|
|
"Status": "pass",
|
|
"ExitCode": 0,
|
|
"RequiredForPacket": "yes",
|
|
"StartedAt": "2026-05-20T02:31:33.688Z",
|
|
"FinishedAt": "2026-05-20T02:31:33.815Z",
|
|
"Stdout": "Source acquisition next actions ready: false\nImmediate actions: 5\nMissing ASINs: 4",
|
|
"Stderr": "$ bun scripts/generate-source-acquisition-next-actions.ts"
|
|
}
|
|
],
|
|
"blockedSteps": []
|
|
}
|