Skip to main content

Review proposals

Proposals is where changes to your design system wait for a person. Nothing listed here has been applied yet: a proposal only changes your rules, tokens, or patterns when someone approves it.

Open it from the sidebar, or go to /proposals. Older links to /drift still work and land here.

Where proposals come from

  • Sentinel watches your connected repository and themes. When it finds the same off-system code in many places, or a theme that has drifted from your tokens, it proposes the change that would govern it.
  • Agents connected over MCP can propose a rule, a pattern, or a decision instead of writing it directly. The agent gets back a link to the proposal, so you can open it from your editor or chat.

The source filter splits the two.

Reading a proposal

Select a row to open it. The panel reads top to bottom:

  • Decision: one sentence saying what approving does to code. For a rule, that means whether matching code will be blocked, warned about, or only get suggestions. It also says how many places in code match today, when Sentinel counted them.
  • What changes: the change itself. For an update to an existing rule, only the fields that change are shown, old value struck through beside the new one, and the rest are listed as unchanged.
  • Evidence: what the proposal is based on. A Sentinel proposal links to the drift finding it came from. An agent proposal shows the API key that sent it, when it's known.

What "blocks" means

A rule blocks when it fails validation: code that matches it is reported as invalid until it is fixed. A rule that warns or suggests is reported but never fails validation. If a rule already exists, approving keeps its current enforcement level and only changes what the proposal changes, so the decision sentence may say the effect doesn't change.

Approving and dismissing

  • Approve: choose the approve link in the decision section, add a reason if you like (it's kept in the audit trail), then confirm. The change applies immediately.
  • Dismiss: in the panel footer. A dismissed proposal is never applied.

Approved and dismissed proposals stay in the queue under the status filter, with when each was decided and any reason given.

You approve what you saw

An approval applies exactly the version of the proposal on your screen, and the rule as it stood when you opened it. While the panel is loading that version, it says "Checking what this changes…" and the approve link isn't available yet.

If anything changed after you opened it (someone edited the proposal, or changed the rule it updates), the approval is refused and nothing is applied. You'll see:

This proposal or the rule it changes was edited after you opened it. Reload to review the current version.

The proposal stays pending. Reload, read the current version, and approve again if it's still right. From the home page card, the same refusal appears as a Not approved message.

If the page says it "could not confirm what you are approving", reload and try again. That happens when the panel couldn't load the version it would approve.

A link like /proposals/<id> opens that proposal. If it belongs to a design system other than the one you're working in, the page says so and shows that design system's queue. It never switches your active design system on its own; use Switch in the notice if you want to.

Was this page helpful?

Last reviewed by @jschuyler
All systems operationalDocsDevelopersPlatformPricing
PrivacyTerms© 2026 fndd, LLC