Open-Prompt Project Format

Ship software as reproducible prompts,
not just source.

Open source shares the result. OPPF shares what produced it — the design prompts, the acceptance criteria, and the tests — so a generative coding agent can regenerate the whole project, with an explicit, checkable definition of done.

What is OPPF?

A standard for a project directory whose full contents can be reproduced by an AI. Everything the agent needs lives in one folder, .opp/, split into three roles:

Design

The prompts that specify the project — the single source of truth. Either design/index.md or a single design.md.

Review

One file per acceptance property. The agent reads each and returns a strict pass / fail verdict. Optional.

Test

A runnable test.sh suite that validates the implementation. Run after review. Optional.

The lifecycle

opp drives a coding agent through three commands. Prompts go in; a working, verified implementation comes out.

.opp/ design · review · test prompts = source opp impl generate the code opp review check each property opp test run the suite coding agent  ·  Claude Code / Codex iterate on failure

The design drives impl; review and test form the explicit definition of done. A failed verdict feeds back into another impl round — in the same agent session.

Project layout

A conforming project is any directory containing an .opp/ folder.

.opp/
├─ design/
│  └─ index.md        # the design — source of truth
├─ config.toml        # agent + excludes (optional)
├─ review/            # pass/fail criteria (optional)
│  ├─ property_a.md
│  └─ property_b.md
└─ test/              # runnable suite (optional)
   └─ test.sh
…implementation files      # what the agent generates

Good to know

  • A single design.md may replace the design/ folder.
  • review/ and test/ are optional — start with just a design.
  • A test bundle can itself be an OPPF project (it's recursive).
  • config.toml picks the agent and lists read-only exclude paths.

The opp CLI

A small Rust binary. It checks you're logged in, drives the agent with live progress, and reports results.

opp impl

Read the design and implement what it requires, streaming the agent's actions as it works.

opp review

Have the agent check every property and print a pass / fail verdict for each.

opp test

Run the bundled test.sh suite and report whether it passed.

Pluggable agents Claude Code Codex login preflight live progress resumable sessions

Quick start

# build the CLI
cargo build --release

# inside a project that has an .opp/ folder
opp impl     # generate the implementation
opp review   # check each acceptance property
opp test     # run the test suite

# preview the agent calls without running them
opp --dry-run impl

Requirements

  • A Rust toolchain to build opp.
  • A coding-agent CLI on your PATHclaude or codex.
  • That's it. Point opp at any .opp/ project and go.

The full spec lives in the repo's .notes/guidelines.md; usage details are in the README.