---
name: Maturity Scorecard - mql-enrichment-service
description: Full-fidelity audit output for mql-enrichment-service. Refreshed 2026-04-26. Encodes BOOTSTRAP-BRIEF Sections III, IV, X, XI. Per-layer maturity, per-relationship classification, ADR catalog, behavior trigger encoding, concurrent-actor surface review, vocabulary check, failure-mode trigger check, single highest-leverage next move.
type: audit-output
Owner: validate skill produces; RevOps-AI eng lead reviews
---

# Maturity Scorecard - mql-enrichment-service

- **Last reviewed:** 2026-04-26
- **Review cadence:** on every validate run (quarterly minimum, plus on every material change)
- **Status:** active
- **Generated by:** validate skill v0 (kit-internal)

## Per-layer maturity

| Layer | State | Gap | Retrofit risk | Evidence |
|-------|-------|-----|---------------|----------|
| L0 Strategy | mature | none | low | `policies/strategy.md`; last reviewed 2026-04-05; metric on target |
| L1 Brand posture | N/A-explicit | none | low | `policies/brand-posture.md` documents N/A; would activate if sdr-handoff-helper ever exposes to customers |
| L2 Philosophy | mature | none; consent-flow incident drill scheduled 2026-05-20 (recurrence) | low | `policies/philosophy.md`; last reviewed 2026-04-22 (post-incident) |
| L3 Framework contract | mature | none; Q2 eval refresh due 2026-07-12 | low | `policies/framework-contract.md`; eval pass 2026-04-12 |
| L4 Platform kit | partial | mirror sync 14 days behind source (closes-by 2026-05-05); pulls back to mature on resolution | medium (compounds if not resolved) | `kit/PLATFORM-KIT.md`; mirror manifest shows two prompt-library + one harness updates pending |
| L5 Instance dossiers | mature (3 platforms) | sdr-handoff-helper at canary 30%; full rollout 2026-05-15 | low | `platforms/{mql-enrichment-service,mql-router,sdr-handoff-helper}/dossier.md`; all dossiers current |
| L6 Per-instance refinement | partial | mql-router p99 latency above target; resolution scheduled 2026-06-01; tier-3 cosmetic placeholder | low (cosmetic) | per L5 dossiers' L6 sections |
| L7 Cross-platform glue | mature | none | low | `cross-platform/L7-glue.md` summary; six concerns all `exists-mature` |

L4 demoted from `mature` to `partial` 2026-04-26 due to mirror sync drift; will return to mature on sync completion.

## L7 cross-platform glue (six concerns)

| Concern | State | Owner | Last verified live |
|---------|-------|-------|--------------------|
| Shared memory | exists-mature | RevOps Data team | 2026-04-22 |
| Shared identity | exists-mature | Platform Engineering | 2026-04-19 |
| Handoff protocol | exists-mature | RevOps-AI (this team) | 2026-04-25 |
| Consent flow | exists-mature | Compliance Engineering | 2026-04-22 |
| Alerting fabric | exists-mature | RevOps-Ops | 2026-04-27 |
| Monitoring base | exists-mature | RevOps-Ops | 2026-04-27 |

No `unknown` states. No `none-applicable` states (all six concerns apply to this function). No `declared-not-built` states.

## Per-relationship classification

| Relationship | Type | Status | Last verified |
|-------------|------|--------|---------------|
| `{{platform_team_name}}/ai-kit/prompts/` -> `kit/prompts/` | mirror | declared-but-inactive (drift) | 2026-04-12 |
| `{{platform_team_name}}/ai-kit/eval-harness/` -> `kit/eval-harness/` | mirror | declared-but-inactive (drift) | 2026-04-12 |
| `{{platform_team_name}}/ai-kit/guardrails/` -> `kit/guardrails/` | mirror | live | 2026-04-12 (no upstream changes since) |
| `{{platform_team_name}}/ai-kit/telemetry/` -> `kit/telemetry/` | mirror | live | 2026-04-12 |
| `inbox/from-{{platform_team_name}}.md` <- `{{platform_team_name}}/outbox/` | inbox-outbox | live | 2026-04-22 |
| `inbox/from-sdr-team.md` <- `sdr-team/outbox/` | inbox-outbox | live | 2026-04-25 |
| `inbox/from-compliance-engineering.md` <-> | inbox-outbox | live | 2026-04-22 |
| `mql-enrichment-service` -> `consent-service` | runtime call | live (validated under stress 2026-04-22) | 2026-04-22 |
| `mql-enrichment-service` -> `revops.mql_facts` | runtime write | live | continuously (post-hoc guardrail) |
| `enrichment-complete` topic -> `mql-router` | handoff | live | 2026-04-25 |
| `assignment-complete` topic -> `sdr-handoff-helper` | handoff | live | 2026-04-25 |
| `consent-revocations` topic -> all platforms | event subscribe | live (resilience verified post-incident) | 2026-04-22 |
| All platforms -> `{{idp_name}}` | runtime auth | live | 2026-04-19 (cross-tenant drill) |

Two relationships in `declared-but-inactive` state; both due to L4 mirror drift; both close-by 2026-05-05.

## ADR catalog

| Number | Title | Status | Date |
|--------|-------|--------|------|
| ADR-0001 | Build the MQL enrichment service rather than buying | accepted | 2025-10-22 |
| ADR-0002 | Kit mirror is one-way pull from {{platform_team_name}}/ai-kit; never push back | accepted | 2025-11-04 |
| ADR-0003 | Consent flow uses synchronous check with 5-minute cache TTL; check at entry point only | accepted | 2025-11-12 |

