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

126 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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**:
```python
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)_