> ## Documentation Index
> Fetch the complete documentation index at: https://hub-docs.wundergraph.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Propose and Review Changes

> Package branch changes into a reviewable unit with automated composition checks, breaking-change analysis, and ownership-enforced approval.

Schema changes merged without the right checks or the right approvals are how breaking changes reach production. A proposal wraps your branch changes in a reviewable unit. Automated checks run against your real traffic, owners are required to sign off, and nothing merges until it is ready.

## Walkthrough

### Create a Proposal

After making changes on a branch, click **Proposal** in the top nav. The tab shows an empty state with a **Create Proposal** button. Click it to open the **Create Proposal** modal.

The modal has a **Select collections...** dropdown. Open it to search for and select the operation collections you want to use for impact analysis. Selecting collections is optional but enables complexity distribution and complexity metrics comparisons between your branch and main. Click **Create Proposal** to proceed.

<div style={{position: "relative", paddingBottom: "calc(48.40% + 0px)", width: "100%", height: 0, transform: "scale(1)"}}>
  <iframe loading="lazy" className="sl-demo" src="https://app.storylane.io/demo/2ry9keqgfhxu?embed=inline" name="sl-embed" allow="fullscreen" allowFullScreen style={{position: "absolute", top: 0, left: 0, width: "100%", height: "100%", border: "1px solid rgba(63,95,172,0.35)", boxShadow: "0px 0px 18px rgba(26, 19, 72, 0.15)", borderRadius: "10px", boxSizing: "border-box"}} />
</div>

### Review the Overview

The proposal opens on the **Overview** tab. The main area shows two sections. **Changed Subgraphs** lists every subgraph modified in this proposal, each with a **View Schema** button and a linked GitHub pull request if Git is configured. If a subgraph does not have a Git repository configured, a warning appears with a **Configure Git** button. The second section shows either **Complexity Distribution** and **Complexity Metrics** tables if you selected collections, or a **No Collections Selected** state with an **Add Collections** button if you did not.

The right sidebar shows the checks panel and the **Reviews** section. The checks panel groups results into **Integration checks** and **Hub checks**.

Integration checks cover: **Composes**, **Breaking changes**, **Client traffic**, **Lint Errors**, **Pruning Errors**, and **Linked namespaces**. Each shows a status of Passed, Failed, or Skipped. Use **View in registry** to open the full check results in Cosmo, or **View all checks** to see a detailed breakdown.

Hub checks cover: **Unresolved Threads** and **Unassigned Fields**. Unresolved threads block approval -- the check shows a count of open threads and fails until all are resolved.

The **Reviews** section lists required reviewers as a tree grouped by **Subgraphs** and **Types**. Expanding each group shows the individual owners assigned to that resource, with their role in parentheses. Each reviewer shows an amber dot until they approve.

<div style={{position: "relative", paddingBottom: "calc(48.40% + 0px)", width: "100%", height: 0, transform: "scale(1)"}}>
  <iframe loading="lazy" className="sl-demo" src="https://app.storylane.io/demo/crfevqi12rvy?embed=inline" name="sl-embed" allow="fullscreen" allowFullScreen style={{position: "absolute", top: 0, left: 0, width: "100%", height: "100%", border: "1px solid rgba(63,95,172,0.35)", boxShadow: "0px 0px 18px rgba(26, 19, 72, 0.15)", borderRadius: "10px", boxSizing: "border-box"}} />
</div>

### Discuss Changes

<div style={{position: "relative", paddingBottom: "calc(48.40% + 0px)", width: "100%", height: 0, transform: "scale(1)"}}>
  <iframe loading="lazy" className="sl-demo" src="https://app.storylane.io/demo/ph71p5ghszo3?embed=inline" name="sl-embed" allow="fullscreen" allowFullScreen style={{position: "absolute", top: 0, left: 0, width: "100%", height: "100%", border: "1px solid rgba(63,95,172,0.35)", boxShadow: "0px 0px 18px rgba(26, 19, 72, 0.15)", borderRadius: "10px", boxSizing: "border-box"}} />
</div>

### Approve the Proposal

The **Approve** button is only active when all checks pass and all discussions are resolved. The sidebar also shows **Close** to close the proposal without merging, and **Convert to draft** to move it back to draft status.

Hub enforces governance automatically. If an owner listed in the **Reviews** section has not approved, the proposal stays blocked regardless of check status.

<Check title="What You Should Have at This Point">
  A complete review record: what changed, which checks passed, and who approved it. The proposal is ready to publish to your registry.
</Check>
