AUTHOR’S WORD — 2 rows here show a completed status that nothing derived The pill on these rows was typed, not measured: a0-spine, a0-how-chapters. Every other status on this page comes from that row’s own PR, commit or decision links; these name nothing a machine can read, so nothing can contradict them when the work changes. To make the same claim checkable, write one of these on the row and it derives on the next tick: prs (a PR ref — read from GitHub), completion_evidence (owner/repo@<full 40-char sha> — checked against the default branch), shipped_without_pr (why no PR can exist), or decision (the id that settled it). A row that is not owed a build says so with unbuilt; one a decision retired says so with canceled.

Organization architecture — the HOW

Organization architecture · Organization Core. Names updated September 16 to match the existing ORG# boundary. “Portfolio” means a collection of properties. Earlier recordings and quotations retain their wording; existing links and technical IDs remain stable.

The implementation half of the Sep 6 study, drawn for a person first — the rows, the one resolver, the wall, the changes that never migrate, and the road — with the full reference record one click away for an agent.

2026-09-07 · Fable for Gera — the implementation half of the Sep 6 study · status: proposed, pending Gera and Fede · updated Sep 7 with the Slack decisions and Fede's three-week frame · updated Sep 8 with the founders' standup — the org model, who owns what, and where we are · updated Sep 8 (evening) with Gera's three decisions — the property owner's grant widens to the portfolio set with conversations grantable and off, delegated administration with a privilege ceiling, and "owner" split into org_admin / property owner / PMS credential holder · every section deep-linkable (#/model, #/change, …)

The verdict, in plain English — where we are, and what the design changes

The short version. Right now the system works well for one building. It does not work well for a company with many. Everything — the phone, the calendar, the mail, the money, the rules — is tied to a single building. And one company’s things are kept separate from another’s by a rule in our code, not by a wall in the database. This plan adds the company itself as that wall, with buildings underneath it.

The verdict, in plain English. PropFlow is clean for one building and half‑built for a customer with many. Today the phone line, the calendar, the mailbox, the rents and the settings all hang off one building, and what keeps one customer’s data away from another’s is a filter in our code rather than a wall the database enforces — which is how a brand‑new company could briefly see every property. The design keeps what is clean and adds one thing above it: the customer, which is the wall and the bucket everything belongs to, with the building underneath, and every line, calendar, login and rule attached to whichever of the two it belongs to.

The verdict. PropFlow is clean for one building and half‑built for a customer with many. The separation between customers is a filter in code, not a wall the database enforces. The design adds the customer above the building as that wall, and attaches every line, calendar, login and rule to whichever of the two it belongs to. Today: 113 of the Implementation board’s 179 ladder rows read merged or shipped (counted 2026-09-13; chapter 13 carries the method), the customer exists as an id on rows but not as an enforced wall, the calendar and policies still live on the building, a person belongs to one customer, and one portfolio’s scattered homes sit under a single placeholder building. Every today‑claim here is cited row by row in A1.

The verdict, in plain English. PropFlow is clean for one building and half-built for a client with many. Today a phone line, a calendar, a mailbox, the rents and the settings all hang off one property, and the separation between clients is a filter in code rather than a wall the database enforces — which is how a brand-new org could see every property until Fede's fix. The design on this page keeps what is clean and adds one thing above it: the org, which is the client, the wall and the bucket everything else belongs to, with the building underneath, and every line, calendar, login and rule attached to whichever of the two it belongs to — so a change is a new row next to the old one, never a migration. What we are up against: the ladder is under way and not finished — 113 of its 179 rows on the Implementation board read merged or shipped, counted 2026-09-13 (chapter 13 carries the method); the org exists as an id on rows but not as an enforced wall; the calendar and the policies still live on the property; a person belongs to one org; and Western Slope's sixteen homes sit under one placeholder building. The three weeks to Oct 2 put the wall, the one lookup and the test harness in place in the dark; the flip that lets one line answer for many buildings is a November item at one engineer. Chapter 00 is the whole thing in plain words, with eight worked examples; A4 is the plan of attack — what we do, in what order, and what proves each phase. We attacked the one-nameplate-per-number design six ways: the idea held, but its key was one notch too fine and is being repaired at zero migration cost — A2. Chapter 12 is the architecture in the standup's words; chapter 13 is the row-by-row gap between today and the design. The assessment runs A1 what we have · A2 what we want · A3 the gap · A4 the plan · A5 the stress bench · A6 the screens — and every today-claim in this paragraph is cited row by row in A1. For where the work actually stands today, the live board is the Implementation board, which carries A4’s ladder and A6’s UI lanes in one place, grouped by phase.

01 · The problem today

Every phone number in the office is scrawled on one sticky note on the fridge, and whoever wrote on it last wins.

The Sticky Note — five hand-kept guesses between an inbound call and its building WHAT ARRIVES HOW IT IS LOOKED UP TODAY WHAT GOES WRONG five guesses, no owner a number can be in the list twice whichever line loaded lasta stranger's call is answered as ours >1 match= dropped every lead lands in the umbrella A callon +1 000-400-0970 A textsame number An emailto the shared inbox Hand-edited number lista file in the repo Last writer winstwo entries, one map First-match mailboxmore than one → drop Unknown number → guessthe fail-open One umbrella building16 homes as one Two companies, one numbernothing refuses it Wrong building answersand books a tour there Lead dropped silentlyno task, no trace 16 homes in one boxevery lead needs a re-key
Figure 1. The Sticky Note. Today an inbound call, text or email finds its building through five hand-kept guesses, none of which is a database fact — so nothing can refuse a duplicate, name a property owner, or keep sixteen homes apart.
Read it at

Today a call, a text or an email finds its building through five separate hand-kept lists and guesses. Two of those lists can disagree, one silently throws leads away, and an unknown number gets answered as if it were ours. Western Slope's sixteen homes are squeezed into one pretend building because there is nowhere else to put them.

  • Five lookups, five owners, zero database facts — nothing can say "no".
  • The same number can be claimed twice; the winner is whichever file loaded last.
  • Unknown numbers are answered as ours instead of refused.
  • Western Slope's 16 homes are one umbrella building; every lead written there needs a re-key — Sep 12 ships on these rails on purpose, with a counter watching.

Proof: from today a counter shows how many leads were born in the wrong box, and an unknown number is refused instead of guessed — the tests are umbrella-tripwire (a dated count of rows born under the umbrella, from now) and unclaimed-address-refused-zero-reads (red today, closes at 3b/4).

Deeper → What it deletes — every line above by file:line · Honest limits

PropFlow Docs