---
source_sha:
  services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
finding_evidence:
  - finding: FND-CRM-ACT-001
    source: 'services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#Status'
  - finding: FND-CRM-ACT-002
    source: >-
      services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#E-10;
      services-crm:modules/tasks/services/persistence/tasks.ts:assigneeAsWritten;
      react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0711.spec.ts#CRM-ACC-0711
  - finding: FND-CRM-ACT-003
    source: >-
      services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#E-09;
      services-crm:modules/tasks/aws/api/task-api-mapper.ts:mapReplaceTaskRequest;
      services-crm:modules/activities/aws/api/activity-api-mapper.ts:mapReplaceActivityTypeRequest
  - finding: FND-CRM-ACT-004
    source: >-
      services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#D-44;
      services-crm:modules/activities/db/activity-links.table.ts:activity_links_contact_fk;
      react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0719.spec.ts#CRM-ACC-0719
  - finding: FND-CRM-ACT-005
    source: >-
      services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#D-08;
      services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#D-08;
      services-crm:modules/activities/aws/api/activities.schemas.ts:sys_locked;
      react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0699.spec.ts#CRM-ACC-0699
  - finding: FND-CRM-ACT-006
    source: >-
      react-console:acceptance/crm/inventory/capabilities.json
      (CAP-CRM-ACT-010); business-rules.json (RUL-CRM-ACT-008);
      react-console:acceptance/crm/journeys/cross-application/CRM-ACC-0704.json;
      R2-ARCH-001 D1 (Andrew 2026-10-19), recorded at
      services-crm:docs/migrations/activities/README.md#9. Decisions
  - finding: FND-CRM-ACT-007
    source: >-
      react-console:components/activities/log-activity-sheet.tsx:followUp;
      services-crm:modules/activities/services/persistence/activities.ts:createFollowUpTask;
      react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0705.spec.ts#CRM-ACC-0705
  - finding: FND-CRM-ACT-008
    source: >-
      react-console:lib/activities/form-rules.ts:activityFormErrors;
      components/configuration/resources/activity-types.tsx:MIN_DURATION;
      services-crm:modules/activities/db/activity-types.table.ts
  - finding: FND-CRM-ACT-009
    source: >-
      services-crm:docs/attention.md#3. The switch;
      react-console:acceptance/crm/inventory/capabilities.json (CAP-CRM-ACT-020)
  - finding: FND-CRM-ACT-010
    source: >-
      services-crm:modules/tasks/aws/api/tasks.routes.ts:listOfferedTasks;
      react-console source holds no reference to offered tasks
  - finding: FND-CRM-ACT-011
    source: >-
      services-crm:modules/tasks/services/persistence/tasks.ts:createTaskWithOutcome;
      react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0713.spec.ts#CRM-ACC-0713;
      react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0710.spec.ts#CRM-ACC-0710
  - finding: FND-CRM-ACT-012
    source: >-
      react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0712.spec.ts#CRM-ACC-0712;
      react-console:acceptance/crm/reports/defects/cross-application.md
      (DEF-CRM-0727)
  - finding: FND-CRM-ACT-013
    source: >-
      services-crm:aws/crm.service.ts:TasksPermissions, TaskTypesPermissions,
      TaskQueuesPermissions
  - finding: FND-CRM-ACT-014
    source: >-
      services-crm:modules/tasks/db/task-types.table.ts (header);
      services-crm:docs/migrations/task-management/README.md#10. Implementation
      notes
  - finding: FND-CRM-ACT-015
    source: 'services-crm:modules/activities/services/persistence/timelines.ts:editable'
  - finding: FND-CRM-ACT-016
    source: >-
      react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0721.spec.ts#CRM-ACC-0721;
      react-console:acceptance/crm/reports/defects/cross-application.md
      (DEF-CRM-0450 referenced)
  - finding: FND-CRM-ACT-017
    source: >-
      react-console:lib/configuration/task-queues.ts (header);
      services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#D-02
  - finding: FND-CRM-ACT-018
    source: 'services-crm:modules/activities/README.md#What Platform must add'
  - finding: FND-CRM-ACT-019
    source: >-
      services-crm:modules/tasks/aws/api/tasks.schemas.ts:taskAssignmentRequestSchema;
      services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#D-52
  - finding: FND-CRM-ACT-020
    source: >-
      react-console:acceptance/crm/playwright/journeys/cross-application/CRM-ACC-0707.spec.ts#CRM-ACC-0707
  - finding: FND-CRM-ACT-021
    source: >-
      react-console:components/console/nav-config.ts;
      app/(console)/console/[tenantId]/crm/activities/page.tsx
  - finding: FND-CRM-ACT-022
    source: >-
      services-crm:modules/activities/db/activities.table.ts:ActivityFields;
      services-crm:modules/activities/tests/integration/services/persistence/activities.queries.integration.spec.js#answers
      the whole activity: its columns, its links (primary, then by name and id)
      with their records’ names, its attachments and custom fields
  - finding: FND-CRM-ACT-023
    source: ATS rows with provenance proposed in this module
  - finding: FND-CRM-ACT-024
    source: >-
      react-console:acceptance/crm/journeys/cross-application/*.json
      (automation); acceptance/crm/playwright/journeys/cross-application/
  - finding: FND-CRM-ACT-025
    source: specs/crm/ACTORS.md
  - finding: FND-CRM-ACT-026
    source: >-
      react-console:app/(console)/console/[tenantId]/tasks/page.tsx;
      specs/PRODUCT-AREAS.md (MOD-CRM-ACT row)
  - finding: FND-CRM-ACT-027
    source: >-
      react-console:acceptance/crm/inventory/capabilities.json (CAP-CRM-ACT-001
      to 020); specs/CONVENTIONS.md#3. Identifiers
  - finding: FND-CRM-ACT-028
    source: >-
      Must-prove rules identified during examination; existing acceptance
      scenarios and pinned source citations in the affected capabilities
  - finding: FND-CRM-ACT-029
    source: >-
      rhythm-v2-docs:briefs/planning/crm-activities-tasks.brief.md (absent at
      the starting commit and fetched master)
    resolution:
      examined_at: '2026-10-23'
      source: 'rhythm-v2-docs:briefs/design/crm-activities-tasks.brief.md'
      statement: >-
        The design brief became available after the required master merge and
        was read during design examination.
  - finding: FND-CRM-ACT-030
    source: >-
      services-crm:docs/workstreams/crm-tasks-role-claim.md#What the executors
      package must do next (a WA-3 follow-up)
  - finding: FND-CRM-ACT-031
    source: 'services-crm:docs/attention.md#3. The switch'
  - finding: FND-CRM-ACT-032
    source: >-
      services-crm:modules/tasks/services/workflow-actions/task-service-operations.ts;
      services-crm:modules/activities/services/activities/field-modes.ts
  - finding: FND-CRM-ACT-033
    source: >-
      services-crm:modules/activities/services/persistence/activities.ts:activityValuesOf;
      react-console:components/activities/log-activity-sheet.tsx:ownerId;
      services-crm:docs/milestones/CRM-M8-activities-and-tasks.md#D-51
  - finding: FND-CRM-ACT-034
    source: >-
      rhythm-v2-docs:briefs (design job); services-platform not among the job's
      repositories; services-crm:docs/record-history.md, docs/change-events.md,
      docs/attention.md, docs/row-level-security.md
  - finding: FND-CRM-ACT-035
    source: >-
      services-crm:modules/activities/**, modules/tasks/** (no model call);
      specs/CONVENTIONS.md#9.8 Inference Operation (IOP)
  - finding: FND-CRM-ACT-036
    source: >-
      services-crm:aws/crm.change-events.ts (no task stream);
      modules/tasks/services/persistence/tasks.ts (header)
  - finding: FND-CRM-ACT-037
    source: >-
      services-crm:modules/tasks/services/persistence/tasks.ts:rolesHeldBy;
      modules/tasks/services/persistence/tasks.ts:holdsRole;
      docs/workstreams/crm-tasks-role-claim.md#1. Should Platform answer the
      roles one user holds, rather than CRM restating `role_holders`' rules?
  - finding: FND-CRM-ACT-038
    source: >-
      services-crm:lib/attention.ts (header); docs/attention.md#3. The switch;
      modules/tasks/services/persistence/task-attention-items.ts:syncTaskOverdueAttention
  - finding: FND-CRM-ACT-039
    source: >-
      react-console:lib/configuration/task-types.ts (orderedCollection);
      lib/configuration/task-queues.ts;
      lib/configuration/crm-collection.ts:atomicDisplayOrder;
      services-crm:modules/tasks/aws/api/task-configurations.routes.ts (reorder)
  - finding: FND-CRM-ACT-040
    source: >-
      services-crm:modules/merges/references/crm-references.ts (tasks);
      modules/merges/services/persistence/merge-references.ts;
      modules/tasks/services/persistence/task-attention-items.ts:syncTaskOverdueAttention
  - finding: FND-CRM-ACT-041
    source: >-
      services-crm:modules/activities/db/activity-links.table.ts:activityLinks;
      services-crm:modules/activities/services/persistence/activities.ts:linksAsWritten
    provenance: observed
  - finding: FND-CRM-ACT-042
    source: >-
      services-crm:modules/tasks/services/tasks/lifecycle.ts:taskTransitionRefusal;
      services-crm:modules/tasks/services/persistence/tasks.ts:offerTask
    provenance: observed
  - finding: FND-CRM-ACT-043
    source: >-
      services-crm:modules/tasks/services/persistence/task-attention-items.ts:pageOverdueTasks;
      services-crm:modules/tasks/services/persistence/task-attention-items.ts:sweepOverdueTasks
    provenance: observed
  - finding: FND-CRM-ACT-044
    source: >-
      services-crm:modules/tasks/aws/api/tasks-service.routes.ts:tasksServiceRoutes;
      services-crm:modules/activities/README.md#What Platform must add;
      services-crm:docs/attention.md#5. The sweeps
    provenance: unknown
  - finding: FND-CRM-ACT-045
    source: >-
      react-console:components/tasks/task-detail-sheet.tsx:TaskDetailPane;
      react-console:components/tasks/use-task.ts:useTaskMutations;
      react-console:app/(console)/console/[tenantId]/tasks/page.tsx:changeTask;
      react-console:components/tasks/use-task.ts:useTaskTotal;
      react-console:lib/api/tasks.ts:TaskClaimConflictError
    provenance: observed
  - finding: FND-CRM-ACT-046
    provenance: observed
    source: >-
      services-crm:lib/record-history/routes.ts:recordBlock;
      services-crm:modules/activities/aws/api/activities.routes.ts:activityHistoryRoutes;
      rhythm-v2-docs:specs/crm/activities-tasks/planning/capabilities/CAP-CRM-ACT-006-see-who-changed-an-activity-and-what-they-changed.md:BR-CAP-CRM-ACT-006-01;
      rhythm-v2-docs:specs/PRODUCT-AREAS.md:MOD-PFM-OPS
design_examination:
  examiner: codex
  examined_at: '2026-10-23'
  brief: >-
    briefs/design/crm-activities-tasks.brief.md (available after merge from
    origin/master; initial-tree absence resolved)
  planning_authority: >-
    Planning artifacts are draft or proposed at the examined tree; recorded
    decisions confirm only their stated scope.
question_evidence:
  - question: OQ-CRM-ACT-006
    provenance: observed
    source: >-
      services-crm:modules/tasks/services/persistence/task-attention-items.ts:sweepOverdueTasks;
      services-crm:aws/crm.attention-sweeps.ts:sweepAttentionDefinition
control_gap_evidence:
  - finding: FND-CRM-ACT-047
    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/activities/db/activities.table.ts"
      - "services-crm:modules/tasks/db/tasks.table.ts"
  - finding: FND-CRM-ACT-048
    source_sha:
      services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
      react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
      rhythm-v2-docs: 74bec48899048f6472ba876a4c2f9da463bd071f
    controls: [TC-PI-003]
    provenance: observed
    source:
      - "services-crm:modules/tasks/services/persistence/tasks.ts:assignTask,versionPredicate"
  - finding: FND-CRM-ACT-049
    source_sha:
      services-crm: a8d1364f1dd44b723bb5f9acba12f983e9ec8d69
      react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
      rhythm-v2-docs: 74bec48899048f6472ba876a4c2f9da463bd071f
    controls: [TC-LOG-001, TC-LOG-002, TC-LOG-003, TC-PI-005]
    provenance: observed
    source:
      - "services-crm:modules/tasks/services/persistence/tasks.ts:updateTask,assignTask"
      - "rhythm-v2-docs:specs/crm/activities-tasks/FINDINGS.md#FND-CRM-ACT-005"
      - "rhythm-v2-docs:specs/crm/activities-tasks/FINDINGS.md#FND-CRM-ACT-036"
---

# Activities and Tasks: Findings and Open Questions

These findings distinguish implementation defects, conflicting contracts and unverified dependencies. Open questions request material Product decisions; evidence remains in the structured record.

## Findings

| Id | Severity | Statement | Affects | Evidence | Kind |
|---|---|---|---|---|---|
| `FND-CRM-ACT-001` | high | The milestone remains Proposed with no approved plan; named recorded decisions confirm their own scope, while other observed behavior needs Product review. | `MOD-CRM-ACT` | Cited sources | inconsistency |
| `FND-CRM-ACT-002` | high | Assignment checks user-reference syntax without the recorded Platform membership and task-eligibility check, allowing valid-looking references that selectors would not offer. | `BR-CAP-CRM-ACT-012-07`, `CAP-CRM-ACT-012`, `JNY-CRM-ACT-003` | Cited sources | defect |
| `FND-CRM-ACT-003` | medium | Activity replacement enforces complete payloads, while task and configuration replacements still reset omitted values; this differs from the recorded update contract. | `BR-CAP-CRM-ACT-010-10`, `BR-CAP-CRM-ACT-016-07`, `CAP-CRM-ACT-008`, `CAP-CRM-ACT-016` | Cited sources | inconsistency |
| `FND-CRM-ACT-004` | medium | An activity left without links has no timeline context and its console landing fails, although direct reads and authorized dataset queries can return it; orphan management and deleted-link audit requirements remain incomplete. | `BR-CAP-CRM-ACT-018-02`, `BR-CAP-CRM-ACT-018-04`, `CAP-CRM-ACT-018`, `JNY-CRM-ACT-006` | Cited sources | debt |
| `FND-CRM-ACT-005` | medium | Ordinary saves can set module record locks, but a full lock has no supported release path; the recorded requirement calls for narrowly authorized and audited transitions. | `BR-CAP-CRM-ACT-019-08`, `BR-CAP-CRM-ACT-003-06`, `BR-CAP-CRM-ACT-010-11`, `CAP-CRM-ACT-019` | Cited sources | inconsistency |
| `FND-CRM-ACT-006` | medium | The earlier acceptance inventory describes activity custom fields even though the recorded architecture decision removes them and the API rejects them. | `CAP-CRM-ACT-001`, `BR-CAP-CRM-ACT-001-13` | Cited sources | inconsistency |
| `FND-CRM-ACT-007` | medium | The form uses browser today for follow-up timing while omitted-date service calculation uses the activity’s workspace day, so equivalent interactions can receive different due days. | `BR-CAP-CRM-ACT-002-05`, `BR-CAP-CRM-ACT-002-06`, `CAP-CRM-ACT-002`, `OQ-CRM-ACT-004` | Cited sources | inconsistency |
| `FND-CRM-ACT-008` | low | Console duration, end-time and follow-up controls use narrower or stricter limits than the service; Activity and its configuration therefore admit different inputs across surfaces. | `BR-CAP-CRM-ACT-001-07`, `BR-CAP-CRM-ACT-008-05`, `BR-CAP-CRM-ACT-008-12` | Cited sources | inconsistency |
| `FND-CRM-ACT-009` | medium | The attention record describes publishing disabled pending Platform readiness, and no due or assignment notification is implemented; deployed switch state and actual delivery are not established here. | `BR-CAP-CRM-ACT-015-08`, `CAP-CRM-ACT-015` | Cited sources | debt |
| `FND-CRM-ACT-010` | medium | Role-offered task reads and claims exist in APIs, but Tasks has no offered-to-me view or role-offer creation control. | `BR-CAP-CRM-ACT-013-09`, `BR-CAP-CRM-ACT-014-09`, `CAP-CRM-ACT-013`, `CAP-CRM-ACT-014`, `JNY-CRM-ACT-005` | Cited sources | debt |
| `FND-CRM-ACT-011` | low | Task type and queue deactivation preserves references but does not reject new work or claims, unlike activity type retirement. | `BR-CAP-CRM-ACT-016-08`, `BR-CAP-CRM-ACT-012-12`, `OQ-CRM-ACT-003` | Cited sources | inconsistency |
| `FND-CRM-ACT-012` | low | Due dates containing a time are accepted with that component discarded, while the earlier acceptance expectation asks for a field-specific refusal. | `BR-CAP-CRM-ACT-010-06` | Cited sources | defect |
| `FND-CRM-ACT-013` | low | Task, task-type and task-queue bulk permissions exist in the catalog without operations that use them. | `BR-CAP-CRM-ACT-019-09` | Cited sources | debt |
| `FND-CRM-ACT-014` | low | Task type commentary describes immediate in-use deletion refusal, whereas the dependent foreign key is checked at commit. | `CAP-CRM-ACT-016` | Cited sources | inconsistency |
| `FND-CRM-ACT-015` | low | Timeline editability follows update permission without considering record locks, permitting a control that can later fail on save. | `BR-CAP-CRM-ACT-005-10` | Cited sources | defect |
| `FND-CRM-ACT-016` | medium | The earlier activity-query run reports customer-policy refusals; Platform policy contents at the pinned commits and current deployment remain outside this examination. | `BR-CAP-CRM-ACT-007-08`, `CAP-CRM-ACT-007` | Cited sources | inconsistency |
| `FND-CRM-ACT-017` | low | Queue configuration presents team, distribution, due-time and escalation controls without stored service behavior, contrary to the recorded removal of mock-only live controls. | `BR-CAP-CRM-ACT-016-10`, `CON-CRM-ACT-004` | Cited sources | inconsistency |
| `FND-CRM-ACT-018` | medium | Activities baseline installation and workspace cleanup require Platform to register the CRM participant; this job can verify the CRM declaration but not that external registration. | `BR-CAP-CRM-ACT-009-01`, `CAP-CRM-ACT-009` | Cited sources | undocumented |
| `FND-CRM-ACT-019` | low | Assignment accepts an omitted version and then allows the last write to take effect, unlike the mandatory version checks on closing and reopening. | `BR-CAP-CRM-ACT-012-05` | Cited sources | inconsistency |
| `FND-CRM-ACT-020` | low | The task console has no deletion action; deleting a task requires administrator API authority. | `BR-CAP-CRM-ACT-010-12` | Cited sources | debt |
| `FND-CRM-ACT-021` | low | The Activities page exists without an entry in the inspected CRM navigation, leaving address or link access as its entry path. | `CAP-CRM-ACT-007` | Cited sources | defect |
| `FND-CRM-ACT-022` | low | Activity table commentary and an existing read-test title retain references to removed activity custom fields. | `CAP-CRM-ACT-001` | Cited sources | debt |
| `FND-CRM-ACT-023` | low | Proposed scenarios retain proof gaps for follow-up title validation, assignment eligibility, console role-offer discovery and audited locking; they are not passing executable evidence. | `BR-CAP-CRM-ACT-002-03`, `BR-CAP-CRM-ACT-012-07`, `BR-CAP-CRM-ACT-012-12`, `BR-CAP-CRM-ACT-016-08`, `BR-CAP-CRM-ACT-010-06`, `BR-CAP-CRM-ACT-013-09`, `BR-CAP-CRM-ACT-014-09`, `BR-CAP-CRM-ACT-019-08` | Cited sources | debt |
| `FND-CRM-ACT-024` | low | The earlier journey catalog marks the module journeys unstarted despite existing Playwright specifications; specification existence does not establish a passing run. | `JNY-CRM-ACT-001`, `JNY-CRM-ACT-002`, `JNY-CRM-ACT-003`, `JNY-CRM-ACT-004`, `JNY-CRM-ACT-006` | Cited sources | inconsistency |
| `FND-CRM-ACT-025` | low | Task contributor and workflow service actor additions are draft proposals within the otherwise approved CRM actor record and still require Product review. | `ACT-CRM-006`, `ACT-CRM-007` | Cited sources | undocumented |
| `FND-CRM-ACT-026` | low | The task page is workspace-level rather than under CRM, and the corrected module scope includes its shared task and activity components. | `MOD-CRM-ACT` | Cited sources | inconsistency |
| `FND-CRM-ACT-027` | low | The earlier inventory and this corpus use overlapping capability spellings for different allocations; inventory references must retain repository qualification. | `MOD-CRM-ACT` | Cited sources | inconsistency |

| `FND-CRM-ACT-028` | medium | Additional refusals, calculations and related writes now carry must-prove, but the rule references in this finding still lack dedicated acceptance scenarios. | `BR-CAP-CRM-ACT-001-15`, `BR-CAP-CRM-ACT-002-07`, `BR-CAP-CRM-ACT-002-08`, `BR-CAP-CRM-ACT-003-09`, `BR-CAP-CRM-ACT-003-11`, `BR-CAP-CRM-ACT-004-05`, `BR-CAP-CRM-ACT-004-07`, `BR-CAP-CRM-ACT-005-13`, `BR-CAP-CRM-ACT-005-14`, `BR-CAP-CRM-ACT-006-05`, `BR-CAP-CRM-ACT-007-04`, `BR-CAP-CRM-ACT-008-10`, `BR-CAP-CRM-ACT-008-12`, `BR-CAP-CRM-ACT-010-13`, `BR-CAP-CRM-ACT-011-10`, `BR-CAP-CRM-ACT-011-11`, `BR-CAP-CRM-ACT-012-05`, `BR-CAP-CRM-ACT-013-10`, `BR-CAP-CRM-ACT-013-11`, `BR-CAP-CRM-ACT-013-12`, `BR-CAP-CRM-ACT-014-04`, `BR-CAP-CRM-ACT-015-06`, `BR-CAP-CRM-ACT-016-06`, `BR-CAP-CRM-ACT-017-02`, `BR-CAP-CRM-ACT-017-08`, `BR-CAP-CRM-ACT-017-12`, `BR-CAP-CRM-ACT-018-03`, `BR-CAP-CRM-ACT-018-06`, `BR-CAP-CRM-ACT-019-07`, `BR-CAP-CRM-ACT-019-10` | Cited sources | debt |
| `FND-CRM-ACT-029` | low | Resolved during design examination: the original draft brief was absent at the starting commit but arrived with the required master merge and was examined. | `MOD-CRM-ACT` | Cited sources | undocumented |
| `FND-CRM-ACT-030` | high | Role-offer integration still needs external executor proof and decisions on invalid role references, suspended-user listing and duplicated role-selection logic. | `CAP-CRM-ACT-013`, `CAP-CRM-ACT-017`, `JNY-CRM-ACT-005` | Cited sources | debt |
| `FND-CRM-ACT-031` | medium | Pinned source and historical notes establish defaults and expectations without proving deployed switches, security policy contents or present acceptance outcomes. | `CAP-CRM-ACT-009`, `CAP-CRM-ACT-015`, `CAP-CRM-ACT-007` | Cited sources | undocumented |
| `FND-CRM-ACT-032` | medium | Compound statements and diagnostic tests can exceed their cited assertions; corrected claims are narrowed and unresolved executable coverage is retained for design review. | `MOD-CRM-ACT` | Cited sources | debt |

| `FND-CRM-ACT-033` | medium | A user-created activity sent with empty ownership is assigned back to the caller by the creation default, so the console’s No Owner choice does not persist on initial save; a later edit can clear ownership. | `BR-CAP-CRM-ACT-001-17`, `CAP-CRM-ACT-001` | Cited sources | defect |

| `FND-CRM-ACT-034` | low | The design draft could not read the Platform standards repository, so each mechanism's standard is cited through CRM's own records of it (record history, change events, attention, row-level security) rather than the standard itself. | `MOD-CRM-ACT`, `ADR-CRM-ACT-010`, `ADR-CRM-ACT-012` | Cited sources | undocumented |
| `FND-CRM-ACT-035` | low | The module asks no model a question, so it has no Inference Operations; the module charter should say so in one sentence, a planning correction outside this design job's scope. | `MOD-CRM-ACT` | Cited sources | undocumented |
| `FND-CRM-ACT-036` | medium | Tasks have no change stream: their edits leave no revision and raise no change event, so no other module can react to task changes and merges or deletions that touch a task leave no trace on it. | `DOM-CRM-ACT-003`, `SVC-CRM-ACT-tasks`, `ADR-CRM-ACT-012`, `OQ-CRM-ACT-001` | Cited sources | debt |
| `FND-CRM-ACT-037` | medium | The offered-work list reads Platform's security tables directly and restates Platform's role-holder rules, while the claim asks Platform's own function, so the two can disagree when Platform's rules change; Platform should answer the roles a user holds. | `SVC-CRM-ACT-tasks`, `WF-CRM-ACT-005`, `ADR-CRM-ACT-008`, `CAP-CRM-ACT-013` | Cited sources | inconsistency |
| `FND-CRM-ACT-038` | medium | Once attention publishing is switched on, a Platform refusal of an overdue item fails the task write it is part of, so an attention outage blocks task work, including claims and activity saves with an overdue follow-up. | `WF-CRM-ACT-003`, `WF-CRM-ACT-004`, `ADR-CRM-ACT-010`, `OQ-CRM-ACT-005` | Cited sources | debt |
| `FND-CRM-ACT-039` | low | The task type and task queue screens reorder by replacing each moved record although the service offers a one-request reorder, so a drag that fails midway leaves the list partly moved. | `SCR-CRM-ACT-008`, `SCR-CRM-ACT-009`, `ADR-CRM-ACT-013` | Cited sources | defect |
| `FND-CRM-ACT-040` | low | A merge moves task references by writing the tasks table through the shared reassign policy rather than the tasks module, so an overdue item keeps the merged-away contact's name until the next task write or the daily sweep. | `WF-CRM-ACT-007`, `DOM-CRM-ACT-003` | Cited sources | inconsistency |

| `FND-CRM-ACT-041` | medium | Related-record deletion can remove the final activity link or its primary link without promoting another; minimum link count and exactly one primary hold on ordinary saves, not throughout retention. | `DOM-CRM-ACT-001`, `ADR-CRM-ACT-001`, `WF-CRM-ACT-007` | Cited sources | inconsistency |
| `FND-CRM-ACT-042` | low | The draft state tables omitted legal task status moves and routing combinations; corrected tables describe all status moves, but routing remains a projection of independent queue, holder and role fields rather than a stored state machine. | `STATE-CRM-ACT-002`, `STATE-CRM-ACT-003`, `STATE-CRM-ACT-005` | Cited sources | inconsistency |
| `FND-CRM-ACT-043` | medium | The overdue sweep reads task pages before opening their publish transactions and does not lock or recheck the tasks; a concurrent close or reassignment can be followed by publication of older details, and local evidence does not prove a repair deadline. | `WF-CRM-ACT-006`, `STATE-CRM-ACT-004`, `DOM-CRM-ACT-003`, `ADR-CRM-ACT-010` | Cited sources | defect |
| `FND-CRM-ACT-044` | medium | CRM declarations and cited records establish external integration requirements without proving Platform executor outcomes, lifecycle registration, cleanup retry policy, Submissions publication outside the modules or alarm delivery; those remain external proof requirements. | `WF-CRM-ACT-001`, `WF-CRM-ACT-002`, `WF-CRM-ACT-005`, `WF-CRM-ACT-006`, `WF-CRM-ACT-008`, `ADR-CRM-ACT-015` | Cited sources | undocumented |
| `FND-CRM-ACT-045` | low | The task drawer patches assignee changes and omits modification stamps; failed edits and claims do not guarantee detail refresh. Claim conflicts use generic console feedback. The header counts the workspace rather than the selected list required by planning. | `SCR-CRM-ACT-005`, `SCR-CRM-ACT-006`, `WF-CRM-ACT-003`, `WF-CRM-ACT-004`, `BR-CAP-CRM-ACT-014-04` | Cited sources | inconsistency |

| `FND-CRM-ACT-046` | medium | Live interaction history checks both read and history authority, but deleted interaction history checks history authority without a live-record read check, differing from the unqualified planning rule. Responsibilities now separates shared CRM revision persistence from Platform history presentation. | `BR-CAP-CRM-ACT-006-01`, `SVC-CRM-ACT-activities`, `ADR-CRM-ACT-012`, `RESP-CRM` | Cited sources | inconsistency |
| `FND-CRM-ACT-047` | medium | The service’s internal-use classification does not identify the personal class of interaction content, related people and assigned work held by this module. | `SVC-CRM-ACT-activities`, `SVC-CRM-ACT-tasks`, `CAP-CRM-ACT-001`, `CAP-CRM-ACT-010` | `TC-DAT-001`; structured control evidence | control-gap |
| `FND-CRM-ACT-048` | medium | Task assignment accepts an omitted version and permits the later writer to replace assignment without a stale-write refusal. | `CAP-CRM-ACT-012`, `WF-CRM-ACT-003`, `WF-CRM-ACT-004`, `SVC-CRM-ACT-tasks` | `TC-PI-003`; structured control evidence | control-gap |
| `FND-CRM-ACT-049` | medium | Task edits retain current assignment and closing stamps but no revision stream; earlier edits cannot be reconstructed as an append-only task history. Ordinary module lock edits likewise lack dedicated audited transitions. | `CAP-CRM-ACT-010`, `CAP-CRM-ACT-011`, `CAP-CRM-ACT-019`, `SVC-CRM-ACT-tasks`, `WF-CRM-ACT-003` | `TC-LOG-001`, `TC-LOG-002`, `TC-LOG-003`, `TC-PI-005`; structured control evidence | control-gap |

## Open Questions

| Id | Question | Why it matters | Options | Recommendation | Affects |
|---|---|---|---|---|---|
| `OQ-CRM-ACT-001` | Does task work need complete revision history? | Task closing and assignment stamps do not reconstruct earlier title, date or description edits. | A: add task revision history and read authority. B: retain assignment and closing stamps only. | The product should add task revision history so work has reviewable accountability. | `CAP-CRM-ACT-006`, `CAP-CRM-ACT-010`, `CAP-CRM-ACT-011` |
| `OQ-CRM-ACT-002` | Where should role holders discover offered work and overdue offers? | Role offers exist through services but have no console list, and unassigned offers use the administrator overdue audience. | A: add offered work and role-holder reminders. B: add offered work only. C: use application-specific screens. | The product should provide offered-work discovery and direct overdue visibility to eligible holders. | `CAP-CRM-ACT-013`, `CAP-CRM-ACT-014`, `CAP-CRM-ACT-015` |
| `OQ-CRM-ACT-003` | Should inactive task types and queues reject new work? | Deactivation filters selectors but integrations and claims continue using inactive configuration. | A: reject new inactive references and claims while retaining existing work. B: limit inactivity to selection visibility. | The product should choose one retirement meaning and apply it consistently across task configuration. | `CAP-CRM-ACT-016`, `CAP-CRM-ACT-012` |
| `OQ-CRM-ACT-004` | Which date anchors follow-up timing? | The browser and service use different calendar starting points. | A: activity day in the workspace calendar. B: browser today. C: workspace today. | The product should calculate from the activity’s workspace day for all clients. | `CAP-CRM-ACT-002` |
| `OQ-CRM-ACT-005` | Should a Platform refusal of a task's overdue attention write block the person's task change? | Today the attention write is part of the task transaction, so once publishing is on an attention outage refuses task edits, claims and closings. | A: retain transactional coupling for persistence writes, with reconciliation freshness limits and dependency failures. B: commit the task and let the daily sweep repair a failed write. C: record the change in an outbox inside the transaction and publish after commit. | The product should keep task work available when attention is unavailable, through an outbox (C), accepting a short delay in the item. | `CAP-CRM-ACT-015`, `WF-CRM-ACT-003`, `ADR-CRM-ACT-010` |

| `OQ-CRM-ACT-006` | What stale-item window and repair deadline should overdue attention satisfy when reconciliation overlaps task changes? | Separate page reads can publish old holders or reopen an item after task closure, and failed passes can extend discovery delays. | A: retain best-effort daily repair without a deadline. B: recheck or serialize publication against current task state and define a repair target. C: drive publication through committed task changes with reconciliation as a fallback. | Product should choose a measurable freshness target and require a current-state safeguard before accepting reconciliation as a repair guarantee. | `CAP-CRM-ACT-015`, `WF-CRM-ACT-006`, `STATE-CRM-ACT-004`, `FND-CRM-ACT-043` |
