# 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)