Where AI is used, and where it is not
AI wrote most of the code under the team's direction, designed the homepage, made its images, animated and narrated the demo video, and it polishes some sentences on the page. It never calculates a score, a cost, a value or a return.
In short
- To build it: Claude Code, Anthropic's coding agent, wrote most of the code, tests, database migrations and docs under the team's direction. ChatGPT designed the homepage layout.
- Demo video: animations made with OpenArt; narration is ElevenLabs text-to-speech read from the team's script.
- Images: homepage images were made with ChatGPT's image generation. They show the region in general, not any real lot, and are not photographs.
- In the product: the Claude API (model
claude-sonnet-5) rewords plain-English sentences that the engine has already written from computed results. - Language: the site is in English only. A Spanish translation drafted with AI during the hackathon was removed before submission.
- Guardrail: a validator rejects any AI sentence containing a number that is not in the computed data. The page then shows the engine's own sentence.
AI used to build the project
| Tool | Model or version | Used for |
|---|---|---|
| Claude Code (Anthropic) | Claude Opus 5.5 and Claude Sonnet 5 | Anthropic's coding agent, including multi-agent workflows. It wrote most of the code, tests, SQL migrations and docs, and ran QA and audit passes, under the team's direction. Also planning and research notes. |
| oh-my-claudecode | Claude Code plugin | Coordinates several Claude Code agents working on separate tasks. |
| Claude Code (Anthropic) | Claude Opus 5.5 | Drafted a Spanish translation of the interface and summary during the hackathon. It was removed before submission: the site is English only. |
| ChatGPT (OpenAI) | — | Homepage design and layout (HTML/CSS), later ported into the app. |
| ChatGPT image generation (OpenAI) | — | Homepage images. They are AI-generated regional imagery: not photos of any lot or parcel, and not copyrighted photography. |
| ChatGPT image generation (OpenAI) + Claude | — | Logo concept generated with ChatGPT (image generation), then redrawn as vector geometry by Claude. |
| OpenArt | — | Animations in the demo video. |
| ElevenLabs | — | Text-to-speech narration of the demo video, read from the team's script. |
Weights and cost defaults live in versioned config files, marked as drafts awaiting expert review. Zoning code sections used by the engine were checked against the official text. All source code is public, with its full history.
AI in the product
The parcel page has two places where AI may reword text:
- Four answers: Can you build here? Does it pencil? What's in the way? What next?
- Two-sentence summary: what the lot allows by right, and what might be possible with zoning relief.
How a sentence is made
- The engine computes the score, flags, approvals, budget, value and margin.
- The engine writes a template sentence for every answer from those results.
- The server sends Claude only the computed results and the template sentences, and asks for plainer wording at an 8th-grade reading level. The API key stays on the server.
- Each returned sentence is checked (see below). Sentences that pass are shown. Sentences that fail are replaced by the template.
If the AI service is slow (over 8 seconds), returns an error, or is not configured, the page shows the template sentences. The app works fully without AI.
The checks
- Numbers: every number in an AI sentence must match a number in the computed data. Rounding the way a person would is allowed. Anything else is rejected.
- Codes and districts: the summary may name only zoning districts and code sections that appear in the data.
- Banned words: the summary may not use words such as “guaranteed,” “definitely,” “impossible” or “risky,” or advise buying or not buying.
- Shape: the summary must be exactly two sentences. A failed summary gets one retry, then the template is used.
- Fixed wording for precedent: whether nearby Zoning Board requests were usually approved, mixed, or usually denied is set by the case counts, not by the model.
Where AI is never used
- The Ease Score, factor scores, red flags and review callouts
- The lot-fit test and the zoning rules
- The requirements checklist
- Costs, values, profit, margin, yield and every other number in the pro forma
- Months to a permit
- The numbers in the Feasibility Study PDF
- Views of a specific lot: the 3D views come from Google Photorealistic 3D Tiles and USGS lidar, not from an image generator
These are deterministic code: the same parcel and data always give the same result. See Data and methods for the rules and Limitations for the gaps.