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>
378 lines
17 KiB
JSON
378 lines
17 KiB
JSON
{
|
|
"generatedAt": "2026-05-20T02:31:20.912Z",
|
|
"refreshReady": true,
|
|
"handoffReady": false,
|
|
"objective": "Regenerate all JV handoff packet artifacts without hiding blockers",
|
|
"counts": {
|
|
"steps": 33,
|
|
"passing": 18,
|
|
"blockedExpected": 15,
|
|
"refreshFailed": 0
|
|
},
|
|
"steps": [
|
|
{
|
|
"Name": "export_content",
|
|
"Command": "bun run export:content",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:20.912Z",
|
|
"FinishedAt": "2026-05-20T02:31:21.069Z",
|
|
"Stdout": "Wrote C:\\Users\\uldvs\\OneDrive\\Desktop\\Work 2.0\\jv-dashboard\\content_population_exports\n190 product records, 374 blockers\nHandoff ready: no",
|
|
"Stderr": "$ bun scripts/export-content.ts"
|
|
},
|
|
{
|
|
"Name": "validate_assets",
|
|
"Command": "bun run validate:assets",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:21.069Z",
|
|
"FinishedAt": "2026-05-20T02:31:21.255Z",
|
|
"Stdout": "Available assets: 643\nRequired filenames: 586\nMissing uploads: 0\nMissing filename refs: 0",
|
|
"Stderr": "$ bun scripts/validate-assets.ts"
|
|
},
|
|
{
|
|
"Name": "validate_template",
|
|
"Command": "bun run validate:template",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:21.255Z",
|
|
"FinishedAt": "2026-05-20T02:31:22.555Z",
|
|
"Stdout": "Template schema validation ready: True\r\nproducts_dashboard: pass rows=350\r\nproducts_migration: pass rows=350\r\nsmart_collections_dashboard: pass rows=2\r\nsmart_collections_migration: pass rows=2\r\nmetaobjects_dashboard: pass rows=133\r\nmetaobjects_migration_all: pass rows=98",
|
|
"Stderr": "$ C:/Users/uldvs/AppData/Local/Python/bin/python.exe scripts/validate-template-schema.py"
|
|
},
|
|
{
|
|
"Name": "source_pack",
|
|
"Command": "bun run source:pack",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:22.555Z",
|
|
"FinishedAt": "2026-05-20T02:31:25.345Z",
|
|
"Stdout": "Wrote source request pack to C:\\Users\\uldvs\\OneDrive\\Desktop\\Work 2.0\\jv-dashboard\\content_population_exports\nSource request items: 206\nClinical claim request rows: 16\nImage production rows: 570",
|
|
"Stderr": "$ bun scripts/generate-source-request-pack.ts"
|
|
},
|
|
{
|
|
"Name": "validate_sources",
|
|
"Command": "bun run validate:sources",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:25.345Z",
|
|
"FinishedAt": "2026-05-20T02:31:25.507Z",
|
|
"Stdout": "Source drops ready: true\namazon: 1/1\ntrustpilot: 1/1\nreddit: 1/1\nIssues: 0",
|
|
"Stderr": "$ bun scripts/validate-source-drops.ts"
|
|
},
|
|
{
|
|
"Name": "validate_claims",
|
|
"Command": "bun run validate:claims",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:25.507Z",
|
|
"FinishedAt": "2026-05-20T02:31:25.609Z",
|
|
"Stdout": "Claims library ready: true\nClaims: 5\nIssues: 0",
|
|
"Stderr": "$ bun scripts/validate-claims-library.ts"
|
|
},
|
|
{
|
|
"Name": "clinical_blank_decisions",
|
|
"Command": "bun run compliance:blank-decisions",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:25.609Z",
|
|
"FinishedAt": "2026-05-20T02:31:25.766Z",
|
|
"Stdout": "Clinical blank decisions: 184\nValid blank approvals: 0",
|
|
"Stderr": "$ bun scripts/generate-clinical-blank-decision-template.ts\nerror: script \"compliance:blank-decisions\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "intelligence_queue",
|
|
"Command": "bun run intelligence:queue",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:25.766Z",
|
|
"FinishedAt": "2026-05-20T02:31:25.958Z",
|
|
"Stdout": "Intelligence workqueue ready: true\nMissing tasks: 0\nAffected SKUs: 0",
|
|
"Stderr": "$ bun scripts/generate-intelligence-workqueue.ts"
|
|
},
|
|
{
|
|
"Name": "product_approval_decisions",
|
|
"Command": "bun run approval:decisions",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:25.958Z",
|
|
"FinishedAt": "2026-05-20T02:31:26.149Z",
|
|
"Stdout": "Product approval decisions: 190\nValid approvals: 0\nApplied approvals: 0",
|
|
"Stderr": "$ bun scripts/sync-product-approval-decisions.ts\nerror: script \"approval:decisions\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "product_approval_review_packet",
|
|
"Command": "bun run approval:review-packet",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:26.149Z",
|
|
"FinishedAt": "2026-05-20T02:31:26.359Z",
|
|
"Stdout": "Product approval review packet ready: false\nBlocked products: 190",
|
|
"Stderr": "$ bun scripts/generate-product-approval-review-packet.ts\nerror: script \"approval:review-packet\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "handoff_actions",
|
|
"Command": "bun run handoff:actions",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:26.359Z",
|
|
"FinishedAt": "2026-05-20T02:31:26.518Z",
|
|
"Stdout": "Handoff action plan ready: false\nActions: 6\nP0 actions: 0\nBlocked actions: 2",
|
|
"Stderr": "$ bun scripts/generate-handoff-action-plan.ts\nerror: script \"handoff:actions\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "executive_decision_brief",
|
|
"Command": "bun run handoff:decision-brief",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:26.518Z",
|
|
"FinishedAt": "2026-05-20T02:31:26.664Z",
|
|
"Stdout": "Executive decision brief ready: false\nDecisions: 5\nExport blockers: 374",
|
|
"Stderr": "$ bun scripts/generate-executive-decision-brief.ts\nerror: script \"handoff:decision-brief\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "blocker_burndown",
|
|
"Command": "bun run handoff:burndown",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:26.664Z",
|
|
"FinishedAt": "2026-05-20T02:31:26.792Z",
|
|
"Stdout": "Blocker burn-down ready: false\nRemaining tracked items: 383",
|
|
"Stderr": "$ bun scripts/generate-blocker-burndown.ts\nerror: script \"handoff:burndown\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "source_acquisition_control_run",
|
|
"Command": "bun run source:refresh-packet",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:26.792Z",
|
|
"FinishedAt": "2026-05-20T02:31:33.841Z",
|
|
"Stdout": "source_acquisition_plan: pass (0)\ndataforseo_pilot_intake: pass (0)\ndataforseo_products_live_guard: pass (0)\ndataforseo_live_connection_evidence: pass (0)\ndataforseo_asin_candidates: pass (0)\ndataforseo_asin_web_evidence: pass (0)\ndataforseo_unresolved_asin_evidence: pass (0)\ndataforseo_asin_confirmations: pass (0)\ndataforseo_asin_promotion: pass (0)\ndataforseo_pilot_packet: pass (0)\ndataforseo_asin_lookup: pass (0)\ndataforseo_reviews_docs_status: pass (0)\ndataforseo_task_preflight: pass (0)\ndataforseo_reviews_live_guard: pass (0)\ndataforseo_support_escalation: pass (0)\ndataforseo_support_response_gate: pass (0)\ndataforseo_approval_request: pass (0)\nmanual_amazon_review_capture: pass (0)\nmanual_amazon_review_capture_validation: pass (0)\ndataforseo_ingest_waiting_room: pass (0)\ndataforseo_pilot_review_gate: pass (0)\napify_gapfill_packet: pass (0)\napify_task_preflight: pass (0)\nsource_pricing_references: pass (0)\nsource_cost_scenarios: pass (0)\nsource_budget_gate: pass (0)\nsource_cost_plan: pass (0)\nsource_approval_gate: pass (0)\nsource_spend_gate: pass (0)\ndataforseo_task_preflight_final: pass (0)\nsource_subscription_decision: pass (0)\nsource_next_actions: pass (0)\nSource acquisition control ready: true\nSteps passing: 32/32",
|
|
"Stderr": "$ bun scripts/refresh-source-acquisition-packet.ts"
|
|
},
|
|
{
|
|
"Name": "staging_evidence_intake",
|
|
"Command": "bun run staging:intake",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:33.841Z",
|
|
"FinishedAt": "2026-05-20T02:31:33.976Z",
|
|
"Stdout": "Staging evidence intake initialized; cutoverCreated=false\nFake evidence created: 0",
|
|
"Stderr": "$ bun scripts/initialize-staging-evidence-intake.ts"
|
|
},
|
|
{
|
|
"Name": "staging_handoff_packet",
|
|
"Command": "bun run staging:handoff-packet",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:33.976Z",
|
|
"FinishedAt": "2026-05-20T02:31:34.123Z",
|
|
"Stdout": "Staging handoff packet ready: false\nImport files present: 7/7\nPDP spot-check queue: 10",
|
|
"Stderr": "$ bun scripts/generate-staging-handoff-packet.ts\nerror: script \"staging:handoff-packet\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "staging_evidence",
|
|
"Command": "bun run staging:evidence",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:34.123Z",
|
|
"FinishedAt": "2026-05-20T02:31:34.285Z",
|
|
"Stdout": "Staging evidence ready: false\nImport logs: 0\nPDP checks: 0\nBlocking gates: 5",
|
|
"Stderr": "$ bun scripts/validate-staging-evidence.ts\nerror: script \"staging:evidence\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "staging_checklist",
|
|
"Command": "bun run staging:checklist",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:34.285Z",
|
|
"FinishedAt": "2026-05-20T02:31:34.425Z",
|
|
"Stdout": "Staging checklist ready: false\nChecks: 18\nBlocking checks: 8",
|
|
"Stderr": "$ bun scripts/generate-staging-checklist.ts\nerror: script \"staging:checklist\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "content_audit",
|
|
"Command": "bun run audit:content",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:34.425Z",
|
|
"FinishedAt": "2026-05-20T02:31:34.638Z",
|
|
"Stdout": "Content population ready: false\nGates passing: 10/12\nBlocked gates: 2",
|
|
"Stderr": "$ bun scripts/audit-content-readiness.ts\nerror: script \"audit:content\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "reviewer_decision_workbook",
|
|
"Command": "bun run handoff:reviewer-workbook",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:34.638Z",
|
|
"FinishedAt": "2026-05-20T02:31:34.768Z",
|
|
"Stdout": "Reviewer decision workbook ready: false\nOpen lanes: 4/4\nTracked remaining items: 383",
|
|
"Stderr": "$ bun scripts/generate-reviewer-decision-workbook.ts"
|
|
},
|
|
{
|
|
"Name": "reviewer_input_preflight",
|
|
"Command": "bun run handoff:reviewer-preflight",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:34.768Z",
|
|
"FinishedAt": "2026-05-20T02:31:34.906Z",
|
|
"Stdout": "Reviewer input preflight ready: false\nChecks passing: 0/7\nBlocked: 7\nMissing: 0",
|
|
"Stderr": "$ bun scripts/validate-reviewer-input-preflight.ts\nerror: script \"handoff:reviewer-preflight\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "owner_handoff_messages",
|
|
"Command": "bun run handoff:owner-messages",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:34.906Z",
|
|
"FinishedAt": "2026-05-20T02:31:35.041Z",
|
|
"Stdout": "Owner handoff messages ready: false\nMessages: 4\nTracked remaining items: 383",
|
|
"Stderr": "$ bun scripts/generate-owner-handoff-messages.ts"
|
|
},
|
|
{
|
|
"Name": "owner_response_intake",
|
|
"Command": "bun run handoff:owner-responses",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:35.041Z",
|
|
"FinishedAt": "2026-05-20T02:31:35.178Z",
|
|
"Stdout": "Owner response intake ready: false\nLanes ready: 0/4\nNot sent: 4",
|
|
"Stderr": "$ bun scripts/validate-owner-response-intake.ts\nerror: script \"handoff:owner-responses\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "post_owner_response_rerun_plan",
|
|
"Command": "bun run handoff:post-response-rerun",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:35.178Z",
|
|
"FinishedAt": "2026-05-20T02:31:35.344Z",
|
|
"Stdout": "Post-owner response rerun plan ready: false\nReady lanes: 0/4",
|
|
"Stderr": "$ bun scripts/generate-post-owner-response-rerun-plan.ts\nerror: script \"handoff:post-response-rerun\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "owner_evidence_acceptance_guide",
|
|
"Command": "bun run handoff:evidence-guide",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:35.344Z",
|
|
"FinishedAt": "2026-05-20T02:31:35.480Z",
|
|
"Stdout": "Owner evidence acceptance guide ready: false\nLanes: 7\nCurrently blocked: 7",
|
|
"Stderr": "$ bun scripts/generate-owner-evidence-acceptance-guide.ts"
|
|
},
|
|
{
|
|
"Name": "delivery_index_pre_verify",
|
|
"Command": "bun run delivery:index",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:35.480Z",
|
|
"FinishedAt": "2026-05-20T02:31:35.619Z",
|
|
"Stdout": "Delivery index ready: true\nFiles present: 179/179",
|
|
"Stderr": "$ bun scripts/generate-delivery-index.ts"
|
|
},
|
|
{
|
|
"Name": "verify_handoff",
|
|
"Command": "bun run verify:handoff",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:35.619Z",
|
|
"FinishedAt": "2026-05-20T02:31:38.298Z",
|
|
"Stdout": "export_content: pass (0)\nvalidate_assets: pass (0)\nvalidate_template: pass (0)\nsource_request_pack: pass (0)\nvalidate_sources: pass (0)\nvalidate_claims: pass (0)\nclinical_blank_decisions: blocked (1)\nintelligence_queue: pass (0)\nproduct_approval_decisions: blocked (1)\nproduct_approval_review_packet: blocked (1)\nhandoff_actions: blocked (1)\nexecutive_decision_brief: blocked (1)\nstaging_handoff_packet: blocked (1)\nstaging_evidence: blocked (1)\nstaging_checklist: blocked (1)\ndelivery_index: pass (0)\ncontent_audit: blocked (1)\nHandoff verification ready: false\nChecks passing: 8/17",
|
|
"Stderr": "$ bun scripts/verify-handoff-readiness.ts\nerror: script \"verify:handoff\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "handoff_gate_dependency_map",
|
|
"Command": "bun run handoff:gate-map",
|
|
"ExitCode": 1,
|
|
"Status": "blocked_expected",
|
|
"RequiredToRefresh": "no",
|
|
"StartedAt": "2026-05-20T02:31:38.298Z",
|
|
"FinishedAt": "2026-05-20T02:31:38.423Z",
|
|
"Stdout": "Handoff gate dependency map ready: false\nGates passing: 8/17\nBlocked gates: 9",
|
|
"Stderr": "$ bun scripts/generate-handoff-gate-dependency-map.ts\nerror: script \"handoff:gate-map\" exited with code 1"
|
|
},
|
|
{
|
|
"Name": "handoff_evidence_dossier",
|
|
"Command": "bun run handoff:evidence-dossier",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:38.423Z",
|
|
"FinishedAt": "2026-05-20T02:31:38.571Z",
|
|
"Stdout": "Handoff evidence dossier ready: false\nCompletion unproven: 5/10 requirement areas still blocked; 383 evidence items remain.",
|
|
"Stderr": "$ bun scripts/generate-handoff-evidence-dossier.ts"
|
|
},
|
|
{
|
|
"Name": "daily_status",
|
|
"Command": "bun run handoff:daily-status",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:38.571Z",
|
|
"FinishedAt": "2026-05-20T02:31:38.704Z",
|
|
"Stdout": "Daily status ready: false\nHandoff remains blocked: 383 evidence items remaining; verification 8/17 passing; delivery packet 179/179 present.",
|
|
"Stderr": "$ bun scripts/generate-daily-status.ts"
|
|
},
|
|
{
|
|
"Name": "delivery_index_before_freshness",
|
|
"Command": "bun run delivery:index",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:38.704Z",
|
|
"FinishedAt": "2026-05-20T02:31:38.824Z",
|
|
"Stdout": "Delivery index ready: true\nFiles present: 179/179",
|
|
"Stderr": "$ bun scripts/generate-delivery-index.ts"
|
|
},
|
|
{
|
|
"Name": "handoff_artifact_freshness",
|
|
"Command": "bun run handoff:freshness",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:38.824Z",
|
|
"FinishedAt": "2026-05-20T02:31:38.950Z",
|
|
"Stdout": "Handoff artifact freshness ready: true\nFresh: 165; static allowed: 14; stale: 0; missing: 0",
|
|
"Stderr": "$ bun scripts/validate-handoff-artifact-freshness.ts"
|
|
},
|
|
{
|
|
"Name": "delivery_index_final",
|
|
"Command": "bun run delivery:index",
|
|
"ExitCode": 0,
|
|
"Status": "pass",
|
|
"RequiredToRefresh": "yes",
|
|
"StartedAt": "2026-05-20T02:31:38.950Z",
|
|
"FinishedAt": "2026-05-20T02:31:39.086Z",
|
|
"Stdout": "Delivery index ready: true\nFiles present: 179/179",
|
|
"Stderr": "$ bun scripts/generate-delivery-index.ts"
|
|
}
|
|
]
|
|
}
|