home / skills / simhacker / moollm / roberts-rules
This skill enforces formal Robert's Rules procedures to ensure deliberate, transparent deliberation and accountable decisions in meetings.
npx playbooks add skill simhacker/moollm --skill roberts-rulesReview the files below or copy the command above to add this skill to your agents.
---
name: roberts-rules
description: Parliamentary procedure as forcing function for genuine deliberation
allowed-tools:
- read_file
- write_file
tier: 1
protocol: ROBERTS-RULES
credits: "Mike Gallaher — LLM adaptation; Henry Martyn Robert — original rules (1876)"
related: [adversarial-committee, society-of-mind, rubric, evaluator, session-log]
tags: [moollm, procedure, deliberation, decision, structure, parliamentary]
---
# Robert's Rules
> *"Structure forces genuine exploration of the decision space."*
Parliamentary procedure prevents LLMs from short-circuiting to statistically-likely conclusions.
## The Stages
```yaml
procedure:
stages:
1_call_to_order:
chair: "Announces meeting purpose"
required: true
2_review_minutes:
purpose: "What did we decide last time?"
source: "Previous meeting minutes"
action: "Amendments or approval"
3_new_business:
purpose: "Topics requiring decision"
format: "List of agenda items"
4_motion:
who: "Any member"
format: "I move that [specific action]"
requirement: "Must be actionable"
5_second:
who: "Different member"
format: "I second the motion"
meaning: "Worth discussing (not agreement)"
if_no_second: "Motion dies"
6_debate:
structure: "Pro, con, pro, con..."
time_limits: "Optional per speaker"
amendments: "Can be proposed during debate"
7_vote:
methods: [voice, show_of_hands, roll_call]
record: "All positions logged"
threshold: "Simple majority unless specified"
8_adjourn:
chair: "Meeting closed"
next_meeting: "Scheduled if needed"
```
## Implementation
```yaml
# meeting/MEETING.yml
meeting:
id: strategy-review-2026-01-05
committee: strategy-board
chair: joe # Continuity guardian runs the meeting
minutes_from: strategy-review-2025-12-15.yml
agenda:
- "Client X engagement decision"
- "Q1 pricing review"
status: in_progress
current_stage: debate
```
## Motion Format
```yaml
motion:
id: motion-001
mover: frankie
text: "I move that we accept Client X with explicit scope boundaries."
second:
by: tammy
timestamp: "2026-01-05T14:23:00Z"
status: under_debate
```
## Debate Structure
```yaml
debate:
motion: motion-001
speakers:
- speaker: frankie
position: pro
points:
- "Budget aligned with our capacity"
- "Exciting growth opportunity"
- "Clear deliverables defined"
- speaker: maya
position: con
points:
- "Reputation for scope creep"
- "Similar clients have burned us"
- "Opportunity cost for other work"
- speaker: vic
position: pro_with_reservations
points:
- "Financials look solid"
- "But we lack scope creep data"
- "Suggest milestone-based contract"
- speaker: joe
position: defer
points:
- "2022 client was similar, went badly"
- "But circumstances differ"
- "Need more information"
- speaker: tammy
position: conditional_pro
points:
- "If we add explicit scope boundaries..."
- "And milestone-based billing..."
- "Risk becomes manageable"
```
## Amendment Process
```yaml
amendment:
to: motion-001
mover: vic
text: "Add: with milestone-based billing and quarterly scope review"
second:
by: tammy
vote:
for: [frankie, vic, tammy, joe]
against: [maya]
result: passes
motion_now: "Accept Client X with explicit scope boundaries, milestone-based billing, and quarterly scope review"
```
## Vote Recording
```yaml
vote:
motion: motion-001 (as amended)
method: roll_call
votes:
frankie: aye
maya: nay
joe: aye
vic: aye
tammy: aye
result:
for: 4
against: 1
abstain: 0
outcome: PASSES
minority_view:
maya: "I remain concerned about scope creep risk. Recording my objection for the minutes."
```
## Minutes Format
```yaml
# meeting/minutes/strategy-review-2026-01-05.yml
minutes:
meeting_id: strategy-review-2026-01-05
date: "2026-01-05"
attendees: [maya, frankie, joe, vic, tammy]
chair: joe
previous_minutes: approved_without_amendment
motions:
- id: motion-001
text: "Accept Client X with explicit scope boundaries, milestone-based billing, and quarterly scope review"
outcome: PASSES (4-1)
dissent: maya
action_items:
- assignee: vic
task: "Draft milestone-based contract"
due: "2026-01-12"
- assignee: tammy
task: "Design quarterly scope review process"
due: "2026-01-10"
next_meeting: "2026-01-12 to review contract"
```
## Commands
| Command | Action |
|---------|--------|
| `CALL TO ORDER` | Begin meeting |
| `REVIEW MINUTES` | Read and approve previous |
| `NEW BUSINESS [item]` | Add agenda item |
| `MOVE [action]` | Propose motion |
| `SECOND` | Support motion for debate |
| `DEBATE` | Open structured discussion |
| `AMEND [change]` | Propose motion modification |
| `CALL THE QUESTION` | End debate, proceed to vote |
| `VOTE` | Record positions |
| `ADJOURN` | Close meeting |
## Why This Prevents Short-Circuiting
| Without Structure | With Robert's Rules |
|-------------------|---------------------|
| LLM jumps to "likely" answer | Must build case through stages |
| Hidden assumptions stay hidden | Debate surfaces them |
| Minority views lost | Recorded in minutes |
| No accountability | Votes create record |
| "Everyone agrees" illusion | Actual disagreement visible |
This skill applies parliamentary procedure as a forcing function to produce thorough, accountable deliberation. It turns meetings into structured workflows so decisions are documented, minority views are preserved, and action items are explicit. The design prevents shortcut conclusions by requiring motions, seconds, debate, amendments, and recorded votes.
The skill models a meeting as a sequence of stages: call to order, review minutes, new business, motion, second, debate, vote, and adjournment. Users issue simple commands (MOVE, SECOND, DEBATE, AMEND, VOTE, etc.) and the system enforces format and stage transitions, captures speakers, positions, points, amendments, and produces minutes and vote records. Amendments and minority views are tracked so the final outcome and rationale are transparent.
Can a motion proceed without a second?
No. If no different member seconds the motion it dies; requiring a second filters items not worth group time.
How are amendments handled?
Any member may move an amendment during debate, it must be seconded, debated, and voted on; if it passes the main motion is updated before the final vote.