LLL · remaining lead preparation

Verification and Constraints

READY FOR REVIEW

Prepare as many of your remaining leads as possible for three campaigns.

Sol xhigh · after LaunchDevbox · $20 incremental capPreparation only

Goal and finish line

End goal: The largest defensible ready-to-import group from the existing 1,200 leads, split once across three campaigns.

End state: Three matching import files, clear destinations in your existing table, and a reason for every held row.

1,052remaining at preflight
590currently labelled ready; recheck due
462held; recover where justified

Rules that stay fixed

  • Use this cohort only. Keep your saved edits.
  • Prepare files and table assignments. Do not import or send.
  • Literal field domainnev,hu → value example,hu.
  • Read current campaign copies; do not rewrite them.
Confirmed: 148 rows are already imported and excluded from this preparation. Live preflight: 30 September 2026.

Three destinations

Assumption: split the newly ready rows approximately equally. This does not equalize the campaigns’ existing totals.

Parent ↔ child messages

PARENT · contract ready30 September 2026

Review this board and add any corrections. The later Launch message starts one pinned Sol xhigh executor. No executor or timer exists yet.

Work and proof

0 / 9 verified · execution not started

Freeze the remaining cohort

Account for all original leads before preparing anyone for another campaign.

0 / 2
Criteria, constraints and evidence

Observable tests

Constraints

  • ✕ No replacements or new source cohort.
  • ✕ No previously contacted company, duplicate or suppression bypass.
Required evidence: Frozen cohort, current exclusion receipts, reconciliation and preservation reports.

Executor update: not started.

Recover every eligible lead

Use existing work first, then spend only to resolve recoverable holds.

0 / 2
Criteria, constraints and evidence

Observable tests

Constraints

  • ✕ Unknown and catch-all emails remain held; never invent freshness.
  • ✕ Preserve paid caches and human edits. Use a proven recipient name or Szép napot.
Required evidence: Row-level receipts and a complete ready/held reconciliation; maximum $20 incremental spend.

Executor update: not started.

Build three import packages

Prepare an approximately equal split using each campaign’s current variables.

0 / 3
Criteria, constraints and evidence

Observable tests

Constraints

  • ✕ No imports, campaign writes, activation or prospect messages.
  • ✕ Keep the exact comma key, intentional comma value, saved personalizations and live campaign copy.
Required evidence: Three CSVs, assignment manifest, formatter fixtures and full rendering report.

Executor update: not started.

Show the result in your table

Extend the existing table with planned campaign and domain fields.

0 / 2
Criteria, constraints and evidence

Observable tests

Constraints

  • ✕ Keep inline edits, notes, annotations and existing routes.
  • ✕ Planned assignment must never appear as In campaign. No login or review token.
Required evidence: Post-change screenshot + independent description + parent comparison; table/export parity report.
Screenshot placeholder · existing table after change
Independent screenshot description: pending
Parent comparison: pending

Executor update: not started.

Review and execution route

  1. Now: review the scope, split and variable examples.
  2. After Launch: one Sol xhigh executor prepares the packages on devbox and updates this board.
  3. CCC: parent checks once after 20 minutes, then every 60 minutes; idle between checks.
  4. At completion: verify the evidence, add a pink result callout here, archive the successful child and delete its timer.

A held address is an explicit outcome, not a reason to substitute a different lead. No fixed yield is promised before verification.

Open facts and assumptions

