Skip to content
This page was generated and translated with the assistance of AI. If you spot any inaccuracies, feel free to help improve it. Edit on GitHub

Proposals ​

Proposals are the entry point for governance decisions in OpenPR. A proposal describes a change, improvement, or decision that needs team input, and it follows a structured lifecycle from creation through voting to a final decision.

Proposal Lifecycle ​

mermaid
graph LR
    DRAFT["Draft"] --> REVIEW["Under Review"]
    REVIEW --> VOTING["Voting"]
    VOTING --> APPROVED["Approved"]
    VOTING --> REJECTED["Rejected"]
    APPROVED --> ARCHIVED["Archived"]
    REJECTED --> ARCHIVED
  1. Draft -- Author creates the proposal with title, description, and context.
  2. Under Review -- Team members discuss and provide feedback through comments.
  3. Voting -- Voting period opens. Members cast votes based on governance rules.
  4. Approved/Rejected -- Voting closes. Result is determined by threshold and quorum.
  5. Archived -- Decision is recorded and the proposal is archived.

Creating a Proposal ​

Via the Web UI ​

  1. Navigate to your project.
  2. Go to Governance > Proposals.
  3. Click New Proposal.
  4. Fill in the title, description, and any linked issues.
  5. Click Create.

Via the API ​

bash
curl -X POST http://localhost:8080/api/proposals \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{
    "project_id": "<project_uuid>",
    "title": "Adopt TypeScript for frontend modules",
    "description": "Proposal to migrate frontend modules from JavaScript to TypeScript for better type safety."
  }'

Via MCP ​

json
{
  "method": "tools/call",
  "params": {
    "name": "proposals.create",
    "arguments": {
      "project_id": "<project_uuid>",
      "title": "Adopt TypeScript for frontend modules",
      "description": "Proposal to migrate frontend modules from JavaScript to TypeScript."
    }
  }
}

Proposal Templates ​

Workspace admins can create proposal templates to standardize the proposal format. Templates define:

  • Title pattern
  • Required sections in the description
  • Default voting parameters

Templates are managed in Workspace Settings > Governance > Templates.

Linking Proposals to Issues ​

Proposals can be linked to related issues through the proposal_issue_links table. This creates a bidirectional reference:

  • From the proposal, you can see which issues are affected.
  • From an issue, you can see which proposals reference it.

Proposal Comments ​

Each proposal has its own discussion thread, separate from issue comments. Proposal comments support markdown formatting and are visible to all workspace members.

MCP Tools ​

ToolParamsDescription
proposals.listproject_idList proposals, optional status filter
proposals.getproposal_idGet full proposal details
proposals.createproject_id, title, descriptionCreate a new proposal

Next Steps ​

Released under the Apache-2.0 License.