> For the complete documentation index, see [llms.txt](https://wiki.crosswatch.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.crosswatch.app/getting-started/best-practices.md).

# Best practices

Use these defaults unless you have a reason to deviate.

CrossWatch (CW) is safest when you start small and keep runs predictable.

### Default setup (recommended)

* Direction: **Media server -> tracker**
* Watchlist: start **one-way**. Can be one-way or two-way.
* History: do a **one-way seed** once. Then disable History and use scrobbling.
* Ratings: keep **one-way** (Media server -> tracker)
* Progress: keep **one-way** (Media server -> tracker)

{% hint style="warning" %}
Do not switch to **tracker -> media server** unless you have a clear reason.

Trackers often(always) contain items your server does not have..

For most setups, **only sync data into a media server when the item already exists in that library.**

Related: [Trackers vs. Media Servers](/related-information/trackers-vs.-media-servers.md) and [Tracker to Media Server](/related-information/tracker-to-media-server.md)
{% endhint %}

CW supports **real bidirectional synchronization**.  Changes on either platform can sync in both directions. That adds flexibility. It also adds risk. Because both sides can introduce changes, you are more likely to see:

* conflicts, duplicate items, unintended overwrites, propagated deletions

**Use bidirectional (two-way) sync carefully.**

It may look like the better option. For most users, **one-way** sync is still the safer and more predictable

### Metadata agents (recommended)

Good metadata is the difference between stable ID matching and messy title guessing.

Use these defaults:

* **Plex Media Server**: use the default **Plex Movie** and **Plex TV Series** metadata agents.
* **Emby** and **Jellyfin**: use **TMDb** metadata.

For AniList pairs specific pairs, enable **Anime ID Mapping**.

Guide: [Anime ID Mapping](/crosswatch/settings/connections/metadata/anime-id-mapping.md)

### Changing pairs and resets

Do not constantly tweak direction, mode, or enabled features. If you do, reset state so planning recalculates cleanly.

#### When to rebuild sync state and retry provider items

Run **Rebuild sync state** and **Retry provider items** when you make a major sync change or the next plan looks unsafe.

Common triggers:

* You switch **one-way ↔ two-way**
* You change library filters or whitelists on an active pair
* You update CW and the first plan looks wrong
* You backfill history with old dates and the provider uses delta reads
* You see an unexpected large remove plan


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://wiki.crosswatch.app/getting-started/best-practices.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
