# Review and merge Suggested Changes (/docs/guides/review-changes)

A Suggested Change is a proposed edit to a Skill or Hook. You can review it on the Skill's page in the web workspace or from the terminal. This page uses the terminal commands. The browser offers the same actions.

## Find and read a change [#find-and-read-a-change]

```bash
barndog changes list
barndog changes show 42
barndog changes diff 42
```

`show` displays the proposal, its reviews, and the discussion. `diff` shows the file changes. Each new push from the author creates a new **revision**. To see what changed between revisions:

```bash
barndog changes diff 42 --revision 2 --from-revision 1
```

## Comment [#comment]

```bash
barndog changes comment 42 --revision 1 --body "Please add an example."
```

To comment on specific lines, name the file, the side, and the lines:

```bash
barndog changes comment 42 --revision 1 \
  --path SKILL.md --side new --start-line 6 --end-line 6 \
  --body "This step is unclear."
```

Use `--body-file <path>` for longer comments, and `--thread <id>` to reply to an existing discussion.

### Suggest an exact replacement [#suggest-an-exact-replacement]

To propose replacement text, put the original lines and your replacement in two files:

```bash
barndog changes comment 42 --revision 1 \
  --path SKILL.md --side new --start-line 6 --end-line 6 \
  --expected-file original.txt --replacement-file replacement.txt
```

The author, or anyone else who's allowed to, can apply it. Applying creates a new revision:

```bash
barndog changes apply 42 <thread-id> --revision 1
```

Close or reopen a discussion with `changes resolve-discussion` and `changes reopen-discussion`.

## Approve or request changes [#approve-or-request-changes]

Reviews always name the revision you looked at, so you never approve something you haven't seen:

```bash
barndog changes approve 42 --revision 2
barndog changes request-changes 42 --revision 2
```

- A request for changes keeps blocking until that reviewer approves the current revision.
- A meaningful new revision clears earlier approvals.
- **Approval does not publish.** Someone has to merge.

## Merge [#merge]

```bash
barndog changes merge 42 --revision 2
```

Merging publishes the change as the Skill's next version. Merge rules are set per team or repository. By default, a change needs one approval from another member, and any member can merge. Scope and organization admins can merge without meeting the approval rules.

A change that is out of date with the published version must be updated first. Out-of-date changes are never merged, not even by admins.

## Reject [#reject]

The author or an admin can close a proposal:

```bash
barndog changes reject 42 --revision 2
```

A rejected change can't be reopened. The author starts a new one with `barndog push --new`.
