---
id: CAP-PFM-ELG-018
title: Manage personal responses to attention items
feature: FEAT-PFM-ELG-05
product_area: platform
module: eligibility
revision: 1
status: draft
product_intent: confirmed
implementation_evidence: observed
supersedes:
  - RA-ACC-0103
source_sha:
  services-platform: ad3f6a6582843008ed0f5a17b131878d15829af1
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources:
  - >-
    services-platform:docs/proposals/responsibilities-and-attention/16-decisions.md#D-06
  - 'services-platform:docs/milestones/plans/PLAT-M15-plan.md#A5'
  - 'services-platform:docs/milestones/plans/PLAT-M15-plan.md#PLAT-M15-S06'
purpose: >-
  People need to manage how outstanding conditions appear to them. Personal
  responses preserve the condition while recording their own handling of it.
outcomes:
  - Required attention remains until its underlying condition ends.
  - Personal actions stay independent and create an audit trail.
concepts:
  - CON-PFM-ELG-005
actors:
  - ACT-PFM-013
surfaces:
  - console
  - api
preconditions: []
postconditions: []
permissions:
  - key: platform.attention.use
    where_checked: api
    scope: tenant
rules:
  - id: BR-CAP-PFM-ELG-018-01
    proved_by: [ATS-PFM-ELG-018-01, TST-PFM-ELG-408]
    statement: >-
      Personal actions require an open occurrence addressed to the caller, with
      every action rejected after the occurrence closes.
    kind: validation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/attention/tests/unit/rules.spec.js#refuses every
      action on an item that is no longer open
    origin: none
  - id: BR-CAP-PFM-ELG-018-02
    proved_by: [ATS-PFM-ELG-017-18, ATS-PFM-ELG-018-02, ATS-PFM-ELG-018-07, ATS-PFM-ELG-018-10, TST-PFM-ELG-388, TST-PFM-ELG-396]
    statement: >-
      Acknowledgement marks the item seen and removes its unread contribution
      while keeping it on the list.
    kind: lifecycle
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/attention/tests/integration/services/persistence/states.integration.spec.js#acknowledges
      an item and records attention.acknowledged against its definition
    origin: none
  - id: BR-CAP-PFM-ELG-018-03
    proved_by: [ATS-PFM-ELG-018-03, TST-PFM-ELG-370, TST-PFM-ELG-388, TST-PFM-ELG-396]
    statement: Required attention cannot be dismissed.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/attention/tests/integration/services/persistence/states.integration.spec.js#refuses
      dismissing a required item as not_dismissable, writing no trail
    origin: >-
      services-platform:docs/proposals/responsibilities-and-attention/16-decisions.md#D-06
  - id: BR-CAP-PFM-ELG-018-04
    proved_by: [ATS-PFM-ELG-018-04, ATS-PFM-ELG-018-08, ATS-PFM-ELG-019-08, TST-PFM-ELG-388, TST-PFM-ELG-408]
    statement: >-
      Required snoozes obey the kind’s duration and count bounds, defaulting to
      seven days and three uses; other classes allow repeated snoozes up to 90
      days, always ending in the future.
    kind: validation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/attention/tests/unit/rules.spec.js#refuses a
      required item’s snooze once it has been snoozed its allowed number of
      times
    origin: >-
      services-platform:docs/proposals/responsibilities-and-attention/16-decisions.md#D-06
  - id: BR-CAP-PFM-ELG-018-05
    proved_by: [ATS-PFM-ELG-018-05, TST-PFM-ELG-388, TST-PFM-ELG-396]
    statement: >-
      Dismissal removes an advisory or opportunity from that person’s list, with
      a recurring advisory appearing only as a fresh occurrence.
    kind: lifecycle
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-platform:modules/attention/tests/e2e/attention.e2e.spec.js#dismisses
      an advisory, which then leaves the caller’s list
    origin: none
  - id: BR-CAP-PFM-ELG-018-06
    proved_by: [ATS-PFM-ELG-018-09, ATS-PFM-ELG-018-10, TST-PFM-ELG-396]
    statement: >-
      Snoozed attention reappears at its end time or when the person explicitly
      ends the snooze.
    kind: lifecycle
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      react-console:acceptance/platform-attention/playwright/journeys/attention/RA-ACC-0103.spec.ts#RA-ACC-0103
    origin: none
  - id: BR-CAP-PFM-ELG-018-07
    proved_by: [ATS-PFM-ELG-018-06, ATS-PFM-ELG-018-09, ATS-PFM-ELG-018-11, TST-PFM-ELG-396]
    statement: >-
      Actions lock an existing personal state, advance its version and audit
      kind, occurrence and generation; snoozes additionally audit their count,
      while rejected actions create no trail.
    kind: invariant
    enforced_at:
      - service
    must_prove: true
    provenance: observed
    source: >-
      services-platform:modules/attention/services/persistence/states.ts:applyStateAction
    origin: none
