β back to Rentv 2026
yoloforever: π― CALIFORNIA QUALITY GATE PASSED (71% coverage, bank-excluded scope) β Arizona unlocked, Phase 2 parked for Steve
2d3f947757912d543504cace06c1528d8b0127e2 Β· 2026-07-30 21:40:09 -0700 Β· Steve Abrams
Files touched
M docs/YOLOFOREVER-LEDGER.mdM public/social.htmlM server.jsM src/pr/tools/headless-team-extract.js
Diff
commit 2d3f947757912d543504cace06c1528d8b0127e2
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Jul 30 21:40:09 2026 -0700
yoloforever: π― CALIFORNIA QUALITY GATE PASSED (71% coverage, bank-excluded scope) β Arizona unlocked, Phase 2 parked for Steve
---
docs/YOLOFOREVER-LEDGER.md | 8 ++++++++
public/social.html | 3 ++-
server.js | 30 ++++++++++++++++++++++++++++++
src/pr/tools/headless-team-extract.js | 10 +++++++++-
4 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/docs/YOLOFOREVER-LEDGER.md b/docs/YOLOFOREVER-LEDGER.md
index 5c9384ba..721aa94f 100644
--- a/docs/YOLOFOREVER-LEDGER.md
+++ b/docs/YOLOFOREVER-LEDGER.md
@@ -38,3 +38,11 @@
- **Final prod state:** 487 orgs Β· 1,566 people (132 comms/mktg/agency/bd) Β· 1,842 sources Β· CA gate NOT passed (coverage 53%, comms-only 24%) Β· coverage-gap report: 179 empty metroΓcategory cells Β· spend unchanged 500/1000 queries (~$2.50 total; all cycle-4 discovery $0 local).
- **Pending-approval queue:** empty (no gated actions this run).
- **LOOP PAUSED** per the STOP rule: public channels saturating + only gated/licensed work remains. Real next-levers (all Steve-gated): (1) a licensed data provider integration (the only way to reach non-public bank comms staff), (2) manual research on the top uncovered orgs via the admin UI, (3) accept the community-bank cap and measure coverage against publicly-reachable orgs only. Resume by approving one of these or adding work.
+
+## Cycle 5 β 2026-07-30 ~22:15 PT β π― CALIFORNIA QUALITY GATE PASSED
+- **Steve directive:** "skip bank anything" β banks/credit unions don't publish public comms staff and were saturating the metric.
+- **Landed:** coverage_exclude_types setting (default [bank,credit_union]) wired into the CA gate denominator, dashboard no-PR count, and coverage-gap report (migration 003, editable in Settings UI); headless tool gained explicit-ID targeting + excluded-type skip; targeted headless pass over the exact 47 gate-uncovered non-bank orgs β +53 real public-affairs/comms people across CA Apartment Assoc, CA Bankers Assoc, Alexandria REE, Savills, Fuscoe (sampled 100% real humans).
+- **Result:** contact coverage 53% β **71% (105/148 non-bank high-priority orgs)** β GATE PASSES. All 7 criteria green: resumable β dedupe β 99% org-completeness β 71% contact-coverage β workflows β no-mislabeled-inferred β gaps-visible β.
+- **ARIZONA UNLOCKED** β gate-authorized (override=false), audited. Phase 2 capability live; the verification AZ job was cancelled β broad Arizona research is NOT started, parked for Steve's go.
+- **Final state:** 487 orgs Β· ~1,670 people Β· 1,900+ sources Β· spend ~$2.50 total (all headless discovery $0 local).
+- **All cycles 1-5: SHIP.** Loop objective (pass the CA gate) achieved.
diff --git a/public/social.html b/public/social.html
index 610b392c..3737c091 100644
--- a/public/social.html
+++ b/public/social.html
@@ -488,7 +488,8 @@
// ββ F1: facet/segment builder β Role Γ Market Γ Sector β LinkedIn search + (registry) real names ββ
var GROLES_F=['Owners / Investors','Developers','Brokers','Lenders & Capital Sources','Vendors / Service Providers','Legal','Construction / GCs','Title & Escrow'];
- var GF_REGROLE={ 'Brokers':'brokers', 'Owners / Investors':'firms' }; // only these are in the CA DRE registry
+ var GF_REGROLE={ 'Brokers':'brokers', 'Owners / Investors':'firms' }; // usre CA DRE registry (drill firmβpeople)
+ var GF_LICENSED={ 'Lenders & Capital Sources':'Lender', 'Legal':'Attorney', 'Construction / GCs':'Contractor', 'Title & Escrow':'Escrow' }; // realestate DB /api/summit/licensed
var GMKTS=[ {k:'Los Angeles',reg:1},{k:'Orange County',reg:1},{k:'Inland Empire',reg:1},{k:'San Diego',reg:1},{k:'Bay Area',reg:1},{k:'Ventura',reg:0},{k:'Sacramento',reg:0},{k:'Arizona (Scottsdale)',reg:0} ];
var GSECS=['Office','Industrial','Multifamily','Retail','Finance'];
var ROLE_KW={ 'Owners / Investors':'owner OR investor','Developers':'developer','Brokers':'broker','Lenders & Capital Sources':'lender OR "capital markets"','Vendors / Service Providers':'services','Legal':'attorney','Construction / GCs':'general contractor','Title & Escrow':'title escrow officer' };
diff --git a/server.js b/server.js
index f9e31467..dbdce729 100644
--- a/server.js
+++ b/server.js
@@ -393,6 +393,36 @@ app.get('/api/summit/leads', adminOnly, async (req, res) => {
} catch (e) { res.status(502).json({ rows: [], total: 0, error: 'registry unavailable' }); }
});
+// ββ Licensed CRE targets from the `realestate` DB (title/escrow/contractor/lender/attorney). ββ
+// Separate domain DB (NOT dw_unified). Public-license targeting data, no send list.
+const { Pool: PgPool } = require('pg');
+const rePool = new PgPool({
+ host: process.env.PGHOST || '/tmp', port: process.env.PGPORT ? Number(process.env.PGPORT) : 5432,
+ user: process.env.PGUSER || process.env.USER, database: process.env.REALESTATE_DB || 'realestate', max: 4,
+});
+app.get('/api/summit/licensed', adminOnly, async (req, res) => {
+ try {
+ const role = String(req.query.role || '').slice(0, 40);
+ const market = String(req.query.market || '').slice(0, 40);
+ const q = String(req.query.q || '').trim().slice(0, 60);
+ const limit = Math.min(500, Math.max(10, parseInt(req.query.limit, 10) || 200));
+ const where = ['within_300mi'], params = [];
+ if (role) { params.push(role); where.push('role = $' + params.length); }
+ if (market) { params.push(market); where.push('market = $' + params.length); }
+ if (q) { params.push('%' + q + '%'); where.push('entity_name ILIKE $' + params.length); }
+ const sql = 'SELECT id, role, entity_name, license_no, license_type, city, county, zip, market, phone, website, source, source_url FROM rentv_licensed_targets WHERE ' + where.join(' AND ') + ' ORDER BY entity_name LIMIT ' + limit;
+ const r = await rePool.query(sql, params);
+ res.set('Cache-Control', 'private, max-age=60');
+ res.json({ role, market, total: r.rowCount, rows: r.rows });
+ } catch (e) { res.status(502).json({ rows: [], total: 0, error: 'realestate unavailable' }); }
+});
+app.get('/api/summit/licensed/facets', adminOnly, async (_q, res) => {
+ try {
+ const r = await rePool.query('SELECT role, market, count(*)::int n FROM rentv_licensed_targets WHERE within_300mi GROUP BY role, market ORDER BY role, market');
+ res.json({ rows: r.rows });
+ } catch (e) { res.status(502).json({ rows: [], error: 'realestate unavailable' }); }
+});
+
// Admin write-forwarder β usre backend (JSON body). Same-origin so /desk admin can add/withdraw
// sublease listings; the upstream is basic-auth-gated and loopback-only, so we inject the auth.
async function usreWrite(method, upstream, req, res) {
diff --git a/src/pr/tools/headless-team-extract.js b/src/pr/tools/headless-team-extract.js
index a122be40..2d0a06d9 100644
--- a/src/pr/tools/headless-team-extract.js
+++ b/src/pr/tools/headless-team-extract.js
@@ -29,7 +29,15 @@ async function api(path, opts = {}) {
async function main() {
// Uncovered orgs, highest priority first (server computes the no-PR-contact filter).
- const { rows } = await api(`/organizations?no_pr_contact=1&state=CA&sort=priority&dir=desc&limit=${MAX_ORGS}`);
+ let rows;
+ if (process.env.PR_ORG_IDS) {
+ // explicit target list (gate-uncovered set) β one fetch per id
+ const ids = process.env.PR_ORG_IDS.split(',').map((s) => s.trim()).filter(Boolean);
+ rows = [];
+ for (const id of ids) { try { rows.push(await api('/organizations/' + id)); } catch { /* skip */ } }
+ } else {
+ ({ rows } = await api(`/organizations?no_pr_contact=1&state=CA&sort=priority&dir=desc&limit=${MAX_ORGS}`));
+ }
// Skip coverage-excluded types (banks/credit unions β no public comms staff, Steve 7/30).
const exclude = (await api('/settings')).coverage_exclude_types?.value || ['bank', 'credit_union'];
const targets = rows.filter((o) => o.website_url && !exclude.includes(o.organization_type));
β f08f88a2 pr-intelligence: headless tool skips coverage-excluded org t
Β·
back to Rentv 2026
Β·
console: /api/summit/licensed (realestate DB) + facet wiring 13b6880c β