---
id: CAP-CMT-MTG-004
title: Prepare and share an ordered meeting agenda
feature: FEAT-CMT-MTG-02
product_area: committees
module: meetings
revision: 1
status: draft
product_intent: proposed
implementation_evidence: observed
supersedes:
  - 'react-console acceptance inventory CAP-CMT-MTG-008, 009'
  - 'react-console acceptance journeys CMT-ACC-0226 to 0229, 0231'
source_sha:
  services-committees: 36129c24daeaadcdb339218c38cdeaff9861359d
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources: []
purpose: >-
  The secretary organises the committee’s planned business and carries unfinished items into another
  eligible meeting.
outcomes:
  - Meeting business follows an intentional hierarchy and order
  - Deferred business has a planned copy on a later agenda
  - Final agendas retain their recorded contents
concepts:
  - CON-CMT-MTG-001
actors:
  - ACT-CMT-002
  - ACT-CMT-008
surfaces:
  - api
preconditions:
  - The meeting and agenda remain eligible for editing.
postconditions:
  - >-
    Publication marks the agenda as shared; portal disclosure still follows the viewer’s
    participation and confidentiality checks.
permissions:
  - key: committees.meetings.read
    where_checked: api
    scope: tenant
  - key: committees.meetings.manage
    where_checked: api
    scope: tenant
rules:
  - id: BR-CAP-CMT-MTG-004-01
    statement: >-
      Agenda items form an ordered hierarchy, with new items appended under a parent or placed
      before or after a sibling; requesting both placements is refused.
    kind: validation
    enforced_at:
      - service
      - database
    must_prove: true
    provenance: test
    source: >-
      services-committees:modules/meetings/tests/integration/services/meetings.integration.spec.ts#places
      an item before another without renumbering the rest’s keys
    origin: none
  - id: BR-CAP-CMT-MTG-004-02
    statement: >-
      Concurrent additions are serialised so each item retains a distinct position and siblings
      receive consecutive numbers.
    kind: invariant
    enforced_at:
      - service
      - database
    must_prove: true
    provenance: test
    source: >-
      services-committees:modules/meetings/tests/integration/services/meetings.integration.spec.ts#keeps
      all ten, each with its own key
    origin: none
  - id: BR-CAP-CMT-MTG-004-03
    statement: >-
      Replacing the agenda order requires the current meeting version, every item exactly once, and
      each parent before its children.
    kind: validation
    enforced_at:
      - service
    must_prove: true
    provenance: observed
    source: 'services-committees:modules/meetings/services/persistence/agenda-items.ts:replaceAgendaOrder'
    origin: none
  - id: BR-CAP-CMT-MTG-004-04
    statement: >-
      Deleting an item is refused when it has children, notes, proposed actions, task links or
      decisions; otherwise its materials are detached and remain on the meeting.
    kind: validation
    enforced_at:
      - service
      - database
    must_prove: true
    provenance: observed
    source: 'services-committees:modules/meetings/services/persistence/agenda-items.ts:deleteAgendaItem'
    origin: none
  - id: BR-CAP-CMT-MTG-004-05
    statement: >-
      Deferral requires the current item version and an editable later meeting of the same
      committee, marks the original deferred and appends a planned copy, and refuses further edits
      or deferral of the original.
    kind: lifecycle
    enforced_at:
      - service
      - database
    must_prove: true
    provenance: observed
    source: 'services-committees:modules/meetings/services/persistence/agenda-items.ts:deferAgendaItem'
    origin: none
  - id: BR-CAP-CMT-MTG-004-06
    statement: An agenda can be published from draft only while its meeting is draft or scheduled.
    kind: lifecycle
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-committees:modules/meetings/tests/unit/services/meeting-lifecycle.spec.ts#publishes a
      draft agenda of a meeting that has not started
    origin: none
  - id: BR-CAP-CMT-MTG-004-07
    statement: >-
      Calling the meeting to order makes its agenda final, and agenda writes are refused after
      finalisation or the meeting’s end.
    kind: lifecycle
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-committees:modules/meetings/tests/unit/services/meeting-lifecycle.spec.ts#makes the
      agenda final at the call to order
    origin: none
  - id: BR-CAP-CMT-MTG-004-08
    statement: >-
      Portal executive-session items are visible only to voting meeting participants, meeting chairs
      and liaisons.
    kind: permission
    enforced_at:
      - service
    must_prove: true
    provenance: observed
    source: >-
      services-committees:modules/meetings/services/participation/participation-rule.ts:mayReadConfidential
    origin: none
  - id: BR-CAP-CMT-MTG-004-09
    statement: >-
      An optional item duration, when supplied, must be a whole number from one through 1,440
      minutes.
    kind: validation
    enforced_at:
      - api
      - database
    must_prove: true
    provenance: observed
    source: 'services-committees:modules/meetings/db/agenda-items.table.ts:agenda_items_time_allotted_check'
    origin: none
  - id: BR-CAP-CMT-MTG-004-10
    statement: >-
      Agenda item kinds are call to order, consent, report, discussion, motion, election, executive
      session, information, adjournment or other, and item status is planned, deferred, covered or
      skipped.
    kind: invariant
    enforced_at:
      - api
      - database
    must_prove: true
    provenance: observed
    source: 'services-committees:modules/meetings/db/agenda-items.table.ts'
    origin: none
scenarios:
  - id: SC-CAP-CMT-MTG-004-01
    given: An agenda has a consent section with nested items and a treasurer’s report
    when: The secretary moves the report to the beginning and promotes a nested item to the top level
    then: The saved agenda reflects the supplied order and parent assignments
    provenance: test
    source: >-
      react-console:acceptance/committees/playwright/journeys/meetings/CMT-ACC-0227.spec.ts#CMT-ACC-0227
edge_cases: []
constraints: []
depends_on:
  - CAP-CMT-MTG-001
related:
  - CAP-CMT-MTG-005
  - CAP-CMT-MTG-007
  - CAP-CMT-MTG-010
journeys:
  - JNY-CMT-MTG-001
open_questions: []
evidence:
  - >-
    services-committees at 36129c24: Agenda hierarchy, complete ordering, deferral, deletion guards
    and publication.
  - >-
    react-console at baf6dae3: the meeting acceptance specifications cited by this capability and
    its acceptance set.
controls:
  - 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-DAT-001
  - TC-DAT-002
  - TC-DAT-003
  - TC-LOG-002
  - TC-LOG-003
  - TC-LOG-004
  - TC-LOG-005
  - TC-PI-001
  - TC-PI-003
  - TC-PI-005
  - TC-PRV-001
  - TC-PRV-002
---

# Prepare and share an ordered meeting agenda

## Purpose

An agenda gives the committee a deliberate sequence for its business. The secretary can organise that sequence and retain a connection to business planned for another meeting.

## How It Works

Staff assemble sections and individual topics before proceedings begin. Titles, descriptions, presenters and optional time allocations help explain each topic. Placement controls let the secretary insert a topic among existing siblings, while whole-agenda replacement can also change its parent. Concurrent additions retain separate positions. Deferring a topic creates a new planned copy rather than moving its notes and materials to the later meeting. The source topic remains a record of the deferral. Deletion checks protect work already recorded against a topic. Publication marks the agenda as shared without making it final. Finalisation follows the meeting lifecycle and prevents further agenda writes. Confidential topics remain subject to meeting-role checks when a portal viewer reads them.

## Relationships

Scheduling supplies the meeting lifecycle used for finalisation. Packet preparation attaches papers to topics, minutes use agenda order, and decision work can record a motion against a topic.