Full executor contractExact IDs, evidence and boundaries
# Prepare remaining leads for three campaigns End goal: Maximize the number of remaining eligible leads from the existing 1,200-row cohort, with three disjoint campaign-specific import packages and an updated existing review table. End state: Every one of the frozen 1,200 IDs is reconciled as previously imported/excluded, newly ready and assigned exactly once, or held with a reason. No import or prospect message happens in this preparation run. ## Supplied read-only preflight, 2026-09-30 These are source observations, not a council recheck. At execution start refresh campaign IDs, creation order, states, templates and row versions. Record whether the fixed targets below remain the intended two newest copies. Do not silently switch to different campaigns if recency has changed; hold only affected assignments for a target decision. - Canonical run clientsflow-scale1200-20260928: 1,200 review rows, 148 IN_CAMPAIGN, 590 INSTANTLY_READY, 462 HELD. These are stored statuses, not a fresh approval to import. - Target A: 81961204-ba22-4e24-95d9-e995c90ff8b1, v4_contractors_objektiv_20260923_reviewed_a, active. - New target 1: 82957456-32d9-488b-a5c8-6c4a21b2e436, tegeződő-1, draft. - New target 2: c63a9806-7c73-425a-89a0-1e1d04d1ac07, tegeződő-2, draft. - Latest two copies use literal key domainnev,hu. Their first sentence uses business_noun and personalisation1 with third-person foglalkozik. - The user approved other-service businesses in the previous import. Do not apply a construction-only restriction. ## Deliverables and observable criteria 1. Freeze and reconcile the remaining cohort. - When the canonical 1,200-row snapshot is compared with refreshed workspace memberships, sent/manual history, blocklist, CRM and historical company/domain aliases, then cohort.json and reconciliation.json account for every original source ID exactly once and isolate all current imports/prior contacts/exclusions from candidates. Assert the frozen ID set equals the final disjoint disposition set, zero IDs are missing or duplicated, and final imported/prior-contact/excluded, newly ready, and held counts sum to exactly 1,200. Stored readiness alone never qualifies a row. - When saved row versions and human edits are compared before and after processing, then the preservation report shows exact retained edits or explicit, recoverable conflict holds. - Constraints: no new source cohort or substitution; no blanket bypass of holding-list membership or historical exclusions. 2. Maximize defensible import readiness. - When all remaining candidate rows are evaluated against current valid-email receipts, unique email/company/domain, site identity and exact saved evidence, then ready.json contains only passing rows and holds.csv names each failed gate. - When a held row is recovered, then its report includes a new valid receipt or precise corrected evidence; unresolved paid outcomes stay held and cached successful work is reused. - Constraints: no catch-all/unknown treated as valid and no invented freshness; preserve paid caches, human text and reservations. No new AI pass per already-correct row. Resolve name-email conflict with source evidence or Szép napot, never a guessed name. 3. Produce exact variables and three packages. - When each verified website is normalized with the deterministic domain formatter, then literal CSV/JSON key domainnev,hu contains example,hu for https://www.example.hu/path and example,com for https://example.com, preserving intentional comma and suffix. Multi-part suffix behavior must be explicit and fixture-tested. No scheme, path, query, port or www remains. Unsupported/ambiguous website identity is held. - When all current email subjects and body variants from each fixed campaign ID are rendered for every assigned lead, then render-report.json shows nonempty exact variables, correct P1 sentence placement and no unresolved merge fields; RANDOM syntax is handled separately. Support documented standard RANDOM blocks, including embedded variables. Report unsupported nested RANDOM or malformed copy without silently rewriting it. The supplied first-email excerpt uses `{{RANDOM webfejlesztőként… | …}}`, while the documented form begins `{{RANDOM | …}}`; inspect actual saved copy and record any syntax discrepancy as a campaign-level readiness limit. - When the passing rows are split, then A.csv, tegezodo-1.csv and tegezodo-2.csv cover each newly ready row exactly once with counts differing by at most one when every row is compatible with all three targets. Define compatibility as passing that campaign’s complete current subject/body variant renders and required-field gates. Record the row-by-target eligibility matrix. Use deterministic source-ID ordering and a documented allocation algorithm that minimizes the maximum-minus-minimum count under those constraints; report any unavoidable imbalance and excluded row/target pairs. Manifest binds source ID, campaign ID, row version, payload hash and receipts. Literal header domainnev,hu is properly CSV-quoted and round-trips unchanged. Include greeting, personalisation1, business_noun, first_name where proven, company, website and email. - Constraints: no campaign or existing lead writes, imports, activation or sends; preserve the exact comma key, current user copy and existing P1 edits. Do not silently map it to domain_variable. Instantly’s current CSV troubleshooting guidance advises headers without special characters, so a correct local CSV round-trip is not provider compatibility proof. Preserve the exact key. Seek existing read-only payload and no-send Preview evidence for each target, separately recording storage, render and importer evidence. Never import/create a test lead or send a test email in this run. If support remains unproved, label provider import/rendering unverified and packages not fully import-ready. Finish all independent preparation and state this exact handoff gap. 4. Extend the existing table and prove handoff. - When the existing /prepare1200/ table is opened and refreshed, then it shows planned destination campaign, exact comma-domain value, ready/held/imported counts and export links without relabelling planned rows as In campaign. Screenshot, blind Luna high description and parent comparison prove this UI criterion. - When exports are downloaded and compared with current saved table rows, then a script proves identity/count/variable parity, disjoint campaign assignments and no silent lost edit. Immediately before handoff, re-read current table row versions and content hashes against the manifest. Any edit after freeze invalidates its package until rebuilt; visibly mark stale downloads invalid. A final parity pass must show zero stale rows. - Constraints: use existing table, annotations and inline editors; no replacement app, token/login layer or private evidence published on the public goal board. ## Execution and authority - PREPARE / READY FOR REVIEW. Do not create or queue execution until a later explicit Launch after board review, per the user-supplied LLL gate. - Before starting any producer on Launch, check live devbox services/processes, producer ownership, reservations and active heartbeats. Record an attach/recover/stop decision for existing related work. Never run a competing producer or duplicate schedule. - On Launch create one pinned Sol xhigh orchestrator (explicit user override of LLL medium default). Keep goal and live HTML board open in its sidebar. - Existing devbox data: /home/matt/.local/state/get-leads-review. Scripts: /home/matt/.local/share/get-leads-review/scripts. Prior import receipts: import-named-20260929/. Use existing APIs, CLI and parsed dotenv helper before browser fallback. Never expose credentials. - Max incremental spend USD20 total across parent, child and workers for this run explicitly authorized in user turn T0410 (source line 20791), overriding the default USD15 threshold for this task; also preserve prior aggregate USD150 ceiling unless superseded. Determine actual prior spend and reservations first. Spend only where it improves this fixed cohort. Stop paid work at the bound and report actual yield and remaining holds. - One owner, no competing producer. Reuse current correct scripts and existing caches. Routine work and deterministic validation run on devbox without model supervision. If genuine new AI processing is needed, retain approved eight OpenRouter slots and current prompt/model privacy settings; no unnecessary regeneration. - Parent CCC checks once after 20 minutes and thereafter every 60 minutes only. One compact snapshot and at most one consolidated steering prompt per checkpoint, then idle. On completion independently accept proofs, add top pink summary/optional next-action prompts to same board, archive successful child and delete its check schedule. No timers start in Prepare mode. - Open assumption: approximately equal split of newly ready leads, not equal total size of campaigns. Final count is evidence-driven, not a promise that every remaining row can qualify. - Package root: `outputs/remaining-leads-2026-09-30/` in this checkout. Main read-set relative to that root: `goal.md`, `deliverables.md`, `main-prompts.md`, `session.json`, and `user_prompts_and_goal_relevant_info.md`; final report `final-report.md`. The parent must create the launch-support files before Launch. Show actual approved OpenRouter prompts/settings in `main-prompts.md` before execution, retaining annotations and model privacy settings. Keep source plan black, evidence/status blue, verified criteria green, failed criteria red; update and republish the same board after meaningful progress. ## Provider references and current limits Council reviewed official documentation on 2026-09-30, without accessing or changing provider state: - Exact custom-variable mapping: https://help.instantly.ai/en/articles/6135930-how-to-add-and-use-variables-in-campaigns - CSV import and header advice: https://help.instantly.ai/en/articles/6254215-how-to-import-leads-via-csv and https://help.instantly.ai/en/articles/13644475-why-are-leads-not-uploading - Existing lead payload: https://developer.instantly.ai/api-reference/schemas/lead - No-send Preview and separate immediate test-send action: https://help.instantly.ai/en/articles/7002900-preview-and-send-test-emails - RANDOM syntax and embedded variables: https://help.instantly.ai/en/articles/6384663-how-to-use-spintax Generic custom-field documentation does not verify a comma-containing header. These references support the required checks, not a claim that the packages or live campaigns already passed them.

Recovery state

No executor started. No recovery needed. Resume point: reviewed board plus later Launch.

Parent read set after launch: deliverables.md · main-prompts.md · session.json · final-report.md.