{ "generatedAt": "2026-05-20T02:31:34.881Z", "ready": false, "purpose": "Preflight validation for the human-editable reviewer/provider/staging input files before rerunning the heavier handoff gates.", "counts": { "checks": 7, "passing": 0, "blocked": 7, "missing": 0 }, "rows": [ { "Area": "Compliance clinical blanks", "File": "data/content/compliance/clinical-blank-decisions.csv", "Check": "All blank clinical claim rows have explicit approved_blank decisions with approver, date, rationale, and constraints acknowledgement.", "Status": "blocked", "Evidence": "0/184 valid approved_blank rows; 184 still pending/invalid.", "NextAction": "Compliance owner must fill the CSV or provide source-backed claims, then run bun run compliance:blank-decisions && bun run claims:sync-content.", "Guardrail": "Do not invent clinical claims or approve blanks without compliance input." }, { "Area": "Product approval decisions", "File": "data/content/approvals/product-approval-decisions.csv", "Check": "All products have human approve_all rows with all evidence/acknowledgement fields complete.", "Status": "blocked", "Evidence": "0/190 valid approve_all rows; 190 still pending/invalid.", "NextAction": "Umar/JV reviewer must complete the CSV, then run bun run approval:decisions && bun run approval:review-packet.", "Guardrail": "Do not self-approve products or treat generated drafts as human approval." }, { "Area": "DataForSEO provider response", "File": "data/sources/provider-responses/dataforseo-reviews-endpoint-response.json", "Check": "Support response proves the Reviews endpoint or replacement endpoint is available and retry-safe without leaking credentials.", "Status": "blocked", "Evidence": "responseReceived=false; endpointAvailable=false; replacementEndpoint=blank; retrySafe=false; credentialIncluded=false", "NextAction": "Wait for DataForSEO support/docs clearance, fill the provider response tracker, then run bun run dataforseo:support-response.", "Guardrail": "Use the real pi-fresh-foundation credentials only in shell env; never paste or store secrets in the response tracker." }, { "Area": "DataForSEO spend approval", "File": "data/sources/approvals/dataforseo-stage1-approval.json", "Check": "Stage 1 approval file has approver, date, capped spend, exact target/run/depth caps, and hard-stop/no-secret/post-review acknowledgements.", "Status": "blocked", "Evidence": "approved=false; maxSpendApproved=0; targetCap=0/10; runLimit=0/1; depth=0/10; hardStop=false; noCredentialStorage=false", "NextAction": "Project owner must explicitly fill the approval file after endpoint clearance, then run bun run source:spend-gate.", "Guardrail": "Approval alone must not override provider endpoint/support/docs blockers." }, { "Area": "Staging import evidence", "File": "data/staging/import-logs", "Check": "At least one real Matrixify/staging import log JSON exists outside templates.", "Status": "blocked", "Evidence": "0 import log file(s) found.", "NextAction": "Lewis/Euan must save real import logs under data/staging/import-logs/ and rerun bun run staging:evidence.", "Guardrail": "Queued templates are not import evidence." }, { "Area": "Staging PDP spot checks", "File": "data/staging/pdp-checks", "Check": "At least 5 real staging PDP spot-check JSON files exist outside the queue/templates.", "Status": "blocked", "Evidence": "0/5 PDP check file(s) found.", "NextAction": "Save real staging URL spot checks under data/staging/pdp-checks/ and rerun bun run staging:evidence.", "Guardrail": "Queue files under pdp-check-queue are assignments only, not completed checks." }, { "Area": "Staging cutover approval", "File": "data/staging/cutover-approval.json", "Check": "Cutover approval exists with explicit approval/signoff owner and timestamp.", "Status": "blocked", "Evidence": "approved=false; approver=blank; approvedAt=blank", "NextAction": "Project owner/Lewis/Euan must sign the cutover approval after successful staging checks.", "Guardrail": "Do not treat handoff packet generation as cutover approval." } ], "blockingRows": [ { "Area": "Compliance clinical blanks", "File": "data/content/compliance/clinical-blank-decisions.csv", "Check": "All blank clinical claim rows have explicit approved_blank decisions with approver, date, rationale, and constraints acknowledgement.", "Status": "blocked", "Evidence": "0/184 valid approved_blank rows; 184 still pending/invalid.", "NextAction": "Compliance owner must fill the CSV or provide source-backed claims, then run bun run compliance:blank-decisions && bun run claims:sync-content.", "Guardrail": "Do not invent clinical claims or approve blanks without compliance input." }, { "Area": "Product approval decisions", "File": "data/content/approvals/product-approval-decisions.csv", "Check": "All products have human approve_all rows with all evidence/acknowledgement fields complete.", "Status": "blocked", "Evidence": "0/190 valid approve_all rows; 190 still pending/invalid.", "NextAction": "Umar/JV reviewer must complete the CSV, then run bun run approval:decisions && bun run approval:review-packet.", "Guardrail": "Do not self-approve products or treat generated drafts as human approval." }, { "Area": "DataForSEO provider response", "File": "data/sources/provider-responses/dataforseo-reviews-endpoint-response.json", "Check": "Support response proves the Reviews endpoint or replacement endpoint is available and retry-safe without leaking credentials.", "Status": "blocked", "Evidence": "responseReceived=false; endpointAvailable=false; replacementEndpoint=blank; retrySafe=false; credentialIncluded=false", "NextAction": "Wait for DataForSEO support/docs clearance, fill the provider response tracker, then run bun run dataforseo:support-response.", "Guardrail": "Use the real pi-fresh-foundation credentials only in shell env; never paste or store secrets in the response tracker." }, { "Area": "DataForSEO spend approval", "File": "data/sources/approvals/dataforseo-stage1-approval.json", "Check": "Stage 1 approval file has approver, date, capped spend, exact target/run/depth caps, and hard-stop/no-secret/post-review acknowledgements.", "Status": "blocked", "Evidence": "approved=false; maxSpendApproved=0; targetCap=0/10; runLimit=0/1; depth=0/10; hardStop=false; noCredentialStorage=false", "NextAction": "Project owner must explicitly fill the approval file after endpoint clearance, then run bun run source:spend-gate.", "Guardrail": "Approval alone must not override provider endpoint/support/docs blockers." }, { "Area": "Staging import evidence", "File": "data/staging/import-logs", "Check": "At least one real Matrixify/staging import log JSON exists outside templates.", "Status": "blocked", "Evidence": "0 import log file(s) found.", "NextAction": "Lewis/Euan must save real import logs under data/staging/import-logs/ and rerun bun run staging:evidence.", "Guardrail": "Queued templates are not import evidence." }, { "Area": "Staging PDP spot checks", "File": "data/staging/pdp-checks", "Check": "At least 5 real staging PDP spot-check JSON files exist outside the queue/templates.", "Status": "blocked", "Evidence": "0/5 PDP check file(s) found.", "NextAction": "Save real staging URL spot checks under data/staging/pdp-checks/ and rerun bun run staging:evidence.", "Guardrail": "Queue files under pdp-check-queue are assignments only, not completed checks." }, { "Area": "Staging cutover approval", "File": "data/staging/cutover-approval.json", "Check": "Cutover approval exists with explicit approval/signoff owner and timestamp.", "Status": "blocked", "Evidence": "approved=false; approver=blank; approvedAt=blank", "NextAction": "Project owner/Lewis/Euan must sign the cutover approval after successful staging checks.", "Guardrail": "Do not treat handoff packet generation as cutover approval." } ], "files": { "markdown": "content_population_exports/reviewer_input_preflight.md", "json": "content_population_exports/reviewer_input_preflight.json", "csv": "content_population_exports/reviewer_input_preflight.csv" } }