Cows, Men, Paddocks

Prototyper / Examples

Terminal app · Rust · ratatui

Shed Roster

A keyboard-only roster for a dairy shed office: fourteen milking shifts, five staff and four rules checked on every keystroke.

After the fill: all 14 shifts covered and the rule line clear.
After the fill: all 14 shifts covered and the rule line clear.
User
The manager of a 400-cow dairy shed who builds next week’s roster on a whiteboard.
Risky assumption
A keyboard-only terminal roster is fast enough on an old laptop in the shed office.
Stack
Rust with ratatui and crossterm. The same code draws frames to HTML for the screenshots.
Status
Runs in any terminal. Staff invented.

Codex built it from a one-page brief.

What it does

  1. Move with the arrow keys and press 1 to 5 to put someone on a shift; x clears it.
  2. Press a to fill the gaps with a simple fill that respects the rules.
  3. Empty shifts, three shifts in a row, anyone over five shifts and anyone rostered on their day off are flagged, with a running count in the rule line.
  4. The roster saves to a local file on every change.

What is real and what is simulated

Roster storageA local file; nothing is sent
Days offInvented, one per person, and checked by the rules
Staff and shedInvented

How far we took it

Screens

Part way through: empty shifts, three in a row and two day-off clashes flagged.
Part way through: empty shifts, three in a row and two day-off clashes flagged.
The help screen lists every key.
The help screen lists every key.

What happens next

Time a manager filling next week’s roster in the terminal against the whiteboard. If it is not faster in the first week, the terminal was the wrong surface.