Files
AR-House/IDEAS_BACKLOG.md
T
2026-07-03 12:24:58 -04:00

5.8 KiB
Raw Blame History

IDEAS_BACKLOG.md

Propósito: lista corta de items concretos pendientes que no están en PHASE_35_PLAN.md. Cosas que se descubrieron como gaps pero NO bloquean el flujo principal. Si tenés tiempo, agarrá uno desde acá.

Convención:

  • 🔴 P1 = afecta funcionalidad core hoy
  • 🟡 P2 = mejora cobertura/UX significativa
  • 🟢 P3 = nice to have

Cada item: contexto, costo en horas, blockers, criterio "done".


🟡 1. 26 FL counties que NO usan realauction.com

Contexto: probe a https://www.realauction.com/clients confirmó que 41 de los 67 condados FL usan realforeclose.com. Los 26 restantes están en otras plataformas (parking pages en realauction = no client). Mayormente counties pequeños/rurales pero también algunos importantes como Monroe (Keys), Collier (Naples), Okaloosa (Destin), St. Johns (St. Augustine).

Counties pendientes: Bradford, Collier, Columbia, DeSoto, Dixie, Franklin, Gadsden, Glades, Hamilton, Hardee, Hendry, Hernando, Highlands, Holmes, Jefferson, Lafayette, Levy, Liberty, Madison, Monroe, Okaloosa, St. Johns, Sumter, Taylor, Union, Wakulla.

Plataformas a investigar: Govease, ClerkAuction.com, ServiceLink Auction, sistemas in-house del clerk.

Esfuerzo: ~30 min por county para identificar plataforma + 2-3h por plataforma nueva para integrar engine. Done cuando: top 5 prioritarios (Monroe, Collier, Okaloosa, St. Johns, Hernando) tienen scraper funcional.


🟢 2. Property Researcher agent — prompt tuning

Contexto: framework property_researcher.py + agent_tools.py están construidos. El test con Wake County NC mostró que qwen2.5:14b sigue la estrategia inicial bien (lookup_portal → web_search → fetch_url) pero se queda atrapado en loops de fetch sin llamar extract_with_local_llm ni finish(). 10/10 iteraciones sin terminar limpio en el test.

Posibles fixes (probar en orden):

  1. Mejor system prompt con flow paso-a-paso explícito + few-shot examples
  2. Force extract_with_local_llm después de cada fetch_url exitoso (regla en prompt)
  3. Cambiar al modelo Coordinator (qwen2.5:32b, 19GB) — más reasoning power
  4. Implementar "judge" — un segundo LLM evalúa si la iteración avanzó, si no → corrige el plan

Esfuerzo: 2-4h iteraciones de prompt + tests. Done cuando: agente completa research de 1 deal NC con finish() + ≥2 portales descubiertos guardados en portal_directory.json.


🟢 3. Firecrawl /extract como fallback para counties non-FL

Contexto: alternativa al PropertyResearcher agent. Firecrawl /extract toma una URL + JSON schema y devuelve data extraída via su LLM. 4 credits por deal completo ≈ $0.004. Buena solución para los counties non-FL donde no tenemos scraper.

Pipeline propuesto:

def fetch_deal_anywhere(address, county, state):
    # 1 cred: descubrir portal
    portal = firecrawl_search(f"property appraiser {county} county {state}")
    # 1 cred: scrape PA
    pa_data = firecrawl_extract(portal_url, schema=PA_SCHEMA)
    # 1 cred: descubrir court
    court_portal = firecrawl_search(f"court records {county} {state}")
    # 1 cred: scrape court
    court_data = firecrawl_extract(court_portal, schema=COURT_SCHEMA)
    return pa_data | court_data  # ~4 credits

Budget impact: 4 cred × 250 deals/mes = 1000 cred, justo en límite. Solo activar para counties non-FL.

Esfuerzo: ~2h implementación + 1h testing. Done cuando: deal de Virginia (Fairfax) procesado correctamente con verdict + plaintiff + owner extraídos.


🟢 4. PA fetchers extendidos (Duval, Miami-Dade street photos)

Contexto: solo Broward PA tiene foto exterior real funcional vía bcpa.net. Miami-Dade y Duval solo exponen aerial map + sketch (verificado). Algunos counties más pequeños podrían tener street photos.

Counties a probar:

  • Hillsborough: probablemente sí (high-volume)
  • Orange: probablemente sí
  • Pinellas, Lee, Brevard, Volusia: probable
  • Counties más pequeños: usualmente sketch-only

Esfuerzo: ~20 min por county para probe + 30 min para integrar al pa_photo_lookup.py. Done cuando: al menos 3 counties más con foto exterior funcional + entries en _FETCHERS dict.


🟢 5. HUD PropertyDetails photo extraction

Contexto: HUD Homestore search-list page no incluye foto. La página individual /PropertyDetails?caseNumber=X SÍ podría tener foto (no investigado a fondo aún). Probe inicial mostró Cloudinary placeholders NoImage.jpg para todos.

Pendiente verificar:

  • ¿Todos los HUD listings son NoImage o solo los que vi?
  • ¿Hay listings que SÍ tienen foto del HUD photographer program?
  • ¿Vale la pena el per-deal fetch (39 deals × 1 Playwright call ≈ 5 min)?

Esfuerzo: ~1h probe + decisión + posible integración. Done cuando: documentado si HUD tiene fotos reales para algún subset, o confirmado que es siempre NoImage.


🟡 6. Cards UX — feedback loop on Pre-screening result freshness

Contexto: pre-screening result se persiste en st.session_state[f"prescreen_result_{deal_id}"]. Si re-corrés pre-screening, sobrescribe. Pero si el deal data cambió (re-scrape), la card sigue mostrando el result viejo.

Pendiente:

  • Mostrar run_at timestamp en la pre-screening result box
  • Botón "Re-correr pre-screening" cuando hay un result viejo
  • Invalidar automáticamente si el deal fue re-scrapeado post-pre-screening

Esfuerzo: ~1h. Done cuando: card muestra "Pre-screening generado hace 2h" + botón Re-run visible.


Cómo trabajar este backlog

  1. Cuando arranques nueva sesión, leé este archivo + PHASE_35_PLAN.md
  2. Si Phase 3.5 está en curso, prioridad es esa
  3. Si Phase 3.5 está bloqueada o terminada, agarrá item P1/P2 de acá
  4. Marcar como acá cuando se completa + linkear commit hash
  5. Mover a tabla "Done" al final del archivo

Done (historial)

(vacío — agregar conforme completemos items)