Intermediate · ~10 minutes

Proposal Management

Learn how to use Prodara's propose/apply/archive workflow to manage spec changes safely. Proposals let you draft, test, and review changes in isolation before merging them into your main specification.

1 Create a Proposal

A proposal is an isolated workspace for drafting spec changes. When you create one, Prodara sets up a folder in .prodara/changes/ with its own delta.prd file.

prodara propose "Add payment processing"

This creates a new directory structure:

.prodara/
  changes/
    add-payment-processing/
      delta.prd
      metadata.json
ℹ️
Give proposals descriptive names — they become folder names and appear in your build history.

2 Author the Delta Spec

Open the delta.prd file and write your proposed changes. The delta spec uses the same Prodara language as your main spec, but only needs to contain the additions or modifications.

module payments {
  entity Invoice {
    amount: currency
    status: draft | sent | paid | overdue

    workflow lifecycle {
      draft -> sent: send
      sent -> paid: mark_paid
      sent -> overdue: mark_overdue
    }
  }

  action process_payment {
    input: Invoice
    trigger: mark_paid
  }
}

The compiler will merge your delta with the existing spec during validation, so you see the full impact of your changes before committing them.

3 Validate the Proposal

Before applying a proposal, run a build to ensure the merged spec compiles cleanly. Prodara will type-check, validate the graph, and run reviewers against the combined spec.

# Validate the proposal merges cleanly with the main spec
prodara build ./my-project

If there are errors, fix them in the delta.prd file. The proposal stays isolated until you explicitly apply it.

4 Apply or Archive

Once your proposal validates, apply it to merge the delta into your main spec. Prodara will re-validate before merging to prevent regressions.

# Apply the proposal — merges delta.prd into main spec
prodara apply add-payment-processing

If the proposal is no longer needed, archive it instead:

# Archive a rejected or completed proposal
prodara archive add-payment-processing
ℹ️
Archived proposals are moved out of the active changes directory but preserved for audit purposes.

5 Team Collaboration

Proposals pair naturally with version control. Each proposal lives in its own directory, so team members can work on different proposals in parallel on separate branches.

  • Create a Git branch and a Prodara proposal together for clean tracking.
  • Use prodara build in CI to validate proposals before merge.
  • Reviewers can check the delta.prd diff just like they review code changes.
  • Use prodara drift to ensure the spec stays in sync after apply.

Next Steps

  • Interactive Workflows — combine proposals with custom review workflows.
  • CLI Usage — full reference for propose, apply, archive, and all other commands.
  • Plan Format — understand the incremental plan output that proposals generate.