{
  "checked_at": "2026-10-08T04:33:40.012Z",
  "result": "PASS",
  "checks_passed": 64,
  "workflows": [
    {
      "file": "01-inbound-intake.n8n.json",
      "nodes": 9
    },
    {
      "file": "02-hubspot-lead-worker.n8n.json",
      "nodes": 47
    },
    {
      "file": "03-hubspot-property-setup.n8n.json",
      "nodes": 7
    },
    {
      "file": "04-errors-and-stalled-jobs.n8n.json",
      "nodes": 10
    }
  ],
  "checks": [
    "01-inbound-intake.n8n.json: graph and code/expression syntax",
    "02-hubspot-lead-worker.n8n.json: graph and code/expression syntax",
    "03-hubspot-property-setup.n8n.json: graph and code/expression syntax",
    "04-errors-and-stalled-jobs.n8n.json: graph and code/expression syntax",
    "Sanitization: lowercase email, preserve names, normalize whitespace/newlines",
    "Reject malformed email",
    "Reject missing stable UUID",
    "Reject non-string form value",
    "Reject oversized message",
    "String true does not authorize requested reply",
    "Browser-provided owner, score, config and send recipient are dropped",
    "Valid matching mailbox passes hygiene",
    "Hygiene blocks invalid",
    "Hygiene blocks unknown",
    "Hygiene blocks catch-all",
    "Hygiene blocks spamtrap",
    "Hygiene blocks abuse",
    "Hygiene blocks do_not_mail",
    "Hygiene blocks disposable",
    "Hygiene blocks role_based",
    "Hygiene blocks global_suppression",
    "Hygiene blocks possible_trap",
    "Hygiene blocks catchall_domain even with valid status",
    "Hygiene blocks validator address mismatch",
    "Validator failure becomes review",
    "CRM update preserves nonempty data, owner and lifecycle",
    "Missing CRM contact uses create and lead lifecycle",
    "HubSpot auth error cannot become a new contact",
    "Conflict reload must find an existing contact",
    "Qualified Hot lead sends with zero artificial delay",
    "Warm lead gets bounded randomized delay",
    "Cold lead is CRM only",
    "Low fit cannot send despite urgency/intent score",
    "Dry run cannot send",
    "Second global auto-send gate blocks send",
    "Policy blocks low confidence",
    "Policy blocks human review",
    "Policy blocks out of bounds score",
    "Policy blocks unapproved service",
    "Policy blocks subject header injection",
    "Policy blocks HTML",
    "Policy blocks external link",
    "Policy blocks hs_email_optout",
    "Policy blocks hs_email_bad_address",
    "Policy blocks revops_do_not_contact",
    "Hard bounce suppresses send",
    "Existing customer excluded from automatic sales reply",
    "Unavailable owner preserved but goes to human review",
    "Unknown owner profile goes to review",
    "No requested response means no email",
    "Stale lead cannot send",
    "Malformed/incomplete AI output fails closed",
    "Fresh unchanged contact can send",
    "Final gate catches changed hubspot_owner_id",
    "Final gate catches changed email",
    "Final gate catches changed revops_do_not_contact",
    "Final gate catches changed revops_email_validation",
    "Final gate catches changed revops_response_status",
    "Final gate catches changed lifecyclestage",
    "Provider response requires nonempty message ID",
    "Email activity logs exactly the sent text and contact association",
    "Failure sanitizer removes bearer and validation API query secrets",
    "All PostgreSQL user values use bound parameters",
    "Send node uses persisted payload and stable provider idempotency header"
  ],
  "not_verified": [
    "Import/execution in a live n8n instance",
    "PostgreSQL functions executed against a running server",
    "Concurrent database load tests",
    "Live credentials, tenant permissions, vendor API responses and delivery",
    "Model quality against the company actual services and labeled leads"
  ]
}

