---
id: ADR-CRM-DQ-004
title: Audit authorized creation past a block
product_area: crm
module: data-quality
revision: 1
status: proposed
design_intent: confirmed
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
decision: >-
  Blocking applies to ordinary record creation; an authorized exception requires
  an explanation and is stored atomically with the new record, while matched
  pairs remain reviewable.
constrains:
  - WF-CRM-DQ-003
  - DOM-CRM-DQ-001
  - SVC-CRM-DQ-duplicates
  - SCR-CRM-DQ-011
  - SCR-CRM-DQ-009
origin: >-
  services-crm:docs/milestones/CRM-M4-duplicates-and-merge.md#D-32 (Andrew,
  2026-10-19, Modified Option 1)
alternatives:
  - option: Remove blocked matches from review
    why_not: This would conceal records staff still need to assess.
  - option: Allow every creator to bypass blocking
    why_not: The recorded choice requires separate authority and an audit reason.
consequences:
  - Simultaneous creates are not serialized by the preflight block check.
  - Exported exception records survive deletion of the records they describe.
supersedes: []
evidence:
  - >-
    services-crm at a8d1364f:
    modules/duplicates/services/detection/duplicate-checks.ts,
    duplicate-rule-actions.ts; db/duplicate-block-overrides.table.ts.
---

# Audit authorized creation past a block

## Context

The recorded blocking choice keeps existing suggestions visible and requires accountable exceptions.

## Decision

Blocking applies to ordinary record creation; an authorized exception requires an explanation and is stored atomically with the new record, while matched pairs remain reviewable.

## Alternatives Considered

Remove blocked matches from review. This would conceal records staff still need to assess.

Allow every creator to bypass blocking. The recorded choice requires separate authority and an audit reason.

## Consequences

Simultaneous creates are not serialized by the preflight block check. Exported exception records survive deletion of the records they describe.
