North star & live tracker · a map, not a commitment

Knowledge at Scale

Clara's knowledge is the asset that compounds — a thousand properties onboard in days, every staff answer makes the whole portfolio smarter, and all of it stays under control. This page exists so knowledge work stops being fixed in pieces: every future incident, feature, or experiment should land somewhere on this map instead of spawning another one-off effort.

2026-08-29 · Proposed — pending Fede's review · commissioned by Fede ("think big and broad… I just want a north star long-term vision so we stop fixing in pieces… rethink all our previous decisions… we need to scale this"). Built from a research fleet: Trello, standup transcripts, git history, the docs corpus, competitor and AI-industry research, and a nine-panel adversarial review of every standing decision. Updated Aug 29 (later): channel-cohesion research reframed Decisions 1 & 8 and added "One brain, every channel." Updated 2026-09-08: Where we're going — scaling knowledge, the long-term plan Fede asked for, at the foot of this page.

The vision in three sentences

Everything a property knows, however messydocuments · websites · PMS records · a manager's head · staff answers during live operation
One admission gateclean it up · check facts survived · fair-housing screen · conflict check · who decided, when, why
One governed store per propertyportfolio defaults above · property overrides below · every entry owned, dated, reversible
Voicefast, spoken-sized answers
SMS · Email · Chatsame facts, channel-sized
Every future channelreads the same store