### Visible decisions that should have ADRs but do not

Scan results from 2026-04-26 audit:

- **2026-04-22 multi-tenant-cache proposal escalation** (in `inbox/from-{{platform_team_name}}.md` drained log; status `acknowledged: declined`). The decline rationale (security review concern) is not yet captured in an ADR. If the proposal returns in V2.x, the rationale will be needed; consider ADR-0004 to record the security-review concern even though the decision is "do not adopt now."
- **Latency-target-miss alert threshold tightening 2026-04-15.** Routine hygiene per the quarterly-review session log; not ADR-worthy under current criteria. Confirmed not a finding.
- **Tier-3 placeholder skeleton-loader pattern selection.** Cosmetic decision; not 2+-real-options under current criteria.

One potential gap (multi-tenant-cache rationale); rest confirmed not findings.

## Behavior trigger encoding check

Per BOOTSTRAP-BRIEF Section V:

| Trigger | Encoded where | Memory-only? |
|---------|---------------|--------------|
| Read brief at session start | `OPERATING-MODEL.md` "What to do if you are new here" | no |
| Write ADR for 2+-options decision | `decisions/` folder + ADR-template (kit) | no |
| Doc Lifecycle frontmatter on every artifact | every governance file in this audit; verified by architect-lifecycle skill | no |
| Per-layer maturity not binary | this scorecard's format itself; OPERATING-MODEL summary | no |
| Mark L1 N/A explicitly for internal functions | `policies/brand-posture.md` documents the marking | no |
| Mirror relationship default to declared-but-inactive | `cross-platform/L7-glue.md`; `kit/PLATFORM-KIT.md` mirror manifest | no |
| Concurrent-session lock-on-write | `HANDOFF.md` concurrent-actor section + each L5 dossier's lock-on-write boundaries | no |
| Five-question decision framework | `CLAUDE.md` decision framework section | no |
| Drain inbox pairs on cadence | `inbox-topology.md` drain protocol | no |
| Capture session log on state-change session | `sessions/` directory + session-log template (kit) | no |

All triggers encoded; none memory-only.

## Concurrent-actor surface review

| Surface | Protocol-safe? | Evidence |
|---------|----------------|----------|
| `policies/` artifacts | yes | Updates go through PR review; lock-on-write during revision; coordination via `#revops-ai` |
| `kit/` mirrored components | yes (read-only mirror; lock-on-write only during sync runs) | Mirror discipline + sync-event logs |
| `kit/` locally-owned components | yes (PR review; lock-on-write during schema bumps) | `kit/contracts/` versioning |
| `platforms/{{platform}}/` artifacts | yes | Per-platform PR review |
| `decisions/` (immutable) | yes (immutable by design) | New ADRs only; never edits |
| `BACKLOG.md` | yes | Append-only during quarter; quarterly curation by lead |
| `inbox/` | yes | Drain events explicit in session logs; entries dated and typed |

All surfaces protocol-safe. Last collision-handling event: none in last 90 days.

## Vocabulary consistency check

Scan against BOOTSTRAP-BRIEF Section VI vocabulary (`layer`, `maturity`, `live`, `declared-but-inactive`, `ADR`, `mirror`, `pod`):

- All seven words used with their defined meanings across audited artifacts
- One minor drift: in `inbox/from-sdr-team.md`, the term "live" is used in the everyday sense ("the lead is live in our queue") rather than the relationship-status sense. Context disambiguates; not a finding, but worth flagging in case future scans become more strict.

Vocabulary consistent.

## Failure-mode trigger check

Per BOOTSTRAP-BRIEF Section XI:

| Failure mode | Detected? | Where | Severity |
|--------------|-----------|-------|----------|
| Path-to-layer pattern matching | no | (none observed) | n/a |
| Binary existence checks | no | (none observed) | n/a |
| Missing L7 awareness | no | All six concerns explicitly addressed | n/a |
| Static inventory vs. assessment | no | Every audit table includes maturity/state, not just enumeration | n/a |
| Overclaimed completeness | no | L4 demoted from `mature` to `partial` due to drift; honest reporting | n/a |
| Floating concepts | no | Scan: every term in audited artifacts maps to a layer or relationship | n/a |
| Untested relationships | no (caught and downgraded) | The two prompt-library and eval-harness mirror relationships demoted to `declared-but-inactive` due to drift | n/a (already corrected) |

No findings.

## Single highest-leverage next move

**Resolve the L4 mirror sync drift before 2026-05-05.**

The `{{platform_team_name}}/ai-kit` source has shipped two prompt-library updates and one eval-harness update in the last 14 days; mql-enrichment-service is currently behind. Resolving this:

- Returns L4 from `partial` to `mature`
- Returns two relationships from `declared-but-inactive` to `live`
- Unblocks the next quarterly eval refresh (2026-07-12) running against current harness
- Closes the highest-priority BACKLOG item

Owner: RevOps-AI eng lead. Assistive: Platform Engineering pair (scheduling). Closes-by: 2026-05-05. Method: pull, re-run eval against updated harness, ship if eval passes.

## Cross-references

- `BOOTSTRAP-BRIEF.md` (kit) - the standard this scorecard audits against
- `OPERATING-MODEL.md` - summary state derived from this scorecard
- `policies/` through `cross-platform/` - the artifacts audited
- `decisions/` - ADR catalog source
- `inbox/` and `sessions/` - relationship and trigger evidence
- `skills/validate/` (kit) - the skill that generated this scorecard
- `skills/architect-audit/` (kit) - the layer-mapping skill the validator depends on
