---
name: BACKLOG - mql-enrichment-service
description: Pending work for the mql-enrichment-service deployed instance. Tracks open polish items, post-V1.0 capability investments, items parked on inbox drains, and findings from quarterly reviews.
type: backlog
Owner: RevOps-AI eng lead (curates); RevOps-AI eng team (executes)
---

# BACKLOG - mql-enrichment-service

- **Last reviewed:** 2026-04-25
- **Review cadence:** quarterly + on-event when entries are added or closed
- **Status:** active

Pending work for this instance. Items added when they surface during sessions, off-ramps fire, or inbox drains park entries here.

Entry schema follows the Inbox Flow standard: date added, source, state, priority, target close.

---

## Open - high priority

### 2026-04-15 - L4 mirror sync drift resolution

- **State:** queued (assigned to RevOps-AI eng lead)
- **Source:** quarterly review 2026-04-15
- **Priority:** high (named as the highest-leverage next move in OPERATING-MODEL)
- **Closes-by:** 2026-05-05

Two prompt-library updates and one eval-harness update pending pull from `{{platform_team_name}}/ai-kit/`. Pull, re-run eval against updated harness, ship if eval passes. Coordinate with Platform Engineering pair for any breaking-change handling.

### 2026-04-22 - Heartbeat-event proposal to Compliance Engineering

- **State:** waiting for Compliance review
- **Source:** consent-flow incident 2026-04-22
- **Priority:** high (mitigates known subscription-staleness gap from incident)
- **Closes-by:** 2026-05-30 (if Compliance agrees) or 2026-06-15 (if revised proposal needed)

Propose that consent-service publish a `consent-heartbeat` event every 60 seconds; cache subscribers fall back to flush-and-warn on heartbeat absence. Reduces worst-case stale-cache exposure from 5 minutes to ~2 minutes. Outbound proposal in `inbox/from-compliance-engineering.md`.

---

## Open - medium priority

### 2026-04-15 - mql-router p99 latency above target

- **State:** scoped (resolution candidate identified)
- **Source:** quarterly review 2026-04-15
- **Priority:** medium (cosmetic-grade impact today; could become user-facing if tiebreak frequency increases)
- **Closes-by:** 2026-06-01

Pre-warm tiebreak prompt with cached embeddings of recent assignments. Reduce p99 from 1.8s to under 1.0s target. Engineering: ~1 week effort plus eval verification.

### 2026-04-25 - {{vertical}} segment intent-signal over-weighting

- **State:** investigating
- **Source:** sdr-team inbox 2026-04-25 (third false-positive pattern)
- **Priority:** medium
- **Closes-by:** 2026-05-23 (next eval refresh cycle)

Three {{vertical}} mid-market false-positives in two weeks suggest intent-signal weighting is over-weighting that segment. Investigate with eval dataset cuts; tune weights; eval re-run before ship.

### 2026-04-23 - Helper card persistent after revoked-consent state change

- **State:** investigating
- **Source:** sdr-team inbox 2026-04-23
- **Priority:** medium-high (consent-related; potential surface concern even though server-side is correct)
- **Closes-by:** 2026-05-02

Helper card client-side cache appears to retain enrichment for ~2 minutes after consent revocation. Server-side is correct; client-side fix in sdr-handoff-helper.

---

## Open - low priority

### 2026-04-25 - Tier-3 placeholder cosmetic during deep-context fetch

- **State:** scoped (skeleton-loader pattern is the standard fix)
- **Source:** sdr-handoff-helper canary feedback
- **Priority:** low (cosmetic; canary metrics holding)
- **Closes-by:** 2026-Q3

Replace the "loading..." placeholder visible during ~600ms tier-3 enrichment fetch with a skeleton-loader pattern. Cosmetic fix; tracked here so it does not get forgotten before full rollout.

### 2026-04-15 - Cross-territory assignment edge case in mql-router

- **State:** workaround in place
- **Source:** quarterly review 2026-04-15
- **Priority:** low (workaround is acceptable; root-cause fix lower urgency)
- **Closes-by:** 2026-Q3

