{
  "name": "Robert's Rules of Order (Complete)",
  "slug": "roberts-rules-complete",
  "version": "1.0.1",
  "license": "MIT",
  "license_url": "https://opensource.org/licenses/MIT",
  "manifest": {
    "schema_version": "1",
    "toolkit_prompt": "You are an expert parliamentary procedure assistant with comprehensive knowledge of Robert's Rules of Order Newly Revised (12th edition). Apply formal parliamentary language precisely. Use correct terminology for all motions, including the distinctions between main, subsidiary, privileged, and incidental motions. Track motion precedence rigorously. This toolkit is designed for large assemblies, conventions, legislative bodies, and organizations requiring strict adherence to parliamentary procedure.",
    "templates": [
      {
        "spec": {
          "$id": "rr-formal-meeting",
          "name": "Formal Assembly Meeting (Robert's Rules Complete)",
          "description": "A comprehensive meeting template for formal deliberative assemblies following Robert's Rules of Order in full. Includes special orders, general orders, consent calendar, and executive session support. Suitable for conventions, legislative bodies, large boards, and organizations requiring strict parliamentary procedure.",
          "title": "Formal Assembly Meeting",
          "meeting_duration_seconds": 7200,
          "start_time_offset_seconds": -1,
          "detail_level": "STANDARD",
          "agenda_items": [
            {
              "item_type": "DISCUSSION",
              "title": "Call to Order",
              "description": "## 📋 Attendance & Quorum Tracker\n\n**Meeting Called to Order**: [time] by [presiding officer]\n\n### Voting Members\n| Member | Present | Absent | Proxy | Voting Rights |\n|--------|---------|--------|-------|---------------|\n| | ☐ | ☐ | ☐ | ☐ Full ☐ Ex-Officio ☐ None |\n| | ☐ | ☐ | ☐ | ☐ Full ☐ Ex-Officio ☐ None |\n| | ☐ | ☐ | ☐ | ☐ Full ☐ Ex-Officio ☐ None |\n| | ☐ | ☐ | ☐ | ☐ Full ☐ Ex-Officio ☐ None |\n| | ☐ | ☐ | ☐ | ☐ Full ☐ Ex-Officio ☐ None |\n| | ☐ | ☐ | ☐ | ☐ Full ☐ Ex-Officio ☐ None |\n| | ☐ | ☐ | ☐ | ☐ Full ☐ Ex-Officio ☐ None |\n| | ☐ | ☐ | ☐ | ☐ Full ☐ Ex-Officio ☐ None |\n\n**Quorum Required**: [ ] voting members (per bylaws)\n**Present with Voting Rights**: [ ]\n**Quorum Status**: ☐ Met ☐ Not Met\n\n---\n\n### Attendance Changes During Meeting\n| Time | Member | Action | Quorum Impact |\n|------|--------|--------|---------------|\n| | | ☐ Arrived ☐ Departed | ☐ Still Met ☐ Lost |\n| | | ☐ Arrived ☐ Departed | ☐ Still Met ☐ Lost |\n\n### Guests & Non-Voting Attendees\n| Name | Role/Affiliation | Purpose |\n|------|------------------|--------|\n| | | |",
              "content": "**Presiding Officer Script**\n\n1. Rap the gavel once and state: \"The meeting will come to order.\"\n2. Direct the Secretary to call the roll or verify attendance.\n3. Announce: \"The Secretary reports [number] members present. A quorum being present, the assembly is competent to transact business.\"\n\n**If Quorum Is Not Present:**\n- Only the following are in order: Adjourn, Fix the Time to Which to Adjourn, Recess, or measures to obtain a quorum.\n- State: \"A quorum not being present, the Chair declares the meeting adjourned to [date/time].\"\n\n**Opening Ceremonies** *(as applicable)*\n- Pledge of Allegiance\n- Invocation\n- Land Acknowledgment",
              "time_allocation_minutes": 5,
              "sequence": "1",
              "restricted_to_leads": false
            },
            {
              "item_type": "DISCUSSION",
              "title": "Reading and Approval of Minutes",
              "description": "The Secretary reads the minutes of the previous meeting for approval.",
              "content": "**Presiding Officer Script**\n\n1. \"The Secretary will read the minutes of the previous meeting.\" (Or: \"The minutes having been distributed, are there any corrections?\")\n2. After reading/review: \"Are there any corrections to the minutes?\"\n3. Corrections are made by general consent: \"If there is no objection, the correction will be made. Hearing none, it is so ordered.\"\n4. \"If there are no [further] corrections, the minutes stand approved [as read / as corrected / as distributed].\"\n\n**For Minutes of Executive Sessions:**\n- Read only in executive session\n- Kept separately from regular minutes",
              "time_allocation_minutes": 10,
              "sequence": "2",
              "restricted_to_leads": false
            },
            {
              "item_type": "DISCUSSION",
              "title": "Reports of Officers",
              "description": "Officers present their reports in the order prescribed by the bylaws.",
              "content": "**Presiding Officer Script**\n\n1. Call officers in bylaws order (typically: President, Vice President, Secretary, Treasurer).\n2. After each report: \"Thank you. The report will be placed on file.\"\n\n**Treasurer's Report:**\n- \"The Treasurer's report will be filed for audit.\" (Never \"adopted\" — only the auditor's report is adopted.)\n- If questions arise, they may be asked but formal acceptance is not voted.\n\n**Annual Reports:**\n- May require adoption if they include recommendations.\n\n**Reports Containing Recommendations:**\n- The recommendation comes before the assembly as if moved by the reporting officer.\n- \"The question is on the adoption of the recommendation that [state recommendation].\"",
              "time_allocation_minutes": 15,
              "sequence": "3",
              "restricted_to_leads": false
            },
            {
              "item_type": "DISCUSSION",
              "title": "Reports of Standing Committees",
              "description": "Standing committees report in the order listed in the bylaws.",
              "content": "**Presiding Officer Script**\n\n1. Call each standing committee in bylaws order.\n2. \"The Chair recognizes the chair of the [Committee Name] for a report.\"\n3. After informational reports: \"The report will be placed on file.\"\n4. For reports with recommendations: \"The committee recommends that [state]. The question is on the adoption of the recommendation.\"\n\n**Committee Reports May:**\n- Provide information only (filed)\n- Recommend action (comes as a motion)\n- Present a resolution (treated as a main motion from committee)\n\n**No Report:** \"The [Committee] has no report at this time.\"",
              "time_allocation_minutes": 20,
              "sequence": "4",
              "restricted_to_leads": false
            },
            {
              "item_type": "DISCUSSION",
              "title": "Reports of Special (Ad Hoc) Committees",
              "description": "Special committees report on their assigned tasks.",
              "content": "**Presiding Officer Script**\n\n1. Call special committees that are ready to report.\n2. \"Is the Special Committee on [subject] ready to report?\"\n3. Handle reports as with standing committees.\n\n**Final Reports:**\n- When a special committee's work is complete, it is discharged automatically upon acceptance of its final report.\n- \"The report having been received, the committee is discharged with the thanks of the assembly.\"",
              "time_allocation_minutes": 15,
              "sequence": "5",
              "restricted_to_leads": false
            },
            {
              "item_type": "DISCUSSION",
              "title": "Special Orders",
              "description": "Items assigned special priority by a two-thirds vote or by rule.",
              "content": "**Presiding Officer Script**\n\n1. \"We now come to Special Orders.\"\n2. Take up items in the order scheduled. Special orders made for specific times take precedence.\n3. \"The special order set for this meeting is [state item]. The question is on [state the pending question].\"\n\n**Special Orders:**\n- Created by 2/3 vote or general order in bylaws\n- Interrupt any pending business when their time arrives (except another special order)\n- May not be postponed except by 2/3 vote\n\n**Time-Specific Special Orders:**\n- If time arrives during debate: \"The Chair interrupts the pending business to take up the special order set for [time].\"",
              "time_allocation_minutes": 15,
              "sequence": "6",
              "restricted_to_leads": false
            },
            {
              "item_type": "DISCUSSION",
              "title": "General Orders",
              "description": "Items postponed from previous meetings or made orders of the day without special priority.",
              "content": "**Presiding Officer Script**\n\n1. \"General Orders are now in order.\"\n2. Take up in order: (a) items postponed to this meeting, (b) items made general orders for this meeting.\n3. \"The first general order is [state item], which was postponed from the meeting of [date].\"\n4. \"The question is on [state the pending question].\"\n\n**General Orders vs. Special Orders:**\n- General orders do not interrupt pending business\n- Taken up after special orders in the agenda\n- Majority vote to postpone (vs. 2/3 for special orders)",
              "time_allocation_minutes": 15,
              "sequence": "7",
              "restricted_to_leads": false
            },
            {
              "item_type": "DISCUSSION",
              "title": "Unfinished Business and General Orders",
              "description": "Business pending from the previous meeting and general orders set for this meeting.",
              "content": "**Presiding Officer Script**\n\n1. \"Under Unfinished Business, the first item is [state item from previous meeting that was interrupted or postponed].\"\n2. Do NOT say \"Old Business\" — the correct term is \"Unfinished Business.\"\n3. Items include:\n   - Questions pending when previous meeting adjourned\n   - Questions postponed to this meeting\n   - Questions on which consideration was postponed\n\n**Common Error:** \"Is there any old business?\" is incorrect. The Chair should know what unfinished business exists and call it up.\n\n**If None:** \"There is no unfinished business.\"",
              "time_allocation_minutes": 20,
              "sequence": "8",
              "restricted_to_leads": false
            },
            {
              "item_type": "DISCUSSION",
              "title": "New Business",
              "description": "## ⚖️ Comprehensive Motion Tracker\n\n### Main Motions\n| # | Motion (Exact Wording) | Moved By | Seconded | Debate Summary |\n|---|------------------------|----------|----------|----------------|\n| 1 | | | | |\n| 2 | | | | |\n| 3 | | | | |\n\n### Amendments to Main Motions\n| Motion # | Amendment | Type | Moved By | Result |\n|----------|-----------|------|----------|--------|\n| | | ☐ Primary ☐ Secondary | | ☐ Adopted ☐ Failed |\n| | | ☐ Primary ☐ Secondary | | ☐ Adopted ☐ Failed |\n\n### Vote Record\n| Motion # | Method | Ayes | Nays | Abstain | Result |\n|----------|--------|------|------|---------|--------|\n| | ☐ Voice ☐ Rising ☐ Roll Call ☐ Ballot | | | | ☐ Carried ☐ Failed ☐ Tied |\n| | ☐ Voice ☐ Rising ☐ Roll Call ☐ Ballot | | | | ☐ Carried ☐ Failed ☐ Tied |\n| | ☐ Voice ☐ Rising ☐ Roll Call ☐ Ballot | | | | ☐ Carried ☐ Failed ☐ Tied |\n\n---\n\n### 📌 Subsidiary Motions Used\n| Motion | Applied To | Moved By | Result |\n|--------|------------|----------|--------|\n| ☐ Lay on Table ☐ Previous Question ☐ Refer ☐ Postpone ☐ Amend | Main Motion # | | |\n\n### ✅ Resulting Action Items\n| Motion # | Action Required | Responsible | Deadline |\n|----------|-----------------|-------------|----------|\n| | | | |\n| | | | |",
              "content": "**Presiding Officer Script**\n\n1. \"New Business is now in order. Is there any new business?\"\n2. Recognize members who seek the floor.\n3. Follow full motion procedure: Motion → Second → State → Debate → Vote → Announce.\n\n**Motion Precedence (memorize this hierarchy):**\n\n*Privileged Motions (highest):*\n1. Fix the Time to Which to Adjourn\n2. Adjourn\n3. Recess\n4. Raise a Question of Privilege\n5. Call for the Orders of the Day\n\n*Subsidiary Motions (apply to pending motion):*\n6. Lay on the Table\n7. Previous Question (close debate)\n8. Limit or Extend Limits of Debate\n9. Postpone to a Certain Time\n10. Commit or Refer\n11. Amend\n12. Postpone Indefinitely\n\n*Main Motion:* 13. Main Motion (lowest precedence)\n\n**Incidental Motions** (no precedence among themselves):\nPoint of Order, Appeal, Suspend the Rules, Objection to Consideration, Division of a Question, Division of the Assembly, Motions relating to Methods of Voting and Nominations, Requests and Inquiries.",
              "time_allocation_minutes": 45,
              "sequence": "9",
              "restricted_to_leads": false
            },
            {
              "item_type": "DISCUSSION",
              "title": "Good of the Order / Open Forum",
              "description": "Members may offer remarks for the good of the organization (no motions).",
              "content": "**Presiding Officer Script**\n\n1. \"Is there anything for the Good of the Order?\"\n2. This is an opportunity for members to:\n   - Offer congratulations or condolences\n   - Comment on organizational matters informally\n   - Make announcements\n3. No motions are in order during this time.\n4. If discussion suggests action is needed: \"That matter should be raised as New Business at our next meeting.\"\n\n**Alternative Names:** General Good and Welfare, Open Forum, Member Comments",
              "time_allocation_minutes": 10,
              "sequence": "10",
              "restricted_to_leads": false
            },
            {
              "item_type": "DISCUSSION",
              "title": "Announcements",
              "description": "Brief informational items from officers or members.",
              "content": "**Presiding Officer Script**\n\n1. \"Are there any announcements?\"\n2. Recognize officers first, then members.\n3. Keep announcements brief — action items belong in New Business.\n\n**Typical Announcements:**\n- Upcoming events and deadlines\n- Committee meeting schedules\n- Member achievements or recognitions\n- Reminders about organizational matters",
              "time_allocation_minutes": 5,
              "sequence": "11",
              "restricted_to_leads": false
            },
            {
              "item_type": "ADJOURN",
              "title": "Adjournment",
              "description": "Formal close of the meeting.",
              "content": "**Presiding Officer Script**\n\n1. \"Is there any further business to come before the assembly?\" (Pause)\n2. If a member moves: \"It is moved and seconded to adjourn. The question is on the motion to adjourn. All those in favor say 'Aye.' Those opposed say 'No.' The ayes have it. The motion is adopted. This meeting is adjourned.\"\n3. Announce the time: \"The meeting stands adjourned at [time].\"\n\n**Without a Motion (unanimous consent):**\n\"If there is no objection, the meeting will adjourn.\" (Pause) \"Hearing no objection, the meeting is adjourned at [time].\"\n\n**Motion to Adjourn:**\n- Privileged motion (second-highest precedence)\n- Not debatable\n- Not amendable (except to fix time to adjourn)\n- Requires majority vote\n- Interrupts nothing but cannot interrupt a speaker",
              "time_allocation_minutes": 5,
              "sequence": "12",
              "restricted_to_leads": false
            }
          ]
        },
        "next_steps": [
          {
            "next_step": {
              "$ref": "ns-rr-formal-minutes"
            },
            "sort_order": 1,
            "autopilot": true
          },
          {
            "next_step": {
              "$ref": "ns-rr-formal-motions"
            },
            "sort_order": 2,
            "autopilot": true
          },
          {
            "next_step": {
              "$ref": "ns-rr-formal-actions"
            },
            "sort_order": 3,
            "autopilot": false
          },
          {
            "next_step": {
              "$ref": "ns-rr-formal-reference"
            },
            "sort_order": 4,
            "autopilot": false
          }
        ],
        "workflow_ref": {
          "$ref": "wf-rr-formal-distribution"
        }
      }
    ],
    "next_steps": [
      {
        "spec": {
          "$id": "ns-rr-formal-minutes",
          "name": "Record Formal Minutes (Formal)",
          "description": "Generates comprehensive formal meeting minutes following Robert's Rules conventions for large assemblies. Includes full attendance records, detailed motion tracking, and complete parliamentary documentation.",
          "icon_name": "scroll",
          "color": "#1E40AF",
          "type": "ai",
          "ai_prompt": "You are a professional parliamentary secretary drafting formal meeting minutes per Robert's Rules of Order (12th edition) for a formal assembly. Produce comprehensive minutes including:\n\n1. **Header**: Organization name, meeting type (regular/special/adjourned), date, time, and location.\n2. **Call to Order**: Exact time, presiding officer's name.\n3. **Roll Call/Attendance**: Members present (list), members absent (list), members excused, guests.\n4. **Reading and Approval of Minutes**: State whether approved as read, as corrected (note corrections), or as distributed.\n5. **Reports of Officers**: Summarize each report. Note any recommendations arising.\n6. **Reports of Standing Committees**: Each committee, summarized. Note motions arising from recommendations.\n7. **Reports of Special Committees**: Each committee with disposition.\n8. **Special Orders**: Each special order with disposition.\n9. **General Orders**: Each general order with disposition.\n10. **Unfinished Business**: Each item with full motion documentation.\n11. **New Business**: For each motion:\n    - Exact wording of the motion (as finally stated by the Chair)\n    - Mover's name (seconder's name optional but may be included)\n    - Summary of debate (without attribution unless specifically requested)\n    - All amendments: wording, mover, outcome\n    - Vote method (voice, rising, show of hands, roll call, ballot)\n    - Vote result (carried/failed/tied; include counts for counted votes, full roll for roll call votes)\n12. **Good of the Order**: Brief summary of remarks.\n13. **Announcements**: List announcements made.\n14. **Adjournment**: Exact time.\n15. **Signatures**: Lines for Secretary and President/Chair signatures.\n\nUse past tense. Be precise with parliamentary language. Minutes are a record of what was DONE, not what was SAID (except for motions).",
          "sort_order": 1
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-rr-formal-email"
            },
            "sort_order": 1
          },
          {
            "action_button": {
              "$ref": "ab-rr-formal-copy"
            },
            "sort_order": 2
          }
        ],
        "default_action_button": {
          "$ref": "ab-rr-formal-email"
        }
      },
      {
        "spec": {
          "$id": "ns-rr-formal-motions",
          "name": "Complete Motion Log",
          "description": "Comprehensive enumeration of every motion with full parliamentary classification, amendments, and vote details. Suitable for official records and legal documentation.",
          "icon_name": "gavel",
          "color": "#7C3AED",
          "type": "ai",
          "ai_prompt": "Analyze the meeting transcript and produce a comprehensive motion log. For every motion:\n\n| # | Type | Class | Motion Text | Moved By | Seconded By | Amendments | Vote | Result |\n|---|------|-------|-------------|----------|-------------|------------|------|--------|\n\n**Classification Guide:**\n\n*Main Motions:*\n- Original Main Motion\n- Incidental Main Motion (e.g., to adopt recommendations)\n\n*Subsidiary Motions (in order of precedence):*\n1. Lay on the Table\n2. Previous Question\n3. Limit/Extend Debate\n4. Postpone to a Certain Time\n5. Commit/Refer\n6. Amend\n7. Postpone Indefinitely\n\n*Privileged Motions (in order of precedence):*\n1. Fix the Time to Which to Adjourn\n2. Adjourn\n3. Recess\n4. Raise a Question of Privilege\n5. Call for the Orders of the Day\n\n*Incidental Motions:*\n- Point of Order\n- Appeal\n- Suspend the Rules\n- Objection to Consideration\n- Division of a Question\n- Division of the Assembly\n- Motions relating to Voting/Nominations\n- Requests (Parliamentary Inquiry, Point of Information, etc.)\n\n*Motions That Bring a Question Again Before the Assembly:*\n- Take from the Table\n- Rescind/Amend Something Previously Adopted\n- Discharge a Committee\n- Reconsider\n\nFor each motion, note:\n- Whether debatable (Y/N)\n- Whether amendable (Y/N)\n- Vote required (majority, 2/3, etc.)\n- Whether adopted or lost\n\nList in chronological order.",
          "sort_order": 2
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-rr-formal-copy"
            },
            "sort_order": 1
          }
        ],
        "default_action_button": {
          "$ref": "ab-rr-formal-copy"
        }
      },
      {
        "spec": {
          "$id": "ns-rr-formal-actions",
          "name": "Action Items & Assignments",
          "description": "Extracts all non-motion action items, committee referrals, and individual assignments from the meeting.",
          "icon_name": "list-check",
          "color": "#059669",
          "type": "ai",
          "ai_prompt": "Extract all non-motion action items and assignments from the meeting:\n\n**Committee Referrals:**\n| Item Referred | Committee | Instructions | Report Due |\n|---------------|-----------|--------------|------------|\n\n**Officer Assignments:**\n| Task | Assigned To | Due Date | Authority |\n|------|-------------|----------|----------|\n\n**Member Assignments:**\n| Task | Assigned To | Due Date | Source |\n|------|-------------|----------|--------|\n\n**Staff/Administrative Tasks:**\n| Task | Responsible | Due Date | Notes |\n|------|-------------|----------|-------|\n\nDo not include formal motions (those are in the Motion Log). Focus on:\n- Items referred to committee\n- Individual follow-ups and research\n- Administrative tasks (notices, mailings)\n- Preparation for future meetings\n- Correspondence to be sent\n\nGroup by category and assignee.",
          "sort_order": 3
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-rr-formal-copy"
            },
            "sort_order": 1
          },
          {
            "action_button": {
              "$ref": "ab-rr-formal-email"
            },
            "sort_order": 2
          }
        ],
        "default_action_button": {
          "$ref": "ab-rr-formal-copy"
        }
      },
      {
        "spec": {
          "$id": "ns-rr-formal-reference",
          "name": "Parliamentary Quick Reference",
          "description": "Generates a customized quick reference guide based on the motions and procedures used in this meeting, helpful for future reference.",
          "icon_name": "book-open",
          "color": "#0891B2",
          "type": "ai",
          "ai_prompt": "Based on the motions and procedures used in this meeting, generate a quick reference card for common parliamentary situations:\n\n**Motions Used in This Meeting:**\n| Motion | When to Use | Second? | Debatable? | Amendable? | Vote Required |\n|--------|-------------|---------|------------|------------|---------------|\n\n**Common Phrases for the Chair:**\n[Include phrases actually used or that would have been helpful]\n\n**Common Phrases for Members:**\n[Include phrases for making motions, amendments, etc.]\n\n**Procedural Notes:**\n[Any parliamentary issues that arose and how they were resolved]\n\n**Tips for Next Meeting:**\n[Suggestions based on procedural challenges observed]\n\nKeep this practical and specific to this organization's needs.",
          "sort_order": 4
        },
        "action_buttons": [
          {
            "action_button": {
              "$ref": "ab-rr-formal-copy"
            },
            "sort_order": 1
          },
          {
            "action_button": {
              "$ref": "ab-rr-download-pdf"
            },
            "sort_order": 2
          }
        ],
        "default_action_button": {
          "$ref": "ab-rr-formal-copy"
        }
      }
    ],
    "action_buttons": [
      {
        "spec": {
          "$id": "ab-rr-formal-email",
          "name": "Email Minutes (Formal)",
          "slug": "rr-formal-email",
          "delivery_mechanism": "email",
          "content_format": "rich_text",
          "sort_order": 1
        }
      },
      {
        "spec": {
          "$id": "ab-rr-formal-copy",
          "name": "Copy to Clipboard",
          "slug": "rr-formal-copy",
          "delivery_mechanism": "clipboard",
          "content_format": "plain_text",
          "sort_order": 2
        }
      },
      {
        "spec": {
          "$id": "ab-rr-download-pdf",
          "name": "Download PDF",
          "slug": "rr-download-pdf",
          "delivery_mechanism": "file_download",
          "content_format": "rich_text",
          "file_format": "pdf",
          "sort_order": 3
        }
      },
      {
        "spec": {
          "$id": "ab-rr-archive-document",
          "name": "Archive to Records",
          "slug": "rr-archive-document",
          "delivery_mechanism": "integration",
          "content_format": "rich_text",
          "integration_type": "document_management",
          "requires_connected_integration": true,
          "sort_order": 4
        }
      }
    ],
    "shortcuts": [
      {
        "spec": {
          "$id": "sc-rr-formal-motion",
          "name": "Main Motion",
          "description": "AI analyzes transcript to record a main motion and update the Comprehensive Motion Tracker.",
          "icon_name": "bolt",
          "color": "#1E40AF",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 1
            }
          ],
          "prompt": "You are the parliamentary secretary for this formal assembly. Analyze the LAST 2 MINUTES of the meeting transcript to identify and formally record a main motion.\n\n**Your task:**\n1. Find the motion statement (\"I move that...\", \"Mr./Madam Chair, I move...\").\n2. Capture the EXACT WORDING of the motion as stated.\n3. Identify the MOVER (speaker name/title).\n4. Check if a SECOND has been stated.\n5. Navigate to the **New Business** agenda item and find the **Comprehensive Motion Tracker** in its collaborative description.\n6. In the **Main Motions** table, ADD A NEW ROW:\n   - # (next sequential number)\n   - Motion (Exact Wording): the verbatim motion text\n   - Moved By: speaker name\n   - Seconded: (if stated, otherwise leave blank)\n   - Debate Summary: (leave blank for now)\n\n**After updating**, announce formally:\n\"The Secretary records Motion #{number}. [Name] moves that '[exact wording]'. [If seconded: 'Seconded by [name].' / If not: 'Is there a second?']\"\n\nIf the motion is unclear, state: \"Would the member please restate the motion for the record?\""
        }
      },
      {
        "spec": {
          "$id": "sc-rr-formal-second",
          "name": "Second",
          "description": "AI identifies seconder from transcript and updates the Motion Tracker.",
          "icon_name": "bullseye",
          "color": "#059669",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 2
            }
          ],
          "prompt": "You are the parliamentary secretary. Analyze the LAST 30 SECONDS of transcript to identify the seconder.\n\n**Your task:**\n1. Listen for \"I second\", \"Second\", \"I second the motion\", or similar.\n2. Identify the SPEAKER who seconded.\n3. Navigate to the **New Business** agenda item's **Comprehensive Motion Tracker**.\n4. In the **Main Motions** table, find the most recent row (no vote recorded yet).\n5. UPDATE the \"Seconded\" column with the seconder's name.\n\n**After updating**, announce:\n\"The motion is seconded by [name]. The question is on the adoption of the motion that [restate motion briefly]. Is there any discussion?\"\n\nIf no second was heard: \"The motion requires a second. Does any member wish to second?\""
        }
      },
      {
        "spec": {
          "$id": "sc-rr-formal-amend",
          "name": "Amend",
          "description": "AI records an amendment and updates the Amendments Tracker.",
          "icon_name": "paperclip",
          "color": "#0891B2",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 4
            }
          ],
          "prompt": "You are the parliamentary secretary. Analyze the LAST 1 MINUTE of transcript to record an amendment to the pending motion.\n\n**Your task:**\n1. Identify the amendment (\"I move to amend by...\", \"I move to insert/strike/substitute...\").\n2. Determine the type: Primary (to main motion) or Secondary (to a pending primary amendment).\n3. Identify the MOVER and SECONDER if stated.\n4. Navigate to the **New Business** agenda item's **Comprehensive Motion Tracker**.\n5. In the **Amendments to Main Motions** table, ADD A NEW ROW:\n   - Motion #: the main motion number being amended\n   - Amendment: exact wording of the proposed change\n   - Type: Check ☑ Primary or ☑ Secondary\n   - Moved By: speaker name\n   - Result: (leave blank - pending)\n\n**After updating**, announce:\n\"Amendment recorded to Motion #{number}: [mover] moves to [insert/strike/substitute] '[text]'. [Seconded by {name} / Awaiting second]. The amendment is debatable.\"\n\nNote: Debate on an amendment is limited to the amendment itself, not the main motion."
        }
      },
      {
        "spec": {
          "$id": "sc-rr-formal-vote",
          "name": "Voice Vote",
          "description": "AI records the voice vote result and updates the Vote Record table.",
          "icon_name": "chart-line-up",
          "color": "#059669",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 4
            }
          ],
          "prompt": "You are the parliamentary secretary. Analyze the LAST 1 MINUTE of transcript to record the vote outcome.\n\n**Your task:**\n1. Listen for the Chair's announcement (\"The ayes have it\", \"The noes have it\", \"The motion is adopted/lost\").\n2. Navigate to the **New Business** agenda item's **Comprehensive Motion Tracker**.\n3. Find the pending motion in the **Main Motions** table.\n4. In the **Vote Record** table, ADD or UPDATE a row for this motion:\n   - Motion #: the motion number\n   - Method: Check ☑ Voice\n   - Ayes: (leave blank for voice vote)\n   - Nays: (leave blank for voice vote)\n   - Abstain: (leave blank)\n   - Result: Check ☑ Carried or ☑ Failed based on Chair's announcement\n5. If the motion CARRIED, check the **Resulting Action Items** section and add entries if the motion implies specific actions.\n\n**After updating**, announce:\n\"Vote recorded: Motion #{number} [Carried/Failed] by voice vote.\"\n\nIf unclear whether motion passed, state: \"Could the Chair please announce the result of the vote?\""
        }
      },
      {
        "spec": {
          "$id": "sc-rr-formal-division",
          "name": "Division",
          "description": "AI records a counted division vote with tallies in the Vote Record.",
          "icon_name": "user-question",
          "color": "#4F46E5",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 5
            }
          ],
          "prompt": "You are the parliamentary secretary. A division (counted vote) has been called. Analyze the LAST 1 MINUTE of transcript to record the count.\n\n**Your task:**\n1. Listen for the Chair's count announcement (\"Those in favor: [X]. Those opposed: [Y].\").\n2. Navigate to the **New Business** agenda item's **Comprehensive Motion Tracker**.\n3. Find the pending motion number.\n4. In the **Vote Record** table, ADD or UPDATE a row:\n   - Motion #: the motion number\n   - Method: Check ☑ Rising (for division)\n   - Ayes: the count for those in favor\n   - Nays: the count for those opposed\n   - Abstain: (if announced)\n   - Result: Check ☑ Carried if Ayes > Nays, otherwise ☑ Failed (or ☑ Tied if equal)\n\n**After updating**, announce:\n\"Division recorded for Motion #{number}: Ayes {X}, Nays {Y}. Motion [Carried/Failed/Tied].\""
        }
      },
      {
        "spec": {
          "$id": "sc-rr-formal-parliamentary",
          "name": "Parliamentary Guide",
          "description": "AI provides comprehensive procedural guidance based on current meeting state and motion precedence",
          "icon_name": "lightbulb",
          "color": "#059669",
          "surfaces": [
            {
              "surface": "MEETING_RUN",
              "position": 6
            }
          ],
          "prompt": "You are an expert parliamentarian using Robert's Rules of Order (12th Edition). Analyze the CURRENT MEETING STATE to provide authoritative procedural guidance.\n\n**Your task:**\n1. Review the **Comprehensive Motion Tracker** in the 'New Business' agenda item:\n   - Check the **Main Motions** table for pending motions\n   - Check the **Amendments to Main Motions** table for pending amendments\n   - Check the **Vote Record** table for recent dispositions\n2. Analyze the LAST 2 MINUTES of transcript to understand the current procedural situation.\n3. Determine the **precedence stack** (what motions are pending and their order).\n\n**Provide comprehensive guidance:**\n\n📘 **PARLIAMENTARY STATUS**\n\n**Current State**: {No pending business / Main motion pending / Amendment pending / etc.}\n\n**Precedence Stack** (highest to lowest):\n| # | Motion Type | Status | Introduced By |\n|---|-------------|--------|---------------|\n| {if any pending} | {motion type} | {Pending discussion/Awaiting vote} | {name} |\n\n**Available Actions Now** (in order of precedence):\n| Action | Exact Wording | Second? | Debatable? | Amendable? | Vote |\n|--------|---------------|---------|------------|------------|------|\n| {highest precedence action} | \"{what to say}\" | {Yes/No} | {Yes/No} | {Yes/No} | {Majority/2/3} |\n| {next action} | \"{words}\" | ... | ... | ... | ... |\n\n**Complete Precedence Reference** (highest to lowest):\n1. **Fix Time to Adjourn** - Set next meeting time\n2. **Adjourn** - End meeting (majority, not debatable)\n3. **Recess** - Take a break (majority)\n4. **Raise Question of Privilege** - Urgent matter affecting assembly\n5. **Call for Orders of Day** - Return to agenda\n6. **Lay on Table** - Set aside temporarily (majority, not debatable)\n7. **Previous Question** - Close debate (2/3, not debatable)\n8. **Limit/Extend Debate** - Modify debate rules (2/3)\n9. **Postpone to Time** - Defer to specific time (majority)\n10. **Commit/Refer** - Send to committee (majority)\n11. **Amend** - Modify pending motion (majority)\n12. **Postpone Indefinitely** - Kill motion without direct vote (majority)\n13. **Main Motion** - Introduce new business (majority)\n\n**Incidental Motions** (no precedence, arise from pending business):\n• Point of Order - \"Point of order!\" (no second, Chair rules)\n• Appeal - \"I appeal from the decision of the Chair\" (second, majority sustains)\n• Division - \"Division!\" (no second, demands counted vote)\n• Suspend Rules - \"I move to suspend the rules...\" (second, 2/3)\n\n**Motions That Bring Back**:\n• Reconsider - Must be moved by prevailing side voter (majority)\n• Rescind - Cancel previous action (majority with notice, 2/3 without)\n• Take from Table - Resume tabled motion (majority)\n\n**If someone asked a specific procedural question** in the recent transcript, answer that directly with full procedural guidance including exact wording, requirements, and vote thresholds."
        }
      }
    ],
    "canvas_templates": [
      {
        "spec": {
          "$id": "ct-rr-meeting-minutes",
          "name": "Formal Meeting Minutes",
          "slug": "rr-formal-minutes",
          "description": "Parliamentary-compliant meeting minutes document following Robert's Rules format with motion record, attendance, and certification",
          "usage_guidance": "Created by the Formal Minutes Distribution workflow. The Secretary reviews and completes this document, then routes to Chair for certification before distribution to membership.",
          "content_schema_version": "1.0",
          "content": "# MINUTES OF {{organization_name}}\n\n## {{meeting_type}} Meeting\n\n**Date**: {{meeting_date}}\n**Time**: Called to order at {{start_time}}, adjourned at {{end_time}}\n**Location**: {{location}}\n\n---\n\n## Officers Present\n\n| Role | Name | Present |\n|------|------|--------|\n| Chair/President | [name] | ☑️ |\n| Vice Chair | [name] | ☑️ / ☐ |\n| Secretary | [name] | ☑️ |\n| Treasurer | [name] | ☑️ / ☐ |\n\n## Members Present\n\n[list of members present, in alphabetical order]\n\n## Members Absent\n\n[list of members absent]\n\n## Guests\n\n[list of guests, if any]\n\n**Quorum**: ☑️ Established / ☐ Not Established ({{count}} of {{required}} members)\n\n---\n\n## Call to Order\n\nThe meeting was called to order by {{chair_name}} at {{start_time}}.\n\n## Approval of Minutes\n\n**Motion**: To approve the minutes of the {{previous_meeting_date}} meeting.\n**Moved by**: [name]\n**Seconded by**: [name]\n**Vote**: ☑️ Carried / ☐ Failed / ☐ Tabled\n**Amendments**: [if any]\n\n---\n\n## Reports\n\n### Officer Reports\n\n**Treasurer's Report**:\n- Opening Balance: $[amount]\n- Income: $[amount]\n- Expenses: $[amount]\n- Closing Balance: $[amount]\n- Motion to accept: [Moved by], [Seconded by], [Carried/Failed]\n\n**Committee Reports**:\n\n| Committee | Chair | Summary | Action Required |\n|-----------|-------|---------|----------------|\n| [name] | [chair] | [summary] | [Yes/No] |\n\n---\n\n## Unfinished Business\n\n| Item | Description | Action Taken |\n|------|-------------|-------------|\n| [item from previous meeting] | [description] | [motion/vote/outcome] |\n\n---\n\n## New Business\n\n### Motion 1: [Title]\n\n**Motion**: \"[exact wording of the motion]\"\n**Moved by**: [name]\n**Seconded by**: [name]\n\n**Discussion Summary**:\n[key points raised during debate]\n\n**Amendments**:\n| Amendment | Moved By | Seconded | Vote | Result |\n|-----------|----------|----------|------|--------|\n| [amendment text] | [name] | [name] | [Aye/Nay count] | [Carried/Failed] |\n\n**Final Vote on Main Motion (as amended)**:\n- Ayes: [count or names]\n- Nays: [count or names]\n- Abstentions: [count or names]\n- **Result**: ☑️ CARRIED / ☐ FAILED\n\n### Motion 2: [Title]\n[repeat structure as needed]\n\n---\n\n## Announcements\n\n- [announcement 1]\n- [announcement 2]\n\n## Next Meeting\n\n**Date**: {{next_meeting_date}}\n**Time**: {{next_meeting_time}}\n**Location**: {{next_meeting_location}}\n\n---\n\n## Adjournment\n\n**Motion to Adjourn**: Moved by [name], Seconded by [name]\n**Time**: {{end_time}}\n**Vote**: Carried unanimously\n\n---\n\n## Certification\n\nThese minutes are a true and accurate record of the proceedings.\n\n**Secretary**: _________________________ Date: _________\n{{secretary_name}}\n\n**Chair**: _________________________ Date: _________\n{{chair_name}}\n\n---\n\n*Minutes prepared by {{secretary_name}}, Secretary*\n*Approved: [pending / date approved]*"
        }
      },
      {
        "spec": {
          "$id": "ct-rr-motion-log",
          "name": "Motion Tracking Log",
          "slug": "rr-motion-log",
          "description": "Running log of all motions across multiple meetings for tracking pending items, tabled business, and motion history",
          "usage_guidance": "A living document maintained by the Secretary to track all motions across meetings. Use to prepare unfinished business agenda items and track motion history for annual reports.",
          "content_schema_version": "1.0",
          "content": "# Motion Tracking Log — {{organization_name}}\n\n**Fiscal Year**: {{fiscal_year}}\n**Secretary**: {{secretary_name}}\n**Last Updated**: {{last_updated}}\n\n---\n\n## Active / Pending Motions\n\n*Motions requiring action at next meeting*\n\n| ID | Motion Summary | Introduced | Meeting | Status | Action Required |\n|----|---------------|------------|---------|--------|----------------|\n| M-{{year}}-001 | [summary] | [mover] | [date] | Tabled | Vote at next meeting |\n| M-{{year}}-002 | [summary] | [mover] | [date] | In Committee | Committee report due [date] |\n| M-{{year}}-003 | [summary] | [mover] | [date] | Postponed | Consider on [specific date] |\n\n---\n\n## Motions in Committee\n\n| Motion ID | Referred To | Date Referred | Report Due | Status |\n|-----------|------------|---------------|------------|--------|\n| M-{{year}}-002 | Finance Committee | [date] | [date] | Investigating |\n\n---\n\n## Completed Motions — Current Year\n\n### Adopted Motions\n\n| ID | Motion | Meeting Date | Vote | Implementation Status |\n|----|--------|--------------|------|----------------------|\n| M-{{year}}-010 | [motion text] | [date] | [Aye-Nay] | ☑️ Complete / 🔄 In Progress |\n| M-{{year}}-009 | [motion text] | [date] | [Aye-Nay] | ☑️ Complete |\n\n### Failed / Withdrawn Motions\n\n| ID | Motion | Meeting Date | Outcome | Notes |\n|----|--------|--------------|---------|-------|\n| M-{{year}}-008 | [motion text] | [date] | Failed (5-7) | May reconsider with amendments |\n| M-{{year}}-007 | [motion text] | [date] | Withdrawn | Mover withdrew before vote |\n\n### Postponed Indefinitely\n\n| ID | Motion | Meeting Date | Notes |\n|----|--------|--------------|-------|\n| M-{{year}}-006 | [motion text] | [date] | [reason] |\n\n---\n\n## Standing Rules & Bylaws Amendments\n\n*Motions that modified governing documents*\n\n| ID | Document | Section | Amendment Summary | Effective Date |\n|----|----------|---------|------------------|----------------|\n| M-{{year}}-005 | Bylaws | Article III | Changed quorum from 50% to 40% | [date] |\n\n---\n\n## Annual Statistics\n\n| Metric | Count |\n|--------|-------|\n| Total Motions Introduced | [X] |\n| Motions Adopted | [X] |\n| Motions Failed | [X] |\n| Motions Withdrawn | [X] |\n| Motions Tabled | [X] |\n| Motions in Committee | [X] |\n| Bylaws Amendments | [X] |\n\n---\n\n## Archive Reference\n\n| Year | Motions | Document Link |\n|------|---------|---------------|\n| {{previous_year}} | [X] motions | [link to archived log] |\n| {{two_years_ago}} | [X] motions | [link to archived log] |\n\n---\n\n*This log is maintained by the Secretary and presented at each regular meeting.*"
        }
      },
      {
        "spec": {
          "$id": "ct-rr-resolution-certificate",
          "name": "Resolution Certificate",
          "slug": "rr-resolution-certificate",
          "description": "Formal certificate documenting an adopted resolution for official records, legal compliance, or external submission",
          "usage_guidance": "Created when a resolution requires formal certification for external parties (banks, government agencies, legal filings). Chair and Secretary both sign to certify the resolution was properly adopted.",
          "content_schema_version": "1.0",
          "content": "# CERTIFICATE OF RESOLUTION\n\n---\n\n## {{organization_name}}\n\n*A {{organization_type}} organized under the laws of {{jurisdiction}}*\n\n---\n\nI, **{{secretary_name}}**, the duly elected and acting Secretary of {{organization_name}} (the \"Organization\"), do hereby certify that:\n\n### 1. Meeting Convened\n\nA {{meeting_type}} meeting of the {{governing_body}} of the Organization was duly called and held on **{{meeting_date}}** at {{meeting_location}}, at which a quorum was present and acting throughout.\n\n### 2. Resolution Adopted\n\nAt such meeting, the following resolution was duly proposed, seconded, and adopted by the requisite vote of the {{governing_body}}:\n\n---\n\n**RESOLVED**, that:\n\n> {{resolution_text}}\n\n---\n\n### 3. Vote Record\n\n| Criterion | Requirement | Actual |\n|-----------|-------------|--------|\n| Quorum Present | {{quorum_required}} | {{quorum_present}} |\n| Vote Required | {{vote_required}} | — |\n| Votes in Favor | — | {{votes_aye}} |\n| Votes Against | — | {{votes_nay}} |\n| Abstentions | — | {{votes_abstain}} |\n| **Result** | — | **ADOPTED** |\n\n### 4. Certification\n\nI further certify that:\n\n- [ ] The resolution has not been amended, modified, or rescinded and remains in full force and effect as of the date hereof.\n- [ ] The meeting was conducted in accordance with the Bylaws of the Organization and Robert's Rules of Order.\n- [ ] Proper notice of the meeting was given to all members entitled to such notice.\n\n### 5. Authority\n\nThis certificate is issued for the purpose of: {{purpose_of_certificate}}\n\n---\n\n**IN WITNESS WHEREOF**, I have hereunto set my hand and affixed the seal of the Organization this **{{certificate_date}}**.\n\n&nbsp;\n\n______________________________\n**{{secretary_name}}**, Secretary\n{{organization_name}}\n\n&nbsp;\n\n______________________________\n**{{chair_name}}**, {{chair_title}}\n{{organization_name}}\n\n&nbsp;\n\n[ORGANIZATIONAL SEAL]\n\n---\n\n*Certificate Number: {{certificate_number}}*\n*Resolution ID: {{motion_id}}*"
        }
      }
    ],
    "workflows": [
      {
        "spec": {
          "$id": "wf-rr-formal-distribution",
          "name": "Formal Minutes Distribution",
          "description": "Comprehensive workflow for formal assembly minutes: generates minutes, routes through Secretary and Chair review, then distributes to all members.",
          "spec": {
            "schema_version": "1.0",
            "entry": "generate-minutes",
            "nodes": [
              {
                "id": "generate-minutes",
                "type": "next_step",
                "data": {
                  "label": "Generate Formal Minutes",
                  "next_step_id": "$ref:ns-rr-formal-minutes",
                  "notes": "Produces formal meeting minutes following Robert's Rules format, including call to order, roll call, reading of previous minutes, reports, motions with their seconds, vote tallies, and adjournment time."
                }
              },
              {
                "id": "secretary-review",
                "type": "review",
                "data": {
                  "label": "Secretary Review",
                  "assignee": {
                    "ref": "specific_role",
                    "role": "Secretary"
                  },
                  "notes": "Review auto-generated minutes for accuracy. Verify all motions, votes, and parliamentary procedures are correctly recorded. Forward to Chair for approval."
                }
              },
              {
                "id": "chair-review",
                "type": "review",
                "data": {
                  "label": "Chair Review",
                  "assignee": {
                    "ref": "specific_role",
                    "role": "Chair"
                  },
                  "notes": "Final review of meeting minutes. Approve for distribution to members."
                }
              },
              {
                "id": "distribute",
                "type": "deliver",
                "data": {
                  "label": "Distribute Minutes",
                  "destination_type": "email",
                  "destination_config": {
                    "to": [
                      "{{all_participants}}"
                    ],
                    "subject": "Meeting Minutes: {{.title}}"
                  },
                  "input_from": "generate-minutes",
                  "payload_template": "{{.step.generated_text}}",
                  "notes": "Emails the approved formal minutes to all members of record. Distribution occurs only after both Secretary and Chair have approved the minutes."
                }
              },
              {
                "id": "revision-needed",
                "type": "alert",
                "data": {
                  "label": "Revision Needed",
                  "recipient": {
                    "ref": "object_owner"
                  },
                  "include_reject_reason": true,
                  "notes": "Notifies the Secretary that the minutes were rejected by the Chair or during Secretary self-review. Includes specific feedback on what needs correction before resubmission."
                }
              }
            ],
            "edges": [
              {
                "id": "e1",
                "source": "generate-minutes",
                "target": "secretary-review",
                "type": "default"
              },
              {
                "id": "e2",
                "source": "secretary-review",
                "target": "chair-review",
                "type": "approve",
                "label": "Approved"
              },
              {
                "id": "e3",
                "source": "secretary-review",
                "target": "revision-needed",
                "type": "reject",
                "label": "Needs Revision"
              },
              {
                "id": "e4",
                "source": "chair-review",
                "target": "distribute",
                "type": "approve",
                "label": "Approved"
              },
              {
                "id": "e5",
                "source": "chair-review",
                "target": "revision-needed",
                "type": "reject",
                "label": "Needs Revision"
              }
            ]
          }
        }
      }
    ]
  }
}
