Material Considerations

📘 Devlog #1 — Orientation

This is a record of what I’ve built so far, where the architecture stands, and what comes next.


1. From v1 to v2: Technical Progress

I began properly building The Planner’s Assistant in early 2025, after an extended period of reading, scoping, and conceptual planning. The first implementation laid down the backend: FastAPI, PostGIS, basic constraint ingestion, initial policy parsing, and a working OpenAPI schema. But the React-based frontend wasn’t flexible enough — it couldn’t support the layered, multi-view logic I needed for constraints, reasoning, and planning scenarios.

Now, the frontend has been rebuilt in Svelte, and I’m in the process of refactoring the backend to fit the new architecture. The project remains aimed at supporting planners — not with a chatbot, but with structured, explainable reasoning layered over spatial data. This may be one of the first public-facing integrations of GIS and LLMs in the planning domain. The interface is card-based, task-driven, and designed to surface overlays, policy commentary, and scenarios in a form that stays legible under complexity.

✅ What’s Already Done

⚠️ Where I’m Blocked

The main blocker is constraint ingestion. The original pipeline (based on ogr2ogr) loaded spatial datasets into PostGIS with flexibility, storing unmapped fields in extra_properties::jsonb. But the logic needs to be restructured to cleanly integrate overlays, frontend expectations, and schema assumptions.

The bigger issue is strategic: what counts as a meaningful constraint? LPAs vary significantly in how they represent spatial policy, and the temptation to model everything can stall progress.

Include too little, and it’s not useful. Include too much, and it’s never done.

For now, I’m focusing on a core set based on the Digital Land Planning Data Specification: Green Belt, Flood Zones, SSSIs, Conservation Areas, Local Plan Allocations, Article 4 Directions, and AONBs. I’m logging edge cases for later — not solving them all now.

🧭 Next Steps


2. Working Notes

This section tracks decisions, problems, and structural shifts in how the system is evolving. It isn’t comprehensive — just a way of staying close to the work.

The Planner’s Assistant is built around a core hypothesis: that complex planning judgement can be partially structured and surfaced, without flattening discretion or turning decisions into black boxes. The goal isn’t automation for its own sake — it’s transparency and explainability at a systems level.

There’s no fixed roadmap. Some days are spent untangling spatial logic, others reworking how prompts behave across models. The work moves between backend infrastructure, frontend composition, and the conceptual edges of what makes planning legible.

One constant: GitHub Copilot has been unexpectedly useful. It’s not flawless, but it mirrors intent, speeds up boilerplate, and keeps momentum going during ambiguous phases. Especially useful when the task is clear but repetitive, or the logic is rough but needs pushing through.


3. Timeline Snapshot (Approximate)


4. Initial Toolchain and Stack

A summary of the current toolchain, with brief notes on why each was chosen:

Backend

Frontend

AI Integration

Data Handling

Search / Retrieval


5. Closing Notes

This is probably incomplete. There’s a good chance I’ve missed important pieces of the story, technical notes, or half-built threads that matter later. I’ll likely update or revise this post as things settle.

Immediate priorities still sitting in the background:

More to come. Built without lanyards.