Spaces:
Sleeping
Sleeping
| # 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. | |