# Retargeting this app to another municipality The engine is jurisdiction-agnostic. Everything city-specific lives in two places: **`jurisdiction.yaml`** (text/branding/frameworks) and **`skills/`** (the review rules). No code changes are needed to point the app at a new city. ## Steps 1. **Copy `jurisdiction.yaml`** and edit the values — name, region, the safety-code and land-use framework names findings must cite, branding strings, and the optional time-based `transition` block (set `enabled: false` if the city has no such rule; all transition text then disappears automatically). 2. **Replace the `skills/` folders** with skills for the new city. Each skill's `SKILL.md` frontmatter declares its `track`, `track_label`, and `track_scope` (see the existing suites/multi-residential/institutional skills as templates). The app discovers tracks from these at startup — a new review type is a new folder, not a code edit. 3. **Distill, don't dump.** Do NOT drop a raw 600-page bylaw/code PDF into `knowledge/` and expect good citations — it dilutes routing and most pages may be image-only. Instead, extract the relevant clauses into structured skill reference tables (clause number · rule · the check it implies), the way the Calgary `alberta-suites` references carry verified NBC-AE article numbers. That is what makes findings cite real, verifiable clauses. ## What stays the same The scope gate, multi-provider model layer, SQLite analytics, DXF/PDF ingestion, citation-grounding, verdict reconciliation, and report structure are all city-neutral and carry over unchanged.