Install
openclaw skills install @voronindenis5/event-seating-orchestraUse when planning seating for a wedding, dinner party, holiday table, or rehearsal dinner and you must respect keep-apart pairs, balance talkers across tables, seat couples near-but-not-alone, and keep exes/estranged family apart — and need an actual assignment chart, not vibes.
openclaw skills install @voronindenis5/event-seating-orchestraThe seating chart is the highest-stress artifact of wedding and event planning. The constraints live only in hosts' heads: divorced parents who can't share a table, the two friends who broke up, the uncle who talks over everyone, cousins who only know each other, grandma who needs an aisle-adjacent seat. Professional planners charge real money for this; spreadsheet-savvy relatives drown in it the night before.
This skill encodes the real constraints and runs an actual optimizer (simulated annealing over table assignments) to produce a printable chart, a per-table roster with reasons, and a complaint log for changes ("swap these two and the score improves by X").
Don't use for: standing receptions (no seating), classroom training (fixed rows), gala sponsor tables (priority ordering, not social optimization).
talker, quiet, kid, needs-aisle), and optional language. Edges: must-together (couples), keep-apart (exes, feuding), prefer-near (friends), know-well (already close — mixing prefers splitting them).know-well edges score better| Real situation | Encoding |
|---|---|
| Divorced parents | keep-apart edge between them (and optionally their new spouses) |
| Maid of honor + her new boyfriend | same party (must-together) |
| Two work friends who should meet | prefer-near |
| The loud cousin | flag talker — optimizer spreads talkers one-per-table max |
| Grandma with a walker | flag needs-aisle → host marks which seats are aisle seats |
| Kids' table | flag kid → grouped at one table (with 1–2 patient adults) |
| "Don't split our family of 5" | party of 5, must-together |
python3 scripts/seating_optimizer.py --demo — 24-guest wedding sample (2 divorced-parent keeps-apart, 4 couples, 3 talkers, 4 kids) across 3 tables of 8 → rosters + balance report in under a second.
python3 scripts/seating_optimizer.py --guests guests.json --tables "8,8,8" — your guest file.
needs-aisle guests must map to real physical seats; get the venue's table map before finalizing.must-together party seated at one table (script asserts)keep-apart pairs sharing a table (script asserts)