Phase 5 — Forensic Audit Item B
Problem
When a discovery run finishes, multiple contacts belonging to the same company can be imported, resolved into an audience segment, and enrolled into an outbound campaign simultaneously. This results in multiple decision-makers at the exact same organization receiving concurrent cold emails, causing brand embarrassment, internal complaints, and increased spam flagging.
Requirements (per Phase 5 Audit Protocol)
- Repository inspection and runtime/code-path tracing through:
- Discovery run result processing and contact creation
- Audience resolution (
esolveAudienceLocally\ in SQLite)
- Campaign enrollment (\campaigns:enroll\ in \campaigns-ipc.ts)
- Sequence execution dispatch (\�utomation:workflow)
- Investigate absence of:
- Per-company concurrency limits or caps (e.g. max 1 contact per company in active sequence)
- Domain-level cooldown or pacing rules
- Deliver audit findings report with:
- Repository inspection & runtime tracing
- Reproduction where possible
- Root-cause identification
- Exact affected files & symbols
- Current vs. expected behavior
- Severity & safety/data-integrity implications
- Finding classifications (\CONFIRMED, \STRONGLY INDICATED, \HYPOTHESIS)
- Recommended implementation boundary for Phase 7
Scope Note
This is an AUDIT ONLY issue. Do NOT implement remediation code under this issue.
Phase 5 — Forensic Audit Item B
Problem
When a discovery run finishes, multiple contacts belonging to the same company can be imported, resolved into an audience segment, and enrolled into an outbound campaign simultaneously. This results in multiple decision-makers at the exact same organization receiving concurrent cold emails, causing brand embarrassment, internal complaints, and increased spam flagging.
Requirements (per Phase 5 Audit Protocol)
esolveAudienceLocally\ in SQLite)
Scope Note
This is an AUDIT ONLY issue. Do NOT implement remediation code under this issue.