Analysis — 2026-08-16

Vision v4 vs. Reality — Gap Analysis

Superseded (2026-08-18): this page is kept as history. The living architecture reference is now Architecture — Source of Truth.

How far the system is today from the long-term technical vision ("Clara does the work"), what we already do well, where the gaps are, and the five opportunities that close the most distance. Evidence gathered by four read-only code investigations of the production repo on 2026-08-16; every claim below was checked against code, not docs. The vision is a multi-year north star, so "gap" here means distance still to travel, not a miss.

The vision in one line: "The PMS remains your system of record. Clara becomes your system of work." Clara is a third-generation AI operator: she has context, she has goals (measured on outcomes), she has judgment with boundaries — she acts within policy, asks when outside it, and the answer becomes policy so she never asks again. PMs delegate outcomes, not tasks. One brain across leasing, maintenance, turnovers, renewals, collections. Every property makes her better.

Scorecard — vision promise vs. what's in production

Vision promiseTodayWhat we found
Leasing is a goal (book → follow up → application), not Q&ARealMulti-touch follow-up sequences (email → text at +24h/+48h/+7d/+14d, post-tour application chase, re-engagement after silence) run by default on every property with no switch, and stop the moment the goal is met.src/lib/domain/leasing/outreach-cadence-schedule.ts, outreach-stop-conditions.ts, reengagement-trigger.ts
Maintenance runs on its own (intake → triage → dispatch)RealSend-gate removed 2026-06-11; every work-order change dispatches to AppFolio unconditionally. Most autonomous loop we have.
"Your answer becomes policy"RealA staff reply to an escalation is written straight into that property's knowledge base, no review step, live on the next conversation.src/lib/domain/escalation/teaching-capture.ts
Judgment with boundaries, fair-housing escalationRealFail-closed guards throughout, two-key arming on every send path that touches money, hard human gate on turnover charges and on every collections message, escalation state machine with reminders and takeover.
Intelligence: "which residents, what they said"SeedThe renewal-risk signal names specific residents and cites the exact email where they said they're leaving. But it's a once-a-day batch, the AI-written narrative is staff-only, and nothing equivalent exists for vendors, maintenance, or collections. No "ask why" chat.src/lib/domain/insights/signals/renewal-risk.ts, lambda/portfolio-insights-snapshot
Measured on outcomes (occupancy, resolution), not volumeHalfFunnel-leak, tour no-show, vacancy days, leasing velocity are computed — but only rendered as a report. The Command Center headline is counts and dollars-saved. No metric ever changes what Clara does next.
"She never asks that question again"FragileOnly near-identical wording matches; no check of learned answers before escalating (relies on the model noticing); and the whole knowledge block is capped at 4,500 characters — as a property learns more, older answers silently fall off and Clara says "not on file."agents/clara/lib/agent/property-knowledge-block.ts (KNOWLEDGE_BLOCK_MAX_CHARS)
PM can call/text/email Clara and delegate an outcomeOne flowOnly the move-out/turnover flow executes from a PM text end-to-end. A PM emailing Clara isn't recognized as staff. Dashboard "Ask Clara" has 23 lookup tools and zero that change anything. The permission table already authorizes staff for far more — the tools just aren't offered.agents/clara/lib/agent/capabilities/index.ts, src/lib/tools/role-matrix.ts, src/lib/domain/dashboard/chat/tools.ts
"Drop rents by $150" / "assistance letter" / "work collections"Not yetBulk rent change is marked "planned" and never offered. No document generation exists. Collections is a background cadence, not something a PM can invoke.
One brain: renewal knows maintenance historyNot yetZero references to work orders or complaints across all 30 renewal files.
One brain: turnover knows the vendor's track recordNot yetNo vendor score/rating/reliability field exists. Job outcomes are written after completion but never read back into vendor choice.
One brain: invoice knows the work orderRealInvoices live inside the work order record; charge decisions reason about estimate-vs-actual.
Every property makes her better (compounding)Engineer-mediatedLearned answers are hard-walled per property (correct for privacy). The one cross-property path — promoting a "principle" portfolio-wide — is a data type with no consumer yet, and by decision always a human act. Today compounding = engineers changing the prompt.
Five loops run on their own for a new propertyOne of fiveOut of the box only prospect follow-up runs unattended. Renewals shadow-only; turnover auto only under $500 after arming; collections can never send without a click. Each needs an engineer-flipped company switch plus a per-property switch.src/lib/domain/admin/arms-registry.ts
Logs into your PMS like a new hire, no migrationAppFolio onlyAppFolio: self-serve, 1–3 hours. Yardi/RealPage: "coming soon" tiles; the shared PMS layer is ~¼ wired and the highest-stakes writes call AppFolio directly. Yale is a hand-built, months-long project.
Fully auditedHalfTool-call log exists but expires after 30 days and covers ~39 of 74 action handlers. No single "why did Clara do this" record.

What we do well

Top 5 opportunities

Ranked by distance closed toward the vision per unit of effort. Each is a direction, not a spec.

1. Make Clara delegable — a real "PM instruction" path

The vision's headline experience and the biggest gap. The authority already exists (the permission table lets staff do work orders, renewals, pricing reads, tenant lookups); the offer doesn't — the tool composer never hands those tools to a PM, and the staff-reply classifier only knows "decision" or "question," never "do this."

2. A knowledge base that scales — and "never ask again" as a hard check

The 4,500-character cap is a time bomb: the more Clara is taught, the more she forgets. This directly protects the most defensible promise in the doc.

3. Wire the two "one brain" edges that matter most

Turns two vision sentences from false to true and feeds opportunity 5's "slow vendor behind it."

4. Close the loop from outcomes to behavior; show outcomes, not volume

5. Autonomous-by-default for a new property (safely) — arming ladder + PMS layer

Without this, every customer is a project and "AI runs the routine" needs an engineer per property.

Honorable mentions

Method & caveats

Four read-only investigations over PropFlow-Technologies/propflowai at HEAD on 2026-08-16 (system inventory; PM-delegation + outcome metrics; cross-workflow context + learning + audit; intelligence + onboarding + arms). Claims marked "Real / Not yet" were confirmed by reading the code paths cited; onboarding effort figures are estimates. Shipping velocity is high, so flag states may have moved since. A related, deeper audit of the coworker gap is at Clara as a Coworker — Capabilities.

PropFlow Docs