Parlay
- Started
- April 2026
- Status
- active, 560+ commits
- Stack
- Go CLI, agent skills
- Source
- github.com/ddwht/parlay
Why
Design handoff has always been a lossy copy. A designer knows what a person is trying to do; the code ends up knowing only which widgets were on the screen. When an AI agent writes the code, the loss gets worse, because the agent re-infers the intent from pixels every time it touches the file.
Parlay keeps the intent as the source of truth. You describe what users need, not how to code it, and everything downstream is derived from that description and can be regenerated from it.
How it works
A feature moves through five phases. Each one produces a file a person can read and edit.
- 1 · Intents What the user is trying to do Goal, persona, priority, context, action, objects, constraints and how to verify. Plain Markdown, designer-authored.
- 2 · Dialogs The conversation between person and product Each intent becomes turns of a dialog, with gap analysis to catch what the intents forgot.
- 3 · Artifacts Four co-equal specs Surface, capabilities, infrastructure and domain model. The surface is written in a closed vocabulary of Shows, Actions and Flows that names no framework.
- 4 · Build A buildfile the agent reads instead of guessing A framework adapter maps the vocabulary onto real widgets. Test cases and a coverage review come out of the same step.
- 5 · Code Generated, tested, regenerable Stable components are preserved verbatim on the next run; only what changed upstream is rebuilt.
The pieces
- Closed interaction vocabulary. Shows, Actions and Flows describe an interface without naming a framework, so the same spec can target a Go CLI, React with Ant Design, or Angular with Clarity or Material.
- Framework adapters. One adapter per target translates the vocabulary into widgets. An existing codebase can be onboarded by drafting an adapter that matches its conventions.
- Application blueprint. Shells, routing, auth, data strategy and error handling are decided once per app, not re-argued per feature.
- The loop. A single command walks a feature through all five phases with a fresh subagent per phase group and a confirmation checkpoint at each boundary.
- Agent-neutral. Skills and subagents are deployed for Claude Code or Cursor, or as a single instructions file for anything else.
What I learned
The hard part was never generation. It was keeping the spec true to the software after the tenth change. Two things made the difference: treating every generated file as disposable, and making the validators disagree loudly rather than quietly. The first real app built with Parlay, Block Printing, produced a findings log of places where two parts of the tool contradicted each other. Most of the second half of the year went into closing those gaps.
References
- Parlay on GitHub. github.com/ddwht/parlay
- Block Printing, the first application built with Parlay. block-printing