---
title: Suggestions
description: One card per learned proposal, with level, evidence, Accept, Reject and Snooze, and a history of decided suggestions.
sidebar:
  order: 8
---

## What it is

`#/suggestions` shows every Inbox message of kind `proposal` as a card: open ones first (newest first), then history (newest decision first).

## Why it exists

A learned change needs a clear yes or no with the evidence next to it. Putting proposals on their own page keeps them from getting lost among matches and alerts.

## How it works

Each card shows the title and why (as text), the level label ("L1 setting", or "L2 definition, opens a PR"), the signal and the evidence count.

| Action | Writes |
|---|---|
| Accept (L1 only) | Applies the item to the setting as it is now in `settings/<producer>`, then `decisions/<messageId>` `{decision: "accept", key, at, by}` |
| Reject | `decisions/<messageId>` `{decision: "reject", key, at, by}` |
| Snooze | `decisions/<messageId>` `{decision: "snooze", key, until, at, by}`, 7 days |

L2 and L3 cards offer Reject and Snooze only: "this change opens a PR; Accept writes no setting". Opening the PR is a follow-up; today the card records the decision only.

Refusals shown on the card:

- "this proposal names no setting or no new value"
- "this would leave an include list empty, so it would match nothing"

A snooze whose `until` has passed reopens the card. With nothing open: "No suggestions waiting."

> Since 0.5.0: Suggestions become an Inbox tab (`#/suggestions` still works), and each list setting on Settings shows its own suggestions inline, with the same actions.

## Worked example

The card "Add hydrogen to title_keywords" shows L1 setting, `uncaptured_term`, 5 of 6. The person accepts. `settings/hiring-signals` `values.title_keywords` gains `hydrogen`, and the card moves to history as Accepted.

## Common pitfalls

- **Accepting after someone edited the setting.** Accept applies the one item to the current value, not the stale `to`, so the other edit is kept.
- **Rejecting to "try again later".** That blocks the key for `cooldownDays`. Snooze instead.

## Related

- [Learning](/concepts/learning)
- [Tune learning](/guides/tune-learning)
