---
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
finding_evidence:
  - finding: FND-CRM-ENT-088
    source: react-console:components/contact-editor/contact-editor.tsx; react-console:components/contact-editor/unsaved-changes.tsx; react-console:components/editor/editor-action-bar.tsx; react-console:components/contact-editor/collections/address-list-editor.tsx
  - finding: FND-CRM-ENT-089
    source: react-console:components/contact-editor/collections/address-list-editor.tsx; react-console:components/forms/contacts/collection-components.tsx; react-console:components/address/address-input.tsx
  - finding: FND-CRM-ENT-090
    source: react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0003.spec.ts; react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0006.spec.ts; react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0009.spec.ts; react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0060.spec.ts; react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0068.spec.ts
  - finding: FND-CRM-ENT-085
    source: react-console:docs/affiliations/screens-v2/README.md; components/affiliations/**; SVP-CRM-ENT-004
  - finding: FND-CRM-ENT-086
    source: react-console:components/contact-editor/__tests__/**; specs/crm/entities/implementation/tests/ (no suite names them)
  - finding: FND-CRM-ENT-087
    source: react-console:components/contact-editor/**; SAT-CRM-ENT-004 coverage
  - finding: FND-CRM-ENT-001
    source: specs/PRODUCT-AREAS.md (MOD-CRM-ENT row); react-console tree at da630758
  - finding: FND-CRM-ENT-002
    source: >-
      react-console:acceptance/crm/journeys/{contacts,organizations,affiliations}/*.json
      (automation); acceptance/crm/playwright/journeys/**
  - finding: FND-CRM-ENT-003
    source: >-
      react-console:acceptance/crm/inventory/business-rules.json; the
      capabilities' sources at services-crm 7ea48a41
  - finding: FND-CRM-ENT-004
    source: >-
      services-crm:docs/entities-api.md#Not yet under the complete-payload rule;
      modules/entities/tests/integration/services/persistence/contacts.integration.spec.js#empties
      the collection
  - finding: FND-CRM-ENT-005
    source: >-
      services-crm:docs/milestones/CRM-M1-contacts-and-organizations.plan.md#A27;
      modules/entities/services/persistence/contacts.ts:organizationsOnlyTypeProblems;
      db/contact-types.table.ts
  - finding: FND-CRM-ENT-006
    source: >-
      services-crm:modules/entities/services/persistence/endpoint-deletions.ts
      (header); tests/unit/services/persistence/endpoint-deletions.spec.js#never
      runs a statement when it is off
  - finding: FND-CRM-ENT-007
    source: >-
      services-crm:docs/affiliations/README.md#5.6b The overnight date
      reconciliation (D-46; CRM-M2 A6 and A7)
  - finding: FND-CRM-ENT-008
    source: >-
      services-crm:modules/entities/tests/integration/services/contacts/role-assignment/contact-role-assignment.integration.spec.js#gives
      no roles on an affiliation that is not primary;
      automatic-role-reconciliation.integration.spec.js#gives the automatic and
      first-contact roles on the start day in the tenant calendar
  - finding: FND-CRM-ENT-009
    source: >-
      services-crm:docs/affiliations/README.md#5.6 Roles;
      modules/entities/services/persistence/contact-affiliations.ts:restrictedRoleProblems
  - finding: FND-CRM-ENT-010
    source: >-
      services-crm:docs/milestones/CRM-M2-affiliations-roles-compliance.md#M2-D11;
      no matching code in modules/entities or the hosted screens
  - finding: FND-CRM-ENT-011
    source: >-
      services-crm:modules/entities/services/persistence/contact-roles.ts:deleteContactRole;
      db/organization-types.table.ts:notification_contact_role_ids
  - finding: FND-CRM-ENT-012
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0199.spec.ts#CRM-ACC-0199;
      services-crm:modules/entities/queries/contacts.query.ts
  - finding: FND-CRM-ENT-013
    source: >-
      services-crm:aws/crm.service.ts (RECORD_TIERS);
      modules/entities/aws/api/*.routes.ts
  - finding: FND-CRM-ENT-014
    source: 'services-crm:docs/record-locks.md#Not covered yet'
  - finding: FND-CRM-ENT-015
    source: >-
      services-crm:modules/entities/aws/api/*.routes.ts;
      modules/entities/tests/e2e/
  - finding: FND-CRM-ENT-016
    source: >-
      services-crm:modules/entities/aws/api/entities.routes.ts (header);
      specs/PRODUCT-AREAS.md
  - finding: FND-CRM-ENT-017
    source: >-
      services-crm:aws/crm.service.ts:ApplicationPermissions;
      modules/entities/tests/e2e/application-access-enforced.e2e.spec.js
  - finding: FND-CRM-ENT-018
    source: >-
      services-crm:modules/entities/services/persistence/contacts.ts:communicationPreferenceProblems
  - finding: FND-CRM-ENT-019
    source: >-
      services-crm:modules/entities/aws/api/contacts.routes.ts;
      aws/crm.service.ts:duplicateBlockOverrideAction
  - finding: FND-CRM-ENT-020
    source: >-
      services-crm:docs/milestones/CRM-M1-contacts-and-organizations.md#E-01;
      CRM-M2-affiliations-roles-compliance.md#E-05
  - finding: FND-CRM-ENT-021
    source: >-
      services-crm:modules/entities/metadata/contacts.object.ts:national_district;
      db/contacts.table.ts:national_district; aws/api/contacts.schemas.ts
  - finding: FND-CRM-ENT-022
    source: >-
      react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0013.spec.ts#CRM-ACC-0013;
      components/contact-editor/contact-editor.tsx:editorDraft.baseVersion
  - finding: FND-CRM-ENT-023
    source: >-
      services-crm:modules/entities/services/persistence/contacts.ts:LIMITED_NAME_FIELDS;
      docs/milestones/CRM-M1-contacts-and-organizations.md#M1-D3
  - finding: FND-CRM-ENT-024
    source: >-
      services-crm:modules/entities/services/persistence/organization-types.ts:updateOrganizationType;
      restoreOrganizationType
  - finding: FND-CRM-ENT-025
    source: >-
      services-crm:modules/entities/tests/integration/services/templates/compliance-notification-template.integration.spec.js#keeps
      the delete and logs the type id when Platform cannot clear it: the type is
      gone either way
  - finding: FND-CRM-ENT-026
    source: >-
      react-console:acceptance/crm/playwright/journeys/affiliations/CRM-ACC-0202.spec.ts#CRM-ACC-0202;
      CRM-ACC-0199.spec.ts#CRM-ACC-0199
  - finding: FND-CRM-ENT-027
    source: >-
      services-crm:modules/entities/aws/api/organization-types.schemas.ts:organizationTypeRequestSchema;
      modules/entities/services/persistence/organization-types.ts:cleanOrganizationType
  - finding: FND-CRM-ENT-028
    source: >-
      services-crm:docs/milestones/CRM-M2-affiliations-roles-compliance.md#M2-D12;
      modules/entities/services/contacts/role-assignment/contact-role-assignment.ts:automaticRolesDecidedFor
  - finding: FND-CRM-ENT-029
    source: >-
      services-crm:aws/crm.service.ts:duplicateBlockOverrideAction;
      modules/entities/aws/api/organizations.routes.ts:createOrganization
  - finding: FND-CRM-ENT-030
    source: 'rhythm-v2-docs:tools/check-corpus.mjs (reports handling)'
  - finding: FND-CRM-ENT-031
    source: >-
      services-crm:aws/cdk/resources/affiliation-date-reconciliation.ts:AFFILIATION_DATE_RECONCILIATION_ENABLED;
      aws/crm.affiliation-date-reconciliation.names.ts (header);
      aws/lambda/JOB_RECONCILER.ts (header);
      aws/crm.names.ts:CRM_OWNER_DELETION_RULES_BY_ENVIRONMENT
  - finding: FND-CRM-ENT-032
    source: >-
      services-crm:aws/crm.names.ts:attentionPublishingEnabled;
      lib/attention.ts; aws/cdk.json (no crm:attentionPublishing context)
  - finding: FND-CRM-ENT-033
    source: >-
      services-crm:modules/entities/attention/organizations-out-of-compliance.attention.ts
      (header, since)
  - finding: FND-CRM-ENT-034
    source: >-
      services-crm:modules/entities/services/persistence/contacts.ts:updateContact
      (assertContactReplaceable before saveChangedNothing);
      docs/entities-api.md#Versions and no-op saves;
      services-platform:docs/standards/record-write-contracts.md#W2. A no-op
      write changes nothing (D-05)
  - finding: FND-CRM-ENT-035
    source: >-
      services-crm:modules/entities/services/persistence/contact-affiliations.ts:prepareAffiliationsWrite;
      services-platform:docs/standards/record-write-contracts.md#W3. Partial
      updates and omitted nested collections (D-09)
  - finding: FND-CRM-ENT-036
    source: >-
      services-crm:modules/entities/services/persistence/organizations.ts:createOrganization
      (no request digest or replay);
      modules/entities/aws/api/organizations.routes.ts:createOrganization;
      docs/entities-api.md#Retrying a create (contacts and activities)
  - finding: FND-CRM-ENT-037
    source: >-
      react-console:components/console/organization/organization-sections.tsx:orgActions
      (header comment); AGENTS.md#UI change approval
  - finding: FND-CRM-ENT-038
    source: >-
      rhythm-v2-docs:specs/PRODUCT-AREAS.md (MOD-CRM-CFG row);
      services-crm:modules/configuration-types/aws/api/configuration-types.routes.ts
      (header)
  - finding: FND-CRM-ENT-039
    source: >-
      services-crm:modules/entities/services/affiliations/affiliation-date-reconciliation.ts:reconcileAffiliationDates
      (dry run); services/organizations/compliance/compliance-email.ts (header,
      object written with the transaction open)
  - finding: FND-CRM-ENT-040
    source: >-
      services-platform:docs/standards/submission-compatible-operations.md#1.
      The rule; services-crm (no binding declaration found)
  - finding: FND-CRM-ENT-041
    source: >-
      react-console:components/record-views/cards/contact/disconnected-row.tsx:DisconnectedRowNotice;
      services-crm:modules/entities/aws/api/disconnected-information.ts:mutateDisconnectedInformation
  - finding: FND-CRM-ENT-042
    source: >-
      react-console:components/console/organization/organization-sections.tsx:orgActions
      (no version history panel);
      services-crm:modules/entities/aws/api/organizations.routes.ts
      (listOrganizationHistory)
  - finding: FND-CRM-ENT-043
    source: >-
      services-crm:modules/entities/services/organizations/compliance/contact-role-compliance.ts:contactsToNotify;
      modules/entities/services/persistence/organization-types.ts:rowFields;
      react-console:components/configuration/resources/organization-types.tsx
  - finding: FND-CRM-ENT-044
    source: >-
      services-crm:modules/entities/services/affiliations/affiliation-date-reconciliation.ts:settle
  - finding: FND-CRM-ENT-045
    source: >-
      services-crm:modules/entities/services/persistence/organization-types.ts:updateOrganizationTypeFields;
      modules/entities/db/record-revisions.table.ts;
      services-platform:docs/standards/record-write-contracts.md
  - finding: FND-CRM-ENT-046
    source: >-
      services-crm:modules/entities/services/persistence/contact-roles.ts:updateContactRole;
      modules/entities/services/persistence/record-locks.ts:changeRecordLock;
      rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-015-lock-records-against-change-and-protect-the-records-rhythm.md:BR-CAP-CRM-ENT-015-04
  - finding: FND-CRM-ENT-047
    source: >-
      services-crm:modules/entities/services/organizations/compliance/compliance-reprocess.ts:runBatch
  - finding: FND-CRM-ENT-048
    source: >-
      services-crm:modules/entities/services/organizations/compliance/compliance-email.ts:complianceSubmissions;
      modules/entities/services/persistence/communication-request-submissions.ts:submitCommunicationRequest
  - finding: FND-CRM-ENT-075
    provenance: observed
    source: >-
      rhythm-v2-docs:specs/CONVENTIONS.md#9.10;
      rhythm-v2-docs:tools/check-corpus.mjs:prose Evidence section rejection
  - finding: FND-CRM-ENT-076
    provenance: test
    source: >-
      services-crm:modules/entities/tests/integration/services/persistence/record-saves.no-op.integration.spec.js#an
      organization saved exactly as it was read
  - finding: FND-CRM-ENT-084
    provenance: observed
    source: >-
      services-crm:modules/entities/services/organizations/compliance/contact-role-compliance.ts:checkForContactRoleComplianceViolations;
      services-crm:modules/entities/services/organizations/compliance/organization-compliance.ts:recalculate
    note: >-
      Missing persistence proof concerns enabling a passing policy on an existing
      organization and clearing a previously compliant assessment, including
      saved status and version. The no-policy branch separately reports clearing
      existing fields; it does not use the enabled-policy violation comparison.
      Narrative preserves the formal transition inventory pending clarification.
  - finding: FND-CRM-ENT-079
    source: >-
      react-console:components/configuration/config-list-screen.tsx;
      react-console:components/contact-editor/contact-editor.tsx;
      react-console:components/affiliations/organization-affiliations-section.tsx
    provenance: observed
    note: >-
      This design pass observes labels, semantic controls and responsive
      classes, but does not establish complete keyboard traversal, focus
      recovery, screen-reader announcements, configured-form accessibility or
      all viewport behavior through a live browser audit. No general
      accessibility conformance claim follows from source inspection.
  - finding: FND-CRM-ENT-080
    source: >-
      react-console:lib/record-views/views/contact-360.json;
      react-console:components/console/record/action-toolbar.tsx;
      react-console:components/configuration/config-list-screen.tsx
    provenance: observed
    note: >-
      Configured contact record sections name task, committee and order
      permissions outside the CRM authorization model. Readable contact identity
      does not establish access to those panels. Confirm canonical keys and
      built-in grants in each owning area model before describing
      cross-application panel access as an Entities guarantee. Platform
      engine-backed bulk actions likewise need the owning job submission
      authority.
affected_rules:
  - finding: FND-CRM-ENT-001
    ids:
      - CAP-CRM-ENT-009
      - CAP-CRM-ENT-017
      - CAP-CRM-ENT-018
  - finding: FND-CRM-ENT-002
    ids:
      - JNY-CRM-ENT-001
      - JNY-CRM-ENT-002
      - JNY-CRM-ENT-003
      - JNY-CRM-ENT-004
      - JNY-CRM-ENT-005
  - finding: FND-CRM-ENT-003
    ids:
      - CAP-CRM-ENT-001
      - CAP-CRM-ENT-003
      - CAP-CRM-ENT-004
      - CAP-CRM-ENT-005
      - CAP-CRM-ENT-006
      - CAP-CRM-ENT-009
      - CAP-CRM-ENT-015
      - CAP-CRM-ENT-016
      - CAP-CRM-ENT-017
  - finding: FND-CRM-ENT-004
    ids:
      - BR-CAP-CRM-ENT-004-04
      - CAP-CRM-ENT-004
      - BR-CAP-CRM-ENT-018-07
  - finding: FND-CRM-ENT-005
    ids:
      - BR-CAP-CRM-ENT-005-07
  - finding: FND-CRM-ENT-006
    ids:
      - BR-CAP-CRM-ENT-014-07
      - CAP-CRM-ENT-014
  - finding: FND-CRM-ENT-007
    ids:
      - BR-CAP-CRM-ENT-010-08
      - CAP-CRM-ENT-010
  - finding: FND-CRM-ENT-008
    ids:
      - BR-CAP-CRM-ENT-011-06
      - BR-CAP-CRM-ENT-011-07
      - CAP-CRM-ENT-011
  - finding: FND-CRM-ENT-009
    ids:
      - BR-CAP-CRM-ENT-011-05
  - finding: FND-CRM-ENT-010
    ids:
      - BR-CAP-CRM-ENT-006-13
      - CAP-CRM-ENT-006
  - finding: FND-CRM-ENT-011
    ids:
      - BR-CAP-CRM-ENT-017-03
  - finding: FND-CRM-ENT-012
    ids:
      - BR-CAP-CRM-ENT-017-11
      - CAP-CRM-ENT-017
  - finding: FND-CRM-ENT-013
    ids:
      - CAP-CRM-ENT-017
      - CAP-CRM-ENT-018
  - finding: FND-CRM-ENT-014
    ids:
      - BR-CAP-CRM-ENT-015-09
  - finding: FND-CRM-ENT-015
    ids: []
  - finding: FND-CRM-ENT-016
    ids:
      - CAP-CRM-ENT-017
      - CAP-CRM-ENT-018
  - finding: FND-CRM-ENT-017
    ids:
      - BR-CAP-CRM-ENT-003-09
  - finding: FND-CRM-ENT-018
    ids:
      - BR-CAP-CRM-ENT-007-05
  - finding: FND-CRM-ENT-019
    ids:
      - BR-CAP-CRM-ENT-001-12
      - BR-CAP-CRM-ENT-002-11
      - BR-CAP-CRM-ENT-003-08
      - BR-CAP-CRM-ENT-016-06
  - finding: FND-CRM-ENT-020
    ids: []
  - finding: FND-CRM-ENT-021
    ids:
      - CAP-CRM-ENT-001
  - finding: FND-CRM-ENT-022
    ids:
      - BR-CAP-CRM-ENT-004-12
  - finding: FND-CRM-ENT-023
    ids:
      - BR-CAP-CRM-ENT-001-05
  - finding: FND-CRM-ENT-024
    ids:
      - BR-CAP-CRM-ENT-012-16
  - finding: FND-CRM-ENT-025
    ids:
      - BR-CAP-CRM-ENT-012-17
  - finding: FND-CRM-ENT-026
    ids:
      - JNY-CRM-ENT-002
      - JNY-CRM-ENT-004
  - finding: FND-CRM-ENT-027
    ids:
      - BR-CAP-CRM-ENT-012-13
  - finding: FND-CRM-ENT-028
    ids:
      - BR-CAP-CRM-ENT-011-11
  - finding: FND-CRM-ENT-029
    ids:
      - BR-CAP-CRM-ENT-002-11
  - finding: FND-CRM-ENT-030
    ids: []
  - finding: FND-CRM-ENT-031
    ids:
      - BR-CAP-CRM-ENT-010-08
      - BR-CAP-CRM-ENT-014-07
  - finding: FND-CRM-ENT-032
    ids:
      - BR-CAP-CRM-ENT-012-14
  - finding: FND-CRM-ENT-033
    ids:
      - BR-CAP-CRM-ENT-012-14
  - finding: FND-CRM-ENT-034
    ids:
      - BR-CAP-CRM-ENT-004-02
  - finding: FND-CRM-ENT-035
    ids:
      - BR-CAP-CRM-ENT-009-03
      - BR-CAP-CRM-ENT-009-11
      - BR-CAP-CRM-ENT-009-12
  - finding: FND-CRM-ENT-036
    ids:
      - CAP-CRM-ENT-002
  - finding: FND-CRM-ENT-037
    ids: []
  - finding: FND-CRM-ENT-038
    ids:
      - MOD-CRM-ENT
  - finding: FND-CRM-ENT-039
    ids:
      - BR-CAP-CRM-ENT-010-07
  - finding: FND-CRM-ENT-040
    ids: []
  - finding: FND-CRM-ENT-041
    ids:
      - BR-CAP-CRM-ENT-006-08
  - finding: FND-CRM-ENT-042
    ids:
      - JNY-CRM-ENT-003
      - CAP-CRM-ENT-016
  - finding: FND-CRM-ENT-043
    ids:
      - BR-CAP-CRM-ENT-012-08
  - finding: FND-CRM-ENT-044
    ids:
      - BR-CAP-CRM-ENT-010-05
      - BR-CAP-CRM-ENT-010-06
      - WF-CRM-ENT-006
  - finding: FND-CRM-ENT-045
    ids:
      - CAP-CRM-ENT-018
      - WF-CRM-ENT-008
  - finding: FND-CRM-ENT-046
    ids:
      - BR-CAP-CRM-ENT-015-04
      - STATE-CRM-ENT-007
  - finding: FND-CRM-ENT-047
    ids:
      - WF-CRM-ENT-005
      - STATE-CRM-ENT-004
  - finding: FND-CRM-ENT-048
    ids:
      - BR-CAP-CRM-ENT-012-07
      - BR-CAP-CRM-ENT-012-08
      - BR-CAP-CRM-ENT-012-09
      - ADR-CRM-ENT-008
decision_updates:
  - question: OQ-CRM-ENT-001
    updated: >-
      BR-CAP-CRM-ENT-004-13 (new), BR-CAP-CRM-ENT-004-04 and
      BR-CAP-CRM-ENT-018-07 (origin), ATS-CRM-ENT-004-13 (new, proposed)
  - question: OQ-CRM-ENT-002
    updated: >-
      CAP-CRM-ENT-017 and CAP-CRM-ENT-018 (intent_sources),
      specs/PRODUCT-AREAS.md (planned module removed), FND-CRM-ENT-016
      (resolved)
  - question: OQ-CRM-ENT-003
    updated: 'specs/CONVENTIONS.md §5.1 (derivation rule), reader (derived badge)'
  - question: OQ-CRM-ENT-004
    updated: specs/PRODUCT-AREAS.md (as corrected by the examination)
evidence:
  - >-
    services-crm at 7ea48a414c42eade10d60753b8bcc323b1dd726f: scoped Entities
    code, tests and milestone decisions identified by finding_evidence.
  - >-
    react-console at da63075876b2c5f4a6af07d457bb24ea8bf4c0c7: scoped CRM
    inventory, journeys, components and browser specifications identified by
    finding_evidence.
testing_backfill_findings:
  - id: FND-CRM-ENT-071
    severity: medium
    statement: >-
      Concurrent number allocation and spouse linking need independent failure
      and isolation checks beyond the proposed create-retry race.
    affects:
      - CAP-CRM-ENT-001
      - ATS-CRM-ENT-001
    evidence: &ref_0
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-001-record-a-person.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-001-create-a-contact.md
    kind: coverage-gap
    provenance: documented
    source: *ref_0
    missing_categories: []
    unbound_scenarios:
      - ATS-CRM-ENT-001-14
      - ATS-CRM-ENT-001-16
      - ATS-CRM-ENT-001-17
      - ATS-CRM-ENT-001-18
      - ATS-CRM-ENT-001-19
      - ATS-CRM-ENT-001-20
      - ATS-CRM-ENT-001-21
      - ATS-CRM-ENT-001-22
      - ATS-CRM-ENT-001-23
    unproved_rules: []
  - id: FND-CRM-ENT-072
    severity: medium
    statement: >-
      Authorization and lifecycle proof still needs complete request-level cases
      for blocked creation and each creation grant.
    affects:
      - CAP-CRM-ENT-002
      - ATS-CRM-ENT-002
    evidence: &ref_1
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-002-record-an-organization-and-its-place-in-a-hierarchy.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-003-create-and-save-an-organization.md
    kind: coverage-gap
    provenance: documented
    source: *ref_1
    missing_categories:
      - edge
    unbound_scenarios:
      - ATS-CRM-ENT-002-11
      - ATS-CRM-ENT-002-12
      - ATS-CRM-ENT-002-13
      - ATS-CRM-ENT-002-14
      - ATS-CRM-ENT-002-15
      - ATS-CRM-ENT-002-16
      - ATS-CRM-ENT-002-17
      - ATS-CRM-ENT-002-18
      - ATS-CRM-ENT-002-19
    unproved_rules: []
  - id: FND-CRM-ENT-073
    severity: medium
    statement: >-
      Concurrent record discovery and delayed search delivery need specified
      observable outcomes for stale snapshots and handler failure.
    affects:
      - CAP-CRM-ENT-003
      - ATS-CRM-ENT-003
    evidence: &ref_2
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-003-find-and-read-contacts-and-organizations.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-011-feed-quick-search-from-record-changes.md
    kind: coverage-gap
    provenance: documented
    source: *ref_2
    missing_categories:
      - validation
      - failure
      - concurrency
      - invariant
    unbound_scenarios:
      - ATS-CRM-ENT-003-12
      - ATS-CRM-ENT-003-13
      - ATS-CRM-ENT-003-14
      - ATS-CRM-ENT-003-15
      - ATS-CRM-ENT-003-16
      - ATS-CRM-ENT-003-17
    unproved_rules: []
  - id: FND-CRM-ENT-074
    severity: medium
    statement: >-
      Boundary-length and lifecycle recovery proof still needs explicit cases
      beyond successful corrections and version conflicts.
    affects:
      - CAP-CRM-ENT-004
      - ATS-CRM-ENT-004
    evidence: &ref_3
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-004-change-a-record-without-losing-anyone-s-edit.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-002-save-a-contact-and-its-affiliations.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-003-create-and-save-an-organization.md
    kind: coverage-gap
    provenance: documented
    source: *ref_3
    missing_categories:
      - boundary
    unbound_scenarios:
      - ATS-CRM-ENT-004-13
      - ATS-CRM-ENT-004-14
      - ATS-CRM-ENT-004-15
      - ATS-CRM-ENT-004-16
      - ATS-CRM-ENT-004-17
      - ATS-CRM-ENT-004-18
      - ATS-CRM-ENT-004-19
      - ATS-CRM-ENT-004-20
      - ATS-CRM-ENT-004-21
      - ATS-CRM-ENT-004-22
      - ATS-CRM-ENT-004-23
      - ATS-CRM-ENT-004-24
    unproved_rules: []
  - id: FND-CRM-ENT-053
    severity: medium
    statement: >-
      Independent update and read grants and competing email claims need
      executable cases without relying on general record tests.
    affects:
      - CAP-CRM-ENT-005
      - ATS-CRM-ENT-005
    evidence: &ref_4
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-005-keep-the-e-mails-phone-numbers-and-addresses-of-contacts-and.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-001-create-a-contact.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-002-save-a-contact-and-its-affiliations.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-003-create-and-save-an-organization.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-010-disconnect-and-resolve-shared-contact-details.md
    kind: coverage-gap
    provenance: documented
    source: *ref_4
    missing_categories:
      - concurrency
    unbound_scenarios:
      - ATS-CRM-ENT-005-10
      - ATS-CRM-ENT-005-11
      - ATS-CRM-ENT-005-12
      - ATS-CRM-ENT-005-13
      - ATS-CRM-ENT-005-14
      - ATS-CRM-ENT-005-15
      - ATS-CRM-ENT-005-16
      - ATS-CRM-ENT-005-17
      - ATS-CRM-ENT-005-18
    unproved_rules: []
  - id: FND-CRM-ENT-054
    severity: medium
    statement: >-
      Source-removal failure, every declared mutation grant and link-selection
      boundaries need direct detailed cases.
    affects:
      - CAP-CRM-ENT-006
      - ATS-CRM-ENT-006
      - BR-CAP-CRM-ENT-006-13
    evidence: &ref_5
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-006-share-an-organization-s-addresses-and-phone-numbers-with-its.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-001-create-a-contact.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-002-save-a-contact-and-its-affiliations.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-003-create-and-save-an-organization.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-006-reconcile-affiliation-dates.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-010-disconnect-and-resolve-shared-contact-details.md
    kind: coverage-gap
    provenance: documented
    source: *ref_5
    missing_categories:
      - rule
      - failure
      - boundary
    unbound_scenarios:
      - ATS-CRM-ENT-006-12
      - ATS-CRM-ENT-006-13
      - ATS-CRM-ENT-006-14
      - ATS-CRM-ENT-006-15
      - ATS-CRM-ENT-006-16
      - ATS-CRM-ENT-006-17
    unproved_rules:
      - BR-CAP-CRM-ENT-006-13
  - id: FND-CRM-ENT-055
    severity: medium
    statement: >-
      Preference-state transitions, workspace isolation, capacity boundaries and
      competing preference edits need dedicated detailed cases.
    affects:
      - CAP-CRM-ENT-007
      - ATS-CRM-ENT-007
    evidence: &ref_6
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-007-record-how-a-person-wants-to-be-contacted.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-002-save-a-contact-and-its-affiliations.md
    kind: coverage-gap
    provenance: documented
    source: *ref_6
    missing_categories:
      - transition
      - boundary
      - concurrency
      - invariant
    unbound_scenarios:
      - ATS-CRM-ENT-007-05
      - ATS-CRM-ENT-007-06
      - ATS-CRM-ENT-007-07
      - ATS-CRM-ENT-007-08
      - ATS-CRM-ENT-007-09
    unproved_rules: []
  - id: FND-CRM-ENT-056
    severity: medium
    statement: >-
      Customer-value size boundaries, competing map edits and storage invariants
      need direct detailed cases.
    affects:
      - CAP-CRM-ENT-008
      - ATS-CRM-ENT-008
    evidence: &ref_7
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-008-hold-the-tenant-s-custom-field-values-on-contacts-and.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-001-create-a-contact.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-002-save-a-contact-and-its-affiliations.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-003-create-and-save-an-organization.md
    kind: coverage-gap
    provenance: documented
    source: *ref_7
    missing_categories:
      - concurrency
      - invariant
    unbound_scenarios:
      - ATS-CRM-ENT-008-08
      - ATS-CRM-ENT-008-09
      - ATS-CRM-ENT-008-10
      - ATS-CRM-ENT-008-11
    unproved_rules: []
  - id: FND-CRM-ENT-057
    severity: medium
    statement: >-
      Every relationship transition and authority matrix needs an executable
      case, including competing aggregate relationship edits.
    affects:
      - CAP-CRM-ENT-009
      - ATS-CRM-ENT-009
    evidence: &ref_8
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-009-record-who-works-where-and-the-person-s-primary-organization.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-001-create-a-contact.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-002-save-a-contact-and-its-affiliations.md
    kind: coverage-gap
    provenance: documented
    source: *ref_8
    missing_categories: []
    unbound_scenarios:
      - ATS-CRM-ENT-009-12
      - ATS-CRM-ENT-009-17
      - ATS-CRM-ENT-009-18
      - ATS-CRM-ENT-009-19
      - ATS-CRM-ENT-009-20
      - ATS-CRM-ENT-009-21
      - ATS-CRM-ENT-009-22
      - ATS-CRM-ENT-009-23
      - ATS-CRM-ENT-009-24
      - ATS-CRM-ENT-009-25
    unproved_rules: []
  - id: FND-CRM-ENT-058
    severity: medium
    statement: >-
      Failure, bounded backlog and overlapping date workers need proof that
      separates compliance settlement from pending role and link work.
    affects:
      - CAP-CRM-ENT-010
      - ATS-CRM-ENT-010
    evidence: &ref_9
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-010-keep-affiliations-true-to-the-workspace-s-calendar.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-002-save-a-contact-and-its-affiliations.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-006-reconcile-affiliation-dates.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-007-give-automatic-roles-on-the-start-day.md
    kind: coverage-gap
    provenance: documented
    source: *ref_9
    missing_categories:
      - validation
      - edge
      - concurrency
    unbound_scenarios:
      - ATS-CRM-ENT-010-07
      - ATS-CRM-ENT-010-08
      - ATS-CRM-ENT-010-09
      - ATS-CRM-ENT-010-10
      - ATS-CRM-ENT-010-11
      - ATS-CRM-ENT-010-12
      - ATS-CRM-ENT-010-13
    unproved_rules: []
  - id: FND-CRM-ENT-059
    severity: medium
    statement: >-
      Role ownership boundaries, locked deferred work and every read or update
      grant need independent cases.
    affects:
      - CAP-CRM-ENT-011
      - ATS-CRM-ENT-011
    evidence: &ref_10
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-011-give-people-roles-at-their-organizations-automatically-where.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-001-create-a-contact.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-002-save-a-contact-and-its-affiliations.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-004-recalculate-role-compliance-and-submit-the-notice.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-006-reconcile-affiliation-dates.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-007-give-automatic-roles-on-the-start-day.md
    kind: coverage-gap
    provenance: documented
    source: *ref_10
    missing_categories:
      - invariant
    unbound_scenarios:
      - ATS-CRM-ENT-011-10
      - ATS-CRM-ENT-011-12
      - ATS-CRM-ENT-011-13
      - ATS-CRM-ENT-011-14
      - ATS-CRM-ENT-011-15
      - ATS-CRM-ENT-011-16
      - ATS-CRM-ENT-011-17
    unproved_rules: []
  - id: FND-CRM-ENT-060
    severity: medium
    statement: >-
      Notice-recipient batching, policy-state transitions and terminal scan
      recovery need direct proof across the documented service seams.
    affects:
      - CAP-CRM-ENT-012
      - ATS-CRM-ENT-012
    evidence: &ref_11
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-012-hold-organizations-to-their-type-s-role-rules-and-tell-them.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-003-create-and-save-an-organization.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-004-recalculate-role-compliance-and-submit-the-notice.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-005-reprocess-compliance-across-the-workspace.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-006-reconcile-affiliation-dates.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-008-save-or-delete-an-organization-type-with-its-notice-template.md
    kind: coverage-gap
    provenance: documented
    source: *ref_11
    missing_categories:
      - boundary
    unbound_scenarios:
      - ATS-CRM-ENT-012-15
      - ATS-CRM-ENT-012-17
      - ATS-CRM-ENT-012-18
      - ATS-CRM-ENT-012-19
      - ATS-CRM-ENT-012-20
      - ATS-CRM-ENT-012-21
      - ATS-CRM-ENT-012-22
      - ATS-CRM-ENT-012-23
      - ATS-CRM-ENT-012-24
      - ATS-CRM-ENT-012-25
    unproved_rules: []
  - id: FND-CRM-ENT-061
    severity: medium
    statement: >-
      Every archive transition needs direct executable proof for both record
      kinds and every archive authority.
    affects:
      - CAP-CRM-ENT-013
      - ATS-CRM-ENT-013
    evidence: &ref_12
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-013-archive-a-contact-or-an-organization-and-bring-it-back.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-011-feed-quick-search-from-record-changes.md
    kind: coverage-gap
    provenance: documented
    source: *ref_12
    missing_categories:
      - validation
      - edge
    unbound_scenarios:
      - ATS-CRM-ENT-013-11
      - ATS-CRM-ENT-013-12
      - ATS-CRM-ENT-013-13
      - ATS-CRM-ENT-013-14
      - ATS-CRM-ENT-013-15
      - ATS-CRM-ENT-013-16
      - ATS-CRM-ENT-013-17
    unproved_rules: []
  - id: FND-CRM-ENT-062
    severity: medium
    statement: >-
      Deletion races and dependency cardinality boundaries need dedicated proof
      in addition to ordinary lock and dependency refusals.
    affects:
      - CAP-CRM-ENT-014
      - ATS-CRM-ENT-014
    evidence: &ref_13
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-014-delete-a-contact-or-an-organization.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-009-delete-a-contact-or-an-organization.md
    kind: coverage-gap
    provenance: documented
    source: *ref_13
    missing_categories:
      - rule
      - boundary
      - concurrency
    unbound_scenarios:
      - ATS-CRM-ENT-014-08
      - ATS-CRM-ENT-014-09
      - ATS-CRM-ENT-014-10
      - ATS-CRM-ENT-014-11
      - ATS-CRM-ENT-014-12
      - ATS-CRM-ENT-014-13
    unproved_rules: []
  - id: FND-CRM-ENT-063
    severity: medium
    statement: >-
      Every lock transition, exact reason boundary and simultaneous lock or save
      needs a directly bound regression case.
    affects:
      - CAP-CRM-ENT-015
      - ATS-CRM-ENT-015
    evidence: &ref_14
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-015-lock-records-against-change-and-protect-the-records-rhythm.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-009-delete-a-contact-or-an-organization.md
    kind: coverage-gap
    provenance: documented
    source: *ref_14
    missing_categories:
      - validation
      - failure
      - concurrency
    unbound_scenarios:
      - ATS-CRM-ENT-015-09
      - ATS-CRM-ENT-015-10
      - ATS-CRM-ENT-015-11
      - ATS-CRM-ENT-015-12
      - ATS-CRM-ENT-015-13
      - ATS-CRM-ENT-015-14
      - ATS-CRM-ENT-015-15
      - ATS-CRM-ENT-015-16
    unproved_rules: []
  - id: FND-CRM-ENT-064
    severity: medium
    statement: >-
      History page boundaries, deleted-subject access and missing-attribution
      rollback need direct proof of each observable outcome.
    affects:
      - CAP-CRM-ENT-016
      - ATS-CRM-ENT-016
    evidence: &ref_15
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-016-see-who-changed-a-contact-or-an-organization-and-what.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-009-delete-a-contact-or-an-organization.md
    kind: coverage-gap
    provenance: documented
    source: *ref_15
    missing_categories:
      - validation
      - edge
      - boundary
    unbound_scenarios:
      - ATS-CRM-ENT-016-06
      - ATS-CRM-ENT-016-07
      - ATS-CRM-ENT-016-08
      - ATS-CRM-ENT-016-09
      - ATS-CRM-ENT-016-10
      - ATS-CRM-ENT-016-11
    unproved_rules: []
  - id: FND-CRM-ENT-065
    severity: medium
    statement: >-
      Catalogue transitions, exact mapping limits and competing configuration
      edits need dedicated detailed cases.
    affects:
      - CAP-CRM-ENT-017
      - ATS-CRM-ENT-017
    evidence: &ref_16
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-017-maintain-the-kinds-of-tie-and-the-catalogue-of-roles-people.md
    kind: coverage-gap
    provenance: documented
    source: *ref_16
    missing_categories:
      - transition
      - concurrency
      - invariant
    unbound_scenarios:
      - ATS-CRM-ENT-017-12
      - ATS-CRM-ENT-017-13
      - ATS-CRM-ENT-017-14
      - ATS-CRM-ENT-017-15
      - ATS-CRM-ENT-017-16
      - ATS-CRM-ENT-017-17
      - ATS-CRM-ENT-017-18
      - ATS-CRM-ENT-017-19
    unproved_rules: []
  - id: FND-CRM-ENT-066
    severity: medium
    statement: >-
      Catalogue transitions, error preservation and competing reference deletion
      or writes need dedicated detailed cases.
    affects:
      - CAP-CRM-ENT-018
      - ATS-CRM-ENT-018
    evidence: &ref_17
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-018-maintain-the-tenant-s-contact-organization-address-and-phone.md
      - >-
        rhythm-v2-docs:specs/crm/entities/design/workflows/WF-CRM-ENT-008-save-or-delete-an-organization-type-with-its-notice-template.md
    kind: coverage-gap
    provenance: documented
    source: *ref_17
    missing_categories:
      - transition
      - failure
    unbound_scenarios:
      - ATS-CRM-ENT-018-09
      - ATS-CRM-ENT-018-10
      - ATS-CRM-ENT-018-11
      - ATS-CRM-ENT-018-12
      - ATS-CRM-ENT-018-13
      - ATS-CRM-ENT-018-14
      - ATS-CRM-ENT-018-15
      - ATS-CRM-ENT-018-16
    unproved_rules: []
  - id: FND-CRM-ENT-067
    severity: medium
    statement: >-
      Section isolation, definition-slot boundaries and invalid-assignment
      rollback need direct proof independent of resolution success.
    affects:
      - CAP-CRM-ENT-019
      - ATS-CRM-ENT-019
    evidence: &ref_18
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-019-choose-the-page-layouts-and-forms-contacts-and-organizations.md
    kind: coverage-gap
    provenance: documented
    source: *ref_18
    missing_categories:
      - transition
      - edge
      - boundary
      - invariant
    unbound_scenarios:
      - ATS-CRM-ENT-019-08
      - ATS-CRM-ENT-019-09
      - ATS-CRM-ENT-019-10
      - ATS-CRM-ENT-019-11
    unproved_rules: []
  - id: FND-CRM-ENT-068
    severity: medium
    statement: >-
      Registered engineering and browser suites without a scenario binding
      remain visible; their assertions need a separate semantic mapping before
      they count as capability or feature proof.
    affects:
      - TST-CRM-ENT-001
      - TST-CRM-ENT-002
      - TST-CRM-ENT-003
      - TST-CRM-ENT-004
      - TST-CRM-ENT-005
      - TST-CRM-ENT-006
      - TST-CRM-ENT-007
      - TST-CRM-ENT-008
      - TST-CRM-ENT-009
      - TST-CRM-ENT-010
      - TST-CRM-ENT-011
      - TST-CRM-ENT-012
      - TST-CRM-ENT-013
      - TST-CRM-ENT-014
      - TST-CRM-ENT-015
      - TST-CRM-ENT-016
      - TST-CRM-ENT-017
      - TST-CRM-ENT-018
      - TST-CRM-ENT-019
      - TST-CRM-ENT-020
      - TST-CRM-ENT-021
      - TST-CRM-ENT-022
      - TST-CRM-ENT-023
      - TST-CRM-ENT-024
      - TST-CRM-ENT-025
      - TST-CRM-ENT-026
      - TST-CRM-ENT-027
      - TST-CRM-ENT-028
      - TST-CRM-ENT-029
      - TST-CRM-ENT-030
      - TST-CRM-ENT-031
      - TST-CRM-ENT-032
      - TST-CRM-ENT-033
      - TST-CRM-ENT-034
      - TST-CRM-ENT-035
      - TST-CRM-ENT-036
      - TST-CRM-ENT-037
      - TST-CRM-ENT-038
      - TST-CRM-ENT-039
      - TST-CRM-ENT-040
      - TST-CRM-ENT-041
      - TST-CRM-ENT-042
      - TST-CRM-ENT-043
      - TST-CRM-ENT-044
      - TST-CRM-ENT-045
      - TST-CRM-ENT-046
      - TST-CRM-ENT-047
      - TST-CRM-ENT-048
      - TST-CRM-ENT-049
      - TST-CRM-ENT-050
      - TST-CRM-ENT-051
      - TST-CRM-ENT-052
      - TST-CRM-ENT-053
      - TST-CRM-ENT-054
      - TST-CRM-ENT-055
      - TST-CRM-ENT-056
      - TST-CRM-ENT-057
      - TST-CRM-ENT-058
      - TST-CRM-ENT-059
      - TST-CRM-ENT-060
      - TST-CRM-ENT-061
      - TST-CRM-ENT-062
      - TST-CRM-ENT-064
      - TST-CRM-ENT-065
      - TST-CRM-ENT-068
      - TST-CRM-ENT-073
      - TST-CRM-ENT-074
      - TST-CRM-ENT-077
      - TST-CRM-ENT-085
      - TST-CRM-ENT-086
      - TST-CRM-ENT-087
      - TST-CRM-ENT-088
      - TST-CRM-ENT-090
      - TST-CRM-ENT-099
      - TST-CRM-ENT-103
      - TST-CRM-ENT-105
      - TST-CRM-ENT-106
      - TST-CRM-ENT-107
      - TST-CRM-ENT-108
      - TST-CRM-ENT-109
      - TST-CRM-ENT-110
      - TST-CRM-ENT-111
      - TST-CRM-ENT-112
      - TST-CRM-ENT-113
      - TST-CRM-ENT-114
      - TST-CRM-ENT-115
      - TST-CRM-ENT-116
      - TST-CRM-ENT-117
      - TST-CRM-ENT-118
      - TST-CRM-ENT-119
      - TST-CRM-ENT-120
      - TST-CRM-ENT-121
      - TST-CRM-ENT-122
      - TST-CRM-ENT-123
      - TST-CRM-ENT-124
      - TST-CRM-ENT-125
      - TST-CRM-ENT-126
      - TST-CRM-ENT-127
      - TST-CRM-ENT-128
      - TST-CRM-ENT-129
      - TST-CRM-ENT-130
      - TST-CRM-ENT-131
      - TST-CRM-ENT-132
      - TST-CRM-ENT-133
      - TST-CRM-ENT-134
      - TST-CRM-ENT-135
      - TST-CRM-ENT-136
      - TST-CRM-ENT-137
      - TST-CRM-ENT-138
      - TST-CRM-ENT-139
      - TST-CRM-ENT-140
      - TST-CRM-ENT-141
      - TST-CRM-ENT-142
      - TST-CRM-ENT-143
      - TST-CRM-ENT-144
      - TST-CRM-ENT-145
      - TST-CRM-ENT-146
      - TST-CRM-ENT-147
      - TST-CRM-ENT-149
      - TST-CRM-ENT-150
      - TST-CRM-ENT-151
      - TST-CRM-ENT-152
      - TST-CRM-ENT-153
      - TST-CRM-ENT-154
      - TST-CRM-ENT-155
      - TST-CRM-ENT-156
      - TST-CRM-ENT-157
      - TST-CRM-ENT-158
      - TST-CRM-ENT-159
      - TST-CRM-ENT-160
      - TST-CRM-ENT-161
      - TST-CRM-ENT-162
      - TST-CRM-ENT-163
      - TST-CRM-ENT-164
      - TST-CRM-ENT-165
      - TST-CRM-ENT-166
      - TST-CRM-ENT-167
      - TST-CRM-ENT-168
      - TST-CRM-ENT-169
      - TST-CRM-ENT-170
      - TST-CRM-ENT-171
      - TST-CRM-ENT-172
      - TST-CRM-ENT-173
      - TST-CRM-ENT-174
      - TST-CRM-ENT-175
      - TST-CRM-ENT-176
      - TST-CRM-ENT-177
      - TST-CRM-ENT-178
      - TST-CRM-ENT-179
      - TST-CRM-ENT-180
      - TST-CRM-ENT-181
      - TST-CRM-ENT-182
      - TST-CRM-ENT-183
      - TST-CRM-ENT-184
      - TST-CRM-ENT-185
      - TST-CRM-ENT-186
      - TST-CRM-ENT-187
      - TST-CRM-ENT-188
      - TST-CRM-ENT-189
      - TST-CRM-ENT-190
      - TST-CRM-ENT-191
      - TST-CRM-ENT-192
      - TST-CRM-ENT-193
      - TST-CRM-ENT-194
      - TST-CRM-ENT-195
      - TST-CRM-ENT-196
      - TST-CRM-ENT-197
      - TST-CRM-ENT-198
      - TST-CRM-ENT-199
      - TST-CRM-ENT-200
      - TST-CRM-ENT-202
      - TST-CRM-ENT-204
      - TST-CRM-ENT-205
      - TST-CRM-ENT-207
      - TST-CRM-ENT-210
      - TST-CRM-ENT-211
      - TST-CRM-ENT-212
      - TST-CRM-ENT-213
      - TST-CRM-ENT-214
      - TST-CRM-ENT-217
      - TST-CRM-ENT-218
      - TST-CRM-ENT-219
      - TST-CRM-ENT-220
      - TST-CRM-ENT-221
      - TST-CRM-ENT-222
      - TST-CRM-ENT-223
      - TST-CRM-ENT-224
      - TST-CRM-ENT-226
      - TST-CRM-ENT-227
      - TST-CRM-ENT-228
      - TST-CRM-ENT-229
      - TST-CRM-ENT-230
      - TST-CRM-ENT-232
      - TST-CRM-ENT-234
      - TST-CRM-ENT-236
      - TST-CRM-ENT-237
      - TST-CRM-ENT-238
      - TST-CRM-ENT-239
      - TST-CRM-ENT-240
      - TST-CRM-ENT-241
      - TST-CRM-ENT-244
      - TST-CRM-ENT-247
      - TST-CRM-ENT-249
      - TST-CRM-ENT-251
      - TST-CRM-ENT-252
      - TST-CRM-ENT-253
      - TST-CRM-ENT-254
      - TST-CRM-ENT-255
      - TST-CRM-ENT-257
      - TST-CRM-ENT-258
      - TST-CRM-ENT-259
      - TST-CRM-ENT-261
      - TST-CRM-ENT-262
      - TST-CRM-ENT-263
      - TST-CRM-ENT-265
      - TST-CRM-ENT-269
      - TST-CRM-ENT-271
      - TST-CRM-ENT-273
      - TST-CRM-ENT-274
      - TST-CRM-ENT-275
      - TST-CRM-ENT-276
      - TST-CRM-ENT-277
      - TST-CRM-ENT-278
      - TST-CRM-ENT-279
      - TST-CRM-ENT-280
      - TST-CRM-ENT-281
      - TST-CRM-ENT-282
      - TST-CRM-ENT-283
      - TST-CRM-ENT-284
      - TST-CRM-ENT-285
      - TST-CRM-ENT-286
      - TST-CRM-ENT-287
      - TST-CRM-ENT-288
      - TST-CRM-ENT-289
      - TST-CRM-ENT-290
      - TST-CRM-ENT-291
      - TST-CRM-ENT-292
      - TST-CRM-ENT-293
      - TST-CRM-ENT-294
      - TST-CRM-ENT-295
      - TST-CRM-ENT-296
      - TST-CRM-ENT-297
      - TST-CRM-ENT-298
      - TST-CRM-ENT-299
      - TST-CRM-ENT-300
      - TST-CRM-ENT-301
      - TST-CRM-ENT-302
      - TST-CRM-ENT-303
      - TST-CRM-ENT-304
      - TST-CRM-ENT-305
      - TST-CRM-ENT-306
      - TST-CRM-ENT-307
      - TST-CRM-ENT-308
      - TST-CRM-ENT-309
      - TST-CRM-ENT-310
      - TST-CRM-ENT-311
      - TST-CRM-ENT-312
      - TST-CRM-ENT-313
      - TST-CRM-ENT-314
      - TST-CRM-ENT-315
      - TST-CRM-ENT-316
      - TST-CRM-ENT-317
      - TST-CRM-ENT-318
      - TST-CRM-ENT-319
      - TST-CRM-ENT-320
      - TST-CRM-ENT-321
      - TST-CRM-ENT-322
      - TST-CRM-ENT-323
      - TST-CRM-ENT-324
      - TST-CRM-ENT-325
      - TST-CRM-ENT-326
      - TST-CRM-ENT-327
      - TST-CRM-ENT-328
      - TST-CRM-ENT-329
      - TST-CRM-ENT-330
      - TST-CRM-ENT-331
      - TST-CRM-ENT-332
      - TST-CRM-ENT-333
      - TST-CRM-ENT-334
      - TST-CRM-ENT-335
      - TST-CRM-ENT-336
      - TST-CRM-ENT-337
      - TST-CRM-ENT-338
      - TST-CRM-ENT-339
      - TST-CRM-ENT-340
      - TST-CRM-ENT-341
      - TST-CRM-ENT-342
      - TST-CRM-ENT-343
      - TST-CRM-ENT-344
      - TST-CRM-ENT-345
      - TST-CRM-ENT-346
      - TST-CRM-ENT-347
      - TST-CRM-ENT-348
      - TST-CRM-ENT-349
      - TST-CRM-ENT-350
      - TST-CRM-ENT-351
      - TST-CRM-ENT-352
      - TST-CRM-ENT-353
      - TST-CRM-ENT-354
      - TST-CRM-ENT-355
      - TST-CRM-ENT-356
      - TST-CRM-ENT-357
      - TST-CRM-ENT-358
      - TST-CRM-ENT-359
      - TST-CRM-ENT-360
      - TST-CRM-ENT-361
      - TST-CRM-ENT-362
      - TST-CRM-ENT-363
      - TST-CRM-ENT-364
      - TST-CRM-ENT-365
      - TST-CRM-ENT-366
      - TST-CRM-ENT-367
      - TST-CRM-ENT-368
      - TST-CRM-ENT-369
      - TST-CRM-ENT-370
      - TST-CRM-ENT-371
      - TST-CRM-ENT-372
      - TST-CRM-ENT-373
      - TST-CRM-ENT-374
      - TST-CRM-ENT-375
      - TST-CRM-ENT-376
      - TST-CRM-ENT-377
      - TST-CRM-ENT-378
      - TST-CRM-ENT-379
      - TST-CRM-ENT-380
      - TST-CRM-ENT-381
      - TST-CRM-ENT-382
      - TST-CRM-ENT-383
      - TST-CRM-ENT-384
      - TST-CRM-ENT-385
      - TST-CRM-ENT-386
      - TST-CRM-ENT-387
      - TST-CRM-ENT-388
      - TST-CRM-ENT-389
      - TST-CRM-ENT-390
      - TST-CRM-ENT-391
      - TST-CRM-ENT-392
      - TST-CRM-ENT-393
      - TST-CRM-ENT-394
      - TST-CRM-ENT-395
      - TST-CRM-ENT-396
      - TST-CRM-ENT-397
      - TST-CRM-ENT-398
      - TST-CRM-ENT-399
      - TST-CRM-ENT-400
      - TST-CRM-ENT-401
      - TST-CRM-ENT-402
      - TST-CRM-ENT-403
      - TST-CRM-ENT-404
      - TST-CRM-ENT-405
      - TST-CRM-ENT-406
      - TST-CRM-ENT-407
      - TST-CRM-ENT-408
      - TST-CRM-ENT-409
      - TST-CRM-ENT-410
      - TST-CRM-ENT-411
      - TST-CRM-ENT-412
      - TST-CRM-ENT-413
      - TST-CRM-ENT-414
      - TST-CRM-ENT-415
      - TST-CRM-ENT-416
      - TST-CRM-ENT-417
      - TST-CRM-ENT-418
      - TST-CRM-ENT-419
      - TST-CRM-ENT-420
      - TST-CRM-ENT-421
      - TST-CRM-ENT-422
      - TST-CRM-ENT-423
      - TST-CRM-ENT-424
      - TST-CRM-ENT-425
      - TST-CRM-ENT-426
      - TST-CRM-ENT-427
      - TST-CRM-ENT-428
      - TST-CRM-ENT-429
      - TST-CRM-ENT-430
      - TST-CRM-ENT-431
      - TST-CRM-ENT-432
      - TST-CRM-ENT-433
      - TST-CRM-ENT-434
      - TST-CRM-ENT-435
      - TST-CRM-ENT-436
      - TST-CRM-ENT-437
      - TST-CRM-ENT-438
      - TST-CRM-ENT-439
      - TST-CRM-ENT-440
      - TST-CRM-ENT-441
      - TST-CRM-ENT-442
      - TST-CRM-ENT-443
      - TST-CRM-ENT-444
      - TST-CRM-ENT-445
      - TST-CRM-ENT-446
      - TST-CRM-ENT-447
      - TST-CRM-ENT-448
      - TST-CRM-ENT-449
      - TST-CRM-ENT-451
      - TST-CRM-ENT-455
      - TST-CRM-ENT-456
      - TST-CRM-ENT-457
      - TST-CRM-ENT-459
      - TST-CRM-ENT-462
      - TST-CRM-ENT-463
      - TST-CRM-ENT-464
      - TST-CRM-ENT-465
      - TST-CRM-ENT-468
      - TST-CRM-ENT-471
      - TST-CRM-ENT-472
      - TST-CRM-ENT-473
      - TST-CRM-ENT-474
      - TST-CRM-ENT-475
      - TST-CRM-ENT-477
      - TST-CRM-ENT-478
      - TST-CRM-ENT-479
      - TST-CRM-ENT-481
      - TST-CRM-ENT-482
      - TST-CRM-ENT-483
      - TST-CRM-ENT-486
      - TST-CRM-ENT-487
      - TST-CRM-ENT-488
      - TST-CRM-ENT-489
      - TST-CRM-ENT-490
      - TST-CRM-ENT-491
      - TST-CRM-ENT-492
      - TST-CRM-ENT-493
      - TST-CRM-ENT-494
      - TST-CRM-ENT-495
      - TST-CRM-ENT-496
      - TST-CRM-ENT-497
      - TST-CRM-ENT-498
      - TST-CRM-ENT-499
      - TST-CRM-ENT-500
      - TST-CRM-ENT-501
      - TST-CRM-ENT-502
      - TST-CRM-ENT-503
      - TST-CRM-ENT-504
      - TST-CRM-ENT-505
      - TST-CRM-ENT-506
      - TST-CRM-ENT-507
      - TST-CRM-ENT-508
      - TST-CRM-ENT-509
      - TST-CRM-ENT-510
      - TST-CRM-ENT-511
      - TST-CRM-ENT-512
      - TST-CRM-ENT-513
      - TST-CRM-ENT-514
      - TST-CRM-ENT-515
      - TST-CRM-ENT-516
      - TST-CRM-ENT-517
      - TST-CRM-ENT-518
      - TST-CRM-ENT-519
      - TST-CRM-ENT-520
      - TST-CRM-ENT-521
      - TST-CRM-ENT-522
      - TST-CRM-ENT-523
      - TST-CRM-ENT-524
      - TST-CRM-ENT-525
      - TST-CRM-ENT-526
      - TST-CRM-ENT-527
      - TST-CRM-ENT-528
      - TST-CRM-ENT-529
      - TST-CRM-ENT-530
      - TST-CRM-ENT-531
      - TST-CRM-ENT-532
      - TST-CRM-ENT-533
      - TST-CRM-ENT-534
      - TST-CRM-ENT-535
      - TST-CRM-ENT-536
      - TST-CRM-ENT-537
      - TST-CRM-ENT-538
      - TST-CRM-ENT-539
      - TST-CRM-ENT-540
      - TST-CRM-ENT-541
      - TST-CRM-ENT-542
      - TST-CRM-ENT-543
      - TST-CRM-ENT-544
      - TST-CRM-ENT-545
      - TST-CRM-ENT-546
      - TST-CRM-ENT-547
      - TST-CRM-ENT-548
      - TST-CRM-ENT-549
      - TST-CRM-ENT-550
      - TST-CRM-ENT-551
      - TST-CRM-ENT-552
      - TST-CRM-ENT-553
      - TST-CRM-ENT-554
      - TST-CRM-ENT-555
      - TST-CRM-ENT-556
      - TST-CRM-ENT-557
      - TST-CRM-ENT-558
      - TST-CRM-ENT-559
      - TST-CRM-ENT-560
      - TST-CRM-ENT-561
      - TST-CRM-ENT-562
      - TST-CRM-ENT-563
      - TST-CRM-ENT-564
      - TST-CRM-ENT-565
      - TST-CRM-ENT-566
      - TST-CRM-ENT-567
      - TST-CRM-ENT-568
      - TST-CRM-ENT-569
      - TST-CRM-ENT-570
      - TST-CRM-ENT-571
      - TST-CRM-ENT-572
      - TST-CRM-ENT-573
      - TST-CRM-ENT-574
      - TST-CRM-ENT-575
      - TST-CRM-ENT-576
      - TST-CRM-ENT-577
      - TST-CRM-ENT-578
      - TST-CRM-ENT-579
      - TST-CRM-ENT-580
      - TST-CRM-ENT-581
      - TST-CRM-ENT-582
      - TST-CRM-ENT-583
      - TST-CRM-ENT-584
      - TST-CRM-ENT-585
      - TST-CRM-ENT-586
      - TST-CRM-ENT-587
      - TST-CRM-ENT-588
      - TST-CRM-ENT-589
      - TST-CRM-ENT-590
      - TST-CRM-ENT-591
      - TST-CRM-ENT-592
      - TST-CRM-ENT-593
      - TST-CRM-ENT-594
      - TST-CRM-ENT-595
      - TST-CRM-ENT-596
      - TST-CRM-ENT-597
      - TST-CRM-ENT-598
      - TST-CRM-ENT-599
      - TST-CRM-ENT-600
      - TST-CRM-ENT-601
      - TST-CRM-ENT-602
      - TST-CRM-ENT-603
      - TST-CRM-ENT-604
      - TST-CRM-ENT-605
      - TST-CRM-ENT-606
      - TST-CRM-ENT-607
      - TST-CRM-ENT-608
      - TST-CRM-ENT-609
      - TST-CRM-ENT-610
      - TST-CRM-ENT-611
      - TST-CRM-ENT-612
      - TST-CRM-ENT-613
      - TST-CRM-ENT-614
      - TST-CRM-ENT-615
      - TST-CRM-ENT-616
      - TST-CRM-ENT-617
      - TST-CRM-ENT-618
      - TST-CRM-ENT-619
      - TST-CRM-ENT-620
      - TST-CRM-ENT-621
      - TST-CRM-ENT-622
      - TST-CRM-ENT-623
      - TST-CRM-ENT-624
      - TST-CRM-ENT-625
      - TST-CRM-ENT-626
      - TST-CRM-ENT-627
      - TST-CRM-ENT-628
      - TST-CRM-ENT-629
      - TST-CRM-ENT-630
      - TST-CRM-ENT-631
      - TST-CRM-ENT-632
      - TST-CRM-ENT-633
      - TST-CRM-ENT-634
      - TST-CRM-ENT-649
      - TST-CRM-ENT-660
      - TST-CRM-ENT-661
      - TST-CRM-ENT-662
      - TST-CRM-ENT-663
      - TST-CRM-ENT-664
      - TST-CRM-ENT-666
      - TST-CRM-ENT-668
      - TST-CRM-ENT-669
      - TST-CRM-ENT-670
      - TST-CRM-ENT-671
      - TST-CRM-ENT-673
      - TST-CRM-ENT-674
      - TST-CRM-ENT-675
      - TST-CRM-ENT-677
      - TST-CRM-ENT-678
      - TST-CRM-ENT-679
      - TST-CRM-ENT-680
      - TST-CRM-ENT-681
      - TST-CRM-ENT-682
      - TST-CRM-ENT-683
      - TST-CRM-ENT-684
      - TST-CRM-ENT-685
      - TST-CRM-ENT-691
      - TST-CRM-ENT-692
      - TST-CRM-ENT-693
      - TST-CRM-ENT-694
      - TST-CRM-ENT-699
      - TST-CRM-ENT-706
      - TST-CRM-ENT-707
      - TST-CRM-ENT-709
      - TST-CRM-ENT-710
      - TST-CRM-ENT-711
      - TST-CRM-ENT-712
      - TST-CRM-ENT-714
      - TST-CRM-ENT-715
      - TST-CRM-ENT-718
      - TST-CRM-ENT-721
      - TST-CRM-ENT-723
      - TST-CRM-ENT-724
      - TST-CRM-ENT-726
      - TST-CRM-ENT-731
      - TST-CRM-ENT-734
      - TST-CRM-ENT-735
      - TST-CRM-ENT-736
      - TST-CRM-ENT-737
      - TST-CRM-ENT-738
      - TST-CRM-ENT-739
      - TST-CRM-ENT-740
      - TST-CRM-ENT-741
      - TST-CRM-ENT-742
      - TST-CRM-ENT-746
      - TST-CRM-ENT-747
      - TST-CRM-ENT-748
      - TST-CRM-ENT-749
      - TST-CRM-ENT-754
      - TST-CRM-ENT-755
      - TST-CRM-ENT-756
      - TST-CRM-ENT-767
      - TST-CRM-ENT-768
      - TST-CRM-ENT-769
      - TST-CRM-ENT-770
      - TST-CRM-ENT-771
      - TST-CRM-ENT-772
      - TST-CRM-ENT-773
    evidence:
      - >-
        services-crm:modules/entities/tests/integration/**;
        modules/entities/tests/e2e/**
      - 'react-console:acceptance/crm/playwright/**; e2e/**'
    kind: coverage-gap
    provenance: documented
    source:
      - >-
        services-crm:modules/entities/tests/integration/**;
        modules/entities/tests/e2e/**
      - 'react-console:acceptance/crm/playwright/**; e2e/**'
    unbound_suites:
      - TST-CRM-ENT-001
      - TST-CRM-ENT-002
      - TST-CRM-ENT-003
      - TST-CRM-ENT-004
      - TST-CRM-ENT-005
      - TST-CRM-ENT-006
      - TST-CRM-ENT-007
      - TST-CRM-ENT-008
      - TST-CRM-ENT-009
      - TST-CRM-ENT-010
      - TST-CRM-ENT-011
      - TST-CRM-ENT-012
      - TST-CRM-ENT-013
      - TST-CRM-ENT-014
      - TST-CRM-ENT-015
      - TST-CRM-ENT-016
      - TST-CRM-ENT-017
      - TST-CRM-ENT-018
      - TST-CRM-ENT-019
      - TST-CRM-ENT-020
      - TST-CRM-ENT-021
      - TST-CRM-ENT-022
      - TST-CRM-ENT-023
      - TST-CRM-ENT-024
      - TST-CRM-ENT-025
      - TST-CRM-ENT-026
      - TST-CRM-ENT-027
      - TST-CRM-ENT-028
      - TST-CRM-ENT-029
      - TST-CRM-ENT-030
      - TST-CRM-ENT-031
      - TST-CRM-ENT-032
      - TST-CRM-ENT-033
      - TST-CRM-ENT-034
      - TST-CRM-ENT-035
      - TST-CRM-ENT-036
      - TST-CRM-ENT-037
      - TST-CRM-ENT-038
      - TST-CRM-ENT-039
      - TST-CRM-ENT-040
      - TST-CRM-ENT-041
      - TST-CRM-ENT-042
      - TST-CRM-ENT-043
      - TST-CRM-ENT-044
      - TST-CRM-ENT-045
      - TST-CRM-ENT-046
      - TST-CRM-ENT-047
      - TST-CRM-ENT-048
      - TST-CRM-ENT-049
      - TST-CRM-ENT-050
      - TST-CRM-ENT-051
      - TST-CRM-ENT-052
      - TST-CRM-ENT-053
      - TST-CRM-ENT-054
      - TST-CRM-ENT-055
      - TST-CRM-ENT-056
      - TST-CRM-ENT-057
      - TST-CRM-ENT-058
      - TST-CRM-ENT-059
      - TST-CRM-ENT-060
      - TST-CRM-ENT-061
      - TST-CRM-ENT-062
      - TST-CRM-ENT-064
      - TST-CRM-ENT-065
      - TST-CRM-ENT-068
      - TST-CRM-ENT-073
      - TST-CRM-ENT-074
      - TST-CRM-ENT-077
      - TST-CRM-ENT-085
      - TST-CRM-ENT-086
      - TST-CRM-ENT-087
      - TST-CRM-ENT-088
      - TST-CRM-ENT-090
      - TST-CRM-ENT-099
      - TST-CRM-ENT-103
      - TST-CRM-ENT-105
      - TST-CRM-ENT-106
      - TST-CRM-ENT-107
      - TST-CRM-ENT-108
      - TST-CRM-ENT-109
      - TST-CRM-ENT-110
      - TST-CRM-ENT-111
      - TST-CRM-ENT-112
      - TST-CRM-ENT-113
      - TST-CRM-ENT-114
      - TST-CRM-ENT-115
      - TST-CRM-ENT-116
      - TST-CRM-ENT-117
      - TST-CRM-ENT-118
      - TST-CRM-ENT-119
      - TST-CRM-ENT-120
      - TST-CRM-ENT-121
      - TST-CRM-ENT-122
      - TST-CRM-ENT-123
      - TST-CRM-ENT-124
      - TST-CRM-ENT-125
      - TST-CRM-ENT-126
      - TST-CRM-ENT-127
      - TST-CRM-ENT-128
      - TST-CRM-ENT-129
      - TST-CRM-ENT-130
      - TST-CRM-ENT-131
      - TST-CRM-ENT-132
      - TST-CRM-ENT-133
      - TST-CRM-ENT-134
      - TST-CRM-ENT-135
      - TST-CRM-ENT-136
      - TST-CRM-ENT-137
      - TST-CRM-ENT-138
      - TST-CRM-ENT-139
      - TST-CRM-ENT-140
      - TST-CRM-ENT-141
      - TST-CRM-ENT-142
      - TST-CRM-ENT-143
      - TST-CRM-ENT-144
      - TST-CRM-ENT-145
      - TST-CRM-ENT-146
      - TST-CRM-ENT-147
      - TST-CRM-ENT-149
      - TST-CRM-ENT-150
      - TST-CRM-ENT-151
      - TST-CRM-ENT-152
      - TST-CRM-ENT-153
      - TST-CRM-ENT-154
      - TST-CRM-ENT-155
      - TST-CRM-ENT-156
      - TST-CRM-ENT-157
      - TST-CRM-ENT-158
      - TST-CRM-ENT-159
      - TST-CRM-ENT-160
      - TST-CRM-ENT-161
      - TST-CRM-ENT-162
      - TST-CRM-ENT-163
      - TST-CRM-ENT-164
      - TST-CRM-ENT-165
      - TST-CRM-ENT-166
      - TST-CRM-ENT-167
      - TST-CRM-ENT-168
      - TST-CRM-ENT-169
      - TST-CRM-ENT-170
      - TST-CRM-ENT-171
      - TST-CRM-ENT-172
      - TST-CRM-ENT-173
      - TST-CRM-ENT-174
      - TST-CRM-ENT-175
      - TST-CRM-ENT-176
      - TST-CRM-ENT-177
      - TST-CRM-ENT-178
      - TST-CRM-ENT-179
      - TST-CRM-ENT-180
      - TST-CRM-ENT-181
      - TST-CRM-ENT-182
      - TST-CRM-ENT-183
      - TST-CRM-ENT-184
      - TST-CRM-ENT-185
      - TST-CRM-ENT-186
      - TST-CRM-ENT-187
      - TST-CRM-ENT-188
      - TST-CRM-ENT-189
      - TST-CRM-ENT-190
      - TST-CRM-ENT-191
      - TST-CRM-ENT-192
      - TST-CRM-ENT-193
      - TST-CRM-ENT-194
      - TST-CRM-ENT-195
      - TST-CRM-ENT-196
      - TST-CRM-ENT-197
      - TST-CRM-ENT-198
      - TST-CRM-ENT-199
      - TST-CRM-ENT-200
      - TST-CRM-ENT-202
      - TST-CRM-ENT-204
      - TST-CRM-ENT-205
      - TST-CRM-ENT-207
      - TST-CRM-ENT-210
      - TST-CRM-ENT-211
      - TST-CRM-ENT-212
      - TST-CRM-ENT-213
      - TST-CRM-ENT-214
      - TST-CRM-ENT-217
      - TST-CRM-ENT-218
      - TST-CRM-ENT-219
      - TST-CRM-ENT-220
      - TST-CRM-ENT-221
      - TST-CRM-ENT-222
      - TST-CRM-ENT-223
      - TST-CRM-ENT-224
      - TST-CRM-ENT-226
      - TST-CRM-ENT-227
      - TST-CRM-ENT-228
      - TST-CRM-ENT-229
      - TST-CRM-ENT-230
      - TST-CRM-ENT-232
      - TST-CRM-ENT-234
      - TST-CRM-ENT-236
      - TST-CRM-ENT-237
      - TST-CRM-ENT-238
      - TST-CRM-ENT-239
      - TST-CRM-ENT-240
      - TST-CRM-ENT-241
      - TST-CRM-ENT-244
      - TST-CRM-ENT-247
      - TST-CRM-ENT-249
      - TST-CRM-ENT-251
      - TST-CRM-ENT-252
      - TST-CRM-ENT-253
      - TST-CRM-ENT-254
      - TST-CRM-ENT-255
      - TST-CRM-ENT-257
      - TST-CRM-ENT-258
      - TST-CRM-ENT-259
      - TST-CRM-ENT-261
      - TST-CRM-ENT-262
      - TST-CRM-ENT-263
      - TST-CRM-ENT-265
      - TST-CRM-ENT-269
      - TST-CRM-ENT-271
      - TST-CRM-ENT-273
      - TST-CRM-ENT-274
      - TST-CRM-ENT-275
      - TST-CRM-ENT-276
      - TST-CRM-ENT-277
      - TST-CRM-ENT-278
      - TST-CRM-ENT-279
      - TST-CRM-ENT-280
      - TST-CRM-ENT-281
      - TST-CRM-ENT-282
      - TST-CRM-ENT-283
      - TST-CRM-ENT-284
      - TST-CRM-ENT-285
      - TST-CRM-ENT-286
      - TST-CRM-ENT-287
      - TST-CRM-ENT-288
      - TST-CRM-ENT-289
      - TST-CRM-ENT-290
      - TST-CRM-ENT-291
      - TST-CRM-ENT-292
      - TST-CRM-ENT-293
      - TST-CRM-ENT-294
      - TST-CRM-ENT-295
      - TST-CRM-ENT-296
      - TST-CRM-ENT-297
      - TST-CRM-ENT-298
      - TST-CRM-ENT-299
      - TST-CRM-ENT-300
      - TST-CRM-ENT-301
      - TST-CRM-ENT-302
      - TST-CRM-ENT-303
      - TST-CRM-ENT-304
      - TST-CRM-ENT-305
      - TST-CRM-ENT-306
      - TST-CRM-ENT-307
      - TST-CRM-ENT-308
      - TST-CRM-ENT-309
      - TST-CRM-ENT-310
      - TST-CRM-ENT-311
      - TST-CRM-ENT-312
      - TST-CRM-ENT-313
      - TST-CRM-ENT-314
      - TST-CRM-ENT-315
      - TST-CRM-ENT-316
      - TST-CRM-ENT-317
      - TST-CRM-ENT-318
      - TST-CRM-ENT-319
      - TST-CRM-ENT-320
      - TST-CRM-ENT-321
      - TST-CRM-ENT-322
      - TST-CRM-ENT-323
      - TST-CRM-ENT-324
      - TST-CRM-ENT-325
      - TST-CRM-ENT-326
      - TST-CRM-ENT-327
      - TST-CRM-ENT-328
      - TST-CRM-ENT-329
      - TST-CRM-ENT-330
      - TST-CRM-ENT-331
      - TST-CRM-ENT-332
      - TST-CRM-ENT-333
      - TST-CRM-ENT-334
      - TST-CRM-ENT-335
      - TST-CRM-ENT-336
      - TST-CRM-ENT-337
      - TST-CRM-ENT-338
      - TST-CRM-ENT-339
      - TST-CRM-ENT-340
      - TST-CRM-ENT-341
      - TST-CRM-ENT-342
      - TST-CRM-ENT-343
      - TST-CRM-ENT-344
      - TST-CRM-ENT-345
      - TST-CRM-ENT-346
      - TST-CRM-ENT-347
      - TST-CRM-ENT-348
      - TST-CRM-ENT-349
      - TST-CRM-ENT-350
      - TST-CRM-ENT-351
      - TST-CRM-ENT-352
      - TST-CRM-ENT-353
      - TST-CRM-ENT-354
      - TST-CRM-ENT-355
      - TST-CRM-ENT-356
      - TST-CRM-ENT-357
      - TST-CRM-ENT-358
      - TST-CRM-ENT-359
      - TST-CRM-ENT-360
      - TST-CRM-ENT-361
      - TST-CRM-ENT-362
      - TST-CRM-ENT-363
      - TST-CRM-ENT-364
      - TST-CRM-ENT-365
      - TST-CRM-ENT-366
      - TST-CRM-ENT-367
      - TST-CRM-ENT-368
      - TST-CRM-ENT-369
      - TST-CRM-ENT-370
      - TST-CRM-ENT-371
      - TST-CRM-ENT-372
      - TST-CRM-ENT-373
      - TST-CRM-ENT-374
      - TST-CRM-ENT-375
      - TST-CRM-ENT-376
      - TST-CRM-ENT-377
      - TST-CRM-ENT-378
      - TST-CRM-ENT-379
      - TST-CRM-ENT-380
      - TST-CRM-ENT-381
      - TST-CRM-ENT-382
      - TST-CRM-ENT-383
      - TST-CRM-ENT-384
      - TST-CRM-ENT-385
      - TST-CRM-ENT-386
      - TST-CRM-ENT-387
      - TST-CRM-ENT-388
      - TST-CRM-ENT-389
      - TST-CRM-ENT-390
      - TST-CRM-ENT-391
      - TST-CRM-ENT-392
      - TST-CRM-ENT-393
      - TST-CRM-ENT-394
      - TST-CRM-ENT-395
      - TST-CRM-ENT-396
      - TST-CRM-ENT-397
      - TST-CRM-ENT-398
      - TST-CRM-ENT-399
      - TST-CRM-ENT-400
      - TST-CRM-ENT-401
      - TST-CRM-ENT-402
      - TST-CRM-ENT-403
      - TST-CRM-ENT-404
      - TST-CRM-ENT-405
      - TST-CRM-ENT-406
      - TST-CRM-ENT-407
      - TST-CRM-ENT-408
      - TST-CRM-ENT-409
      - TST-CRM-ENT-410
      - TST-CRM-ENT-411
      - TST-CRM-ENT-412
      - TST-CRM-ENT-413
      - TST-CRM-ENT-414
      - TST-CRM-ENT-415
      - TST-CRM-ENT-416
      - TST-CRM-ENT-417
      - TST-CRM-ENT-418
      - TST-CRM-ENT-419
      - TST-CRM-ENT-420
      - TST-CRM-ENT-421
      - TST-CRM-ENT-422
      - TST-CRM-ENT-423
      - TST-CRM-ENT-424
      - TST-CRM-ENT-425
      - TST-CRM-ENT-426
      - TST-CRM-ENT-427
      - TST-CRM-ENT-428
      - TST-CRM-ENT-429
      - TST-CRM-ENT-430
      - TST-CRM-ENT-431
      - TST-CRM-ENT-432
      - TST-CRM-ENT-433
      - TST-CRM-ENT-434
      - TST-CRM-ENT-435
      - TST-CRM-ENT-436
      - TST-CRM-ENT-437
      - TST-CRM-ENT-438
      - TST-CRM-ENT-439
      - TST-CRM-ENT-440
      - TST-CRM-ENT-441
      - TST-CRM-ENT-442
      - TST-CRM-ENT-443
      - TST-CRM-ENT-444
      - TST-CRM-ENT-445
      - TST-CRM-ENT-446
      - TST-CRM-ENT-447
      - TST-CRM-ENT-448
      - TST-CRM-ENT-449
      - TST-CRM-ENT-451
      - TST-CRM-ENT-455
      - TST-CRM-ENT-456
      - TST-CRM-ENT-457
      - TST-CRM-ENT-459
      - TST-CRM-ENT-462
      - TST-CRM-ENT-463
      - TST-CRM-ENT-464
      - TST-CRM-ENT-465
      - TST-CRM-ENT-468
      - TST-CRM-ENT-471
      - TST-CRM-ENT-472
      - TST-CRM-ENT-473
      - TST-CRM-ENT-474
      - TST-CRM-ENT-475
      - TST-CRM-ENT-477
      - TST-CRM-ENT-478
      - TST-CRM-ENT-479
      - TST-CRM-ENT-481
      - TST-CRM-ENT-482
      - TST-CRM-ENT-483
      - TST-CRM-ENT-486
      - TST-CRM-ENT-487
      - TST-CRM-ENT-488
      - TST-CRM-ENT-489
      - TST-CRM-ENT-490
      - TST-CRM-ENT-491
      - TST-CRM-ENT-492
      - TST-CRM-ENT-493
      - TST-CRM-ENT-494
      - TST-CRM-ENT-495
      - TST-CRM-ENT-496
      - TST-CRM-ENT-497
      - TST-CRM-ENT-498
      - TST-CRM-ENT-499
      - TST-CRM-ENT-500
      - TST-CRM-ENT-501
      - TST-CRM-ENT-502
      - TST-CRM-ENT-503
      - TST-CRM-ENT-504
      - TST-CRM-ENT-505
      - TST-CRM-ENT-506
      - TST-CRM-ENT-507
      - TST-CRM-ENT-508
      - TST-CRM-ENT-509
      - TST-CRM-ENT-510
      - TST-CRM-ENT-511
      - TST-CRM-ENT-512
      - TST-CRM-ENT-513
      - TST-CRM-ENT-514
      - TST-CRM-ENT-515
      - TST-CRM-ENT-516
      - TST-CRM-ENT-517
      - TST-CRM-ENT-518
      - TST-CRM-ENT-519
      - TST-CRM-ENT-520
      - TST-CRM-ENT-521
      - TST-CRM-ENT-522
      - TST-CRM-ENT-523
      - TST-CRM-ENT-524
      - TST-CRM-ENT-525
      - TST-CRM-ENT-526
      - TST-CRM-ENT-527
      - TST-CRM-ENT-528
      - TST-CRM-ENT-529
      - TST-CRM-ENT-530
      - TST-CRM-ENT-531
      - TST-CRM-ENT-532
      - TST-CRM-ENT-533
      - TST-CRM-ENT-534
      - TST-CRM-ENT-535
      - TST-CRM-ENT-536
      - TST-CRM-ENT-537
      - TST-CRM-ENT-538
      - TST-CRM-ENT-539
      - TST-CRM-ENT-540
      - TST-CRM-ENT-541
      - TST-CRM-ENT-542
      - TST-CRM-ENT-543
      - TST-CRM-ENT-544
      - TST-CRM-ENT-545
      - TST-CRM-ENT-546
      - TST-CRM-ENT-547
      - TST-CRM-ENT-548
      - TST-CRM-ENT-549
      - TST-CRM-ENT-550
      - TST-CRM-ENT-551
      - TST-CRM-ENT-552
      - TST-CRM-ENT-553
      - TST-CRM-ENT-554
      - TST-CRM-ENT-555
      - TST-CRM-ENT-556
      - TST-CRM-ENT-557
      - TST-CRM-ENT-558
      - TST-CRM-ENT-559
      - TST-CRM-ENT-560
      - TST-CRM-ENT-561
      - TST-CRM-ENT-562
      - TST-CRM-ENT-563
      - TST-CRM-ENT-564
      - TST-CRM-ENT-565
      - TST-CRM-ENT-566
      - TST-CRM-ENT-567
      - TST-CRM-ENT-568
      - TST-CRM-ENT-569
      - TST-CRM-ENT-570
      - TST-CRM-ENT-571
      - TST-CRM-ENT-572
      - TST-CRM-ENT-573
      - TST-CRM-ENT-574
      - TST-CRM-ENT-575
      - TST-CRM-ENT-576
      - TST-CRM-ENT-577
      - TST-CRM-ENT-578
      - TST-CRM-ENT-579
      - TST-CRM-ENT-580
      - TST-CRM-ENT-581
      - TST-CRM-ENT-582
      - TST-CRM-ENT-583
      - TST-CRM-ENT-584
      - TST-CRM-ENT-585
      - TST-CRM-ENT-586
      - TST-CRM-ENT-587
      - TST-CRM-ENT-588
      - TST-CRM-ENT-589
      - TST-CRM-ENT-590
      - TST-CRM-ENT-591
      - TST-CRM-ENT-592
      - TST-CRM-ENT-593
      - TST-CRM-ENT-594
      - TST-CRM-ENT-595
      - TST-CRM-ENT-596
      - TST-CRM-ENT-597
      - TST-CRM-ENT-598
      - TST-CRM-ENT-599
      - TST-CRM-ENT-600
      - TST-CRM-ENT-601
      - TST-CRM-ENT-602
      - TST-CRM-ENT-603
      - TST-CRM-ENT-604
      - TST-CRM-ENT-605
      - TST-CRM-ENT-606
      - TST-CRM-ENT-607
      - TST-CRM-ENT-608
      - TST-CRM-ENT-609
      - TST-CRM-ENT-610
      - TST-CRM-ENT-611
      - TST-CRM-ENT-612
      - TST-CRM-ENT-613
      - TST-CRM-ENT-614
      - TST-CRM-ENT-615
      - TST-CRM-ENT-616
      - TST-CRM-ENT-617
      - TST-CRM-ENT-618
      - TST-CRM-ENT-619
      - TST-CRM-ENT-620
      - TST-CRM-ENT-621
      - TST-CRM-ENT-622
      - TST-CRM-ENT-623
      - TST-CRM-ENT-624
      - TST-CRM-ENT-625
      - TST-CRM-ENT-626
      - TST-CRM-ENT-627
      - TST-CRM-ENT-628
      - TST-CRM-ENT-629
      - TST-CRM-ENT-630
      - TST-CRM-ENT-631
      - TST-CRM-ENT-632
      - TST-CRM-ENT-633
      - TST-CRM-ENT-634
      - TST-CRM-ENT-649
      - TST-CRM-ENT-660
      - TST-CRM-ENT-661
      - TST-CRM-ENT-662
      - TST-CRM-ENT-663
      - TST-CRM-ENT-664
      - TST-CRM-ENT-666
      - TST-CRM-ENT-668
      - TST-CRM-ENT-669
      - TST-CRM-ENT-670
      - TST-CRM-ENT-671
      - TST-CRM-ENT-673
      - TST-CRM-ENT-674
      - TST-CRM-ENT-675
      - TST-CRM-ENT-677
      - TST-CRM-ENT-678
      - TST-CRM-ENT-679
      - TST-CRM-ENT-680
      - TST-CRM-ENT-681
      - TST-CRM-ENT-682
      - TST-CRM-ENT-683
      - TST-CRM-ENT-684
      - TST-CRM-ENT-685
      - TST-CRM-ENT-691
      - TST-CRM-ENT-692
      - TST-CRM-ENT-693
      - TST-CRM-ENT-694
      - TST-CRM-ENT-699
      - TST-CRM-ENT-706
      - TST-CRM-ENT-707
      - TST-CRM-ENT-709
      - TST-CRM-ENT-710
      - TST-CRM-ENT-711
      - TST-CRM-ENT-712
      - TST-CRM-ENT-714
      - TST-CRM-ENT-715
      - TST-CRM-ENT-718
      - TST-CRM-ENT-721
      - TST-CRM-ENT-723
      - TST-CRM-ENT-724
      - TST-CRM-ENT-726
      - TST-CRM-ENT-731
      - TST-CRM-ENT-734
      - TST-CRM-ENT-735
      - TST-CRM-ENT-736
      - TST-CRM-ENT-737
      - TST-CRM-ENT-738
      - TST-CRM-ENT-739
      - TST-CRM-ENT-740
      - TST-CRM-ENT-741
      - TST-CRM-ENT-742
      - TST-CRM-ENT-746
      - TST-CRM-ENT-747
      - TST-CRM-ENT-748
      - TST-CRM-ENT-749
      - TST-CRM-ENT-754
      - TST-CRM-ENT-755
      - TST-CRM-ENT-756
      - TST-CRM-ENT-767
      - TST-CRM-ENT-768
      - TST-CRM-ENT-769
      - TST-CRM-ENT-770
      - TST-CRM-ENT-771
      - TST-CRM-ENT-772
      - TST-CRM-ENT-773
  - id: FND-CRM-ENT-069
    severity: medium
    statement: >-
      The existing archive journey combines organization restoration with a
      console history step that the current organization screen cannot provide.
      Its browser binding proves only the steps it actually performs.
    affects:
      - ATS-CRM-ENT-013-10
      - AS-JNY-CRM-ENT-003-03
    evidence: &ref_19
      - >-
        react-console:acceptance/crm/playwright/journeys/organizations/CRM-ACC-0147.spec.ts#CRM-ACC-0147;
        react-console:acceptance/crm/playwright/journeys/organizations/CRM-ACC-0116.spec.ts#CRM-ACC-0116
      - >-
        rhythm-v2-docs:specs/crm/entities/design/screens/SCR-CRM-ENT-007-organization-360.md
    kind: inconsistency
    provenance: observed
    source: *ref_19
    note: >-
      Composite journey scenarios retain their original anchors; bindings are
      contributions, not a claim that one file executes the entire journey.
  - id: FND-CRM-ENT-070
    severity: medium
    statement: >-
      The organization correction interaction is specified during this
      back-fill; its concurrent hierarchy fixture still has no executable
      binding.
    affects:
      - ATS-CRM-ENT-004
      - CAP-CRM-ENT-004
      - CAP-CRM-ENT-002
      - ATS-CRM-ENT-004-24
    evidence: &ref_20
      - >-
        rhythm-v2-docs:specs/crm/entities/planning/capabilities/CAP-CRM-ENT-004-change-a-record-without-losing-anyone-s-edit.md:related
    kind: coverage-gap
    provenance: documented
    source: *ref_20
    related: CAP-CRM-ENT-002
    resolution:
      specified_by: ATS-CRM-ENT-004-24
      executable_state: unbound
    unbound_scenarios:
      - ATS-CRM-ENT-004-24
control_gap_evidence:
  - finding: FND-CRM-ENT-049
    source_sha:
      services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
      react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
      rhythm-v2-docs: 74bec48899048f6472ba876a4c2f9da463bd071f
    controls:
      - TC-DAT-001
    provenance: observed
    source:
      - 'services-crm:aws/crm.service.ts:crmService.dataClassification'
      - 'services-crm:modules/entities/db/contacts.table.ts'
      - 'services-crm:docs/record-history.md#Retention'
  - finding: FND-CRM-ENT-050
    source_sha:
      services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
      react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
      rhythm-v2-docs: 74bec48899048f6472ba876a4c2f9da463bd071f
    controls:
      - TC-DAT-003
      - TC-DAT-004
    provenance: documented
    source:
      - 'services-crm:docs/record-history.md#Retention'
  - finding: FND-CRM-ENT-051
    source_sha:
      services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
      react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
      rhythm-v2-docs: 74bec48899048f6472ba876a4c2f9da463bd071f
    controls:
      - TC-PI-002
    provenance: observed
    source:
      - >-
        services-crm:modules/entities/services/persistence/organizations.ts:createOrganization,insertOrganization
      - 'rhythm-v2-docs:specs/crm/entities/FINDINGS.md#FND-CRM-ENT-036'
  - finding: FND-CRM-ENT-052
    source_sha:
      services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
      react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
      rhythm-v2-docs: 74bec48899048f6472ba876a4c2f9da463bd071f
    controls:
      - TC-AZ-001
      - TC-LOG-001
      - TC-LOG-002
      - TC-PI-005
    provenance: observed
    source:
      - >-
        services-crm:modules/entities/aws/api/contact-types.routes.ts:contactTypesRoutes
      - >-
        services-crm:modules/entities/services/persistence/contact-types.ts:updateContactType,deleteContactType
      - 'rhythm-v2-docs:specs/crm/entities/FINDINGS.md#FND-CRM-ENT-014'
continuation_findings:
  - id: FND-CRM-ENT-075
    kind: coverage-gap
    affected:
      - ATS-CRM-ENT-001
      - ATS-CRM-ENT-002
      - ATS-CRM-ENT-003
      - ATS-CRM-ENT-004
      - ATS-CRM-ENT-005
      - ATS-CRM-ENT-006
      - ATS-CRM-ENT-007
      - ATS-CRM-ENT-008
      - ATS-CRM-ENT-009
      - ATS-CRM-ENT-010
      - ATS-CRM-ENT-011
      - ATS-CRM-ENT-012
      - ATS-CRM-ENT-013
      - ATS-CRM-ENT-014
      - ATS-CRM-ENT-015
      - ATS-CRM-ENT-016
      - ATS-CRM-ENT-017
      - ATS-CRM-ENT-018
      - ATS-CRM-ENT-019
    provenance: observed
    source: >-
      rhythm-v2-docs:specs/CONVENTIONS.md#9.10;
      rhythm-v2-docs:tools/check-corpus.mjs
    resolution: >-
      Retain evidence in frontmatter and label its explanatory body Source
      Evidence until a separate tooling change reconciles the exact required
      heading.
  - id: FND-CRM-ENT-076
    kind: coverage-gap
    affected:
      - FAS-CRM-ENT-07-05
      - TST-CRM-ENT-753
    provenance: test
    source: >-
      services-crm:modules/entities/tests/integration/services/persistence/record-saves.no-op.integration.spec.js
    resolution: >-
      Keep the feature binding partial; specify and implement organization
      revision-absence and stale-save assertions in a separate source-repository
      change.
narrative_authoring_findings:
  - id: FND-CRM-ENT-077
    severity: medium
    kind: undocumented
    affects:
      - CON-CRM-ENT-034
      - MOD-CRM-ENT
    provenance: observed
    source:
      - 'rhythm-v2-docs:specs/platform/metadata/planning/concepts/'
      - >-
        rhythm-v2-docs:specs/platform/security/planning/concepts/CON-PFM-SEC-003-user-account.md
      - >-
        rhythm-v2-docs:specs/platform/notifications/planning/concepts/CON-PFM-NOT-004-communication-template.md
    note: >-
      Platform has custom-field, form-and-layout, user-account and
      communication-template concepts. Its metadata concept catalogue lacks a
      distinct file or managed-asset concept. The job limits writes to Entities,
      so the owning-module finding is deferred instead of crossing that
      boundary.
  - id: FND-CRM-ENT-078
    severity: medium
    kind: inconsistency
    affects:
      - MOD-CRM-ENT
      - FEAT-CRM-ENT-05
      - FEAT-CRM-ENT-06
      - JNY-CRM-ENT-001
      - JNY-CRM-ENT-002
      - JNY-CRM-ENT-003
      - JNY-CRM-ENT-004
      - JNY-CRM-ENT-005
    provenance: documented
    source:
      - >-
        rhythm-v2-docs:specs/EXPLANATORY-STANDARD.md#6. The Sections, Kind by
        Kind
      - 'rhythm-v2-docs:tools/check-corpus.mjs:EXPLANATORY_SECTIONS'
      - >-
        rhythm-v2-docs:specs/crm/entities/reports/NARRATIVE-EVIDENCE-2026-10-23.md
      - >-
        services-crm:docs/entities-api.md#Not yet under the complete-payload
        rule
    note: >-
      The checker permits only one feature owner per concept although Andrew
      requests shared concepts[] references. Shared use is represented with
      related_concepts[] until tooling permits the requested shape. Its
      optional-heading order conflicts with the standard; journey alternates are
      included in Story without optional headings. Existing planning source_sha
      values remain the older approved snapshots because this job forbids
      changing them; narrative verification uses the supplied current pins.
      Complete-payload replacement, scheduler activation, broader safe delete,
      notice delivery and proof gaps remain unresolved under existing findings,
      not silently approved by prose.
---

# Findings and Open Questions: CRM → Entities

## Findings

| id | severity | statement | affects | evidence | kind |
|---|---|---|---|---|---|
| `FND-CRM-ENT-001` | medium | The original console registry names absent paths and omits editor, affiliation, configuration and browser-proof sources. This examination corrects the registry scope. The earlier scope cannot support reliable change detection. | `MOD-CRM-ENT`, `CAP-CRM-ENT-009`, `CAP-CRM-ENT-017`, `CAP-CRM-ENT-018` | Structured evidence | inconsistency |
| `FND-CRM-ENT-002` | low | The seed journeys report automation as not started for 165 of 167 entries, although browser specifications exist for their journey identifiers. Bindings use the specifications rather than the seed automation flags. | `JNY-CRM-ENT-001`, `JNY-CRM-ENT-002`, `JNY-CRM-ENT-003`, `JNY-CRM-ENT-004`, `JNY-CRM-ENT-005` | Structured evidence | inconsistency |
| `FND-CRM-ENT-003` | medium | The seed inventory reflects an earlier service revision. Current milestone decisions change omitted-affiliation handling, dated relationships, contact-point sharing, computed fields, spouse links, patch versions, lock actions, seasonal addresses and organization history. Capability sources identify the current contract instead of adopting the seed statements unchanged. | `CAP-CRM-ENT-001`, `CAP-CRM-ENT-003`, `CAP-CRM-ENT-004`, `CAP-CRM-ENT-005`, `CAP-CRM-ENT-006`, `CAP-CRM-ENT-009`, `CAP-CRM-ENT-015`, `CAP-CRM-ENT-016`, `CAP-CRM-ENT-017` | Structured evidence | inconsistency |
| `FND-CRM-ENT-004` | high | The recorded complete-payload replacement contract differs from the implemented replacement behavior. Replacement clears omitted editable scalar values and owned collections, subject to the explicit affiliation and custom-value exceptions. the recorded contract question asks Andrew to resolve the contract. | Affected business rule, `CAP-CRM-ENT-004`, Affected business rule | Structured evidence | inconsistency |
| `FND-CRM-ENT-005` | low | The milestone wording conflates contact types with organizations-only address and phone types. The service rejects organizations-only contact-point types on a contact. Contact types have no applicability flag. | Affected business rule | Structured evidence | inconsistency |
| `FND-CRM-ENT-006` | medium | Endpoint deletion supports Platform owner-deletion policy behind a switch that defaults to off. Without activation, deletion does not apply that policy to associated custom records. | Affected business rule, `CAP-CRM-ENT-014` | Structured evidence | debt |
| `FND-CRM-ENT-007` | medium | Scheduled affiliation-date reconciliation defaults to disabled. Saves and requested reconciliation runs update date-sensitive compliance and contact-point links; the automatic-role step runs independently. The milestone’s scheduled behavior requires deployment activation. | Affected business rule, `CAP-CRM-ENT-010` | Structured evidence | debt |
| `FND-CRM-ENT-008` | medium | Primary selection during a save and scheduled start-day reconciliation assign automatic roles differently. The save excludes a nonprimary affiliation, while reconciliation can assign roles to a due nonprimary affiliation. Product intent for this difference remains unresolved. | Affected business rule, Affected business rule, `CAP-CRM-ENT-011` | Structured evidence | inconsistency |
| `FND-CRM-ENT-009` | low | The older affiliation design describes role restrictions as picker filtering. The later milestone decision and persistence validation enforce the restriction when saving. | Affected business rule | Structured evidence | inconsistency |
| `FND-CRM-ENT-010` | medium | The approved warning before removing a shared organization address has no bound proof. The scoped service does not return the affected-person count, and the planned organization editor remains outside this milestone. | Affected business rule, `CAP-CRM-ENT-006` | Structured evidence | defect |
| `FND-CRM-ENT-011` | medium | Contact-role deletion checks holders and compliance rules. The notification-role array does not supply a reference constraint, so a role used only for notification can be deleted despite the plan’s protection requirement. | Affected business rule | Structured evidence | defect |
| `FND-CRM-ENT-012` | low | The browser specification asserts that deactivation retains the affiliation-type dataset column and adds an inactive label. Execution of a query saved before deactivation remains unproved by that binding and belongs to Platform. | Affected business rule, `CAP-CRM-ENT-017` | Structured evidence | debt |
| `FND-CRM-ENT-013` | low | The catalogue publishes six configuration bulk permissions without corresponding route requirements. Their publication is evidence of declared keys, not evidence of supported bulk operations. | `CAP-CRM-ENT-017`, `CAP-CRM-ENT-018` | Structured evidence | debt |
| `FND-CRM-ENT-014` | low | Classification records can carry locks without dedicated lock-release routes. A full lock on those types therefore has no supported API unlock action. | Affected business rule | Structured evidence | debt |
| `FND-CRM-ENT-015` | low | The pinned routes contain 53 distinct literal operation identifiers and 91 identifiers after factory expansion. The E2E directory contains 25 specification files and one helper. These totals differ from the brief’s stated denominators. | `MOD-CRM-ENT` | Structured evidence | inconsistency |
| `FND-CRM-ENT-016` | low | Classification routes are declared with Entities but execute through the configuration-types function. Resolved by the recorded contract question (decided 2026-10-22: B): Entities owns them; the function boundary is an implementation detail for Design to record. | `CAP-CRM-ENT-017`, `CAP-CRM-ENT-018` | Structured evidence | undocumented |
| `FND-CRM-ENT-017` | low | The catalogue comment says CRM application access is not evaluated. The E2E specification asserts dispatcher refusal when application-access enforcement is enabled. | Affected business rule | Structured evidence | inconsistency |
| `FND-CRM-ENT-018` | low | Unknown communication-type identifiers remain stored as submitted. The persistence source explicitly records the missing validation as debt. | Affected business rule | Structured evidence | debt |
| `FND-CRM-ENT-019` | low | Code comments name D-20 and D-32, but the scoped CRM milestone records do not contain those decisions. The affected rules retain code evidence without treating those comments as confirmed product records. | Affected business rule, Affected business rule, Affected business rule, Affected business rule | Structured evidence | undocumented |
| `FND-CRM-ENT-020` | low | The scoped decisions E-01 and E-05 provide a defect identifier and option letter without the option’s meaning. They cannot establish a rule from the records available here. | `MOD-CRM-ENT` | Structured evidence | undocumented |
| `FND-CRM-ENT-021` | low | Contact metadata marks civic-district values read-only, while the write schema derives fields from the table. No scoped test establishes whether writes are refused. This is a schema-based inference and needs direct API proof. | `CAP-CRM-ENT-001` | Structured evidence | undocumented |
| `FND-CRM-ENT-022` | medium | The cited refresh journey expects discarded unsaved work rather than restored-session recovery. The editor preserves a restored draft’s base version, but a dedicated browser scenario must prove the session-refresh contract. | Affected business rule | Structured evidence | debt |
| `FND-CRM-ENT-023` | medium | The service caps six name components at 200 characters. Credentials, salutation and maiden name lack the same service limit. The broad milestone wording needs a decision about those fields. | Affected business rule | Structured evidence | inconsistency |
| `FND-CRM-ENT-024` | medium | Compliance-template failure compensation restores organization-type content through another update. The version advances, and a concurrent edit can prevent compensation. The refusal message’s claim that nothing changed is too broad. | Affected business rule | Structured evidence | inconsistency |
| `FND-CRM-ENT-025` | medium | Organization-type deletion commits before compliance-template archival. A later archival failure is logged without restoring the deleted type, leaving a possible template with no live owner. | Affected business rule | Structured evidence | debt |
| `FND-CRM-ENT-026` | medium | Some browser specifications use API fallbacks or soft assertions while recording screen defects. A binding proves the existence of its assertions; it does not prove the screen path succeeds or that the test passed at these commits. | `MOD-CRM-ENT`, `JNY-CRM-ENT-002`, `JNY-CRM-ENT-004` | Structured evidence | debt |
| `FND-CRM-ENT-027` | low | Compliance count bounds lack whole-number, nonnegative and ordering checks. Cleaning drops a minimum-only rule when its minimum is zero. These constraints are implementation observations awaiting product policy. | Affected business rule | Structured evidence | undocumented |
| `FND-CRM-ENT-028` | medium | M2-D12 confirms automatic roles on a returning affiliation, but the acceptance scenario has no existing binding. The rule now cites the decision instead of an unsupported inference. | Affected business rule | Structured evidence | debt |
| `FND-CRM-ENT-029` | medium | Organization creation delegates duplicate blocking to Data Quality. The published override contract requires its sensitive permission and a reason. No organization-specific bound scenario in scope proves the complete refusal and audit behavior. | Affected business rule | Structured evidence | debt |

| `FND-CRM-ENT-030` | low | The examination report had no recognized form in the checker when the examination ran; the checker now validates `reports/EXAMINATION-<date>.md` (applied at landing on 2026-10-22). Resolved. | `MOD-CRM-ENT` | Structured evidence | debt |
| `FND-CRM-ENT-031` | medium | The scheduled affiliation-date reconciliation is switched on in development (since 2026-10-21) and off in production, and owner-deletion rules are likewise on in development only. The approved rule, two earlier findings and several code comments describe both as off everywhere, so development behaviour no longer predicts production behaviour. | `BR-CAP-CRM-ENT-010-08`, `BR-CAP-CRM-ENT-014-07`, `WF-CRM-ENT-006`, `WF-CRM-ENT-009`, `ADR-CRM-ENT-014` | Structured evidence | inconsistency |
| `FND-CRM-ENT-032` | medium | Out-of-compliance attention items are published only when a deploy flag turns attention publishing on, and no environment sets it, so the approved attention behaviour does not reach Platform anywhere today. | `BR-CAP-CRM-ENT-012-14`, `WF-CRM-ENT-004`, `ADR-CRM-ENT-014` | Structured evidence | debt |
| `FND-CRM-ENT-033` | medium | The attention item gives the organization's last-modified time as the moment noncompliance began; no stored value records that moment, so an edit after the transition moves it. | `BR-CAP-CRM-ENT-012-14`, `DOM-CRM-ENT-002` | Structured evidence | inconsistency |
| `FND-CRM-ENT-034` | medium | Entities refuses a save that changes nothing when its version is stale, as the approved planning rule says, while the Platform record-write standard says such a save must not be refused, because it is commonly the retry of a committed edit. | `BR-CAP-CRM-ENT-004-02`, `ADR-CRM-ENT-004`, `WF-CRM-ENT-002` | Structured evidence | inconsistency |
| `FND-CRM-ENT-035` | high | Ties are ended and removed through the contact's general save (an explicit affiliations list, the Organization command and the console's departure answer), while the Platform record-write standard requires ending and removing a relationship to be explicit operations with their own permission and audit, and a general save never to end one. | `BR-CAP-CRM-ENT-009-03`, `BR-CAP-CRM-ENT-009-11`, `BR-CAP-CRM-ENT-009-12`, `ADR-CRM-ENT-002`, `WF-CRM-ENT-002` | Structured evidence | inconsistency |
| `FND-CRM-ENT-036` | medium | Organization creation has no retry recognition: a repeated create with the same client id is refused as a taken id and one without an id creates a second organization, unlike contacts and unlike the record-write standard's create rule. | `CAP-CRM-ENT-002`, `WF-CRM-ENT-003` | Structured evidence | defect |
| `FND-CRM-ENT-037` | low | On a live console, Organization 360 hides the approved design's actions that have no backend yet (Edit Organization, Add Contact, Assign Role, hierarchy actions and others), whereas the UI change approval rule asks for such controls to stay visible and inert with a clear message. | `SCR-CRM-ENT-007` | Structured evidence | inconsistency |
| `FND-CRM-ENT-038` | medium | The product-area registry still registers a Configuration Types module over the configuration-types source path, although the recorded decision keeps every classification catalogue in Entities and that source module only hosts Entities' routes. | `MOD-CRM-ENT`, `SVC-CRM-ENT-configuration-types`, `ADR-CRM-ENT-001` | Structured evidence | inconsistency |
| `FND-CRM-ENT-039` | low | A dry run of the date reconciliation executes the real pass inside a transaction it rolls back. A compliance recalculation in it that would notify writes its request object to Platform storage before the rollback, leaving an orphan object, and the run holds the row and advisory locks a real run would. This is inferred from the code and not proved by a test. | `BR-CAP-CRM-ENT-010-07`, `WF-CRM-ENT-006` | Structured evidence | undocumented |
| `FND-CRM-ENT-040` | low | No CRM architecture record states, operation by operation, whether Entities operations are published to Submissions; the Service Contracts record every operation as not published with a reason, which the submission-compatible operations standard asks the domain's own record to carry. | `SVC-CRM-ENT-entities`, `SVC-CRM-ENT-configuration-types`, `ADR-CRM-ENT-015` | Structured evidence | undocumented |
| `FND-CRM-ENT-041` | low | The console resolves disconnected addresses and phone numbers by rewriting the contact's collection through its general patch; the service's dedicated keep, relink and remove actions, with their own refusals, are used by no screen. | `BR-CAP-CRM-ENT-006-08`, `WF-CRM-ENT-010`, `SCR-CRM-ENT-003` | Structured evidence | inconsistency |
| `FND-CRM-ENT-042` | medium | Organization 360 offers no entry to the organization's version history, though the history operations exist and a journey step inspects an organization's history on that screen. | `JNY-CRM-ENT-003`, `CAP-CRM-ENT-016`, `SCR-CRM-ENT-007` | Structured evidence | defect |

| `FND-CRM-ENT-043` | medium | An absent notification-role selection includes all currently affiliated contacts, including those without a role, but an explicitly empty selection includes none. The console can save an empty selection. The approved rule says no selected roles includes all current affiliates, so the product must choose a consistent empty-selection meaning. | `BR-CAP-CRM-ENT-012-08` | Structured evidence | inconsistency |
| `FND-CRM-ENT-044` | medium | The date pass bounds role and default-link settlement before compliance scanning. Exhausting that bound does not prevent the date watermark advancing when compliance scanning finishes. Pending default links can therefore wait until a later workspace day rather than the next same-day pass. This is an inference from control flow and has no bound backlog test. | `BR-CAP-CRM-ENT-010-05`, `BR-CAP-CRM-ENT-010-06`, `WF-CRM-ENT-006` | Structured evidence | defect |
| `FND-CRM-ENT-045` | medium | Organization-type replacement advances the version even when the content is unchanged. Its compensation also advances the version, but classification records have no record-revision capture. The general record-write standard requires no-op preservation; a consistent classification policy and regression proof remain open. | `CAP-CRM-ENT-018`, `WF-CRM-ENT-008` | Structured evidence | inconsistency |
| `FND-CRM-ENT-046` | low | The draft extended dedicated lock-action permission and audit guarantees to ordinary role saves. The pinned implementation and approved rule explicitly permit ordinary contact-role delete-lock changes. Resolved: the examination corrects the design; this is not a planning disagreement. | `BR-CAP-CRM-ENT-015-04`, `STATE-CRM-ENT-007` | Structured evidence | inconsistency |
| `FND-CRM-ENT-047` | low | A compliance run marked failed is terminal for the runner. Redriving its dead-lettered message does not restart it; recovery requires another reprocess request. The product should define how operators distinguish skipped terminal deliveries from recovered work. | `WF-CRM-ENT-005`, `STATE-CRM-ENT-004` | Structured evidence | debt |
| `FND-CRM-ENT-048` | medium | A transition can create several deduplicated compliance submissions when recipients exceed one batch. Submission does not guarantee delivery: configuration checks or delivery failure can prevent sending. The approved once-per-transition notice wording needs to distinguish recipient batches, accepted submissions and delivered messages. | `BR-CAP-CRM-ENT-012-07`, `BR-CAP-CRM-ENT-012-08`, `BR-CAP-CRM-ENT-012-09`, `ADR-CRM-ENT-008` | Structured evidence | inconsistency |

| `FND-CRM-ENT-071` | medium | Concurrent number allocation and spouse linking need independent failure and isolation checks beyond the proposed create-retry race. | `CAP-CRM-ENT-001`, `ATS-CRM-ENT-001` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-072` | medium | Authorization and lifecycle proof still needs complete request-level cases for blocked creation and each creation grant. | `CAP-CRM-ENT-002`, `ATS-CRM-ENT-002` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-073` | medium | Concurrent record discovery and delayed search delivery need specified observable outcomes for stale snapshots and handler failure. | `CAP-CRM-ENT-003`, `ATS-CRM-ENT-003` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-074` | medium | Boundary-length and lifecycle recovery proof still needs explicit cases beyond successful corrections and version conflicts. | `CAP-CRM-ENT-004`, `ATS-CRM-ENT-004` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-053` | medium | Independent update and read grants and competing email claims need executable cases without relying on general record tests. | `CAP-CRM-ENT-005`, `ATS-CRM-ENT-005` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-054` | medium | Source-removal failure, every declared mutation grant and link-selection boundaries need direct detailed cases. | `CAP-CRM-ENT-006`, `ATS-CRM-ENT-006`, `BR-CAP-CRM-ENT-006-13` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-055` | medium | Preference-state transitions, workspace isolation, capacity boundaries and competing preference edits need dedicated detailed cases. | `CAP-CRM-ENT-007`, `ATS-CRM-ENT-007` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-056` | medium | Customer-value size boundaries, competing map edits and storage invariants need direct detailed cases. | `CAP-CRM-ENT-008`, `ATS-CRM-ENT-008` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-057` | medium | Every relationship transition and authority matrix needs an executable case, including competing aggregate relationship edits. | `CAP-CRM-ENT-009`, `ATS-CRM-ENT-009` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-058` | medium | Failure, bounded backlog and overlapping date workers need proof that separates compliance settlement from pending role and link work. | `CAP-CRM-ENT-010`, `ATS-CRM-ENT-010` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-059` | medium | Role ownership boundaries, locked deferred work and every read or update grant need independent cases. | `CAP-CRM-ENT-011`, `ATS-CRM-ENT-011` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-060` | medium | Notice-recipient batching, policy-state transitions and terminal scan recovery need direct proof across the documented service seams. | `CAP-CRM-ENT-012`, `ATS-CRM-ENT-012` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-061` | medium | Every archive transition needs direct executable proof for both record kinds and every archive authority. | `CAP-CRM-ENT-013`, `ATS-CRM-ENT-013` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-062` | medium | Deletion races and dependency cardinality boundaries need dedicated proof in addition to ordinary lock and dependency refusals. | `CAP-CRM-ENT-014`, `ATS-CRM-ENT-014` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-063` | medium | Every lock transition, exact reason boundary and simultaneous lock or save needs a directly bound regression case. | `CAP-CRM-ENT-015`, `ATS-CRM-ENT-015` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-064` | medium | History page boundaries, deleted-subject access and missing-attribution rollback need direct proof of each observable outcome. | `CAP-CRM-ENT-016`, `ATS-CRM-ENT-016` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-065` | medium | Catalogue transitions, exact mapping limits and competing configuration edits need dedicated detailed cases. | `CAP-CRM-ENT-017`, `ATS-CRM-ENT-017` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-066` | medium | Catalogue transitions, error preservation and competing reference deletion or writes need dedicated detailed cases. | `CAP-CRM-ENT-018`, `ATS-CRM-ENT-018` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-067` | medium | Section isolation, definition-slot boundaries and invalid-assignment rollback need direct proof independent of resolution success. | `CAP-CRM-ENT-019`, `ATS-CRM-ENT-019` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-068` | medium | Registered engineering and browser suites without a scenario binding remain visible; their assertions need a separate semantic mapping before they count as capability or feature proof. | `TST-CRM-ENT-001`, `TST-CRM-ENT-002`, `TST-CRM-ENT-003`, `TST-CRM-ENT-004`, `TST-CRM-ENT-005`, `TST-CRM-ENT-006`, `TST-CRM-ENT-007`, `TST-CRM-ENT-008`, `TST-CRM-ENT-009`, `TST-CRM-ENT-010`, `TST-CRM-ENT-011`, `TST-CRM-ENT-012`, `TST-CRM-ENT-013`, `TST-CRM-ENT-014`, `TST-CRM-ENT-015`, `TST-CRM-ENT-016`, `TST-CRM-ENT-017`, `TST-CRM-ENT-018`, `TST-CRM-ENT-019`, `TST-CRM-ENT-020`, `TST-CRM-ENT-021`, `TST-CRM-ENT-022`, `TST-CRM-ENT-023`, `TST-CRM-ENT-024`, `TST-CRM-ENT-025`, `TST-CRM-ENT-026`, `TST-CRM-ENT-027`, `TST-CRM-ENT-028`, `TST-CRM-ENT-029`, `TST-CRM-ENT-030`, `TST-CRM-ENT-031`, `TST-CRM-ENT-032`, `TST-CRM-ENT-033`, `TST-CRM-ENT-034`, `TST-CRM-ENT-035`, `TST-CRM-ENT-036`, `TST-CRM-ENT-037`, `TST-CRM-ENT-038`, `TST-CRM-ENT-039`, `TST-CRM-ENT-040`, `TST-CRM-ENT-041`, `TST-CRM-ENT-042`, `TST-CRM-ENT-043`, `TST-CRM-ENT-044`, `TST-CRM-ENT-045`, `TST-CRM-ENT-046`, `TST-CRM-ENT-047`, `TST-CRM-ENT-048`, `TST-CRM-ENT-049`, `TST-CRM-ENT-050`, `TST-CRM-ENT-051`, `TST-CRM-ENT-052`, `TST-CRM-ENT-053`, `TST-CRM-ENT-054`, `TST-CRM-ENT-055`, `TST-CRM-ENT-056`, `TST-CRM-ENT-057`, `TST-CRM-ENT-058`, `TST-CRM-ENT-059`, `TST-CRM-ENT-060`, `TST-CRM-ENT-061`, `TST-CRM-ENT-062`, `TST-CRM-ENT-064`, `TST-CRM-ENT-065`, `TST-CRM-ENT-068`, `TST-CRM-ENT-073`, `TST-CRM-ENT-074`, `TST-CRM-ENT-077`, `TST-CRM-ENT-085`, `TST-CRM-ENT-086`, `TST-CRM-ENT-087`, `TST-CRM-ENT-088`, `TST-CRM-ENT-090`, `TST-CRM-ENT-099`, `TST-CRM-ENT-103`, `TST-CRM-ENT-105`, `TST-CRM-ENT-106`, `TST-CRM-ENT-107`, `TST-CRM-ENT-108`, `TST-CRM-ENT-109`, `TST-CRM-ENT-110`, `TST-CRM-ENT-111`, `TST-CRM-ENT-112`, `TST-CRM-ENT-113`, `TST-CRM-ENT-114`, `TST-CRM-ENT-115`, `TST-CRM-ENT-116`, `TST-CRM-ENT-117`, `TST-CRM-ENT-118`, `TST-CRM-ENT-119`, `TST-CRM-ENT-120`, `TST-CRM-ENT-121`, `TST-CRM-ENT-122`, `TST-CRM-ENT-123`, `TST-CRM-ENT-124`, `TST-CRM-ENT-125`, `TST-CRM-ENT-126`, `TST-CRM-ENT-127`, `TST-CRM-ENT-128`, `TST-CRM-ENT-129`, `TST-CRM-ENT-130`, `TST-CRM-ENT-131`, `TST-CRM-ENT-132`, `TST-CRM-ENT-133`, `TST-CRM-ENT-134`, `TST-CRM-ENT-135`, `TST-CRM-ENT-136`, `TST-CRM-ENT-137`, `TST-CRM-ENT-138`, `TST-CRM-ENT-139`, `TST-CRM-ENT-140`, `TST-CRM-ENT-141`, `TST-CRM-ENT-142`, `TST-CRM-ENT-143`, `TST-CRM-ENT-144`, `TST-CRM-ENT-145`, `TST-CRM-ENT-146`, `TST-CRM-ENT-147`, `TST-CRM-ENT-149`, `TST-CRM-ENT-150`, `TST-CRM-ENT-151`, `TST-CRM-ENT-152`, `TST-CRM-ENT-153`, `TST-CRM-ENT-154`, `TST-CRM-ENT-155`, `TST-CRM-ENT-156`, `TST-CRM-ENT-157`, `TST-CRM-ENT-158`, `TST-CRM-ENT-159`, `TST-CRM-ENT-160`, `TST-CRM-ENT-161`, `TST-CRM-ENT-162`, `TST-CRM-ENT-163`, `TST-CRM-ENT-164`, `TST-CRM-ENT-165`, `TST-CRM-ENT-166`, `TST-CRM-ENT-167`, `TST-CRM-ENT-168`, `TST-CRM-ENT-169`, `TST-CRM-ENT-170`, `TST-CRM-ENT-171`, `TST-CRM-ENT-172`, `TST-CRM-ENT-173`, `TST-CRM-ENT-174`, `TST-CRM-ENT-175`, `TST-CRM-ENT-176`, `TST-CRM-ENT-177`, `TST-CRM-ENT-178`, `TST-CRM-ENT-179`, `TST-CRM-ENT-180`, `TST-CRM-ENT-181`, `TST-CRM-ENT-182`, `TST-CRM-ENT-183`, `TST-CRM-ENT-184`, `TST-CRM-ENT-185`, `TST-CRM-ENT-186`, `TST-CRM-ENT-187`, `TST-CRM-ENT-188`, `TST-CRM-ENT-189`, `TST-CRM-ENT-190`, `TST-CRM-ENT-191`, `TST-CRM-ENT-192`, `TST-CRM-ENT-193`, `TST-CRM-ENT-194`, `TST-CRM-ENT-195`, `TST-CRM-ENT-196`, `TST-CRM-ENT-197`, `TST-CRM-ENT-198`, `TST-CRM-ENT-199`, `TST-CRM-ENT-200`, `TST-CRM-ENT-202`, `TST-CRM-ENT-204`, `TST-CRM-ENT-205`, `TST-CRM-ENT-207`, `TST-CRM-ENT-210`, `TST-CRM-ENT-211`, `TST-CRM-ENT-212`, `TST-CRM-ENT-213`, `TST-CRM-ENT-214`, `TST-CRM-ENT-217`, `TST-CRM-ENT-218`, `TST-CRM-ENT-219`, `TST-CRM-ENT-220`, `TST-CRM-ENT-221`, `TST-CRM-ENT-222`, `TST-CRM-ENT-223`, `TST-CRM-ENT-224`, `TST-CRM-ENT-226`, `TST-CRM-ENT-227`, `TST-CRM-ENT-228`, `TST-CRM-ENT-229`, `TST-CRM-ENT-230`, `TST-CRM-ENT-232`, `TST-CRM-ENT-234`, `TST-CRM-ENT-236`, `TST-CRM-ENT-237`, `TST-CRM-ENT-238`, `TST-CRM-ENT-239`, `TST-CRM-ENT-240`, `TST-CRM-ENT-241`, `TST-CRM-ENT-244`, `TST-CRM-ENT-247`, `TST-CRM-ENT-249`, `TST-CRM-ENT-251`, `TST-CRM-ENT-252`, `TST-CRM-ENT-253`, `TST-CRM-ENT-254`, `TST-CRM-ENT-255`, `TST-CRM-ENT-257`, `TST-CRM-ENT-258`, `TST-CRM-ENT-259`, `TST-CRM-ENT-261`, `TST-CRM-ENT-262`, `TST-CRM-ENT-263`, `TST-CRM-ENT-265`, `TST-CRM-ENT-269`, `TST-CRM-ENT-271`, `TST-CRM-ENT-273`, `TST-CRM-ENT-274`, `TST-CRM-ENT-275`, `TST-CRM-ENT-276`, `TST-CRM-ENT-277`, `TST-CRM-ENT-278`, `TST-CRM-ENT-279`, `TST-CRM-ENT-280`, `TST-CRM-ENT-281`, `TST-CRM-ENT-282`, `TST-CRM-ENT-283`, `TST-CRM-ENT-284`, `TST-CRM-ENT-285`, `TST-CRM-ENT-286`, `TST-CRM-ENT-287`, `TST-CRM-ENT-288`, `TST-CRM-ENT-289`, `TST-CRM-ENT-290`, `TST-CRM-ENT-291`, `TST-CRM-ENT-292`, `TST-CRM-ENT-293`, `TST-CRM-ENT-294`, `TST-CRM-ENT-295`, `TST-CRM-ENT-296`, `TST-CRM-ENT-297`, `TST-CRM-ENT-298`, `TST-CRM-ENT-299`, `TST-CRM-ENT-300`, `TST-CRM-ENT-301`, `TST-CRM-ENT-302`, `TST-CRM-ENT-303`, `TST-CRM-ENT-304`, `TST-CRM-ENT-305`, `TST-CRM-ENT-306`, `TST-CRM-ENT-307`, `TST-CRM-ENT-308`, `TST-CRM-ENT-309`, `TST-CRM-ENT-310`, `TST-CRM-ENT-311`, `TST-CRM-ENT-312`, `TST-CRM-ENT-313`, `TST-CRM-ENT-314`, `TST-CRM-ENT-315`, `TST-CRM-ENT-316`, `TST-CRM-ENT-317`, `TST-CRM-ENT-318`, `TST-CRM-ENT-319`, `TST-CRM-ENT-320`, `TST-CRM-ENT-321`, `TST-CRM-ENT-322`, `TST-CRM-ENT-323`, `TST-CRM-ENT-324`, `TST-CRM-ENT-325`, `TST-CRM-ENT-326`, `TST-CRM-ENT-327`, `TST-CRM-ENT-328`, `TST-CRM-ENT-329`, `TST-CRM-ENT-330`, `TST-CRM-ENT-331`, `TST-CRM-ENT-332`, `TST-CRM-ENT-333`, `TST-CRM-ENT-334`, `TST-CRM-ENT-335`, `TST-CRM-ENT-336`, `TST-CRM-ENT-337`, `TST-CRM-ENT-338`, `TST-CRM-ENT-339`, `TST-CRM-ENT-340`, `TST-CRM-ENT-341`, `TST-CRM-ENT-342`, `TST-CRM-ENT-343`, `TST-CRM-ENT-344`, `TST-CRM-ENT-345`, `TST-CRM-ENT-346`, `TST-CRM-ENT-347`, `TST-CRM-ENT-348`, `TST-CRM-ENT-349`, `TST-CRM-ENT-350`, `TST-CRM-ENT-351`, `TST-CRM-ENT-352`, `TST-CRM-ENT-353`, `TST-CRM-ENT-354`, `TST-CRM-ENT-355`, `TST-CRM-ENT-356`, `TST-CRM-ENT-357`, `TST-CRM-ENT-358`, `TST-CRM-ENT-359`, `TST-CRM-ENT-360`, `TST-CRM-ENT-361`, `TST-CRM-ENT-362`, `TST-CRM-ENT-363`, `TST-CRM-ENT-364`, `TST-CRM-ENT-365`, `TST-CRM-ENT-366`, `TST-CRM-ENT-367`, `TST-CRM-ENT-368`, `TST-CRM-ENT-369`, `TST-CRM-ENT-370`, `TST-CRM-ENT-371`, `TST-CRM-ENT-372`, `TST-CRM-ENT-373`, `TST-CRM-ENT-374`, `TST-CRM-ENT-375`, `TST-CRM-ENT-376`, `TST-CRM-ENT-377`, `TST-CRM-ENT-378`, `TST-CRM-ENT-379`, `TST-CRM-ENT-380`, `TST-CRM-ENT-381`, `TST-CRM-ENT-382`, `TST-CRM-ENT-383`, `TST-CRM-ENT-384`, `TST-CRM-ENT-385`, `TST-CRM-ENT-386`, `TST-CRM-ENT-387`, `TST-CRM-ENT-388`, `TST-CRM-ENT-389`, `TST-CRM-ENT-390`, `TST-CRM-ENT-391`, `TST-CRM-ENT-392`, `TST-CRM-ENT-393`, `TST-CRM-ENT-394`, `TST-CRM-ENT-395`, `TST-CRM-ENT-396`, `TST-CRM-ENT-397`, `TST-CRM-ENT-398`, `TST-CRM-ENT-399`, `TST-CRM-ENT-400`, `TST-CRM-ENT-401`, `TST-CRM-ENT-402`, `TST-CRM-ENT-403`, `TST-CRM-ENT-404`, `TST-CRM-ENT-405`, `TST-CRM-ENT-406`, `TST-CRM-ENT-407`, `TST-CRM-ENT-408`, `TST-CRM-ENT-409`, `TST-CRM-ENT-410`, `TST-CRM-ENT-411`, `TST-CRM-ENT-412`, `TST-CRM-ENT-413`, `TST-CRM-ENT-414`, `TST-CRM-ENT-415`, `TST-CRM-ENT-416`, `TST-CRM-ENT-417`, `TST-CRM-ENT-418`, `TST-CRM-ENT-419`, `TST-CRM-ENT-420`, `TST-CRM-ENT-421`, `TST-CRM-ENT-422`, `TST-CRM-ENT-423`, `TST-CRM-ENT-424`, `TST-CRM-ENT-425`, `TST-CRM-ENT-426`, `TST-CRM-ENT-427`, `TST-CRM-ENT-428`, `TST-CRM-ENT-429`, `TST-CRM-ENT-430`, `TST-CRM-ENT-431`, `TST-CRM-ENT-432`, `TST-CRM-ENT-433`, `TST-CRM-ENT-434`, `TST-CRM-ENT-435`, `TST-CRM-ENT-436`, `TST-CRM-ENT-437`, `TST-CRM-ENT-438`, `TST-CRM-ENT-439`, `TST-CRM-ENT-440`, `TST-CRM-ENT-441`, `TST-CRM-ENT-442`, `TST-CRM-ENT-443`, `TST-CRM-ENT-444`, `TST-CRM-ENT-445`, `TST-CRM-ENT-446`, `TST-CRM-ENT-447`, `TST-CRM-ENT-448`, `TST-CRM-ENT-449`, `TST-CRM-ENT-451`, `TST-CRM-ENT-455`, `TST-CRM-ENT-456`, `TST-CRM-ENT-457`, `TST-CRM-ENT-459`, `TST-CRM-ENT-462`, `TST-CRM-ENT-463`, `TST-CRM-ENT-464`, `TST-CRM-ENT-465`, `TST-CRM-ENT-468`, `TST-CRM-ENT-471`, `TST-CRM-ENT-472`, `TST-CRM-ENT-473`, `TST-CRM-ENT-474`, `TST-CRM-ENT-475`, `TST-CRM-ENT-477`, `TST-CRM-ENT-478`, `TST-CRM-ENT-479`, `TST-CRM-ENT-481`, `TST-CRM-ENT-482`, `TST-CRM-ENT-483`, `TST-CRM-ENT-486`, `TST-CRM-ENT-487`, `TST-CRM-ENT-488`, `TST-CRM-ENT-489`, `TST-CRM-ENT-490`, `TST-CRM-ENT-491`, `TST-CRM-ENT-492`, `TST-CRM-ENT-493`, `TST-CRM-ENT-494`, `TST-CRM-ENT-495`, `TST-CRM-ENT-496`, `TST-CRM-ENT-497`, `TST-CRM-ENT-498`, `TST-CRM-ENT-499`, `TST-CRM-ENT-500`, `TST-CRM-ENT-501`, `TST-CRM-ENT-502`, `TST-CRM-ENT-503`, `TST-CRM-ENT-504`, `TST-CRM-ENT-505`, `TST-CRM-ENT-506`, `TST-CRM-ENT-507`, `TST-CRM-ENT-508`, `TST-CRM-ENT-509`, `TST-CRM-ENT-510`, `TST-CRM-ENT-511`, `TST-CRM-ENT-512`, `TST-CRM-ENT-513`, `TST-CRM-ENT-514`, `TST-CRM-ENT-515`, `TST-CRM-ENT-516`, `TST-CRM-ENT-517`, `TST-CRM-ENT-518`, `TST-CRM-ENT-519`, `TST-CRM-ENT-520`, `TST-CRM-ENT-521`, `TST-CRM-ENT-522`, `TST-CRM-ENT-523`, `TST-CRM-ENT-524`, `TST-CRM-ENT-525`, `TST-CRM-ENT-526`, `TST-CRM-ENT-527`, `TST-CRM-ENT-528`, `TST-CRM-ENT-529`, `TST-CRM-ENT-530`, `TST-CRM-ENT-531`, `TST-CRM-ENT-532`, `TST-CRM-ENT-533`, `TST-CRM-ENT-534`, `TST-CRM-ENT-535`, `TST-CRM-ENT-536`, `TST-CRM-ENT-537`, `TST-CRM-ENT-538`, `TST-CRM-ENT-539`, `TST-CRM-ENT-540`, `TST-CRM-ENT-541`, `TST-CRM-ENT-542`, `TST-CRM-ENT-543`, `TST-CRM-ENT-544`, `TST-CRM-ENT-545`, `TST-CRM-ENT-546`, `TST-CRM-ENT-547`, `TST-CRM-ENT-548`, `TST-CRM-ENT-549`, `TST-CRM-ENT-550`, `TST-CRM-ENT-551`, `TST-CRM-ENT-552`, `TST-CRM-ENT-553`, `TST-CRM-ENT-554`, `TST-CRM-ENT-555`, `TST-CRM-ENT-556`, `TST-CRM-ENT-557`, `TST-CRM-ENT-558`, `TST-CRM-ENT-559`, `TST-CRM-ENT-560`, `TST-CRM-ENT-561`, `TST-CRM-ENT-562`, `TST-CRM-ENT-563`, `TST-CRM-ENT-564`, `TST-CRM-ENT-565`, `TST-CRM-ENT-566`, `TST-CRM-ENT-567`, `TST-CRM-ENT-568`, `TST-CRM-ENT-569`, `TST-CRM-ENT-570`, `TST-CRM-ENT-571`, `TST-CRM-ENT-572`, `TST-CRM-ENT-573`, `TST-CRM-ENT-574`, `TST-CRM-ENT-575`, `TST-CRM-ENT-576`, `TST-CRM-ENT-577`, `TST-CRM-ENT-578`, `TST-CRM-ENT-579`, `TST-CRM-ENT-580`, `TST-CRM-ENT-581`, `TST-CRM-ENT-582`, `TST-CRM-ENT-583`, `TST-CRM-ENT-584`, `TST-CRM-ENT-585`, `TST-CRM-ENT-586`, `TST-CRM-ENT-587`, `TST-CRM-ENT-588`, `TST-CRM-ENT-589`, `TST-CRM-ENT-590`, `TST-CRM-ENT-591`, `TST-CRM-ENT-592`, `TST-CRM-ENT-593`, `TST-CRM-ENT-594`, `TST-CRM-ENT-595`, `TST-CRM-ENT-596`, `TST-CRM-ENT-597`, `TST-CRM-ENT-598`, `TST-CRM-ENT-599`, `TST-CRM-ENT-600`, `TST-CRM-ENT-601`, `TST-CRM-ENT-602`, `TST-CRM-ENT-603`, `TST-CRM-ENT-604`, `TST-CRM-ENT-605`, `TST-CRM-ENT-606`, `TST-CRM-ENT-607`, `TST-CRM-ENT-608`, `TST-CRM-ENT-609`, `TST-CRM-ENT-610`, `TST-CRM-ENT-611`, `TST-CRM-ENT-612`, `TST-CRM-ENT-613`, `TST-CRM-ENT-614`, `TST-CRM-ENT-615`, `TST-CRM-ENT-616`, `TST-CRM-ENT-617`, `TST-CRM-ENT-618`, `TST-CRM-ENT-619`, `TST-CRM-ENT-620`, `TST-CRM-ENT-621`, `TST-CRM-ENT-622`, `TST-CRM-ENT-623`, `TST-CRM-ENT-624`, `TST-CRM-ENT-625`, `TST-CRM-ENT-626`, `TST-CRM-ENT-627`, `TST-CRM-ENT-628`, `TST-CRM-ENT-629`, `TST-CRM-ENT-630`, `TST-CRM-ENT-631`, `TST-CRM-ENT-632`, `TST-CRM-ENT-633`, `TST-CRM-ENT-634`, `TST-CRM-ENT-649`, `TST-CRM-ENT-660`, `TST-CRM-ENT-661`, `TST-CRM-ENT-662`, `TST-CRM-ENT-663`, `TST-CRM-ENT-664`, `TST-CRM-ENT-666`, `TST-CRM-ENT-668`, `TST-CRM-ENT-669`, `TST-CRM-ENT-670`, `TST-CRM-ENT-671`, `TST-CRM-ENT-673`, `TST-CRM-ENT-674`, `TST-CRM-ENT-675`, `TST-CRM-ENT-677`, `TST-CRM-ENT-678`, `TST-CRM-ENT-679`, `TST-CRM-ENT-680`, `TST-CRM-ENT-681`, `TST-CRM-ENT-682`, `TST-CRM-ENT-683`, `TST-CRM-ENT-684`, `TST-CRM-ENT-685`, `TST-CRM-ENT-691`, `TST-CRM-ENT-692`, `TST-CRM-ENT-693`, `TST-CRM-ENT-694`, `TST-CRM-ENT-699`, `TST-CRM-ENT-706`, `TST-CRM-ENT-707`, `TST-CRM-ENT-709`, `TST-CRM-ENT-710`, `TST-CRM-ENT-711`, `TST-CRM-ENT-712`, `TST-CRM-ENT-714`, `TST-CRM-ENT-715`, `TST-CRM-ENT-718`, `TST-CRM-ENT-721`, `TST-CRM-ENT-723`, `TST-CRM-ENT-724`, `TST-CRM-ENT-726`, `TST-CRM-ENT-731`, `TST-CRM-ENT-734`, `TST-CRM-ENT-735`, `TST-CRM-ENT-736`, `TST-CRM-ENT-737`, `TST-CRM-ENT-738`, `TST-CRM-ENT-739`, `TST-CRM-ENT-740`, `TST-CRM-ENT-741`, `TST-CRM-ENT-742`, `TST-CRM-ENT-746`, `TST-CRM-ENT-747`, `TST-CRM-ENT-748`, `TST-CRM-ENT-749`, `TST-CRM-ENT-754`, `TST-CRM-ENT-755`, `TST-CRM-ENT-756` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-069` | medium | The existing archive journey combines organization restoration with a console history step that the current organization screen cannot provide. Its browser binding proves only the steps it actually performs. | `ATS-CRM-ENT-013-10`, `AS-JNY-CRM-ENT-003-03` | Structured evidence | inconsistency |
| `FND-CRM-ENT-070` | medium | The organization correction interaction is specified during this back-fill; its concurrent hierarchy fixture still has no executable binding. | `ATS-CRM-ENT-004-24` | Structured evidence | coverage-gap |
| `FND-CRM-ENT-075` | low | The authoring contract requires an evidence heading in detailed test specifications, while the current checker rejects that heading. A separate tooling change must reconcile them; this pass retains structured evidence and uses a source-evidence explanation. | Capability test specifications | Structured evidence | coverage-gap |
| `FND-CRM-ENT-076` | medium | The unchanged-save suite checks contact revision absence and stale refusal, but its organization cases check only versions and modification timestamps. Organization history absence and stale refusal remain unbound parts of the feature scenario. | `FAS-CRM-ENT-07-05`, `TST-CRM-ENT-753` | Structured evidence | coverage-gap |

| `FND-CRM-ENT-049` | medium | CRM declares its service information as internal use while storing identifiable people and personal revision values; the examined declaration does not classify those stores at their highest information class. | `SVC-CRM-ENT-entities`, `CAP-CRM-ENT-001`, `CAP-CRM-ENT-016` | `TC-DAT-001`; structured control evidence | control-gap |
| `FND-CRM-ENT-050` | medium | Record revisions retain every past value until workspace purge, with no age-based endpoint; deleting a person therefore does not end retention of the personal revision information. | `CAP-CRM-ENT-014`, `CAP-CRM-ENT-016`, `WF-CRM-ENT-009`, `SVC-CRM-ENT-entities` | `TC-DAT-003`, `TC-DAT-004`; structured control evidence | control-gap |
| `FND-CRM-ENT-051` | medium | Organization creation does not recognize a repeated request as the earlier committed result; a repeated supplied identifier conflicts, while a request without one can create another organization. | `CAP-CRM-ENT-002`, `WF-CRM-ENT-003`, `SVC-CRM-ENT-entities` | `TC-PI-002`; structured control evidence | control-gap |
| `FND-CRM-ENT-052` | medium | Classification writes carry ordinary lock values without a separate lock action or retained lock-change audit; a full lock can prevent further ordinary changes without a supported release action. | `CAP-CRM-ENT-018`, `SVC-CRM-ENT-configuration-types` | `TC-AZ-001`, `TC-LOG-001`, `TC-LOG-002`, `TC-PI-005`; structured control evidence | control-gap |

| `FND-CRM-ENT-077` | medium | Platform owns the removed custom-field, presentation, user and template concepts. Their catalogues cover those ideas, but a distinct file or managed-asset concept is absent from metadata. An owning-module follow-up is required; this job's write scope permits only a local finding. | `MOD-CRM-ENT`, `CON-CRM-ENT-034` | Structured narrative authoring evidence | undocumented |
| `FND-CRM-ENT-078` | medium | The standard and checker disagree about shared feature concept references and optional heading order. Existing planning evidence pins also predate the current narrative verification and cannot be changed in this job. Shared use and journey variants are explained without violating the checker, while existing implementation and proof gaps remain open. | `MOD-CRM-ENT`, `FEAT-CRM-ENT-05`, `FEAT-CRM-ENT-06`, `JNY-CRM-ENT-001` to `JNY-CRM-ENT-005` | Structured narrative authoring evidence | inconsistency |
| `FND-CRM-ENT-079` | medium | This design pass observes labels, semantic controls and responsive classes, but does not establish complete keyboard traversal, focus recovery, screen-reader announcements, configured-form accessibility or all viewport behavior through a live browser audit. No general accessibility conformance claim follows from source inspection. | `MOD-CRM-ENT`, CRM entity screen contracts | Structured design examination evidence | unknown |
| `FND-CRM-ENT-080` | medium | Configured contact record sections name task, committee and order permissions outside the CRM authorization model. Readable contact identity does not establish access to those panels. Confirm canonical keys and built-in grants in each owning area model before describing cross-application panel access as an Entities guarantee. Platform engine-backed bulk actions likewise need the owning job submission authority. | `MOD-CRM-ENT`, CRM entity screen contracts | Structured design examination evidence | unknown |

| `FND-CRM-ENT-081` | medium | The sole-active-type alternate is supported by the shared creation component: it preselects the only active type and still requires Continue. Its bound browser specification covers two active choices and no active choices, but does not assert the sole-choice branch. Narrative distinguishes observed behavior from missing executable proof; the formal alternate is unchanged. | `JNY-CRM-ENT-001`, `CAP-CRM-ENT-018` | `react-console:components/records/create/create-record-screen.tsx`; `react-console:lib/records/record-type-choice.ts`; `react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0033.spec.ts` | undocumented |
| `FND-CRM-ENT-082` | medium | Resolved by continuation pass 2: all seven features now explain the relevant operation sequence, a concrete correction or recovery, and the significant interpreted tradeoffs. The report records their subsequent narrative review. This resolution concerns explanatory depth and does not confirm product intent. | `FEAT-CRM-ENT-01`, `FEAT-CRM-ENT-02`, `FEAT-CRM-ENT-03`, `FEAT-CRM-ENT-04`, `FEAT-CRM-ENT-05`, `FEAT-CRM-ENT-06`, `FEAT-CRM-ENT-07` | `rhythm-v2-docs:specs/EXPLANATORY-STANDARD.md#6.1 Feature`; `rhythm-v2-docs:specs/crm/entities/reports/NARRATIVE-REVIEW-2026-10-23.md` | debt |
| `FND-CRM-ENT-083` | medium | Resolved by continuation pass 2: Affiliation uses canonical lowercase UUIDv7 examples and explains creation input separately from returned identity. New role-period input omits identity; the service generates it, and later edits refer to that saved episode. The correction covers the examples and their explanation. | `DOM-CRM-ENT-003` | `services-crm:modules/entities/services/persistence/contact-affiliations.ts:ownershipProblems`; `services-crm:modules/entities/services/persistence/contact-affiliations.ts:writeAffiliations` | inconsistency |
| `FND-CRM-ENT-084` | medium | The compliance state model promises persistence when an existing ungoverned organization receives a passing policy, but enabled-policy evaluation can report no change when both previous and computed violations are absent; the calculated status alone then remains unstored. Policy removal uses a separate clearing branch that reports existing assessment fields as changed. The integration suite proves clearing a previously failing assessment. A separate change-event test seeds a compliant label without policy, but asserts only selection for recalculation; the recalculation response itself can also carry a calculated status without a write. Direct saved-status and version assertions for enabling a passing policy and clearing a previously compliant assessment remain missing. The formal passing-transition guard and audit text need clarification; the noncompliant-to-ungoverned trigger also incorrectly says previously compliant. The capability persistence rule describes only the violation comparison although its no-policy rule covers clearing. These formal-contract discrepancies remain unresolved; narrative and creation evaluation do not settle them. | `STATE-CRM-ENT-003`, `CAP-CRM-ENT-012`, `DOM-CRM-ENT-002` | `services-crm:modules/entities/services/organizations/compliance/contact-role-compliance.ts:checkForContactRoleComplianceViolations`; `services-crm:modules/entities/services/organizations/compliance/organization-compliance.ts:recalculate`; `services-crm:modules/entities/tests/integration/services/organizations/compliance/compliance-change-events.integration.spec.js#an organization no type holds that still carries a status, so the recalculation clears it` | coverage-gap |

| `FND-CRM-ENT-081` | medium | The new-member journey’s sole-active-type alternate cites a browser specification that asserts two active choices and later no active choices, without asserting sole-type preselection. Its prose claim is removed pending scoped component evidence or a matching assertion. The formal alternate and related classification rule remain unchanged. | `JNY-CRM-ENT-001`, `CAP-CRM-ENT-018` | `react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0033.spec.ts`; independent narrative review | undocumented |
| `FND-CRM-ENT-082` | medium | All seven feature narratives remain substantially below the explanatory standard’s typical 900-word lower bound after their motivation sections are corrected. The independent review names each remaining operation, example and tradeoff explanation required; these pages are needs-revision rather than verified. | `FEAT-CRM-ENT-01`, `FEAT-CRM-ENT-02`, `FEAT-CRM-ENT-03`, `FEAT-CRM-ENT-04`, `FEAT-CRM-ENT-05`, `FEAT-CRM-ENT-06`, `FEAT-CRM-ENT-07` | `rhythm-v2-docs:specs/EXPLANATORY-STANDARD.md#6.1 Feature`; `rhythm-v2-docs:specs/crm/entities/reports/NARRATIVE-REVIEW-2026-10-23.md` | debt |
| `FND-CRM-ENT-083` | medium | The Affiliation domain object’s Identity and Attributes table illustrates affiliation and role-period identities with invented hyphenated names. New client affiliation identities require canonical lowercase UUIDv7 values; supplied role identities must already belong to the affiliation, and new role rows receive generated identities. Correct the examples and distinguish create input from returned identity. This review changes only design frontmatter. | `DOM-CRM-ENT-003` | `services-crm:modules/entities/services/persistence/contact-affiliations.ts:ownershipProblems`; `services-crm:modules/entities/services/persistence/contact-affiliations.ts:writeAffiliations`; independent narrative review | inconsistency |
| `FND-CRM-ENT-085` | medium | The v0 record identifies generated affiliation rows, a combined Organization Affiliations section and an editing drawer. These built components support the contact editor and Contact 360 experience, but the corpus has no Component Design or Component Implementation for them. Register their contracts under CONVENTIONS §9.11 so screen inventories and future prompts can reference the reusable components by id. | `SCR-CRM-ENT-004`; `SVP-CRM-ENT-004` | `react-console:components/affiliations/affiliation-row.tsx`; `react-console:components/affiliations/organization-affiliations-section.tsx`; `react-console:components/affiliations/affiliation-editor.tsx`; `react-console:docs/affiliations/screens-v2/README.md` | undocumented |
| `FND-CRM-ENT-086` | low | Console unit tests cover contact-editor blank rows, change counts, nickname handling, discarded reloads, save failures, seasonal and normalized review, and custom-field labels. No executable-suite registration names those component tests, so the Address Editor and Edit Contact implementation retain empty component-test lists. A console unit-suite registration is needed before their assertions can contribute registered fast-CI proof. | `CMI-CRM-ENT-001`; `SCI-CRM-ENT-004` | `react-console:components/contact-editor/__tests__/*.test.tsx`; `react-console:components/affiliations/__tests__/*.test.tsx` | undocumented |
| `FND-CRM-ENT-087` | medium | Source inspection finds semantic controls, accessible action names and responsive styling in Edit Contact, but does not establish complete keyboard traversal, screen-reader announcements or behavior across breakpoints. No complete audit or matching browser scenario is recorded here. The screen acceptance specification retains its accessibility gap pending that verification. | `SCR-CRM-ENT-004`; `SAT-CRM-ENT-004` | `react-console:components/contact-editor/contact-editor.tsx`; `react-console:components/contact-editor/collections/address-list-editor.tsx` | debt |

| `FND-CRM-ENT-088` | medium | The Edit Contact design promises an unavailable Save with validation issues, confirmation before every dirty departure and a conflict dialog. The built action bar leaves a dirty Save enabled and validates on attempt; the guard handles Cancel and ordinary same-origin links but has no browser Back handler; conflicts use an inline action-bar alert. The current address source-control path also permits direct linked-row removal. Edit also disables type-specific create-form resolution and compiles the built-in contact-admin definition, contrary to the protected design prose about an effective configured edit form. The Screen Implementation records these as open fidelity differences without changing the protected design criteria. | `SCR-CRM-ENT-004`; `SCI-CRM-ENT-004` | `react-console:components/contact-editor/contact-editor.tsx`; `react-console:components/contact-editor/unsaved-changes.tsx`; `react-console:components/editor/editor-action-bar.tsx`; `react-console:components/contact-editor/collections/address-list-editor.tsx`; `react-console:components/records/create/use-create-form.ts`; `react-console:lib/forms/definitions/contact-admin.json` | inconsistency |
| `FND-CRM-ENT-089` | medium | AddressListEditor disables Remove only for the older work-mirror path without a row source state. With current row source controls, Remove is enabled and removes the draft row directly. The component requests autofocus for Add rather than the initial blank row or ordinary expansion, and showGeocoded displays a badge rather than coordinates. The component prose is corrected to the observed behavior; product intent for direct linked removal remains unresolved. | `CMP-CRM-ENT-001`; `CMI-CRM-ENT-001`; `SCI-CRM-ENT-004` | `react-console:components/contact-editor/collections/address-list-editor.tsx`; `react-console:components/forms/contacts/collection-components.tsx`; `react-console:components/address/address-input.tsx` | inconsistency |
| `FND-CRM-ENT-090` | medium | The three screen scenarios previously bound to Contact records acceptance require more than its matching assertions prove. The changed-field journey edits multiple fields with phone and email preservation rather than the specified single-title/address fixture; conflict journeys do not exercise every Keep Editing and discarded-draft notice assertion; computed-name coverage does not perform the missing-name issue-summary flow. Those screen bindings are cleared and their provenance is proposed. | `SAT-CRM-ENT-004`; `SCR-CRM-ENT-004`; `SCI-CRM-ENT-004`; `TST-CRM-ENT-774` | `react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0003.spec.ts`; `react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0006.spec.ts`; `react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0009.spec.ts`; `react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0060.spec.ts`; `react-console:acceptance/crm/playwright/journeys/contacts/CRM-ACC-0068.spec.ts` | coverage-gap |

## Open Questions

| id | question | why_it_matters | options | recommendation | affects |
|---|---|---|---|---|---|
| `OQ-CRM-ENT-001` | Which replacement contract should contacts, organizations and classification records follow? | Partial replacement can erase omitted information; the complete-payload requirement differs from implementation. | Require a complete payload; retain destructive omission and amend the contract; preserve omitted values. | The product should require complete replacement payloads, subject to Andrew’s decision. **Decided 2026-10-22 by Andrew: A** | `CAP-CRM-ENT-004`, `CAP-CRM-ENT-018` |
| `OQ-CRM-ENT-002` | Which module owns classification types and the contact-role catalogue? | Route hosting and the proposed product boundary differ; each rule needs one owner. | Retain Entities ownership; move classification ownership to the planned Configuration Types module. | The product should retain affiliation types and roles with affiliations; Andrew should decide the remaining classification boundary before design. **Decided 2026-10-22 by Andrew: B** | `CAP-CRM-ENT-017`, `CAP-CRM-ENT-018` |
| `OQ-CRM-ENT-003` | Should a rule have its own product-intent field? | A milestone can confirm an outcome without confirming every implementation detail in its capability. | Add rule-level intent; interpret each origin separately; split capabilities by intent. | The product should expose rule-level intent so approval of an outcome cannot imply approval of all observed details. **Decided 2026-10-22 by Andrew: B** | `CAP-CRM-ENT-001`, `CAP-CRM-ENT-009`, `CAP-CRM-ENT-012` |
| `OQ-CRM-ENT-004` | Does the corrected console scope cover future Entities change detection? | The original paths omit sources that implement hosted behavior. This examination corrects the authorized registry row. | Use the corrected scope; extend it if future screens introduce additional dependencies. | The product should use the corrected registry scope for the next delta examination. The original path-correction request is resolved. **Decided 2026-10-22 by Andrew: A** | `MOD-CRM-ENT` |
| `OQ-CRM-ENT-005` | Should ending and removing a tie stay part of the contact's general save, or become explicit operations as the Platform record-write standard requires? | The approved planning rules, the console and integrations all end ties through a general save today; the standard says a general save must never end a relationship. The two cannot both hold. | A: keep save-based ending and removal, and record Entities as an exception to the standard. B: add explicit end and remove operations with their own permissions and audit, and make a general save refuse to end or remove a tie. C: add the explicit operations now and refuse ending through a general save after a stated deprecation period. | The product should choose C: it meets the standard without breaking the console's editor and integrations at once. | `CAP-CRM-ENT-009`, `ADR-CRM-ENT-002`, `WF-CRM-ENT-002` |
| `OQ-CRM-ENT-006` | Should a save that changes nothing be refused when its version is stale? | The planning rule refuses it; the Platform standard accepts it so that a retried committed edit is not reported as a conflict. | A: keep refusing, and record Entities as an exception. B: accept a stale no-op save as the standard says, and amend the planning rule. | The product should choose B, aligning with the Platform standard; a missing version is still refused. | `CAP-CRM-ENT-004`, `ADR-CRM-ENT-004` |
| `OQ-CRM-ENT-007` | When should production turn on the scheduled affiliation-date reconciliation, and what must be true first? | With it off, roles and compliance that change only because a date passed stay stale in production until someone saves the person, runs the reconciliation by hand or reprocesses compliance; with it on, every workspace's compliance and notices can change overnight. | A: turn it on at the next CRM release. B: turn it on per environment after a dry run of every production workspace is reviewed. C: keep it off and rely on saves, manual runs and reprocesses. | The product should choose B, with the dry-run orphan-object finding resolved first. | `CAP-CRM-ENT-010`, `WF-CRM-ENT-006`, `ADR-CRM-ENT-014` |

## Decisions

Answers Andrew gave to the open questions, in the walkthrough of 2026-10-22. Each answer is applied to the artifacts it names; a rule it covers carries the decision in its `origin`.

| id | decided_at | decided_by | answer | applied_to |
|---|---|---|---|---|
| `OQ-CRM-ENT-001` | 2026-10-22 | Andrew | A: require complete payloads for whole-record saves of contacts, organizations and classification records, as Activities already do (reads state empty properties as null; an omitted property is refused; null clears). Affiliation and custom-field exceptions stay. | Structured decision update record |
| `OQ-CRM-ENT-002` | 2026-10-22 | Andrew | B: everything stays in Entities; no Configuration Types module. Entities owns contact, organization, address and phone number types, affiliation types and the contact-role catalogue and their rules. | Structured decision update record |
| `OQ-CRM-ENT-003` | 2026-10-22 | Andrew | B: a rule's product intent is derived from its origin: an origin that names a product decision (a milestone decision id or an answered open question) makes the rule confirmed; otherwise the rule inherits its capability's intent. No rule-level field. | Structured decision update record |
| `OQ-CRM-ENT-004` | 2026-10-22 | Andrew | A: the corrected console scope in the MOD-CRM-ENT registry row stands for the next delta pass. Resolved. | Structured decision update record |

## Approvals

| layer | approved_by | approved_at | note |
|---|---|---|---|
| planning | Andrew | 2026-10-22 | "Approve the planning layer" after the walkthrough, the four decisions and the concept rework (master a2f29a0). Product intent values are unchanged: confirmed where a decision covers a rule, proposed elsewhere. |

