---
id: ATS-CMT-MTG-014
scope: CAP-CMT-MTG-014
product_area: committees
module: meetings
revision: 1
status: proposed
approved_by: null
approved_at: null
source_sha:
  services-committees: 36129c24daeaadcdb339218c38cdeaff9861359d
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
- id: ATS-CMT-MTG-014-01
  title: The annual run opens one disclosure per voting member
  level: api
  proves:
  - BR-CAP-CMT-MTG-014-01
  preconditions: An association with annual disclosures and three voting members.
  steps: Run the daily job twice.
  expected: Three disclosures for the year exist after the first run, each holder told once; the second run opens nothing.
  negative: false
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#opens one obligation per voting appointment
  - services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#opens none on a rerun in the same period
  - services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#tells each appointee once that it is due
  - react-console:acceptance/committees/playwright/journeys/decisions/CMT-ACC-0353.spec.ts#CMT-ACC-0353
  provenance: test
  source: services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#opens one obligation per voting appointment
- id: ATS-CMT-MTG-014-02
  title: Periods follow the association’s setting
  level: unit
  proves:
  - BR-CAP-CMT-MTG-014-02
  preconditions: Appointments of fixed and open-ended tenure.
  steps: Compute the period under annual and per-term settings across years.
  expected: Annual periods are calendar years; per-term periods are the tenure, an open-ended one year by year; none owes nothing.
  negative: false
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/decisions/tests/unit/services/disclosure-period.spec.ts#is the calendar year of the day, due on 31 January
  - services-committees:modules/decisions/tests/unit/services/disclosure-period.spec.ts#is the tenure, due 30 days after it begins
  - services-committees:modules/decisions/tests/unit/services/disclosure-period.spec.ts#is an open-ended tenure’s next year once the first has ended
  - services-committees:modules/decisions/tests/unit/services/disclosure-period.spec.ts#owes nothing
  provenance: test
  source: services-committees:modules/decisions/tests/unit/services/disclosure-period.spec.ts#is the calendar year of the day, due on 31 January
- id: ATS-CMT-MTG-014-03
  title: A director seated in March has until April
  level: unit
  proves:
  - BR-CAP-CMT-MTG-014-03
  preconditions: An annual period and a director seated on 1 March.
  steps: Compute the due date; and for one seated on 20 December.
  expected: The first is due thirty days after 1 March; the second is due on the year’s last day.
  negative: false
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/decisions/tests/unit/services/disclosure-period.spec.ts#is due 30 days after an appointment seated during the year
  - services-committees:modules/decisions/tests/unit/services/disclosure-period.spec.ts#is never due after the year ends
  - services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#opens each for 2026, due 30 days after the appointment began
  provenance: test
  source: services-committees:modules/decisions/tests/unit/services/disclosure-period.spec.ts#is due 30 days after an appointment seated during the year
- id: ATS-CMT-MTG-014-04
  title: The disclosure form starts once
  level: api
  proves:
  - BR-CAP-CMT-MTG-014-04
  preconditions: A disclosure owed.
  steps: Request it twice; request one already accepted; request with Submissions unreachable.
  expected: The form starts once and the repeat answers as it is; the accepted one and the unreachable case are refused.
  negative: true
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#starts the form for the appointee, about the disclosure, once however often it is requested
  - services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#answers a second request as it is
  - services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#refuses while the engine cannot be reached, saying so
  provenance: test
  source: services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#starts the form for the appointee, about the disclosure, once however often it is requested
- id: ATS-CMT-MTG-014-05
  title: A reviewed disclosure carries its interests
  level: api
  proves:
  - BR-CAP-CMT-MTG-014-05
  preconditions: A submitted disclosure.
  steps: Deliver an accept and later a flag from Submissions.
  expected: It reads accepted, then flagged, with the interests and the reviewer each time.
  negative: false
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/integration/services/submission-decisions.integration.spec.ts#accepts the disclosure with the summary its decision’s basis carried
  - services-committees:modules/recruitment/tests/integration/services/submission-decisions.integration.spec.ts#flags the disclosure with the summary of the revision’s answers
  - services-committees:modules/recruitment/tests/integration/services/submission-decisions.integration.spec.ts#records who reviewed it and when, from the decision
  - react-console:acceptance/committees/playwright/journeys/decisions/CMT-ACC-0354.spec.ts#CMT-ACC-0354
  provenance: test
  source: services-committees:modules/recruitment/tests/integration/services/submission-decisions.integration.spec.ts#accepts the disclosure with the summary its decision’s basis carried
- id: ATS-CMT-MTG-014-06
  title: Only holders of the sensitive key read disclosures
  level: api
  proves:
  - BR-CAP-CMT-MTG-014-06
  preconditions: Two disclosures; a reader with and one without the disclosures key.
  steps: List the register as each.
  expected: The first lists both; the second is refused.
  negative: true
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/recruitment/tests/e2e/submissions.e2e.spec.ts#lists both obligations to a caller holding the register’s key
  - services-committees:modules/recruitment/tests/e2e/submissions.e2e.spec.ts#refuses the register to a caller without its sensitive key, 403
  provenance: test
  source: services-committees:modules/recruitment/tests/e2e/submissions.e2e.spec.ts#lists both obligations to a caller holding the register’s key
- id: ATS-CMT-MTG-014-07
  title: Another association reads no disclosure
  level: api
  proves:
  - BR-CAP-CMT-MTG-014-08
  preconditions: A disclosure in one workspace.
  steps: List and read it from another.
  expected: Nothing is found.
  negative: true
  data_needs: A committee with a seated roster in a disposable workspace
  bound_to:
  - services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#lists none of it to tenant B
  - services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#reads none of it to tenant B by id
  provenance: test
  source: services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#lists none of it to tenant B
evidence:
- 'services-committees at 36129c24: disclosure routes, disclosures service and persistence, disclosure period rule, disclosure reader port, submissions consequences, attention definitions, conflict disclosures table, CMTE-M6 and CMTE-M7 records'
- 'react-console at baf6dae3: acceptance inventory CAP-CMT-DEC-019 to 023 and journeys CMT-ACC-0353, 0354, 0362'
---

# Collect conflict-of-interest disclosures from voting members each period: Acceptance Test Set

## Coverage

| Rule | Proved by |
|---|---|
| `BR-CAP-CMT-MTG-014-01` | `ATS-CMT-MTG-014-01` |
| `BR-CAP-CMT-MTG-014-02` | `ATS-CMT-MTG-014-02` |
| `BR-CAP-CMT-MTG-014-03` | `ATS-CMT-MTG-014-03` |
| `BR-CAP-CMT-MTG-014-04` | `ATS-CMT-MTG-014-04` |
| `BR-CAP-CMT-MTG-014-05` | `ATS-CMT-MTG-014-05` |
| `BR-CAP-CMT-MTG-014-06` | `ATS-CMT-MTG-014-06` |
| `BR-CAP-CMT-MTG-014-08` | `ATS-CMT-MTG-014-07` |