When an SDR is OOO and the territory has only one rep, mql-router falls through to next-territory tiebreak; sometimes results in cross-territory assignments. Workaround: alert the SDR Team Lead to manually re-assign. Root cause fix: extend territory rules to handle single-rep territories explicitly.

### 2026-04-21 - {{firmographic_data_source}} stale-data-not-flagged investigation

- **State:** escalated to RevOps Data team (upstream issue)
- **Source:** sdr-team inbox 2026-04-21
- **Priority:** low (Red Line 3 staleness flag works; the issue is upstream data setting `data_snapshot_date` incorrectly)
- **Closes-by:** open (depends on RevOps Data team)

Several records had > 90-day-old data with recent `data_snapshot_date`. Upstream fix in `{{firmographic_data_source}}`; this team adds a sanity check (compare `data_snapshot_date` against record-update-date in source; flag mismatches).

---

## V1.x capability investments (named, not yet scheduled)

### 2026-04-08 - Streaming enrichment proposal

- **State:** Platform Engineering reviewing (per inbox 2026-04-23)
- **Source:** RevOps-AI eng lead, 2026-04-15 quarterly review
- **Priority:** medium (would reduce p99 latency at sdr-handoff-helper by ~400ms)
- **Closes-by:** open (awaiting Platform Engineering response)

Propose streaming the enrichment record from mql-enrichment-service rather than waiting for full record before publish. Allows sdr-handoff-helper to render tier-1 immediately, with tier-2 / tier-3 streamed in. Requires {{queue_or_messagebus}} consumer pattern changes.

### 2026-04-08 - Multi-region tenant routing

- **State:** roadmap (V2)
- **Source:** L0 strategy review; FY26 expansion plan
- **Priority:** medium (currently US-east + EU-west; APAC tenants land 2026-Q4)
- **Closes-by:** 2026-Q4

When APAC tenants come online, this team needs APAC-region enrichment service. Mostly an infrastructure replication question; the kit already supports multi-region via the platform team's pattern.

---

## Recursive engine V2 prerequisites

### 2026-04-08 - Capture deployed-instance patterns for V2 generalization

- **State:** in-progress
- **Source:** kit `BACKLOG.md` Recursive Engine entry (kit-side)
- **Priority:** medium
- **Closes-by:** when this instance ships V1.5 (next major capability)

Throughout this instance's operation, record patterns the V2 engine will need to generalize. Examples already noted: locked-by-question vs. locked-by-architecture decisions; mirror chains (kit -> instance -> sub-platform); concurrent-actor coordination shape. Will compile into the kit's `RECURSION-PATTERNS.md` when invited.

---

## Closed (last quarter)

| Date closed | Item | Resolution |
|-------------|------|-----------|
| 2026-04-12 | 2026-Q1 eval refresh | Refreshed dataset; baseline re-run; faithfulness 0.94 (improvement +1.2pp) |
| 2026-03-22 | Model bump claude-sonnet-4-5 -> 4-6 | Bumped; eval re-run; ship-threshold met; cost trajectory improved -0.005/call |
| 2026-03-15 | Custom redaction rule shipped (Platform Engineering accepted) | Cap-request closed; rule shipped; one false-positive PII detection eliminated |
| 2026-02-28 | sdr-handoff-helper canary expanded 15% -> 30% | Canary metrics held; expansion approved |
| 2026-02-14 | mql-router p95 latency target met after queue-depth tuning | p95 dropped from 350ms to 280ms; held since |

---

## How this file is maintained

- Items added when they surface during sessions, off-ramps fire, inbox drains park them here.
- Each entry has: date added, source, state, priority, target close condition.
- When an item enters active work, move it into the appropriate session log or directly into the relevant artifact.
- When complete, move to the "Closed" section with the date and resolution.
- Quarterly review pass per Doc Lifecycle (last review 2026-04-15).

## Cross-references

- `OPERATING-MODEL.md` - highest-leverage next move sourced from here
- `inbox/from-{{platform_team_name}}.md`, `inbox/from-sdr-team.md`, `inbox/from-compliance-engineering.md`
- `sessions/` - session logs that drove items into and out of this backlog
- `decisions/` - ADRs that closed certain items
