Phase 2 of 2 · overnight repair

Verification and Constraints

WAITING FOR PHASE 1

Main CRM: 45-day conversation recovery

0 / 18 verifiedAstra Medium executorNo client sends · USD20 shared ceiling

Goal and finish line

End goal: Make one deduplicated Main CRM view of recently contacted leads and clients, with complete linked activity, evidence-based stages and labels, and useful Missive reply drafts.

Done means: Every in-scope contact has one canonical CRM identity, linked real email and full available Wispr evidence, independently classified Notion stage and Missive labels, and a direct draft link when a reply or follow-up is warranted. Missing sources and unresolved identities are visible and do not masquerade as completed coverage.

Rules that stay fixed

  • No email or message to any client/lead. Missive drafts only. Internal positive Slack alerts remain authorized, no historical alert flood.
  • Preserve human edits, commercial commitments, unrelated work and existing sender identities. Reversible changes require narrow before-state and tested restore path.
  • Use existing accounts and deployment. Do not add security layers, publish credentials or raw emails/transcripts on public boards. Existing protected source systems stay protected.

Morning target: 30 September, 08:00 Budapest. A target is not a guarantee or permission to mark unproved work complete.

Execution order

This contract · Dependency: Missive repair

Matt explicitly requested both finished HTML contracts followed by CCC execution in sequence. This task-specific execute instruction overrides the LLL default later-Launch gate. Use two fresh Astra Medium orchestrators as specifically requested for this task, overriding generic skill Sol defaults. Only phase 1 may start first. Phase 2 starts after phase 1 acceptance.

First checkpoint after 20 minutes, then hourly. One focused steering message when useful. No concurrent phase executors.

Scope and existing destinations

Freeze 2026-08-16 01:45 through 2026-09-30 01:45 Europe/Budapest (45 rolling days), UTC 2026-08-15T23:45:00Z inclusive to 2026-09-29T23:45:00Z exclusive. Catch up newer events before final verification without changing the frozen audit counts.

Main CRM · Existing Activity Log. Direct business interaction and attended customer calls qualify. Bulk outreach alone, internal meetings and automated messages do not.

How it should work

Green means a confirmed requirement, not completed implementation. Dashed means execution proof is still missing.

End goal system

Route to the end state

Loading diagrams…

Work and proof

Reconcile every recent contact 0 / 3

Build a complete evidence inventory before changing pipeline stages.

Success criteria, proof and constraints
  • Evidence: Not run

  • Evidence: Not run

  • Evidence: Not run

Constraints

  • Read all archive/inbox/stage locations, not only current visible queues. Inspect older context for included contacts when needed for commitments.
  • Wispr Flow is the sole meeting source. No Fireflies, audio recovery project or fabricated transcript. Historical unrelated inaccessible records must not stop independently complete contacts, but coverage remains honestly partial.

Deduplicate Main CRM identities 0 / 2

Consolidate evidence without destroying project history or commercial facts.

Success criteria, proof and constraints
  • Evidence: Not run

  • Evidence: Not run

    D2.2 · Actual changed-interface screenshot pending. Attach blind Luna High description and comparison.

Constraints

  • Never merge on company name/domain alone when separate people or legitimate distinct deals exist. Keep one canonical contact mapping while preserving separate deal/project records.
  • Preserve prices, invoices, contracts, payment facts, ownership and manually edited notes. Save exact before-state and restore mapping; no permanent purge.

Fill the existing Activity Log 0 / 3

Make every stage decision traceable to the conversation that supports it.

Success criteria, proof and constraints
  • Evidence: Not run

    D3.1 · Actual changed-interface screenshot pending. Attach blind Luna High description and comparison.
  • Evidence: Not run

  • Evidence: Not run

Constraints

  • Reuse verified existing Activity Log data source 3779cef9-86ad-811b-b6d1-000b0ca40cad, not a second new database. Preserve existing human feedback and unrelated events.
  • Email send time, call time and latest meaningful contact differ from import/modified time. Do not make every record look recently contacted because it was imported tonight.
  • Define Activity Log event scope in the manifest: include meaningful inbound and sent outbound email and full available meetings for included contacts, including older context needed for commitments. List excluded automated/noise and bulk campaign-only events with reasons, retaining necessary source context privately. Reconcile exact included event IDs, not only inbound replies.

Classify stages and labels separately 0 / 4

Use the same evidence, with one model call per distinct business decision.

Success criteria, proof and constraints
  • Evidence: Not run

  • Evidence: Not run

    D4.2 · Actual changed-interface screenshot pending. Attach blind Luna High description and comparison.
  • Evidence: Not run

  • Evidence: Not run

Constraints

  • Do not use one combined call disguised as two decisions. Do not fabricate Jev availability. Use exact researched model and supported API or report the unsupported model requirement explicitly.
  • Model confidence alone is not proof of payment or lost status. Preserve manual stage changes newer than the evidence snapshot and compare before-write hashes/timestamps. No model-triggered client sends.

