Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

WhoPray

A CLI tool that uses an LLM to intelligently assign meeting roles (conducting, prayers, and spiritual thoughts) for LDS church meetings, ensuring fair distribution and avoiding repetition.

Features

  • Automatically generates meeting assignments using smart LLM-based suggestions
  • Supports different meeting types (bishopric meetings, ward council meetings)
  • Prevents repetitive assignments and ensures fair distribution
  • Respects special rules for conducting assignments
  • Uses configurable rosters of names

Requirements

  • llm CLI tool (brew install llm on macOS)
  • A configuration file with rosters (see Configuration section)

Installation

Save the whopray script anywhere on your path and make it executable (chmod +x whopray).

Usage

whopray [--help] [--bishopric] [--ward] [--roster NAMES] path-to-meeting-notes

Options

  • -h, --help: Show help message
  • -b, --bishopric: Use names from the bishopric roster in config
  • -w, --ward: Use names from the ward roster in config
  • -r, --roster: Use names from a custom roster provided via STDIN

Examples

Using bishopric roster:

whopray --bishopric path/to/meeting-notes

Using ward roster:

whopray --ward path/to/meeting-notes

Using a custom roster:

cat path/to/roster-file | whopray --roster path/to/meeting-notes

Configuration

Create a config file at ~/.config/whopray/config with your rosters:

[bishopric]
Name 1
Name 2
Name 3
Name 4

[ward]
Relief Society
Elders Quorum
Ward Mission
Primary
Young Women
Sunday School

Roster Files

A roster file is simply a text file with one name per line. You can create custom rosters for different meetings or purposes.

Meeting Notes Format

The tool expects meeting notes to start with four assignments:

- Conducting: [Assignment]
- Opening prayer: [Assignment]
- Spiritual thought: [Assignment]
- Closing prayer: [Assignment]

These assignments will be used to avoid repeating recent assignments when generating new ones.

Assignment Rules

  1. Each assignment must be filled
  2. Names can only be used once per meeting
  3. No repeated assignments for the same person in consecutive meetings
  4. Assignments are balanced fairly across all available names
  5. Special rules apply for the "Conducting" assignment based on meeting type