radar/conversation/radar-conversation.service.ts | whole file | DELETE | The deterministic interview → cotización → precio → búsqueda state machine (nuevo/entrevista/cotizando/corriendo/listo). Pure product. |
radar/conversation/radar-copy.ts | whole file | DELETE | Every user-visible Spanish string of the interview/price product (precioAprobar, busquedaLista, radarPausado…). Consumed only by the conversation service. |
radar/conversation/radar-lexicon.spec.ts | whole file | DELETE | Lexicon gate for the product copy. |
radar/conversation/radar-conversation.service.spec.ts | whole file | DELETE | Tests for the conversation state machine. |
cognitive/surface-tools.ts | 252–284 | DELETE | RADAR_TOOLS spec incl. start_lead_search. |
chat/dto/post-message.dto.ts | 7–9, 15–17 | DELETE | The option chip-click seam routed to the deterministic machine. |
chat/chat-tools.ts | 160–167, 175–177, 588–650 | DELETE | leadSearch dep, leadSearchBrief capture, radar registry, FREE_SOURCE_TOOLS gate wiring. |
chat/chat.service.ts | 64, 165–170, 595–636, 645–659, 946–953, 1300–1320 | DELETE | Radar dispatch seam: ownsTurn/startFromBrief/esBusquedaDirecta, radarTurnResult, leadSearch: !!this.radar, post-run start_lead_search dispatch. |
cognitive/skills/chat.skill.ts | 19–59 | ADAPT | Re-scope from “Topics/Leads/Collections menu + start_lead_search” to the single opportunity flow (profile → warehouse → coverage → approved Parallel). |
chat/chat-tools.ts | 611–642 (gate) | ADAPT | Keep the “signals-before-paid” intent but re-home the preflight on the warehouse (query_market_signals), never on query_records (CRM). |
chat/chat-tools.spec.ts | 629–731 | ADAPT | Belt/gate tests for start_lead_search must be rewritten against the new surface. |
chat/chat.service.spec.ts | 1537–1602 | ADAPT | Radar dispatch tests must be rewritten/removed with the seam. |
radar/radar.module.ts | 55–62, 101–102, 113, 173 | ADAPT | Remove conversation wiring + forwardRef cycle; keep engine providers/exports. |
chat/chat.module.ts | 13–17, 32 | ADAPT | Drop forwardRef(() => RadarModule) once the seam is gone. |
libs/db/src/entities/radar-thread.entity.ts | whole file | DELETE | Sidecar radar_threads table holding the conversation state. (Historical migrations are NEVER deleted — see the migration row below.) |
libs/db/src/migrations/1715200000123-AddRadarConversation.ts | whole file | KEEP | Historical migration that created radar_threads. Historical migrations are never deleted or edited — if a future card retires the table, it ships a NEW forward-only migration whose up() retires it and whose down() restores it (only if actually necessary; C1 does not invent it). |
radar/dto/radar.dto.ts | 24–43 | DELETE | DraftContractDto, ReviseContractDto, ApproveContractDto (interview HTTP face). |
radar/radar.controller.ts | 43–65 | DELETE | contracts/draft, contracts/revise, contracts/approve — the interview’s HTTP face. |
radar/radar.controller.ts | 70–77, 79–94 | OUT-OF-SCOPE/UNCHANGED | searches, criteria/:slug (GET/PATCH) — legacy criterion/contract compilation. The new Opportunity Flow re-homes contract/criterion in the workflow; do not wire. |
radar/radar.controller.ts | 96–122, 242–267 | KEEP-INFRA | runs/:runId (GET) and runs/:runId/trace — run LEDGER reads. |
radar/radar.controller.ts | 126–145 | KEEP-INFRA | runs/:runId/price — the quote/approval engine. |
radar/radar.controller.ts | 148–218 | KEEP-INFRA | credits, credits/history, credits/packs, credits/checkout, credits/grant — credits/ledger. |
radar/radar.controller.ts | 220–224, 228–232 | KEEP-INFRA | runs/:runId/start (approval-gated execution) and runs/:runId/reconcile — cancel/reconcile. |
radar/radar.controller.ts | Contact activation routes | REPLACED | The legacy collections/:id/enrich/contacts route was removed. Contact activation now uses explicit contact-paths/quote then contact-paths/unlock with a confirmed spend cap and idempotency key. |
radar/radar.controller.ts | 292–306 | OUT-OF-SCOPE/UNCHANGED | runs/:runId/monitor (+ pause/resume) — legacy radar monitor; not in the enumerated KEEP-INFRA categories. |
radar/radar.controller.ts | 316–323 | OUT-OF-SCOPE/UNCHANGED | runs/:runId/stream (SSE) — legacy run-table projection; the new artifact carries its own stream. |
radar/radar-run.service.ts, radar/credits.service.ts, radar/radar-pricing.ts | whole files | KEEP-INFRA | Ledger, credits, quote/approval, cancel/reconcile. |
radar/radar-criterion.service.ts | whole file | OUT-OF-SCOPE/UNCHANGED | Legacy criterion/contract compilation; the workflow re-homes it. Not in the enumerated KEEP-INFRA categories. |
radar/radar-monitor.service.ts, radar/radar-stream.hub.ts, radar/radar-webhook.controller.ts | whole files | OUT-OF-SCOPE/UNCHANGED | Legacy monitor/run-narration/stream infra of the radar product; not in the enumerated KEEP-INFRA categories. |
radar/radar-onboarding.service.ts | whole file | ADAPT | Profile/brief ingestion. The interview’s question flow is product; the profile facts it gathered feed the new compile-profile step. |
radar/radar-enrichment.service.ts, radar/enrichment endpoints, radar/contact-path.ts, radar-enrichment.service.spec.ts | whole files | OUT-OF-SCOPE | Enrichment and contact resolution are outside this project’s scope (playbook: “Contacto y enrichment ocurren únicamente después de seleccionar una oportunidad, mediante otro capability opt-in”). NOT new-flow infra; leave untouched, do not wire. |
radar/ports/market-intelligence-gateway.port.ts, radar/adapters/postgres-market-intelligence.adapter.ts | whole files | KEEP-INFRA | The warehouse-only frontier the new flow consumes. |
radar/planning/mastra-market-intelligence-workflow.ts + .spec.ts, market-intelligence-tools.ts, market-intelligence-tool-schemas.ts | whole files | ADAPT | The single Opportunity Flow; extend with coverage/quote/suspend-resume/Parallel normalization. |
radar/gtm-provider-resolver.ts, radar/ports/*provider.port.ts, radar/adapters/*.adapter.ts | whole files | KEEP-INFRA | Provider-neutral executor ports/adapters (Parallel, Exa, Apollo, verifier…). |
radar/contract-gaps.ts, radar/radar-qualification.ts, radar/radar-collection-schema.ts | whole files | OUT-OF-SCOPE/UNCHANGED | Legacy criterion/qualification/collection-schema logic. The new Opportunity Flow composes only the gateway port and its contracts, not these — leave untouched, unwired. |