Create the recent-contact CRM view 0 / 2

Give Matt a useful saved view inside his existing CRM.

Success criteria, proof and constraints
  • Evidence: Not run

    D5.1 · Actual changed-interface screenshot pending. Attach blind Luna High description and comparison.
  • Evidence: Not run

Constraints

  • Create a saved view in Main CRM, not a new CRM copy or standalone report pretending to be a view. Keep other existing views unchanged.
  • Exclude records whose only recent change was automation/import or a cold campaign blast. Preserve legitimately separate deals if the CRM is deal-grained and explain canonical contact grouping.

Prepare replies worth sending 0 / 4

Leave an actionable review table and real unsent Missive drafts.

Success criteria, proof and constraints
  • Evidence: Not run

  • Evidence: Not run

    D6.2 · Actual changed-interface screenshot pending. Attach blind Luna High description and comparison.
  • Evidence: Not run

  • Evidence: Not run

    D6.4 · Actual changed-interface screenshot pending. Attach blind Luna High description and comparison.

Constraints

  • Draft only. Do not send emails/messages to clients or leads, including test messages. Genuine stage-less successful follow-up uses M Contacted per phase 1.
  • An existing valid human draft should be linked, not overwritten or counted as a newly generated draft. Keep private action table and raw communications off public board.

Model and proof decisions

Verified: TypeSafe Jev, OpenRouter model typesafe/jev-1.13 via POST /api/alpha/decisions with state and typed questions, not chat/completions. Parent synthetic opt-out smoke returned HTTP200, resolved model typesafe/jev-1.13-20260917, noul 0.99, cost USD0.000014322. English-first accuracy warning requires a labeled Hungarian evaluation. This single synthetic success does not prove classifier quality. See research/jev-research.md and jev-smoke-result.json. Use separate per-action calibrated thresholds, chosen option probability as well as distribution, bounded retries, recorded usage, and abstain on uncertainty. Jev selects typed decisions, it does not write prose.

Provider/API readback plus actual changed UI screenshot for every GUI criterion. Fresh independent gpt-6-luna high describes screenshots without expected result; orchestrator compares that description to the criterion. Mock/local tests are labeled, not substituted for live proof. Tests must include repeat-run idempotence, outage/retry and concurrent human edit cases.

Execution details and official sources

Completion accounting

Every criterion requires PASS, PARTIAL or UNRESOLVED with exact evidence and affected records. Overall DONE requires all mandatory criteria PASS. Missing source records do not stop work on independent records, but remain explicit completeness gaps. Never infer overall pass from only the subset already marked passed.

Calibration

Before broad model-driven writes, evaluate a pre-labeled Hungarian fixture roster containing each of: tegező/magázó explicit opt-out, plain rejection, not-now, quoted versus latest opt-out, first enquiry, automated acknowledgment, OOO, warmup/bounce with genuine human forwards, paid/lost/future booking/active-client and contradictory evidence. Also inspect min(30, all eligible available contacts) stratified real contacts; report missing classes. Require zero critical erroneous archive, opt-out, paid/lost, recipient or overwrite decisions in tested cases. Calibrate each action threshold separately; unvalidated or ambiguous classes abstain without blocking independently validated actions.

Provider retry

Coordinate all Missive requests through one shared throttle, respect Retry-After and bounded exponential backoff on HTTP429, checkpoint completed pages, and resume without replaying writes. A throttled/error inventory is unknown, never an empty successful set. Two parent read probes received HTTP429, so verify inventory completeness after recovery.

Draft eligibility

Distinguish direct replies to actual human questions from proactive follow-up chases. The restrictive stage whitelist and Snooze/future chase exclusions govern proactive chases; a paid or ongoing client can still warrant a direct service reply. Explicit no-contact, automated-only messages and preservation of existing human drafts apply to both. Log the action type and evidence; do not infer that payment or lost status alone answers a new human question.

Provider mechanics

Official sources

Parent ↔ executor

Parent · current assignment

Complete this contract and keep every pass tied to evidence. Write live progress in blue. Use the existing systems and preserve recoverable before-state.

Executor · progress

Execution has not started. All criteria remain unverified.

Authority, budget and recovery

USD 20 total across parent, both phases and all children. Shared ledger budget.json. Parent reserves USD 2, phase 1 USD 9, phase 2 USD 9. Reallocate unused portions within USD20 with recorded receipt. Estimate batch usage first; bound concurrency/retries and read actual usage. No new paid subscriptions or seat purchases.

At completion: parent checks actual deliverables, adds the requested pink outcome/next-directions callout, archives the completed child and removes its checkpoint schedule. Preserve exact resume state for any real blocker.