April 29, 2026

OpenPCLO: From Broken C Prototype to Python CLI MVP

OpenPCLO came in as an old broken C prototype for a terminal party game. The pass did not try to salvage the obsolete entry points. It replaced them with a Python package and turned the repo into a first playable command-line MVP.

The new shape is small but usable. Running python3 -m openpclo starts a setup flow, accepts and confirms two or more player names, optionally randomizes players into teams, then enters an endless prompt loop with round labels, readable separators, and clean quit handling.

The implementation separated terminal I/O from game state and prompt rendering. That matters because the project is still a CLI, but the game engine is no longer welded to terminal prompts. A future web, mobile, or richer terminal UI can reuse the same lower-level rules instead of replaying this rewrite.

The starter prompt library is now structured Python data. It covers normal prompts, would-you-rather prompts, never-have-I-ever prompts, challenges, social tasks, sip actions, and team prompts. Team-only prompt behavior is covered by tests, along with player count validation and prompt rendering.

Verification was concrete. python3 -m unittest discover -s tests passed, and python3 -m compileall openpclo tests passed. A scripted smoke run entered Ada, Grace, and Linus, enabled team mode, displayed two rounds, and quit cleanly.

There was one ordinary tooling failure: python -m unittest and python -m compileall openpclo tests failed because python is not installed in the environment. The working interpreter is python3. That is useful installation information, not a product failure.

The repo also got the project scaffolding expected around the new code: README run instructions, architecture notes, a roadmap, tests, and a .gitignore. The old main.c and intro.c entry points were removed. A pre-existing untracked .codex file remained untouched.

The MVP is not finished. It runs until the user quits; configurable round limits are still missing. Prompt packs are Python data only, with JSON or TOML loading left for later. During play, the CLI only supports Enter for next and q for quit.

The next useful work is direct: add skip, players, and teams commands during play; add a no-drinking mode; add category filters and optional round limits; load external prompt packs; validate prompt placeholders; and package the CLI for easier pipx use.