Live data (today's availability, tour slots) is fetched fresh at the moment it's needed and never stored as knowledge. How knowledge physically reaches the model per message — pasted in full vs. looked up — is Open Decision 1 below, reopened by Fede on Aug 28.

See it, don't read it: the Property Brain prototype

A clickable mock of the next big leap as a property manager would experience it: one screen showing what Clara knows, where every fact came from, and the three things that need them today — confirm what a teammate taught, answer what Clara's asking, re-check a fact that's getting old. The whole control plane, worn as a calm page. Every button works.

Open decisions — Fede's calls

Pick an option below — choices save to the docs site under your login, and everyone can see who chose what. The one remaining call: Decision 1 — what a fact is. Fede decided 2, 3, and 8 on Aug 29 (marked below); 5 is deferred; the rest are guardrail settings that don’t block the build starting.

The smallest MVP — prove the fix to the biggest pains (scoped with Fede, Aug 29)

The four priorities (Fede, Aug 29): voice latency & verbosity · consistency between channels · messy data reality · portfolio-level policies. Everything else is backlog. The four MVP steps below map to them one-to-one.

Explicitly not in the MVP: admission pipelines, temporal history, conflict detection, review tiers, the compliance-floor program, registry generalization. Each waits for volume to demand it.

1 · The unit of knowledge — facts vs. blobs (reopened by Fede Aug 28; reframed Aug 29)

The week of measured verbosity experiments settled the underlying mechanics: you cannot reliably bound what Clara says while what she sees is unbounded. Every instruction-style fix ("be brief," examples, "share details only when asked") moved replies 1–5% and decayed — and marking details "share when asked" writes instructions-to-the-AI into the knowledge itself. That's the layer violation: knowledge should be facts only, never directions for how to read them. Every mature memory system stores atomic facts with structured metadata (scope, source, validity dates) and lets brevity emerge from selection — the model answers briefly because the three facts it was shown are all it has; "the detailed breakdown" is just a follow-up fetching more. The working mental model (Fede's): give Clara weights and a web search — a small always-loaded gist per property, a lookup for depth. This makes store shape the upstream call; the original "injection vs. lookup" question becomes a per-channel delivery detail (see "One brain, every channel" below). Prior evidence stands: caching resets every time a property learns (compounding knowledge breaks pure injection's economics), quality degrades as pasted context grows, and the "73% of RAG failures" statistic stays retired.

2 · Portfolio hierarchy — DECIDED (Fede, Aug 29)

Like federal and state: portfolio is federal, property is state. Look up portfolio first, then property; where both speak, portfolio wins. A policy that genuinely differs by property simply doesn't get written at portfolio level — which keeps the portfolio tier lean and the resolution rule one sentence. No recorded-reason ceremony, no override bureaucracy. The only thing above portfolio is the law: state/city rules still cap both tiers.

Decided: two tiers, portfolio checked first, portfolio wins conflicts, law caps both. Built exactly this way for the Situs onboarding — nothing fancier.

3 · Who can teach policy — DECIDED (Fede, Aug 29)

Any PropFlow user. Being added to the team is the permission — "we add people to the team, so they should be able to make decisions." Keep it simple for now; the automatic guardrails (fair-housing screen, confirm-before-save, person-specific-never-taught) stay on every teach regardless of who is teaching. Revisit only if real incidents show up at volume.

Decided: any recognized team member can teach; the automatic guardrails do the gating, not an org chart.

4 · Review beyond today's automatic guardrails

5 · Compliance floor — DEFERRED (Fede, Aug 29: "I didn't ask for this yet")

The existing fair-housing screen keeps running on every teach and every send — that doesn't change. The four-part floor program (never-teach category list, scheduled probes, locked jurisdiction rules, stored verdict reasoning) is parked until it's actually asked for. Nothing in the MVP depends on it.

Parked. Revisit when compliance work is explicitly scheduled — not as a side effect of the knowledge build.

6 · When Clara can't tell if an answer is about one person or everyone

7 · The paraphrase rule — prompt promise or mechanical check

8 · Voice delivery path — shared agents DECIDED; mechanism pending one live test (Aug 29)

Decided: shared agents — agent-per-property is vetoed. Correction from a deeper docs check (Fede asked "are you sure we can't namespace it?" — he was right): the platform does document per-call knowledge-base swapping — conversation_config_override.agent.prompt.knowledge_base lets the call-start payload attach a specific document list per conversation, on one shared agent (the field must be explicitly enabled on the agent; earlier research wrongly concluded this didn't exist). That means the platform KB Fede likes — pinned hot facts + retrieved long tail, fastest measured time-to-first-word — may be usable with no fleet at all: our webhook already knows the property at ring time and would pass that property's doc IDs. One caveat: no worked example exists of this override through the personalization-webhook path specifically, so it needs a single live test call on the test clone.

The test that closes this: enable the KB override on a test clone, have our webhook attach a property's compiled docs, place one call. Works → platform KB on shared agents (best of both). Doesn't → ring-time variable injection + mid-call fetch tool (today's live mechanism, also fine). Either way: shared agents, one fact store, our compiler.

9 · When client-feedback review outgrows the founders

Why one page: the "fixing in pieces" record

In August alone the team ran at least seven separate knowledge effort­s, each triggered by its own incident, none claiming the whole: the knowledge-store unification brief (Aug 8), the knowledge-page UX review (Aug 18), the escalation-to-policy architecture (Aug 21), the KB redesign after the buzz-code incident (Aug 26), the grounding decision (injection vs. lookup), the cross-channel clean-copy work (this week), and the voice measurement round behind it (also this week). Each was right; the pattern is the problem. This page is the single map they all roll up into — alongside the architecture vision ("policy is data, not code") and the Clara-as-coworker tracker, whose teach loop is this initiative's engine.

What already exists — the primitives are real

The road — five phases, most of it deliberately later

1 · Stabilize4 of 6 done
2 · Every channel1 of 6 done
3 · Bulk onboardingthe big build — 0 of 7
4 · Govern the flood1 of 6 done
5 · Prove at scale2 of 6 done
PHASE 1

Stabilize the loop that already works

gate: three channels can no longer give three answers to one stored fact

Make the live staff-answer loop fully trustworthy before pouring volume through it.

ItemStatus
Ask once, remember forever — liveEscalate → staff answers in plain language → resident answered immediately → "remember this?" confirm → stored with provenance.DONE
Fair-housing screen before anything teachesA flagged answer is held and sent back for a rewrite, never quietly stored.DONE
Messy replies cleaned before savingWith the no-invented-numbers guard.DONE
One home per factTwo real drift incidents (lease pricing, renewal terms) fixed by making one place own each fact; standing pattern for every new source.DONE
Kill the three-channels-three-answers bug — and keep it deadThis week the same vacant unit was priced right by text, wrong by voice, refused by email. Fix it, then run a standing cross-channel conformance check (same test questions, every channel, on a schedule) so dormant divergence can't return unnoticed. Second live instance found Aug 29: the voice path skips the "retired" filter email/SMS apply, so a retracted staff answer can still be spoken on a call.IN PROGRESS
Decide who can teach policy — deliberately this timeOn Aug 28, "any recognized staff member" became able to teach policy as a side effect of killing a bounce-back email. Open Decision 3.TODO
PHASE 2

Every channel, more than two properties

gate: the teach loop proven from a non-email channel, on more than a hand-picked pair

The loop works on one email lane and roughly two properties. Prove it everywhere Clara talks.

ItemStatus
One write, every channel reads it — storage onlyStorage is unified; channel behavior is not yet (the bug above proves it). Honest status: unified store done, shared per-fact rendering still to finish. The named fix: generalize the pricing-fields pattern — one fact registry with per-channel flags and budgets, one renderer family, drift-tested (see "One brain, every channel" below).STORE DONE
Teach loop past emailToday it only triggers from an email escalation to a configured contact. Texts, calls, and chat should feed the same loop.TODO
Voice delivery decisionEvidence updated Aug 29 — the "unsolved separation" dissolved: platform knowledge base (fast, forces one agent per property, now well-tooled) vs. ring-time projection (live today, shared-fleet-compatible). Open Decision 8.DECISION
Portfolio hierarchyOrg default → property override, with a jurisdiction-derived compliance floor nothing can override. Open Decision 2 — reopened by the tribunal.DECISION
Channel-identifier registryPhone numbers and inboxes map to properties through hardcoded constants today; make it a self-service registry with a drift check so determinism doesn't become the onboarding bottleneck.TODO
Prove parallel volumeTen properties, several staff answering at once — never yet demonstrated.TODO
PHASE 3

Bulk onboarding — thousands of units in, at quality

gate: a new property goes from raw mess to launch-ready without a founder running the intake

The least-built, most-needed part. Fede named the problem in May ("we did it manually for Camellia… we ought to figure out a scalable way"); a client onboarded THIS WEEK was still fully manual.

ItemStatus
Point the auto-cleaner at raw onboarding notesThe validated fact-loss guard currently rewrites approved content for voice. Its real job is here: founder's recorded workshop, client's messy PDF, interview transcript → first-draft knowledge, no dropped facts.NEXT
Auto-prefill, human confirmsDraft the knowledge base from the client's PMS, website, and documents; a human confirms instead of typing. The strongest competitor ships exactly this: prefilled table, blank cells highlighted, a completion percentage gating go-live, and a "copy a sibling property" tool for cookie-cutter portfolios.TODO
AI phone interviewClara calls the new property's manager and captures what's in their head — the May idea, still unbuilt.TODO
Default knowledge templateEvery property starts with the seven standard sections pre-labeled, never a blank page.TODO
Completeness gauge as the go-live gateReplaces "a founder personally checked it."TODO
On-site staff edit their own knowledgeRequested by a real client; the one edit path that exists today was found hidden during a live walkthrough (bug filed).TODO
Ambiguity asks, never guessesWhen cleanup can't tell whether odd phrasing is a real exception or sloppy wording, it asks the staff member a follow-up instead of silently resolving it.TODO
PHASE 4

Govern the flood — provenance, conflicts, rollback

gate: a contradiction is caught before a resident hears it; a bad policy write can be rolled back like a bad release

What "under control" means once dozens of staff teach policies across hundreds of properties.

ItemStatus
Provenance on the live laneEvery taught answer records who, when, and which conversation; dashboard edits can't fake it.DONE
Conflict detection beyond exact matchesToday a later answer supersedes an earlier one only at the same property with near-identical wording. Build the check that flags similar-but-different topics, staff answers contradicting written policy, and sibling properties disagreeing — flagged for a person with a before/after view, never auto-merged. Crucially: the checker must be a separate pass from the writer (the same pass that smooths a contradiction over is the one that can't see it).TODO
Version history + rollback, by risk tierGeneralize the renewals precedent: money, fair-housing/legal, and procedure entries get append-only history with restore; routine facts keep the lighter overwrite-with-provenance. Record "true from / true until," not just "created at" — never delete, mark invalid-as-of-a-date, both versions stay queryable.TODO
Risk-tiered second lookRoutine facts keep the frictionless path; money/fair-housing/procedure answers get a same-day, non-blocking second-person look; a daily digest shows each property's contact everything that auto-approved. Open Decision 4.DECISION
Client feedback routingThe designed-but-parked rule: "Clara said something untrue" → quarantined + team-reviewed shared fix; "we do it differently here" → that property only; grades never auto-edit global Clara. Schedule it.TODO
Leak-check on outgoing messagesClara paraphrases staff answers, never repeats them verbatim — today that's a prompt rule, and a real bug already leaked internal phrasing to a caller. Make it a mechanical check on the outgoing text. Open Decision 7.CHEAP FIX FIRST
PHASE 5

Prove it holds at real scale

gate: a property group larger than today runs the full pipeline with zero unreviewed high-risk writes; fair-housing spot-checks run on schedule and a person reviews them
ItemStatus
The legal bar is the templateCollections' expert-reviewer + adversarial test set becomes the standing pattern for every high-stakes category.DONE
Batch learning, already decidedPattern-mining from flagged conversations happens in scheduled, reviewed batches — never per-call. (The human-confirmed teach loop correctly stays immediate; compliance-adjacent items jump the batch queue.)DECIDED
Recurring fair-housing probesA fixed, versioned set of protected-class-adjacent test questions runs against live Clara on a schedule, per property, kept as its own audit artifact. The industry lesson (a $2.3M settlement): applying a rule with perfect consistency does not prove the rule is fair — you have to test for it deliberately.TODO
Staleness by usage, not just calendarFlag answers that stop landing (follow-ups, corrections, escalations after Clara answers) for review regardless of their re-check date.TODO
Finish "policies, not settings"One consistent Policies surface everywhere (the Aug 5 ruling), with source tags and inherited-vs-overridden badges per entry.IN PROGRESS
Clear the one-property assumptionsDry-run onboarding of a fake property to surface remaining hardcoded "the first property does it this way" behavior.IN PROGRESS

The rethink — every standing decision, stress-tested

Per Fede's instruction, a nine-panel adversarial review put every standing knowledge decision on trial against the scale scenario, arguing the case against survival first. The outcome: nothing retired, two genuinely reopened, the rest kept with a named hardening. The floors held: fair-housing screening, person-specific-never-taught, deterministic property identity, and "policy is data, not code" all survived attack — each with strengthenings, none weakened.

Standing decisionVerdictThe change (one line)
Property-only scoping, nothing shared aboveREOPENAt 200 properties, one portfolio-wide change becomes ~200 independent teach events that are supposed to agree and have no reason to. Build the org→property hierarchy (Decision 2). The org plumbing already exists for permissions — it's just not wired into knowledge.
Anyone recognized can teach policy (Aug 28)REOPENMade to kill a bounce-back email, never decided. Untangle: anyone can still answer; auto-locking as policy needs a designated list for risky topics (Decision 3).
No leadership review + self-confirm teachKEEP + CHANGERoutine stays frictionless per the Aug 13 ruling; money/fair-housing/procedure answers get a same-day non-blocking second look; the confirm email should show the actual policy text it's asking about (it's computed and simply not shown today).
Person-specific answers never taughtKEEP + CHANGEFlip the tie-break: when unsure, treat as person-specific and don't teach (Decision 6). Wrong-the-safe-way costs one repeat question; wrong-the-current-way makes a private exception standing policy.
Teach-time cleanup with numbers guardKEEP + CHANGEGuard qualifiers too — flag when "only / unless / except / just this once" vanishes from the cleaned version; sample distillations for meaning drift.
Paraphrase, never verbatim (prompt-enforced)KEEP + CHANGEA real bug leaked internal phrasing to a caller. Make it a mechanical leak-check on outgoing text (Decision 7).
Fair-housing screen before teach/sendKEEP + STRENGTHENStricter bar on teaches than sends (a bad write compounds); adversarially test the screen itself; store its reasoning and version with every verdict (Decision 5).
Legal categories get the expert-review barKEEP + GENERALIZEName the never-auto-teach category list (vouchers, accommodations, screening, evictions…); those always need a designated second reviewer, no matter how routine they look.
Same store for learned + static knowledgeKEEP + CHANGENo second store — add lifecycle fields to this one: a re-check owner and date per taught entry, oldest-first (not newest-first) trimming, and a periodic duplicate-topic sweep.
Typed fields + free-text sectionsKEEP + CHANGEStructure only what's computed on or has drifted before; add a risk tag (routine / money / legal / procedure) to every free-text entry so review routes by risk.
Versioning only for renewalsKEEP + CHANGEThe line is the risk tag, not the module: risky tiers get append-only history + restore; routine keeps overwrite-with-provenance.
Narrow supersession matchingKEEP + CHANGEKeep auto-correct conservative; build the flag-for-a-human conflict check beside it for everything it was never designed to catch.
Deterministic property identity, never inferredKEEP + CHANGEKeep the rule; replace hardcoded phone constants with a registry + drift check; for multi-property staff, asking is the deterministic fallback — never a silent guess.
Volatile data never stored as knowledgeKEEP + CHANGERefine: caching for speed is fine behind one named writer + freshness clock + live re-check at the moment of commitment; volatile data never gets a policy identity. Extend the warm cache past the one canary property, with a date.
"Policy is data, not code" (P3)KEEP + CHANGEThe keeper. Corollaries: real version history with rollback; multi-step procedures stored in a checkable shape, so a wrong step three moves in can be caught like a failing test.
Batch learning, not per-callKEEP + CHANGEApplies to future pattern-mining only (the human-confirmed loop stays immediate); compliance items jump the queue; trigger batches on usage signals, not just the calendar.
One write, every channel reads itKEEP, HONESTLYStorage is unified; behavior isn't — finish shared per-fact rendering with explicit per-channel size budgets, and run the standing cross-channel conformance suite.
Manual onboarding + hand-fed ingestKEEP GATE, ADD DOORSHuman-review-then-confirm stays the terminal gate forever; everything before it (prefill, interview, templates, cleaner) gets automated — Phase 3.

One brain, every channel — the platform seam (added Aug 29)

Fede's steer, verbatim in spirit: the voice platform's knowledge setup is good and fast — but it only serves voice. The resolution: treat its design as the contract, not the home. Its three delivery modes — a small pinned tier always in context, an auto-retrieved long tail, live tools for anything that must be current-as-of-now — are exactly the "weights + web search" model, and all three are portable. Our fact store stays the single source of truth and compiles into each channel: for voice, literally into the platform's knowledge-base format (pushed via API, which re-indexes automatically on update); for email/SMS, the same tiers rendered by our own stack — the pinned tier is the prompt block that already exists, the long tail is a knowledge-lookup tool the model calls, and the live tier is the shared tools both channels already use. One compiler, per-channel targets, drift-checked like code. If the platform ever disappoints, the compiler loses a target; the knowledge never migrates.

Three findings from the full inventory of our own wiring

TierVoiceEmail / SMSStatus today
Always-loaded gisteach property's short, high-frequency facts, budgeted per channel — chosen by what callers actually ask (the asked-most data the Property Brain already tracks), like a cache admission policypinned platform doc or ring-time variables — Decision 8the existing prompt block, fed from the same compiled gistlive on both channels; needs the shared registry
Fetch on demandthe long tail — full policy detail, edge cases. "Can you break that down?" is a fetch, not a recitalplatform retrieval (~250ms documented) or the existing mid-call lookup toolthe same lookup tool, called by the modeltool live; retrieval quality needs fact granularity
Never storedrent, availability, balances — the PMS is the record; memorized copies go stalelive webhook toolssame shared toolslive, already shared
Person & unit contextrelationship memory and unit quirks — the second axis: it parameterizes rules, never overrides them, so it may change how Clara communicates but never the terms she offersring-time variables only — never any shared knowledge docper-turn context blockpartial — identity and scope gating are live

Where brevity lives: in one channel profile per channel — which facts, what word budget, what presentation prompt — and never inside the knowledge itself. One refinement from the research: depth selection is compiled and reviewable; only tone and pacing are left to the runtime prompt. The strongest precedents both point there — Intercom Fin exposes answer length as an admin setting over one knowledge base, and the lone pre-LLM system that did per-channel depth (Salesforce's bot-answer field) made the short version an authored, reviewed field rather than a runtime guess, because policy-sensitive brevity is a correctness question. The voice platform's own prompting guide ("under 3 sentences unless the caller asks for detail") covers pacing, not selection. Validation of the compiler itself: the platform's published enterprise guidance literally recommends compile-and-push — "treat documentation like code," CI/CD-triggered resync of its knowledge API — while documenting no staleness safeguards, so the drift-check between our store and their copy is ours to build (the nightly-drift discipline we already run on prompts, tools, and phone routing). Industry check: every leading vendor claims "one brain, all channels"; none publishes the actual mechanism, and per-channel depth policy appears to be unpublished territory across the field — like visible portfolio inheritance, doing this legibly is differentiation, not catch-up. Strategic watch: the voice platform now markets omnichannel (chat, SMS, email, WhatsApp) — keeping it voice-only in our stack is a choice we re-make deliberately, and the compiled-projection pattern is what keeps that choice cheap in both directions.

What we steal from whom

MechanismStolen from
An owner and a re-check date on every entry; lapsed trust is visible ("unverified"), never silent.Guru's verified-knowledge model — the battle-tested answer to knowledge rot.
Prefilled onboarding table, completion percentage gating go-live, clone-a-sibling-property, source tag on every cell.EliseAI — the one competitor pattern proven at real property scale.
Never delete a superseded fact — mark it invalid as of a date, keep both versions queryable, link every fact to the exact conversations that created, reaffirmed, or overturned it.The strongest open-source memory system's bi-temporal design — the audit backbone.
An explicit admission decision (add / update / supersede) against similar existing facts — hardened so it compares by topic-and-condition, not raw text similarity, and never hard-deletes. A documented failure elsewhere: a resolver silently deleted one of two policies that were both true under different conditions — exactly the shape "policy varies by unit type" takes here.The open-source admission-gate pattern, plus its own published failure case.
Policy attached read-only to live conversations; edits only via a separate, auditable path — no conversation can corrupt policy mid-flight.The read-only shared-memory-block pattern.
Knowledge changes as atomic, diffable, revertible snapshots; reviewers see before/after answers, not walls of policy text.Enterprise agent vendors (versioned bundles + preview-before-publish) — the converged industry shape.
Staleness flagged by usage (answers that stop resolving) alongside calendar re-checks; blast-radius-scaled rollout with rollback triggers defined before shipping, not improvised after.Support-AI leaders' QA telemetry + standard canary-release discipline.
Prefetch what a caller will likely need the moment the call connects — retrieval hidden inside the caller's own first sentence, never blocking a voice turn.Sierra's production voice runtime (their published latency engineering).
Knowledge base for terminology and stable facts; live tools fetch the authoritative record at the moment of use.The voice platform's own recommended enterprise split — already how our mid-call tools work.
One fact registry with per-channel flags, an explicit parity contract, and a drift test — one edit lights up every channel.Ourselves — the pricing-fields pattern, the one place cross-channel cohesion was already done right.

The three risks that matter most

What this page is not. Not a commitment to build it all now — Fede's explicit instruction. Phases 3–5 are direction, not scheduled work. Explicitly out of scope: fully autonomous self-updating prompts (humans stay in the loop); enterprise portfolios split across walled-off management systems; auto-generalizing one property's answer to others without review; re-plumbing per-channel delivery that already works.

Where we're going — scaling knowledge (2026-09-08)

Added 2026-09-08 at Fede's ask: "I do want a long-term plan on how we're gonna scale knowledge. What other agentic AI startups are using. What are some of the pitfalls on the design — structure versus sentence. Start by mining my sessions and docs to see previous art. I just wanna get an idea of where we're going." This section does not reopen this week's call, which is already made.

This week's call, recorded so nobody reopens it

Fede, 2026-09-08: "For them, we just collect free-form, and then when we're gonna inject it in the system, we decide how we structure." The customer writes sentences. We choose the shape at the moment we feed Clara. Everything below is built on top of that, never around it.

What you already decided about knowledge

Thirteen standing calls, oldest first. Every one is quoted from the page or the session where it was made.

DateThe callWhere
Aug 3Facts reach Clara as a generated block, not a lookup she has to remember to do.Every field in the record renders into her instructions, blanks included as "not on file," so a new field appears the day it is added. No output guard — the evidence corpus is the containment. Ship gate: hard proof the new way beats today on real past conversations.grounding
Aug 5Internal decisions never go in customer knowledge."That's an internal decision, we don't want to leak that." Anything Clara can read, she can recite — so only what is published goes in; owner-side reasoning and discretionary exceptions stay in our own docs.session
Aug 8One home per fact.The same deposits and fees lived in two records that could disagree, and did — a $1,200 deposit no record contained, one fee answered two ways. Merged into one record behind one door, with a standing test that fails the build if a second reader comes back.one brief
Aug 13No review-everything bottleneck.Routine answers stay frictionless. Refused deliberately, and the refusal still stands.ruling
Aug 14"Nothing should be empty."A blank policy section is a fallback, never a steady state. A new fact-home ships filled for every live property in the same change — the ask to Fede is "confirm these values," never "may I start filling it in."session
Aug 16Knowledge is the compounding asset."She asks, your answer becomes policy, and she never asks that question again"; "each edge case resolved ships to every property at once." The product promise the whole layer exists to keep.vision
Aug 20A one-off answer is not a policy.Two kinds of unknown: a question about one person (answer them, store nothing, never say "not on file") and a property policy (learn once, never ask again). Storing a policy needs an explicit yes, and the word to a human is "remember," never "policy" or "playbook."session
Aug 29Knowledge is facts only — never instructions for reading them.A week of measured experiments: telling Clara to be brief moved replies 1–5% and decayed. Marking details "share only when asked" writes directions to the AI into the knowledge itself — the layer violation. Brevity has to come from what she is shown, not from what she is told. Fede's model: "give Clara weights and a web search."this page, D1
Aug 29Portfolio is federal, property is state.Check the portfolio rule first; where both speak, portfolio wins; law caps both. A rule that genuinely differs by property simply never gets written at portfolio level.this page, D2
Aug 29Any team member can teach; guardrails do the gating, not an org chart."We add people to the team, so they should be able to make decisions." The fair-housing screen, the confirm step and never-teach-person-specific run on every answer regardless of who gave it. The compliance-floor program was deferred: "I didn't ask for this yet."this page, D3/D5
Aug 29Use the store we already have."I smell over-engineering — don't we already have a way to store facts?" No new database, no new pipeline: split the prose into one fact per entry in the existing record, with a scope tag. Temporal history and automatic conflict detection wait until volume demands them. One shared voice agent — an agent per property was vetoed outright.this page, D1/D8
Sep 8A knowledge base is Camellia's shape, not a question list.Fede rejected a 122-item review built from the question bank as "unusable… insane." A real knowledge base is a few short sections. The bar for an entry: it applies to the whole portfolio, and Clara can read it out in two or three sentences. Anything that varies by home is listing data; platform behaviour and settings are not policy. Scope is leasing only, prospect-facing, and the review takes fifteen minutes, never hours.session
Sep 8Separate companies share nothing.Our two design partners are separate organisations with separate knowledge and no cross-reads. The portfolio tier decided in August now has a real shape to fill: company-wide, never cross-company.session

Still open, and blocking nothing this week. The formal picks on Decisions 1 and 8 above were never registered on this page, though the working session settled both in substance. Decisions 4, 6, 7 and 9 (risk-tiered second look, the unsure-means-person-specific flip, the mechanical leak-check, the review-scaling trigger) are unpicked. Two live defects stay on the board: a retracted answer is still spoken on phone calls after it disappears from email, and a property's own office number is on file twice with different digits. And the company tier still has nowhere to live in the record — every fact is stored per property.

What the rest of the field actually does

Read for mechanism, not marketing. Six findings change what we should build.

FindingWhy it matters here
Brevity is a setting, not a sentence in the content.Intercom's agent exposes answer length as three admin choices — concise, standard, thorough, each about 30% shorter or longer than the middle — over one knowledge base, with tone chosen separately. sourceExactly the August ruling, shipped by someone else: length lives in a channel profile, never inside the facts. Confirms we should stop trying to fix verbosity in content.
Freshness is tracked per source, not per record.Same product: its own articles index immediately, a connected help desk syncs hourly, connected wikis every 24 hours, plain web pages weekly. source Zendesk draws the same line: its own content is read live at question time, outside sources as of the last sync. sourceWe have one "synced" stamp that only means the website scraper ran. A fact from a lease and a fact scraped off a listing should not age at the same rate.
Selection is configured, not prompted.Salesforce grounds its agents by indexing content with metadata and then filtering and ranking on that metadata before anything reaches the model. sourceThe audience and sensitivity fields the August redesign proposed are the same idea. Who-it's-for is a filter, not a plea in the prompt.
Procedures are kept apart from facts.Sierra writes operating procedures in plain language as their own layer, with policy limits as separate enforced constraints; Decagon compiles a company's documentation into named operating procedures rather than dumping it into a knowledge base. Sierra · DecagonIndependent support for our own line — knowledge holds facts; how Clara behaves is a different layer. It also names the home for the "how they operate" notes we take at onboarding, which are ours and never the customer's policy page.
A remembered fact carries its own budget and its own edit rights.Letta's memory blocks are a label, a value, a size limit, and a read-only flag; a block can be shared between agents and pinned in context, or left in an outside store and fetched. sourceThe "always-loaded gist plus a lookup for depth" model, with a real primitive behind it. Read-only is the mechanism that stops a live conversation from rewriting policy mid-flight.
Corrections are recorded twice: when we learned it, and when it was true.Zep's memory keeps both timestamps on every fact so a superseded fact is marked invalid from a date instead of deleted, and both versions stay answerable. sourceThe audit backbone we already said we would steal. It is also the fair-housing answer to "why did Clara say that in June."
The property-management incumbents ground on live records, not on a curated policy store.AppFolio's assistant answers by querying the live database. AppFolio RealPage's leasing agent pulls pricing and availability from the management system. RealPage EliseAI's pitch is the same sync. EliseAINobody in our industry publishes a design for the part we care about — the policies that are not in any system, that live in a manager's head. That gap is the product, and it is why the shape of the customer's review page matters more than the retrieval plumbing.

The pitfalls — and which ones we already found

PitfallUs
She recites instead of answering.Give a model a wall of prose and it reads the wall. Measured here: telling her to be brief moved reply length a few percent and decayed within days.CAUGHT AUG 29
Directions to the AI get written into the knowledge."Share this only when asked" inside a fact is a layer violation — it makes the content unreviewable by the person who owns it.CAUGHT AUG 29
An example inside a fact becomes a promise.A special mentioned only as an illustration of what is non-negotiable came back out of her mouth as a live offer, with invented terms.CAUGHT AUG 29
Facts never expire.A one-month-free special with no end date sits there until somebody remembers to delete it. Every serious knowledge system puts a review date on the entry and stops serving it when the date passes.CAUGHT AUG 26
Provenance you cannot act on.Source labels are free text; the website scraper relabels a manager's hand-typed special as "scraped" on any run that finds nothing. One of nine entries at our live property had a date at all.CAUGHT AUG 26
Two mechanisms for one fact.The same deposit as a typed number and as a sentence in a policy section. Today, at three properties, office hours, pet policy, lease terms, deposits and renters insurance each exist both ways. They agree by luck.FOUND AUG 8, STILL LIVE
The schema cannot say what the rule says.A deposit field that holds only a number cannot say "one month's rent." A late fee with a percent and a flat amount cannot say "$50 or 5%, whichever is greater." A pet field with restrictions but no yes/no cannot say "this building takes no animals." All three are real rules at our new partner, and all three are unsayable today.NEW, SEP 8
Everything is per property, so a company rule is written many times.Decided in August as federal-and-state; the record still has no company level, so a portfolio rule is copied per property and drifts.DECIDED, UNBUILT
The channels drift where the shared renderer is missing.A retracted answer stops going out by text and email and is still spoken on the phone. Same store, two code paths.OPEN BUG
Review becomes the bottleneck — or it does not exist.Reviewing everything was refused in August for good reason; the opposite risk is that one rushed answer becomes permanent and spreads to every property.UNPICKED
Asking the customer the wrong questions.A list generated from what people ask is not the shape of what a company knows. Rescheduling a tour is platform behaviour; tour length is a setting; what a home comes with is listing data. None of them are policy.CAUGHT SEP 8
Internal reasoning leaks to a prospect.An owner-side exception written into the knowledge is quotable by anyone who calls.CAUGHT AUG 5
Grounded-looking and still wrong.An answer that quotes a source is trusted harder than one that does not, so a bad citation costs more than a plain mistake. Our own no-invented-numbers guard is the half of this we built; checking that outgoing text did not leak the internal wording it was built from is still a promise in a prompt, not a check.HALF BUILT

Three horizons

Each one names the mechanism, what it removes, how it is proven, and what needs a call from Fede. The constitution's rules apply throughout: build nothing that replaces nothing, one place per signal, knowledge is code and gets the same replay and rollback as code.

NOW

This week — the customer writes sentences

gate: a fifteen-minute review a manager finishes in one sitting

Already decided; here for completeness.

NEXT

Six weeks — the knowledge record represents the actual rules

gate: the schema can hold what the customer actually has, and Clara reads from the same rules she works with

Fix three bugs and extend the record so real rules are representable.

LATER

Six months — Clara learns as she goes

gate: the number of questions Clara has to ask a human falls as the portfolio grows

Direction, not scheduled work — the same standing caveat as the phases above.

Three calls for Fede

10 · Who turns a customer's sentence into a number? — CLOSED 2026-09-08

Closed — not needed. The knowledge page is the loop. The review page is one-time onboarding intake; once a customer is in PropFlow they use the normal knowledge page to read, correct and add. The typed review rows and one-loader mechanism are deleted.

11 · Where does "needs your answer" live? — CLOSED 2026-09-08

Closed — not needed. The knowledge page is the loop. The review page is one-time onboarding intake; once a customer is in PropFlow they use the normal knowledge page to read, correct and add. The needs-your-answer queue lives on the knowledge page itself, not as a separate mechanism.

12 · The company tier — build it now or keep copying facts per property? — ONLY OPEN DECISION

The company tier is Gera's build awaiting Fede's go.

Written 2026-09-08. Prior art from this page and its siblings (the store unification, the page review, the redesign after the buzz-code incident, the grounding decision, the channel-delivery layer), the product vision, a read-only audit of what is typed today against three live properties and the published field models of the three major management systems, and Fede's own words in sessions from Aug 3 to Sep 8. Industry findings are linked inline and were read for mechanism; where a vendor publishes only marketing, that is said rather than guessed. Nothing here is scheduled work: the next-six-weeks block starts when Decisions 10 and 11 are picked, and the six-month block is direction.

Provenance

Researched and written 2026-08-29 (overnight Aug 28→29) on Fede's instructions. Sources: a 9-sweep research fleet (Trello board, #transcripts standups Aug 2–27, repo git history, docs corpus, PM-domain research corpus, EliseAI + PM competitor field, enterprise agent vendors, curated-knowledge patterns, control patterns), a dedicated injection-vs-lookup evidence report, an open-source memory-frameworks report, and a nine-panel adversarial tribunal over 22 standing decisions (all panels run with the research corpus and read-only code verification). Corrections locked in during review with Fede: confirm-before-teach exists (the "live immediately, no review" phrasing in a code header is stale); the injection-vs-lookup question is reopened; the "73% of RAG failures" statistic is unsourced and retired. Sibling pages: architecture vision · coworker tracker · channel delivery · the messy-input principle. Updated later on Aug 29 after a working session with Fede: Decision 1 reframed (facts vs. blobs — knowledge is facts only, never instructions for reading them), Decision 8 re-evidenced, and the "One brain, every channel" section added — built from four fresh research streams (the voice platform's documented surfaces; multi-channel architecture at Sierra, Decagon, Ada and peers; a full inventory of our own knowledge wiring; an adopt-vs-borrow feasibility audit of the leading open-source fact store, including its actual code layout and security history).

PropFlow Docs