PropFlow Docs

Every kind of document in one table — or the index, for the shape of it. Also: the systems catalog.

Details

No Title Status By Updated
0137The selection is a user setting in the database, not a URL parameterAcceptedGera2026-09-15
0136Launch criteria: org-scoped reads everywhere, attachment resolves person → property → org, old paths kept through the bake, one Settings pageAcceptedGera2026-09-14
0135Roles stay; privilege enforcement is off for launch; provenance is notAcceptedGera2026-09-14
0134Bind a guard to the resource it protects, not to the caller that happens to reach itAcceptedGera2026-09-12
0133Null means nothing to check; ten means checked and cleanAcceptedGera2026-09-08
0132The scorecard seam hands a low-graded turn to the Oracle through one injected hookProposedGera2026-09-08
0131PropFlow ships its UI as CSS, so other surfaces can consume it instead of re-typing itAcceptedGera2026-09-03
0130Code-first invites, piloted per propertyUnknownFede
0129Collections quiet hours are measured on the RESIDENT's clock, not the property's**SUPERSEDEDGera2026-08-19
0128Grade Clara's production work in one place, and let the graded corpus drive the promptsAcceptedGera2026-08-11
0127Tenant-facing self-help tips are catalog-derived, never generatedProposedGera2026-08-04
0126First-contact SMS disclosure is a dispatcher-level invariantProposedGera2026-08-04
0125A past-due reminder reaches a resident only after a person approves itAcceptedGera2026-08-06
0124Sort docs.propflowai.co by WHEN a page's content is resolved, not by whether it has stateProposedGera2026-08-03
0123Scheduled-job placement: one rule, and a reconciler for the Construct's manifestAcceptedGera2026-07-29
0122Evidence-gated PM notifications: a claim to a PM binds to observed evidence, never to a phase or an extractionAcceptedFede2026-07-31
0121Turnover money decisions: a dispatch ask is not a charge, and money is decided by code, not sampledAcceptedFede2026-07-30
0120Every request resolves an org envelope before it resolves property scopeAcceptedFede2026-07-30
0119The outbound record as a construction invariantAcceptedGera2026-07-29
0118Internal transfers get their own bucket (disclosure, not a rate term)ProposedFede2026-07-28
0117Collections AI pilot: polite delinquency agent for online-portal payers at CamelliaProposed2026-07-23
0116The vendor-facing job reference is a per-property configurationAcceptedFede2026-07-27
0115One eval catalog: register every eval, gate it from one placeAcceptedGera2026-07-27
0114Deterministic-first inbound-email decision pipeline — closed categories, exhaustive action map, never-drop review stateAcceptedFede2026-07-24
0113Vendor communications — extend the existing agents with a vendor lane, not a new agent (yet)ProposedGera2026-07-18
0112Tenant collections outreach: dun a past-due tenant on a durable, ledger-gated cadenceAcceptedGera2026-07-24
0111Outbound vendor-calling agentProposedFede2026-07-22
0110Stamp a grounded "why did Clara say this" rationale on every Clara replyAcceptedGera2026-07-22
0110Continuous anonymized prod→stage mirror (stream replicator)ProposedGera2026-07-23
0109Voice Triage Front-Door DoctrineAcceptedFede2026-07-19
0108Renewal pipeline — one decision spine, workflow-owned dispatch, stable per-lease identityAcceptedFede2026-07-22
0107Deploy-gate relocation — retire the merge queue, gate deploys on green mainUnknownGera
0106Effects validate premises — Temporal timer ↔ DDB row harmony, and who owns the tour scheduleAcceptedFede2026-07-21
0105Auto-publish a unit's listing when a tenant files notice (NTV)UnknownFede
0104PM action reminders: application approval, lease countersign, renewal countersignAcceptedFede2026-07-20
0104Clara knows a property's floor-plan media (3D tours + drawings) and can send the right oneProposedFede2026-07-20
0103Post-Tour Re-Engagement to Improve Tour→Lease ConversionProposedFede2026-07-17
0103Dashboard widget catalog — one registry of dashboard-able widgets, per-surface manifestsDRAFTGera2026-07-18
0102Secrets: eliminate per-runtime copies; validate the rest at bootProposedFede2026-07-17
0101Tour-day arrival updates reach the leasing team on every channel; voice transfers the live callAcceptedFede2026-07-17
0101On-behalf visitors: conversation-linked third partiesProposedFede2026-07-16
0101Clara turn integrity: one commit path, one message per turn, no silent failuresProposedFede2026-07-17
0101ADR-0101 Adversarial Review — Final ReportUnknownFede
0100PM-decided month-to-month conversion (the no-renewal path)ProposedFede2026-07-17
0099Trending occupancy counts pending applications and subtracts noticesAccepted2026-07-16
0098Executed-lease notice pipeline: decouple fetch from send, exactly-once outbox, PMS-agnostic acquisitionProposedFede2026-07-16
0097Email operational signals never create entity recordsAcceptedFede2026-07-16
0097The dashboard is a widget canvasAcceptedGera
0097Anonymized prod-subset backfill for stageAcceptedGera
0096Unit price-change events and grounded price-drop follow-upsProposedFede2026-07-16
0095Universal conversation classification: topic · subtopic · regarding, nothing ever emptyAcceptedGera2026-07-15
0095One `DetailPage` host owns the detail-page skeletonAcceptedGera
0094Delete the conversation reconciler sweeps: the turn-settled stream is the sole pathAcceptedGera2026-07-16
0094Sync AppFolio guest cards with PropFlow prospectsProposedFede2026-07-15
0093Trending occupancy counts units, not application recordsUnknownFede
0092Universal communication suppression (opt-out) across all outbound channelsProposedFede2026-07-15
0091Reconcile renewals against external PMS actions (PMs are co-actors, not spectators)ProposedFede2026-07-15
0090Tool-Call Followthrough Architecture (the Say/Do Gap)Accepted2026-07-14
0089Language-aware outbound constructionProposedGera2026-07-14
0088A single durable conversation-turn-settled event streamProposedGera2026-07-14
0087Per-start namespace routing + a multi-namespace worker fleetProposedGera2026-07-12
0086Eval Platform: Morpheus, Sherlock, and the ReplicationAcceptedGera2026-07-11
0085Shard the renewal-saga GSI4 partition key (kill the single-partition hot key)ProposedGera
0084Inline conversation-topic stamping: signal on turn-settle + 15-minute reconcilerAcceptedGera2026-07-09
0083`regarding` ties are topic-scoped, not always work-order refsAccepted;Fede2026-07-09
0082Owner & portfolio reporting: compose the two canonical shapes we already haveAcceptedFede2026-07-09
0081Renewing into a different unit: guard the accept path, detect transfers off the occupancy spineProposedFede2026-07-08
0080Voice leasing-context injection: default-on via an automatic per-field data-quality gate, backed by a cached read-modelProposedGera2026-07-07
0079The single canonical conversation writerImplementedGera2026-07-07
0079Dependabot scaled back to security-only, auto-merge disarmedAcceptedFede2026-07-06
0078The Construct: one backbone for all automation + a role-split Agent SmithAcceptedGera2026-07-04
0077Automated Dependabot upgrades: comprehensive gate, then auto-merge on greenSupersededFede2026-07-03
0076Transfers: label them correctly, change nothing elseProposedFede2026-07-02
0075Upgrade the AI code-review pipeline: models, rendered evidence, merge discipline, and measurementAcceptedFede2026-07-01
0074Detect tenant transfers vs move-outs (don't turn a transfer into a move-out)ProposedFede2026-07-01
0073Multi-source ingestion & reporting platform (learn-a-config, gated, reconciled)AcceptedFede2026-06-30
0073Topic + Subtopic: one conversation categorizationAcceptedGera2026-07-01
0072Walk-in (on-site) prospects are tracked, not bookedAcceptedFede2026-06-30
0072Standalone vendor-faithful mock PMS for Yardi and RealPage: hosting, persistence, test data, and correctness postureProposedFede2026-06-30
0071PM-facing surfaces should read in EnglishPhaseFede2026-06-29
0070Guarantee move-out charge filing (reconcile + fail loud)AcceptedFede2026-06-24
0070Clara recognizes when a conversation is over (`end_conversation`)ProposedFede2026-06-24
0069MFA-exempt the pinned smoke/test accountAcceptedFede2026-06-24
0068Guarantee turnover work-order creation (and fail loud in AppFolio)ProposedFede2026-06-24
0067AppFolio session concurrency — serialize vs. session-refresh-lock for parallel renewal prepAcceptedFede2026-06-24
0066Collapse the two-job renewal pipeline — wire eligibility into sends (finish Phase 3)AcceptedFede2026-06-22
0065Deep, self-discovering evals: the claim→manifestation graph, Sherlock as the receipt-required gatekeeper, and the fail→fix→teach→retry loopProposedGera
0064Inbound Audio Voice Note Transcription via ElevenLabs ScribeProposedFede2026-06-19
0064The eval executor runs on Temporal (orchestrator workflow drives signal-stepped execution of the real maestro workflows)ProposedGera
0063Restore the turnover voice call to capture-only (regression post-mortem + harden)ProposedFede2026-06-18
0062Prospect Outreach Cadence: Production Activation & End-to-End Test (Willows)ProposedFede2026-06-18
0061The maestro is a stateful package→reasoning→action-queue routerAcceptedGera2026-06-18
0061Automated Prospect Outreach Cadence (5-Touch Email + SMS)ProposedFede2026-06-18
0060Stale-lead call list eligibility is the human phone layer, not Clara's bot gatesAcceptedFede2026-06-18
0060Server-render data-backed list/detail pages (server-rendered first paint + DRY loaders)AcceptedGera
0060Preferred vendors — global catalog + per-property rosterProposedFede2026-06-17
0059Vendor dispatch for turnoversProposedFede2026-06-16
0059Operator-side comms: agentic direction (deferred); maestro near-termProposedGera2026-06-17
0059The maestro is a hybrid command-ladder: an LLM proposes a closed command vocabulary, a deterministic ladder disposesSupersededGera2026-06-17
0058Agent actions must be reliable by construction: every tool an agent can call really does what it claimsProposedFede2026-06-16
0057PropFlow owns dispatch for EVERY work order (handyman + tenant), no silent skipsAcceptedGera2026-06-16
0057Clara's voice promises must be backed by real, verified delivery (unknown-caller path)ProposedFede2026-06-15
0056Unified PMS work-order write capability (caller-agnostic mirror leg)ProposedGera2026-06-15
0055Renewal UI must reflect workflow state, not infer itAcceptedFede2026-06-11
0055Conversation message topic taxonomyAcceptedGera
0054One identity chokepoint + engagement threads for all channels: every hat, one precedence, messages bind to the work that prompted themAcceptedFede2026-06-10
0054The Inbound Dispatcher: one entry for every inbound package (maintenance-first)AcceptedGera2026-06-10
0053Clara as dumb I/O; the "Maestro" owns maintenance-lifecycle orchestration + interpretationUnknownGera
0052Temporal deploy safety: graceful drain, replay gate, Pinned (Worker Deployments), and a no-fork migration SOPProposedFede2026-06-09
0052Handyman quiet hours as a Temporal hold-and-releaseAcceptedGera
0051Unified PMS → PropFlow reconcile: ordered tenant/vendor/work-order sync + coveragePartiallyGera2026-06-08
0050AppFolio work-order sync: on-demand refresh over the existing discovery pollProposedGera2026-06-07
0049Conversation recency GSI (GSI5): bound the all-properties /conversations readAcceptedGera2026-06-07
0048Voice call lifecycle: keep the live turn in PropFlow, move the post-call pipeline to TemporalProposedGera2026-06-07
0048Iterate and promote the live voice agent via ElevenLabs branches, not agent clonesProposedFede2026-06-04
0047Retain RenewalSaga as the Temporal-written durable read-model (do not delete it)AcceptedFede2026-06-04
0046Renewal lifecycle completion: month-to-month holdover, execution notifications, and PMS-agnostic off-platform-lease detectionProposedFede2026-06-03
0045Move the tenant backend onto one correctly-named namespace (`propflow-prod`)AcceptedFede2026-06-02
0044End-to-end turnover close-out: auto-dispatch, security-deposit disposition, AppFolio move-out, and re-listingProposedFede2026-06-02
0043SEO and AI-visibility strategy for the marketing siteProposedFede2026-06-02
0042Inbound thread routing for capability continuityProposed2026-05-28
0041Cross-Channel Operator Elevation (and Multimodal Turnover Capture)ProposedFede2026-05-29
0040Identity-Anchored Reasoning Router for Operational UsersProposedFede2026-05-29
0039AppFolio is the source of truth for vendors and tenants (no local fakes in prod)ProposedGera2026-05-28
0038Meta glasses as a client-side capture UX for the existing turnover intakeProposedFede2026-05-27
0037Treat PMS `moveOutDate` transition as the canonical formal-NTV triggerAcceptedFede2026-05-27
0036Email the renewal offer + letter to tenants with no phoneAcceptedFede2026-05-27
0035Finish the Tenant/Prospect collapse: `Person` + `TenantOccupancy` / `ProspectInquiry`AcceptedGera2026-05-26
0034Turnover orchestration architectureProposedFede2026-05-25
0033VendorCompany + VendorMembership: decoupling the vendor rowAcceptedGera2026-05-25
0032Spine-stamp as a construction invariant (foundation, not patrol)AcceptedGera2026-05-23
0031Local-first work orders (PropFlow owns the operational record; PMS is sync destination)AcceptedGera2026-05-20
0030PMS is the source of truth for work order IDsAcceptedGera2026-05-19
0029Role-Prompt-Tool RouterAcceptedGera2026-05-19
0028Tool Catalog consolidation: one home in `src/lib/tools/`AcceptedGera2026-05-12
0027Three-layer architecture: Catalog / Events-Values / Spine; Canonical vs DerivedAcceptedGera2026-05-16
0026PII boundary lives at the Temporal activity entry, not in workflow inputsAcceptedFede2026-05-15
0025Adopt Temporal Cloud for renewal workflowsAcceptedFede2026-05-14
0024`WorkOrder.displayId` is the canonical user-facing labelActiveGera2026-05-10
0023PMS authority registryAcceptedGera2026-05-10
0022Property tickersActiveGera2026-05-09
0022Channel Adapter ArchitectureAcceptedGera2026-05-10
0021Collapse the two parallel `dynamo` data layersAcceptedGera2026-05-06
0020Person as the universal human spineAcceptedGera2026-05-06
0019Organization model: the multi-tenant SaaS envelopeAcceptedGera2026-05-04
0018Person identity model: claims and rolesAcceptedGera2026-05-04
0017Layout architecture: route groups, not runtime flagsAcceptedGera2026-05-03
0016Renewal state-source registryAcceptedFede2026-05-01
0015Generic saved-views storage for any UI surfaceProposedGera2026-04-28
0014Dashboard stats library + KPI snapshot LambdaAccepted2026-04-23
0013Dual retention for KPI telemetry: aggregate long, detail shortAccepted2026-04-23
0012Vercel Cron allowed for web-app-native schedulesSupersededGera2026-04-23
0012Agent runtime Lambda for PMS browser-agent jobsACCEPTEDFede2026-04-24
0011Retire `propflow-inbox-poller` LambdaAcceptedFede2026-04-17
0010Extract the attachment parser into its own Lambda**Reverted**Fede
0009Browser-agent EC2 status quoUnknownFede
0008Terminate EC2 `35.172.106.96`ProposedFede2026-04-17
0007Retire `stage.propflowai.co`AcceptedFede2026-04-17
0006Delete dead EC2 background processorsUnknownFede
0005Outbound send-lock for the `inbox_email` pathProposedFede2026-04-17
0004Per-Lambda PR preview deploys + promote-on-mergeAcceptedFede
0003All scheduled jobs on AWS EventBridgeAcceptedFede2026-04-17
0002Agents own their own code, zero shared TypeScriptAcceptedFede2026-04-17
0001Decouple web app from agentsAcceptedFede2026-04-17
F-0027The decider rules, and it is the only writer of questions for GeraAccepted. · fleetGera2026-09-13
F-0026Execution is per question, because action isAccepted · fleetGera2026-09-12
F-0025The flow runs without a human: green merges itself, the fixer merges, and the driver assignsAccepted · fleetGera2026-09-12
F-0024One thread, one pointer: the heartbeat's Slack table is retired and the ticker feeds the cardAccepted. · fleetGera2026-09-11
F-0024A session changes accounts by its file, not by dyingAccepted · fleetGera2026-09-11
F-0023When a harness word collides with a product word the harness yields, and a dock row is an ACTION ITEMAccepted · fleetGera2026-09-11
F-0022A decision carries three facts, and application binds to the rowAccepted · fleetGera2026-09-10
F-0021The role is the Driver, and the plumbing still says `operator`Accepted · fleetGera2026-09-10
F-0020A ruling goes back to whoever is blockedAccepted · fleetGera2026-09-10
F-0019Two rungs are asked on one snapshot, and agreement drivesAccepted · fleetGera2026-09-10
F-0018The Astra lane is queue-driven, and its launcher is a rungAccepted · fleetGera2026-09-10
F-0017The Operator is fed; it does not pollAccepted · fleetGera2026-09-10
F-0016A model that cannot be reached is not a model that declinedAccepted · fleetGera2026-09-10
F-0015Red main has one owner; every other lane holdsAccepted · fleetGera2026-09-10
F-0014The Oracle explains a low-graded Clara turn and holds the fix for a humanProposed · fleetGera2026-09-08
F-0014The Oracle — synthesized design (Phase 1 output)Unknown · fleetGera
F-0013Answered is not executed, and the sweep chases bothProposed · fleetGera2026-09-07
F-0012The Smith review runs itself every morning, and a merge refuses under a personProposed · fleetGera2026-09-07
F-0011A seat EMITS its version; a seat nobody can read is UNKNOWN, never currentAccepted · fleetGera2026-09-07
F-0010A finished session leaves, by its own exit path, never by a signalAccepted · fleetGera2026-09-02
F-0009A liveness signal must fail when the SYSTEM fails, not when its log stopsAccepted · fleetGera2026-09-01
F-0008A thread that asks for work gets an Operator: Smith binds, and refuses out loudProposed · fleetGera2026-08-30
F-0007The phase table crosses by snapshot: Smith derives, the board displaysAccepted · fleetGera2026-08-30
F-0006One session-state classifier: six states, a wake path, and `null` for everything elseProposed · fleetGera2026-08-30
F-0005Two clocks guard the reviewer's token: rank at write time, refuse at read timeAccepted · fleetGera2026-08-29
F-0004How this ledger works: decisions die in conversation unless written hereAccepted · fleetGera2026-08-29
F-0003The supervision ladder: recovery by rungs, integration by signalsAccepted · fleetGera2026-08-29
F-0002SendMessage is the agent-to-agent channel; tmux is hosting onlyAccepted · fleetGera2026-08-29
F-0001Narrow the Architect to an enforced observe+spawn singletonAccepted · fleetGera2026-08-08