Skip to content

CAP-CMT-MTG-010Put a motion to a committee and record how it was decided

Markdown

CAP-CMT-MTG-010

Put a motion to a committee and record how it was decided

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
Every motion numbered and kept as a permanent recordWho could vote fixed when voting opensE-mail votes closed on time without staff action
Surfaces
apijob
Preconditions
The committee exists and is not dissolved.
Postconditions
A closed decision carries its tally, arithmetic and outcome.
Intent sources
services-committees:docs/milestones/CMTE-M4-decisions-and-governance-register.md#Decisions

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.decisions.readapitenant
committees.decisions.manageapitenant

Business Rules

15 rules, 15 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
A decision goes from draft to open; from draft or open to tabled or withdrawn; from open to carried, failed or no quorum by closing; and from carried to superseded; nothing else.
no proof recorded yet
lifecycleservice, databasetest
02must prove
Proposed
When a decision opens it takes the committee’s next number in its year, written year and sequence such as 2026-14, starting again at 1 each year; a draft has no number.
✓ The fourteenth decision opened in 2026 is 2026-14.✗ A withdrawn draft never takes a number.
no proof recorded yet
calculationservice, databasetest
services-committees:modules/decisions/tests/unit/services/decision-rules.spec.ts#gives a committee’s first decision number 1 and leaves the counter at 2
03must prove
Proposed
When a decision opens, the rules in force, its threshold and its voters (the committee’s voting roster on the meeting’s date, or today for an e-mail vote, ex officio occupants included) are frozen with it, and at a meeting so is who is present.
no proof recorded yet
invariantservice, databasetest
04must prove
Proposed
A voice vote, show of hands, roll call, unanimous consent or paper ballot is taken at a meeting that is neither a draft nor cancelled and has no closing time; an e-mail vote has no meeting and needs a closing time.
no proof recorded yet
validationapi, service, databasetest
05must prove
Proposed
An e-mail vote opens only when the committee’s rules allow them and its closing time is at least the rules’ minimum open hours away, 48 under Robert’s Rules.
no proof recorded yet
validationservicetest
services-committees:modules/decisions/tests/integration/services/consequences.integration.spec.ts#refuses an asynchronous decision the rules do not allow, 409 async_not_allowed
06must prove
Proposed
A decision’s kind decides what it must carry: an appointment its proposed appointments, a removal the appointments it ends, a charter what it charters or dissolves, an approval the minutes it approves, and no other kind carries these.
no proof recorded yet
validationapi, service, databaseobserved
07must prove
Proposed
A dissolved committee takes no new decision.
no proof recorded yet
validationserviceobserved
08must prove
Proposed
A roll call or recorded e-mail vote takes one vote per eligible, unrecused appointment while the decision is open, and a vote never changes.
no proof recorded yet
validationservice, databasetest
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses a second vote by the same appointment, 409 already_voted
09must prove
Proposed
A vote by proxy needs the rules to allow proxies and the meeting to have a proxy participant for that appointment, and a named proxy appointment must be a current appointment of the committee.
no proof recorded yet
validationservicetest
services-committees:modules/decisions/tests/integration/services/consequences.integration.spec.ts#refuses a vote by proxy when the rules forbid proxies, 409 proxies_forbidden
10must prove
Proposed
The other in-room methods record a tally of counts, objections or the chair’s declaration at the decision’s version, and such a decision cannot close without one.
no proof recorded yet
validationapi, servicetest
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses to close a voice vote with no tally recorded, 409 tally_required
11must prove
Proposed
Once open, the motion cannot change; once closed, nothing changes but a carried decision becoming superseded; and no decision, vote or recusal is ever deleted.
no proof recorded yet
invariantdatabasetest
12must prove
Proposed
Every hour each open recorded e-mail vote past its closing time is closed as a close by hand would be, and voters who have not voted are reminded once within 24 hours of the close.
no proof recorded yet
lifecyclejobtest
13must prove
Proposed
Every voter is told once when a decision opens and once when it closes; tabling or withdrawing tells nobody.
no proof recorded yet
policyservicetest
14must prove
Proposed
A secret ballot opens its election in Surveys & Voting and is refused while no ballot service exists; it cannot be closed by hand and closes once from the certified result, a redelivery being ignored.
no proof recorded yet
lifecycleservice, jobtest
services-committees:modules/decisions/tests/integration/services/decisions.integration.spec.ts#refuses to close a secret vote by hand, 409 awaiting_certification
15must prove
Proposed
Staff applying a certified result by hand must name the election the decision opened.
no proof recorded yet
validationservicetest

Scenarios

IdGivenWhenThenProvenance
01A roll-call motion at the October board meetingSeven members vote six to one and the chair closes itIt is carried as 2026-01 with its arithmetictest
services-committees:modules/decisions/tests/e2e/decisions.e2e.spec.ts#carries the roll call 6 to 1, with its arithmetic

Edge Cases

IdGivenWhenThenProvenance
02A newly formed committee with nobody seatedA decision opensIt has no voters and can never carrytest

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.