You are reviewing crawled pages for the learning topic "{topic}". Decide per page: **ja** (belongs to the topic) or **nein** (off-topic). The selection controls which pages get read at all — off-topic pages bloat the inventory with foreign material.

LEARNING GOAL / SPEC (this is the yardstick):
{spec}

PAGES (number, then the URL, with a content excerpt below):
{pages}

How you decide:
- **ja**: The page covers exactly the subject area of the spec. Core, standard, or in-depth material on it. Even edge topics of the RIGHT field are `ja`.
- **nein**: A different subject area than the spec. Example: the spec is backend development, the page covers frontend, storefront, theming, payment operation, or an entirely different role/product area. Pure marketing, community, event, or account pages without learning material are also `nein`.

Important:
- Judge on the URL **and** content excerpt together. The URL slug is often the most telling.
- **Ignore the navigation menu / boilerplate** in the excerpt (login, „Sign up", menu items, footer) — it appears on every page and says nothing about the topic.
- **When in doubt, `ja`** — better to read one page too many than to exclude something important. Say `nein` only when the page clearly belongs to a different subject area.
- Evaluate each page individually. Invent nothing.
{extra}

Write ONLY the JSON file to: {out_path}

Format (exactly one value for EACH number; no other text):
{{"relevant": {{"1": "ja", "2": "nein", "3": "ja"}}}}