scenarios:
  - id: SC-CAP-PFM-ELG-018-01
    given: Pat receives a required batch and separate advisory occurrences.
    when: >-
      Pat attempts required dismissal and uses dismissal and snooze on separate
      advisories.
    then: >-
      Required dismissal fails, optional dismissal hides its occurrence and the
      snoozed advisory returns at its end.
    provenance: test
    source: >-
      react-console:acceptance/platform-attention/playwright/journeys/attention/RA-ACC-0103.spec.ts#RA-ACC-0103
edge_cases: []
constraints: []
depends_on:
  - CAP-PFM-ELG-017
related:
  - CAP-PFM-ELG-019
journeys: []
open_questions: []
evidence:
  - >-
    services-platform: docs/attention.md;
    docs/milestones/PLAT-M15-home-attention-and-responsibilities.md,
    PLAT-M16-attention-follow-up-and-tuning.md,
    PLAT-M17-attention-on-records-and-events.md,
    PLAT-M18-workspace-defined-attention.md, plans/PLAT-M15-plan.md,
    plans/PLAT-M16-plan.md;
    docs/proposals/responsibilities-and-attention/16-decisions.md;
    aws/platform.service.ts (ATTENTION_PERMISSIONS); modules/attention/rules.ts
    (decideStateAction), services/persistence/states.ts,
    aws/api/attention.routes.ts (acknowledge, snooze, unsnooze, dismiss),
    db/attention-states.table.ts; rule-level source and test references
  - >-
    react-console: components/attention/attention-item-row.tsx,
    attention-parts.tsx;
    acceptance/platform-attention/journeys/attention/RA-ACC-0103.
controls: [TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-DAT-001, TC-DAT-002, TC-DAT-003, TC-LOG-002, TC-LOG-003, TC-LOG-005, TC-PI-001, TC-PI-003, TC-PI-005, TC-PRV-001, TC-PRV-002, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-TEN-004, TC-VEN-001, TC-VEN-002, TC-VEN-003]
exercised_by: [FAS-PFM-ELG-05-01, FAS-PFM-ELG-05-02, FAS-PFM-ELG-05-03, FAS-PFM-ELG-05-04, FAS-PFM-ELG-06-02]
suites: [TST-PFM-ELG-370, TST-PFM-ELG-388, TST-PFM-ELG-396, TST-PFM-ELG-408]
---
# Manage personal responses to attention items

## Purpose

People need to manage how outstanding conditions appear to them. Personal responses preserve the condition while recording their own handling of it.

## How It Works

The person chooses an action on an item addressed to them. Acknowledgement records that they have seen it. Snoozing postpones its normal display until the chosen time. Ending a snooze brings it back sooner. Dismissal is available only for the classes that permit it. Required items retain stricter postponement bounds. Responses belong to the person rather than every recipient. Successful actions update personal state and create audit evidence. Closed occurrences reject further actions.

## Relationships

- Deliver relevant attention with a reason provides the visible occurrence a recipient acts on.
