{
  "generated_from": "live_platform_state",
  "armed": false,
  "missing_dependencies": [
    "RESEND_API_KEY",
    "SLEUTH_MAIL_FROM",
    "SLEUTH_DNS_VERIFIED_AT",
    "SLEUTH_CAMPAIGN_APPROVED"
  ],
  "touch_plan_rule": "Touch plan rule: a sequence has 4 touches at day offsets 0, 3, 7 and 14 from enrollment. Each touch is a fresh angle built only from the prospect record's own fields: touch 1 leads with the observed signal; touch 2 leads with the pain angle and the prospect's page walkthrough; touch 3 is the booking invitation; touch 4 is the final closing note. No touch is ever a bare follow-up with no new angle. Each touch has a pool of 2 subjects and the subject is picked deterministically by a hash of the prospect id, so the same prospect always renders the same subjects.",
  "delivery_rule": "Delivery window rule: the recipient timezone is derived from the prospect's state through the published state-to-timezone map, which names the primary (most-populous) IANA timezone for each of the 51 US state codes. A touch is scheduled for 10:00 recipient-local time on the enrollment local date plus its day offset; if that local date is not a Tuesday, Wednesday or Thursday, the touch rolls forward to the next Tuesday, Wednesday or Thursday date at 10:00 recipient-local time.",
  "warmup_rule": "Warmup rule: per account per UTC day, the number of touches fired is capped by campaign age in days since the account's first enrollment: days 1-3 cap at 10, days 4-7 cap at 25, days 8-14 cap at 50, and day 15 and later caps at 100. When a run reaches the cap it stops and reports capped: true; unfired touches stay due for a later run.",
  "render_rule": "Render rule: every touch renders an HTML body and a plain-text twin from the prospect record. Every touch carries the STOP line in both twins and a footer naming AI Sleuth by a2ally, and links to the recipient's page: when the enrollment carries a page token (a 43-character base64url token, validated at enrollment) the link is the per-recipient page under that token, otherwise the link is the generic Sleuth page. No touch copy states any price.",
  "watch_rule": "Watch rule: replies route to a human-gated inbox and are never auto-answered — no auto-reply code path exists, and every inbox record carries auto_answered: false and status awaiting_human. A stop, bounce or complaint suppresses the address immediately and permanently through the AS-3 suppression service and stops the sequence; a reply moves the prospect's active sequences to replied.",
  "counting_rule": "Counting rule: the usage counts in this document are computed at read time from live accounts only — sandbox and other non-live accounts are excluded. sequences_total counts sequence records stored for live accounts, split by status in sequences_by_status; touches_prepared counts touches on those sequences that carry a prepared send; touches_sent counts touches on those sequences with a sent time; inbox_total counts inbox records stored for live accounts, split by kind in inbox_by_kind. No email, business name or prospect content ever appears in this document — counts only.",
  "touch_offsets": [
    0,
    3,
    7,
    14
  ],
  "subject_pool": [
    [
      "What we noticed about your phones",
      "A quick note from AI Sleuth"
    ],
    [
      "The follow-up gap we found",
      "Your walkthrough is ready"
    ],
    [
      "15 minutes to walk through it?",
      "Booking a short call"
    ],
    [
      "Closing the loop",
      "Last note from AI Sleuth"
    ]
  ],
  "warmup_caps": [
    {
      "min_age_days": 1,
      "max_age_days": 3,
      "cap": 10
    },
    {
      "min_age_days": 4,
      "max_age_days": 7,
      "cap": 25
    },
    {
      "min_age_days": 8,
      "max_age_days": 14,
      "cap": 50
    },
    {
      "min_age_days": 15,
      "max_age_days": null,
      "cap": 100
    }
  ],
  "surfaces": [
    "GET /v1/sleuth/sequence-runner (free, no key) — this index document: the armed state and missing dependency names read from the AS-1 sending foundation, the touch plan, delivery window, warmup, render, watch and counting rules printed verbatim, the touch offsets, the warmup table, the surfaces, and live usage counts computed from live accounts only",
    "POST /v1/sleuth/sequences (owner account key) — enroll one screened prospect into a four-touch sequence; an optional page_token (43-character base64url) links the touches to the recipient's page; returns the owner's sequence view with no email anywhere",
    "GET /v1/sleuth/sequences (owner account key) — the caller's own sequences only",
    "POST /v1/sleuth/sequences/run (owner account key) — run the caller's due sequences once: due touches are prepared through the AS-1 tracked-send service and dispatched only when sending is armed; while dark a due touch stays prepared, the sequence does not advance and the run counts it as blocked_dark; an optional now instant makes the run deterministic",
    "POST /v1/sleuth/inbound (owner account key) — record one inbound reply, stop, bounce or complaint against one of the caller's prospects: stops, bounces and complaints suppress immediately and permanently and stop the sequence; replies move the sequence to replied; nothing is ever auto-answered",
    "GET /v1/sleuth/inbox (owner account key) — the caller's human-gated inbox: email hash, kind, subject, body, status and the auto_answered flag only; no raw email is ever listed",
    "GET /sleuth-sequence (page) and GET /sleuth-sequence.md — the human-readable twin of this document"
  ],
  "usage": {
    "sequences_total": 0,
    "sequences_by_status": {
      "active": 0,
      "completed": 0,
      "replied": 0,
      "stopped": 0
    },
    "touches_prepared": 0,
    "touches_sent": 0,
    "inbox_total": 0,
    "inbox_by_kind": {
      "reply": 0,
      "stop": 0,
      "bounce": 0,
      "complaint": 0
    }
  },
  "note": "AI Sleuth sequence runner by a2ally: screened prospects are enrolled into four-touch sequences delivered at 10:00 recipient-local time on Tuesdays, Wednesdays and Thursdays under warmup caps, rendered from the prospect record and prepared through the tracked-send foundation. Sending is dark (not armed; missing dependencies: RESEND_API_KEY, SLEUTH_MAIL_FROM, SLEUTH_DNS_VERIFIED_AT, SLEUTH_CAMPAIGN_APPROVED) — while dark the runner prepares touches and nothing is sent. Live at read: 0 sequence(s) (0 active), 0 touch(es) prepared, 0 touch(es) sent, 0 inbox record(s). Counts only — no email, business name or prospect content appears in this document.",
  "page": "/sleuth-sequence"
}