For the 11 gatekeeper-build rows that read "merged · untested": what each switch-off rule does, what real production data shows since it merged, and a verdict.
2026-10-01, read at about 12:30Z · window 2026-09-29 00:00Z to now · read-only (DynamoDB reads and CloudWatch Logs Insights; no writes, no sends, no calls) · board: gatekeeper-build · model: collections evidence
| Row | Verdict | What prod shows |
|---|---|---|
| gk-maint-front-door-fallback | Shown working | 13 real Western Slope calls read Maintenance off; a repair caller was connected to their own maintenance line; 0 work orders filed. Plus the two live test calls. |
| gk-leasing-gates | Shown working | 3 live test calls, and 78 refusals that all fell inside the test building's off windows. 0 bookings at a Leasing-off building. No real-customer traffic yet. |
| gk-exempt-triage | Shown working | All 189 real texts and emails since 9/29 named a module or an always-on kind; 0 unlabelled. |
| gk-retire-overlapping-switch | Shown working | All 73 buildings that carried the old switch carry Maintenance off as a building setting; 0 log lines from the deleted readers. |
| gk-drafts-mode | Shown dark | 0 of 11 companies and 0 of 223 buildings have ever been set to Drafts, so it changes nothing yet. |
| gk-appfolio-writer-gate | No traffic yet | 0 maintenance writes to AppFolio at off buildings (4 at on buildings, as normal). Nothing tried to write, so the refusal has not fired. |
| gk-maint-inflight-quiet | No traffic yet | No in-progress PropFlow work exists at an off building. 13 rating texts at Western Slope were refused by the earlier rating gate. |
| gk-maint-turned-on-rule | No traffic yet | No building or company has switched Maintenance back on since the merge. |
| gk-maint-action-list | No traffic yet | This row is a code check that runs in CI. No real-building maintenance tool has been refused yet. |
| gk-renewals-gates | No traffic yet | 0 renewals started, prepared or sent at Renewals-off buildings, and 0 refusals logged. |
| gk-settings-page | No traffic yet | No staff member has used the back-office module cards in prod. |
This is the real exposure. A gate is only tested where a module is off and traffic arrives.
| Company | Buildings | Maintenance | Leasing | Renewals | Collections |
|---|---|---|---|---|---|
| Western Slope (customer) | 80 | off | on at 70, off at 10* | off | off |
| Situs (customer) | 52 | off | off | off | off |
| JPCO (customer) | 2 | off at 1 building | on | on | on |
| Test companies (Fairhaven, Module Gate Probe, Test Client Co, mirrors) | 87 | mostly off | mixed | mixed | mixed |
* The 10 Leasing-off Western Slope buildings were created today (2026-10-01) by AppFolio discovery with the building switched out of PropFlow. Situs had 0 active conversations in the window, so Situs exercised nothing.
Behaviour. When Maintenance is off, the phone sends callers to the building's own maintenance line or team, an unknown caller is pointed to the office, email and text get one short reply, and no work order is filed. Emergencies still get the safety script.
conv_0101m3sdpgfze2tttdq7cqv8fet8 (9/30 15:07Z): a repair caller was told the office handles it. conv_0001m3rqhy2tf88r6es2b3ea9ca9 (9/30 08:40Z): a carbon-monoxide caller still got evacuate, 911 and the emergency line.Behaviour. At a Leasing-off building Clara answers tour, reschedule and rent questions with the property-team disclosure. She does not offer or book a tour, and nothing is written to AppFolio.
conv_7101m3tm8690esctjesp9k3b8ve3: tour requestconv_0501m3tmakx3f97aa7c1x23tp0a4: rescheduleconv_9101m3tmcyvvexettshsgqwxrvdg: rent and availabilityBehaviour. The open "none" label is closed. Every send names its module or one of the always-on kinds. A promise or a Clara reply whose module is stored off is held, and disclosures always send.
replay-module-send-gate.ts, read-only, 9/29 to 10/01) covered 43 real outbound texts and 146 real emails. 0 were unlabelled. 29 declared a module and 160 were an always-on kind (reactive replies, staff, human-written). 0 belonged to a module the company had off.Behaviour. The old rollout-stage switch is gone, and the module setting is the only switch.
Behaviour. At a building set to Drafts, Clara's maintenance texts wait for staff approval. Until staff set a building to Drafts, nothing changes.
module_drafts.Behaviour. At a Maintenance-off building PropFlow writes nothing to AppFolio for maintenance. That covers create, note, update and close, plus the dev catalog, close-all and turnover move-out writes.
MaintenanceModuleOffWriteRefused lines.Behaviour. Reminders, status relays, vendor completion messages and vendor chases stop for work already in progress at an off building.
Behaviour. When Maintenance is switched back on, work created before that moment is treated as off.
Behaviour. Every action tool declares its module, and a syntax-tree test fails any write tool that can act before its own module's refusal.
Behaviour. At a Renewals-off building nothing is prepared in AppFolio, no renewal auto-starts or rolls to month-to-month, Clara's renewal tools refuse, and in-flight renewals close quietly.
Behaviour. In the back office, staff set each module to Off, Drafts or Live, per company and per building.
env=local. Nine are deliberate probes at the Module Gate Probe test company (9/29 16:25 to 16:40Z). Two are at the Western Slope front door (9/30 03:19Z and 03:25Z) with no module recorded. All 11 are refusals, so nothing went out. 0 records are stamped env=prod. A prod-wide count of these records includes these 11.Module state: propflow-prod Organization rows (settings.enabledModules) and each building's live and history ATTACH#setting# rows, folded as company AND building-in-PropFlow AND building module. Leaks: WorkOrder rows (created and lastSyncFlushAt since 2026-09-28 23:59Z, by source), Tour, Prospect, renewal and NewLeasePackageReview rows, DispatchDecision rows, and MODULE_REFUSAL# rows. Sends: scripts/eval/replay-module-send-gate.ts --since 2026-09-29 --until 2026-10-01 run read-only on origin/main (0154406). Logs: CloudWatch Logs Insights on /propflow/vercel/runtime (production only), /aws/ecs/propflow-renewal-worker-prod and the prod lambdas (appfolio-sync, agent-runtime, inbound-processor, renewal-outreach). Each row is credited only with log lines its own PRs emit. Older gates are named as such. Resident names, phone numbers, AppFolio ids and company ids are left out.