Self-review of 2026-04-20 flagged four architectural concerns that don't lend themselves to a one-line bugfix. Each is captured below with context, options, and a recommendation. None of these are implemented yet; this is the design conversation, checked in so we don't lose it.
| #! /usr/bin/env bash | |
| # Test the PR Stream webhook endpoint with a realistic fake payload. | |
| # Usage: script/test_pr_webhook [host] | |
| # Default host: https://lpr-api.vrpaccess.com | |
| set -euo pipefail | |
| HOST="${1:-https://lpr-api.vrpaccess.com}" | |
| URL="$HOST/pr/vrps_phoenixgulfshores2/ingress" |
Source: wireframe-vrps.vercel.app
Reference: VRPS Information Architecture · Interactive Slicer Demo
Date: 2026-04-17
Produced by adversarial peer review (Claude + Gemini 2.5 Pro/Flash), 3 rounds. This document is the implementation specification.
- Single spine, no exceptions.
Customer → Property → Lot. Every entity has exactly one parent in this hierarchy. Ownership is declared, not inferred.
adversarial peer review for LLMs — a priority-ranked panel of agents charges at each other's analysis, the master synthesizes one hardened output
joust is a CLI tool that implements adversarial peer review across a ranked panel of LLM agents. You define a list of agents with priority levels. The highest-priority agent is the master — it orchestrates the joust and writes the final synthesis. Lower-priority agents are jousters — they produce independent analyses and cross-examine each other's work.
Concept: "Peer lots" introduces a many-to-many relationship between lots and properties via a property_lot junction table, replacing the current lots.property_id single FK. A lot can belong to multiple properties (e.g., a shared surface lot between two adjacent complexes managed by the same customer).
Methodology: Full scan of every API handler, migration, RLS policy, PL/pgSQL function, and UI screen in both vrpsinc/mvp and vrpsinc/ui. Cross-reviewed by Gemini 2.5 Flash (independent analysis + critique of this analysis).
a dark factory that never forgets
bunny1 works. it can spec, challenge, plan, test, and build. but it forgets everything between hops. every session starts cold. the LLM reconstructs context from file scraps and sounds confident while confabulating. the brane exists but nothing forces the loop to read it before starting or write to it after finishing. memory is opt-in. forgetting is the default.