Skip to content

CLAUDE.md: el proxy que el fetch de Node ignora, y tres formas de mentirse solo - #17

Draft
Maarmapa wants to merge 3 commits into
mainfrom
claude/presupuesto-cotizacion-fek80w
Draft

CLAUDE.md: el proxy que el fetch de Node ignora, y tres formas de mentirse solo#17
Maarmapa wants to merge 3 commits into
mainfrom
claude/presupuesto-cotizacion-fek80w

Conversation

@Maarmapa

@Maarmapa Maarmapa commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Nota agéntica de la sesión del 30-ago sobre la línea de auditoría de restaurantes. 164 líneas, solo adiciones a CLAUDE.md.

Qué NO está acá

Los locales, sus hallazgos, los precios y la táctica de acercamiento. Eso vive en restaurantes-prospectos-y-hallazgos.md, en las memorias locales del Mini — son negocios reales a los que todavía no se les reportó nada, y este repo es público. La nota lo dice y nombra el archivo, para que una sesión remota sepa qué pedir.

Escaneo anti-leak corrido sobre el diff antes de commitear: cero nombres de negocios, cero precios o tarifas, cero secretos o correos, cero rutas locales.

Qué aporta

🔑 NODE_USE_ENV_PROXY=1 — el fetch de Node ignora HTTPS_PROXY por defecto, así que un script ve una red distinta que curl y da 403 hasta para destinos permitidos. Sin la flag todo parece caído. Explica rojos falsos de sesiones anteriores.

El mapa de la red, medido con curlplaces.googleapis.com sí atraviesa (el 403 "use API Key" con cuerpo JSON lo escribió la API, no el proxy), los dominios propios en Vercel también, y no hay atajo genérico: r.jina.ai, allorigins, serpapi y Brave están todos bloqueados.

Una función propia en Vercel es un primitivo de fetch legal — el patrón más reusable de la sesión. Con token obligatorio y guarda contra IPs privadas: un fetcher abierto es un SSRF con tu dominio.

Tres formas de mentirse solo, las tres cazadas por el propio código al correrlo:

  1. Un ítem no medido vale null, no cero. Un cero se le muestra al cliente como hallazgo.
  2. Cobertura mínima antes de dar un puntaje — la primera corrida escupió "100/100" midiendo dos ítems de cien. Normalizar sobre poco no produce un puntaje humilde: produce uno falsamente seguro.
  3. Un control positivo que no recorre el mismo camino que la medición no es un control: es otra medición. Pasó dos veces el mismo día.

Un cero del índice es un dato sobre tu consulta tanto como sobre el mundo — tres búsquedas en cero para el nombre de un local se anotaron como no concluyentes en vez de convertirse en el hallazgo jugoso que parecían. Estaba bien: el nombre era otro.

El patrón de los títulos rotos, cinco de cinco — se rompe exactamente lo que cae entre las herramientas, porque el <title> no es trabajo de ningún proveedor.

Verificación

  • Solo toca CLAUDE.md, 164 inserciones y 0 borrados.
  • Push fast-forward, sin --force.
  • La nota incluye su propio límite declarado: ~13 negocios, todos mirados desde el índice y ninguno desde adentro. Hipótesis fuerte, no ley.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BzZ6td4VJdRDe76UndWZY3


Generated by Claude Code

claude added 3 commits August 30, 2026 18:06
… a alguien

Salio de auditar varios negocios de unas pocas cuadras. Uno de los que se
miro resulto estar en el mismo edificio y el mismo rubro que un cliente
actual, y el plan escrito de ese cliente lo trataba explicitamente como el
rival a sortear.

Auditarlo como inteligencia competitiva esta bien y sirve. Ofrecerle
servicios seria perder al cliente que ya existe, y el riesgo no es abstracto:
en un rubro de barrio se enteran.

Dos practicas que quedan:

1. El chequeo de conflicto va ANTES de la auditoria, no despues de haberle
   escrito. Mismo rubro + misma zona + un cliente propio cerca = revisar.
2. En el archivo de trabajo, la inteligencia competitiva va en seccion
   aparte y rotulada, separada de los prospectos vendibles. Mezcladas, una
   sesion futura lee la ficha, ve hallazgos jugosos y sale a ofrecer. La
   separacion no es orden: es lo que evita ese error.

Sin nombres, sin dominios, sin precios y sin enlaces: el detalle vive en el
archivo reservado que la nota ya nombra. Diff escaneado antes de pushear.
…tirse solo

Nota de la sesion del 30-ago sobre la linea de auditoria de restaurantes.
Solo el metodo: los locales, sus hallazgos, precios y tactica viven en
restaurantes-prospectos-y-hallazgos.md, en las memorias locales del Mini.

Lo que aporta:

- NODE_USE_ENV_PROXY=1. El fetch de Node ignora HTTPS_PROXY por defecto, asi
  que un script ve una red distinta que curl y da 403 hasta para destinos
  permitidos. Sin la flag todo parece caido.
- El mapa de la red medido con curl: places.googleapis.com SI atraviesa (403
  "use API Key" con cuerpo JSON lo escribio la API, no el proxy), los dominios
  propios en Vercel tambien, y no hay atajo generico -- los lectores-proxy
  publicos estan todos bloqueados.
- Una funcion propia en Vercel es un primitivo de fetch legal. Con token
  obligatorio y guarda contra IPs privadas: un fetcher abierto es un SSRF con
  tu dominio.
- Tres formas de mentirse solo, las tres cazadas por el propio codigo al
  correrlo: un item no medido vale null y no cero; hace falta cobertura minima
  antes de dar un puntaje (la primera corrida escupio 100/100 midiendo dos
  items de cien); y un control positivo que no recorre el mismo camino que la
  medicion no es un control, es otra medicion.
- Un cero del indice es un dato sobre tu consulta tanto como sobre el mundo.
- El patron de los titulos rotos, cinco de cinco: se rompe lo que cae entre
  las herramientas, porque no es trabajo de ningun proveedor.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BzZ6td4VJdRDe76UndWZY3
main habia avanzado tres commits, dos de ellos quitando filtraciones del
repo publico (dos codigos de cupon y un id de conversacion). Mi rama venia
de antes de esas redacciones, asi que un merge naif las reintroducia --
exactamente la regresion del #104/#106 que este mismo archivo documenta,
pero esta vez sobre una filtracion borrada a proposito.

Resolucion: se tomo main como base y se inserto solo la seccion nueva, en
su lugar cronologico (despues del 29-ago, antes del 01-sep). Las notas
agenticas son bitacora: se acumulan, no se elige una sobre otra.

Verificado sobre el archivo resuelto:
- VOLVER15, VUELVE15 y el id de conversacion: ausentes.
- diff contra origin/main: 164 adiciones, 0 borrados. Puramente aditivo.
- Sin marcadores de conflicto; la seccion aparece una sola vez.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BzZ6td4VJdRDe76UndWZY3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants