planning companion
doc: scopestatus: approvedscope.md (canonical)

Habitable

Snap a photo of what’s broken in your NYC apartment; get a dated, housing-code-classified evidence log and a ready-to-send repair notice.

AI proposes, code disposes.

The whole idea on one page

Habitable on one pageThe user: a NYC renterOlder, often rent-stabilized building: a leak, mold, no heat, pests,a broken lock or peeling paint.Today: texts or calls the landlord, keeps no dated record, anddoesn’t know what the code requires or how long the landlord has.At 311, an HPD inspection or housing court: a scattered cameraroll and no paper trail.Secondary usersTenant-association organizersand legal-aid intake workerswho need structured evidence.opens the app on a phone1SnapA photo of theproblem, plus oneoptional line:“ceiling drippingsince Tuesday”2AI proposesPicks only from afixed list: sixproblem types plus“not covered”.Gives a confidencescore; asks onequestion if unsure3Code disposesA cited rules table— never the model —sets the hazardclass and the legalcorrection window.“Why?” drawer +countdown.4LogA dated timeline:photo, capture time,content hash.Follow-ups: “stillbroken on day 12”.5NoticeOne tap: a print-ready notice PDF.Plus a 311/HPD nextstep. Not legaladvice.come back: add another issue, or a follow-upTHE PROOF: what “working” looks likeCLASS B · HAZARDOUS30-day correction windowThis building already hasN open violations, M forleaks.A dated timeline entry:photo, hash, timestamps+ a running countdownOne tap: a print-readynotice PDF with thecited code sectionThe “oh, that’s cool” beat: the photo becoming a stamped legal clock, then proof the building has a history. Habitable on one pageThe user: a NYC renterOlder, often rent-stabilizedbuilding: leak, mold, no heat,pests, broken lock, peeling paint.Today: texts or calls the landlord,no dated record, no idea what thecode requires or how long it takes.At 311, HPD or housing court:a scattered camera roll, no trail.Also: tenant-association organizersand legal-aid intake workers.opens the app on a phone1SnapA photo of the problem plus oneoptional line, e.g. “ceiling drippingsince Tuesday”2AI proposesPicks only from a fixed list: sixproblem types plus “not covered”.Gives a confidence score; asks onequestion if unsure.3Code disposesA cited rules table, never the model,sets the hazard class and the legalcorrection window. “Why?” drawer +countdown.4LogA dated timeline: photo, capturetime, content hash. Follow-ups:“still broken on day 12”.5NoticeOne tap: a print-ready notice PDF,plus a 311/HPD next step.Not legal advice.come back: another issue or follow-upTHE PROOF: what “working” looks likeCLASS B · HAZARDOUS30-day correction windowThis building already has N openviolations, M for leaks.Dated timeline entry with hash; onetap makes the notice PDF.The “oh, that’s cool” beat: the photobecoming a stamped legal clock, thenproof the building has a history.
AI proposescode disposeshazard stampbuilding history
Text version of this diagram
  1. The user: a NYC renter in an older, often rent-stabilized building with a leak, mold, no heat, pests, a broken lock or peeling paint. Today they text or call the landlord, keep no dated record, and don’t know what the code requires or how long the landlord has. Secondary: tenant-association organizers and legal-aid intake workers.
  2. Snap: a photo of the problem plus one optional line.
  3. AI proposes: picks only from a fixed list (six problem types plus “not covered”), gives a confidence, asks one clarifying question if unsure.
  4. Code disposes: a cited rules table, never the model, sets the hazard class and the legal correction window, with a “why” drawer and countdown.
  5. Log: a dated timeline with photo, capture time, content hash and follow-ups. From here the renter comes back to add another issue or a follow-up.
  6. Notice: one tap builds a print-ready notice PDF, with a 311/HPD next step. Not legal advice.
  7. The proof: a stamped “Class B · Hazardous · 30-day correction window” card with a running countdown and cited code section; the building panel (“This building already has N open violations, M for leaks.”); a dated timeline entry with hash and timestamps; a print-ready notice PDF.
Read top to bottom: the renter enters the loop on a phone, the loop produces the proof. The arrow under the loop is the habit: add another issue or a follow-up.

The Unique Kernel

AI proposes, code disposes. A vision model may only pick from a short, fixed list of problem types and must say how sure it is. A cited rules table — never the model — decides the NYC hazard class and the legal correction window. The photo, its capture time and a content hash become an evidence entry, and the building’s public violation history shows the tenant isn’t alone. Photo → code class → legal clock → building history → notice does not exist as one flow today.

Photocode classlegal clockbuilding historynotice

Who it’s for

A New York City renter

Typically in an older (often rent-stabilized) building, with a leak, mold, no heat, pests, a broken lock or peeling paint.

Today

They text or call the landlord, keep no dated record, and don’t know what the Housing Maintenance Code requires or how long the landlord has to fix it.

When it escalates

To a 311 complaint, an HPD inspection or housing court, they have a scattered camera roll and no paper trail.

Secondary

Tenant-association organizers and legal-aid intake workers who need structured evidence.

“Every repair dispute turns on documentation.”

The core loop

Open the app on a phone → snap the problem (plus one optional line like “ceiling dripping since Tuesday”) → see the class card with its clock and the “why” → it lands on a dated timeline. They come back to add another issue or a follow-up (“still broken on day 12”), and when ready, produce the notice.

  1. 1 Snap

    Photo plus one optional line.

  2. 2 AI proposes

    Fixed list, with a confidence; one question if unsure.

  3. 3 Code disposes

    Cited table sets class and window; “why” drawer and countdown.

  4. 4 Log

    Dated timeline with follow-ups; they come back to add more.

  5. 5 Notice

    One tap: a print-ready notice PDF when they are ready.

What “working” looks like

On a phone: enter an address once, photograph a stained ceiling that is no longer dripping, and watch it flip into a stamped “Class B · Hazardous · 30-day correction window” card with a running countdown and the cited code section. The building panel slides in: “This building already has N open violations, M for leaks.” The issue lands on a dated timeline with its hash and timestamps, and one tap produces a print-ready notice PDF.

Photograph a stained, dripping ceiling (address entered once).

Class B · Hazardous
30-day correction window

Running countdown and the cited code section.

This building already has N open violations, M for leaks.

A dated timeline entry with its hash and timestamps; one tap: a print-ready notice PDF.

The “oh, that’s cool” beat: the photo becoming a stamped legal clock, followed by proof the building has a history.

The POC boundary: now, later, cut

Each item opens to show its reason. “Now” comes from the POC Boundary list; reasons for “later” are the ones the PRD records.

now

9 in the POC

NYC only, one address per device, no accounts; everything stored on the device.

Why: Local-first is the privacy story, and it avoids auth and a database that would not prove the kernel (see the cut list).

Fixed taxonomy of six problem types plus “not covered”.

Why: The vision model may only pick from a short, fixed list; the legal table stays small enough to cite accurately (prd.md > Product Decisions).

Vision classification with confidence + rationale; one clarifying question when unsure.

Why: The AI proposes and must say how sure it is; when unsure it asks one question instead of guessing.

Deterministic, cited rules table with a “why” drawer and countdown.

Why: Code disposes: a cited table, never the model, decides the hazard class and the correction window.

Evidence timeline (photo, capture time, hash, follow-ups).

Why: Today the renter has a scattered camera roll and no paper trail; this is the dated record.

Building history from NYC Open Data.

Why: It shows the tenant isn’t alone: the building’s public violation history.

Notice PDF.

Why: Civic tech with a real document at the end; the tools that exist are chatbots, not evidence.

A seeded demo mode so the demo never depends on a live API.

Why: The video and the judges never depend on a live AI call (prd.md > Product Decisions).

“Not legal advice” plus a 311/HPD next step.

Why: The app documents and cites; it doesn’t advise. The next step hands the renter to 311/HPD.

later

4 after the POC

Email the notice (Resend).

Why: Needs a verified sending domain. Download and share cover it for now (prd.md > Deferred From the POC).

Shareable read-only evidence link for an organizer.

Why: Needs hosted storage and access control.

Multi-unit view for tenant associations.

Why: Needs accounts and shared data.

More cities.

Why: Each city needs its own cited rules table.

cut

4 explicitly cut

Accounts and cloud sync

Why: They add auth and a database without proving the kernel; local-first is also the privacy story.

Letting the model decide class or deadline

Why: That is exactly the trust problem the kernel solves.

Rent-withholding or legal strategy advice

Why: Legal risk; the app documents and cites, it doesn’t advise.

Filing 311 complaints automatically

Why: No public filing API; we hand the user pre-filled text and the link instead.

Inspiration & identity

Visual

The brag-styles doodle kit: hand-drawn ink lines on grid paper, a lime highlighter swipe under the key word, cards that spring in, Patrick Hand handwriting with a bold display sans and mono numbers — plus one complementary colour (the builder’s direction). Stamp-style badges for the hazard class carry over from the brief’s “legal paper” idea.

paper
#f3eee5
ink
#1d1b20
lime highlighter
#ffcf3f
violet: AI proposes
#5534e6
red: hazards
#b3261a

What strong entries share

Visible guardrails (“AI proposes, code disposes”), a specific named user, and a deliberate visual identity rather than default component-library styling.

Data

Why this matters to the learner

Civic tech with a real document at the end. “Every repair dispute turns on documentation,” and the tools that exist are chatbots, not evidence.

How this plan was made

The answers came from the builder’s private research brief rather than a live interview; the builder approved by asking for the full build. Decisions the builder made in the build sessions: the doodle kit plus violet for the AI; later, dropping the neon lime for matching felt-tip colours and adding a dark theme; subagents matched to task size; a direct Gemini key within free-tier limits; a public repo with Vercel auto-deploys; and, after the first build, adding what a renter needs next (heat log, landlord on record, next steps, backup, offline). Full list: scope.md.

Scope change after the first build

The proof of concept above shipped first and is unchanged. The builder then asked for more functionality and, later, features beyond this plan. They now ship alongside it, outside the boundary above, and are awaiting the builder's review and approval. The checklist's Revisions log gives the reasons.

  • Heat and hot water log (indoor readings checked against §27-2029/§27-2031; outdoor temperature from the National Weather Service)
  • Landlord on record and an addressed notice; the landlord track record across seven NYC Open Data sets
  • Ask the law: answers only in quotes, each checked word for word by code
  • Message coach: the AI writes the words, code fills and checks every fact
  • Next steps and rights; backup and restore; calendar reminders; offline; dark theme