# Hall upkeep
> Keeping the hall honest from inside the harness — reconciling against ivar.json, listing what is registered, and authoring the setup script a fresh worktree needs.
Source: https://ivar.run/docs/guide/hall-upkeep

import { Callout } from 'fumadocs-ui/components/callout';

The hall is shared state: a manifest everyone commits and a local checkout that
has to keep up with it. Three commands cover the upkeep.

## Reconcile against the manifest

```text
/ivar-sync
```

Reconciles the hall's derived local state against its sources of truth — the
committed `ivar.json` and the installed `ivar` package. Run it after pulling the
hall, and any time the local checkout stops matching what the manifest says.

## See what is registered

```text
/ivar-repo-list
```

Lists the repos in the hall manifest, along with the features, sessions and
promoted repos. The quickest orientation when you land in a hall you did not set
up.

## Author a setup script

```text
/ivar-repo-setup
```

Writes a repo's **setup script** at `.ivar/setups/<repo>.sh` by inspecting the
repo and working out what a freshly-cut worktree needs: install dependencies,
copy env files, run codegen.

<Callout title="Why a worktree needs one at all">
  A new worktree is a clean checkout. Everything that is gitignored — installed
  dependencies, generated code, local env files — is absent, and every feature
  branch you cut starts from that state. The setup script is what makes a fresh
  worktree usable without a wiki page.
</Callout>

`ivar` runs the script when a worktree is materialised, and receipts the run so
a later `sync` does not repeat work that is already done.

## From the command line

Everything above is a slash command over an `ivar` subcommand. When you want to
run one yourself, they are documented in
[Reference → ivar hall](/docs/reference/hall).
