Skip to content

CAP-CMT-MTG-019Apply review decisions from Submissions exactly once

Markdown

CAP-CMT-MTG-019

Apply review decisions from Submissions exactly once

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
Every review decision applied exactly onceSuperseded decisions undone where they can beSubmissions told what happened
Surfaces
jobapi
Preconditions
Submissions delivers a version 1 decision document.
Postconditions
Each applied decision is acknowledged to Submissions.
Intent sources
services-committees:docs/milestones/CMTE-M5-openings-and-nominations.md#What is built today

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-TEN-004 TC-SEC-001 TC-SEC-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.openings.readapitenant

Business Rules

10 rules, 8 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 delivered decision is applied once per decision, and a redelivery changes nothing.
no proof recorded yet
invariantservice, databasetest
02must prove
Proposed
A seat application decided appoint makes a pending appointment awaiting the applicant’s acceptance for an open or closed opening, and an applicant who is not a contact is refused.
no proof recorded yet
lifecycleservicetest
services-committees:modules/recruitment/tests/integration/services/submission-decisions.integration.spec.ts#makes a pending appointment awaiting the applicant’s acceptance, sourced from the decision
03must prove
Proposed
A seat application decided alternate records the applicant as an alternate on the opening, and one decided decline only records the outcome.
no proof recorded yet
lifecycleservicetest
04must prove
Proposed
A nomination decided slate or decline is slated or declined, and an appointment proposal approved or rejected appoints or declines its pending appointment.
no proof recorded yet
lifecycleservicetest
05must prove
Proposed
An outcome the subject’s kind does not declare is refused and acknowledged as rejected by the owner, saying why.
no proof recorded yet
validationservicetest
06must prove
Proposed
A superseding decision undoes the earlier one where it can: a still-pending appointment is declined, an alternate withdrawn, a slate withdrawn unless its decision carried, a declined nomination reopened; where it cannot, the supersession is refused and the earlier decision stands.
no proof recorded yet
lifecycleservicetest
07must prove
Proposed
Each decision’s acknowledgement is queued in the same step that applies it and sent afterwards, retried until Submissions takes it.
no proof recorded yet
invariantservice, database, jobtest
services-committees:modules/recruitment/tests/integration/services/submission-decisions.integration.spec.ts#enqueues the acknowledgement processed, naming the appointment, in the same transaction
08must prove
Proposed
A decision document that is not version 1, or misses its decision or acknowledgement link, is failed naming the field.
no proof recorded yet
validationservicetest
09
Proposed
Staff read an opening’s alternates that still stand.
policyapiobserved
10
Proposed
The Submissions intake and Volunteers are not deployed for Committees, so these decisions arrive only from stand-ins today.
policyservicedocumented

Scenarios

IdGivenWhenThenProvenance
01Submissions decides a seat applicant should be appointedThe decision is deliveredThe applicant is offered the seat pending acceptance and Submissions is told it was processedtest
services-committees:modules/recruitment/tests/e2e/submissions.e2e.spec.ts#acknowledges the decision to the engine, processed, naming the appointment

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.