Skip to content

CAP-CMT-MTG-014Collect conflict-of-interest disclosures from voting members each period

Markdown

CAP-CMT-MTG-014

Collect conflict-of-interest disclosures from voting members each period

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationPartially observed

KindCapabilityProduct areaCommitteesModuleMeetings, Decisions and RecruitmentRevision1

Read atservices-committees 36129c24react-console baf6dae3

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

Outcomes
One disclosure owed per voting member per periodDisclosed interests on record for recusal and reviewer checksPersonal disclosures seen only by those allowed
Surfaces
apiportaljob
Preconditions
The association’s disclosure period is annual or per term.
Intent sources
services-committees:docs/milestones/CMTE-M6-disclosures-and-recusals.md#Objectiveservices-committees:docs/milestones/CMTE-M7-governance-oversight.md#D1

Controls

30 controls apply, from the corpus control catalogue.

TC-IAM-006 TC-AZ-001 TC-AZ-002 TC-AZ-003 TC-AZ-004 TC-AZ-006 TC-TEN-001 TC-TEN-002 TC-TEN-003 TC-TEN-004 TC-SEC-001 TC-SEC-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 TC-LOG-001 TC-LOG-002 TC-LOG-003 TC-LOG-004 TC-LOG-005 TC-AVL-004 TC-MON-001 TC-MON-002 TC-PI-001 TC-PI-002 TC-PI-003 TC-PI-004 TC-PI-005 TC-PRV-001 TC-PRV-002

Permissions

KeyChecked atScope
committees.disclosures.readapitenant
committees.disclosures.manageapitenant
committees.portal.participateapirecord

Business Rules

10 rules, 7 to be proved before approval. A rule's product intent is derived from its origin: 0 confirmed by a product decision, the rest inheriting this capability's proposed.

IdRuleKindEnforced atProvenance
01must prove
Proposed
Under the association’s disclosure period (none, annual or per term), each current voting appointment owes one disclosure per period, opened once by the daily run, and its holder is told once that it is due.
no proof recorded yet
lifecyclejob, databasetest
02must prove
Proposed
An annual period is the calendar year; a per-term period is the appointment’s tenure, an open-ended one counted year by year.
no proof recorded yet
calculationjobtest
03must prove
Proposed
A disclosure is due thirty days after the later of the period’s first day and the appointment’s, and never after the period ends.
no proof recorded yet
calculationjobtest
services-committees:modules/decisions/tests/unit/services/disclosure-period.spec.ts#is due 30 days after an appointment seated during the year
04must prove
Proposed
Requesting a disclosure starts its form in Submissions once: a repeat answers it as it is, a disclosure already accepted or flagged is refused, and while Submissions cannot be reached the request is refused.
no proof recorded yet
lifecycleservicetest
05must prove
Proposed
A Submissions review accepts or flags the disclosure with the interests it records and who reviewed it when; a later review replaces it.
no proof recorded yet
lifecycleservice, jobtest
06must prove
Proposed
The disclosure register is read under a sensitive permission, and a caller without it is refused.
no proof recorded yet
permissionapitest
services-committees:modules/recruitment/tests/e2e/submissions.e2e.spec.ts#refuses the register to a caller without its sensitive key, 403
07
Proposed
A member sees their own disclosures in the portal, newest period first, with whether each is due and by when.
policyservicetest
services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#shows the member their disclosure due, and by when, in the portal
08must prove
Proposed
Disclosures of one association are invisible to another.
no proof recorded yet
permissiondatabasetest
09
Proposed
A disclosure still requested after its due date is a governance attention line, written but withheld from Home until the portal phase.
origin: CMTE-M7 D1 (Andrew 2026-10-21, services-committees:docs/milestones/CMTE-M7-governance-oversight.md#Decisions)
policyservice, jobdocumented
10
Proposed
Disclosed interests also inform the conflict check Submissions makes of its reviewers.
policydatabasetest
services-committees:modules/decisions/tests/integration/services/disclosures.integration.spec.ts#answers a disclosed interest in the engine’s applicant organization

Scenarios

IdGivenWhenThenProvenance
01An association turns on annual disclosuresThe daily run passesEach voting member owes one disclosure for the year and is told it is duetest

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.