Skip to content

CAP-CMT-MTG-007Prepare minutes for committee review

Markdown

CAP-CMT-MTG-007

Prepare minutes for committee review

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationObserved

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
An assembled draft uses the meeting’s agenda and attendanceSaved text has a reproducible fingerprintCirculated text returns to draft before further editing
Surfaces
api
Preconditions
Notes require a scheduled, in-progress or held meeting; new minutes require proceedings to have begun.
Postconditions
Circulated minutes are available through the committee’s permitted portal audience.
Intent sources
services-committees:docs/milestones/CMTE-M3-meetings-and-minutes.md#D7services-committees:docs/milestones/CMTE-M3-meetings-and-minutes.md#D12

Controls

29 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-SEC-001 TC-SEC-004 TC-CRY-004 TC-DAT-001 TC-DAT-002 TC-DAT-003 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.meetings.readapitenant
committees.meetings.manageapitenant

Business Rules

11 rules, 10 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
Notes can be appended to an item belonging to a scheduled, in-progress or held meeting, with the recording actor and time retained and no note-update operation exposed.
no proof recorded yet
validationserviceobserved
02must prove
Proposed
Minutes may first be drafted for an in-progress or held meeting, and saving or assembling creates a draft when none exists.
no proof recorded yet
lifecycleservicetest
services-committees:modules/meetings/tests/unit/services/minutes-rule.spec.ts#drafts the minutes of a meeting in progress or held, and of no other
03must prove
Proposed
Assembly replaces draft text with a meeting heading, attendance groups, agenda-ordered numbered item sections and a final empty decisions section, omitting ordinary notes for deferred items.
no proof recorded yet
calculationserviceobserved
04must prove
Proposed
Assembly substitutes a confidentiality notice for an executive-session item’s notes rather than copying those notes into the draft.
origin: CMTE-M3 D12 item 9 (Andrew 2026-10-21, services-committees:docs/milestones/CMTE-M3-meetings-and-minutes.md#Decisions)
no proof recorded yet
policyservicetest
services-committees:modules/meetings/tests/unit/services/minutes-rule.spec.ts#keeps an executive-session item’s notes out of the minutes (premise: the note was given)
05must prove
Proposed
Each saved minutes body receives the SHA-256 fingerprint of its stored UTF-8 bytes.
no proof recorded yet
calculationservicetest
06must prove
Proposed
Existing minutes require their current version for saving or assembly, and only draft minutes permit body changes.
no proof recorded yet
validationapi, servicetest
services-committees:modules/meetings/tests/e2e/minutes.e2e.spec.ts#refuses a save of circulated minutes with 409, minutes_circulated
07must prove
Proposed
The save boundary accepts non-blank text up to 2,000,000 UTF-8 bytes and stores it through file preparation, which rejects HTML-looking bodies.
no proof recorded yet
validationapi, serviceobserved
08must prove
Proposed
Circulation requires draft minutes with a saved body and a held meeting, and records the circulation time.
origin: CMTE-M3 D7 (Andrew 2026-10-21, services-committees:docs/milestones/CMTE-M3-meetings-and-minutes.md#Decisions)
no proof recorded yet
lifecycleservicetest
09must prove
Proposed
Reverting circulated minutes clears their circulation time and permits editing before they are circulated again.
origin: CMTE-M3 D7 (Andrew 2026-10-21, services-committees:docs/milestones/CMTE-M3-meetings-and-minutes.md#Decisions)
no proof recorded yet
lifecycleservicetest
services-committees:modules/meetings/tests/integration/services/minutes.integration.spec.ts#reverts circulated minutes to a draft, clearing when they were circulated
10
Proposed
Database version history retains the author of each save, circulation and return to draft.
invariantdatabaseobserved
11must prove
Proposed
API text input is trimmed before minutes and note validation and storage, so saved fingerprints describe the normalised minutes text rather than the original submitted whitespace.
no proof recorded yet
calculationapitest

Scenarios

IdGivenWhenThenProvenance
01A board meeting has closed with notes on its ordinary and executive-session agenda itemsThe secretary requests an assembled draftThe draft follows agenda order and includes the executive-session heading and confidentiality notice without its notestest

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.