CommunityProgramación y desarrollogithub.com

komilovsg/f-mode

Modo económico de tokens para agentes de codificación: los datos brutos nunca entran en el contexto, solo el resultado. Úsalo al ejecutar tests, leer logs, consultar bases de datos, inspeccionar archivos grandes o JSON, verificar muchas cosas similares, hacer comprobaciones en el navegador, o cuando el usuario diga "f-mode", "filter first", "save tokens", "context is filling up", "too much output". Cubre filtrado sin ocultar fallos, resúmenes compactos, verificación de resúmenes y cuándo delegar a un subagente.

¿Qué es f-mode?

F-mode (modo filtro primero) es un skill para agentes de IA como Claude Code, diseñado para ahorrar tokens y mejorar la calidad del razonamiento manteniendo los datos brutos fuera del contexto. En lugar de leer archivos completos, logs enormes o resultados de consultas SQL, el agente aplica pipelines de shell, comandos como `grep`, `jq`, `tail` o scripts cortos para obtener solo un resumen compacto. Esto evita que el contexto se llene de ruido y permite que el agente dedique más tokens a pensar y resolver problemas. El skill cubre múltiples plataformas de desarrollo (pytest, vitest, jest, go test, cargo test), manejo de navegadores con scripts que devuelven JSON compacto, delegación a subagentes para investigaciones amplias, y reglas estrictas para no ocultar fallos (conservar códigos de salida, imprimir conteos con denominadores). También incluye higiene del contexto (deshabilitar skills no usados) y una regla de parada: si la misma corrección falla dos veces, se detiene y busca la causa raíz. En resumen, F-mode transforma la forma en que los agentes interactúan con datos grandes, haciendo que el proceso sea más eficiente, económico y fiable.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/komilovsg/f-mode/tree/HEAD/skills/f-mode

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Modo F — modo filtro primero

Principio: los datos brutos nunca entran en el contexto; solo el resultado. Mueve la lógica a los datos (un pipeline de shell, un script corto, un subagente) y trae de vuelta un resumen compacto. Cada token de un volcado de logs que lees es un token que no puedes gastar en razonamiento — y un contexto largo y ruidoso empeora el razonamiento, no solo lo hace más caro.

1. Filtrar y agregar antes de leer

En lugar deHaz
cat app.loggrep -c ERROR app.log; luego `grep -E 'ERROR
leer un JSON de 5 MB`jq '.items
SELECT * FROM ordersSELECT status, count(*) FROM orders GROUP BY 1
git loggit log --oneline -20, git log --format=%s origin/main..HEAD
desplazar un archivogrep -n 'def handle' file.py, luego leer con offset/límite

2. El filtrado nunca debe ocultar fallos

Una vista truncada que parece verde es peor que ninguna vista.

  • Conserva el código de salida: set -o pipefail, o cmd > out.txt 2>&1; echo "exit=$?"; tail -20 out.txt. Piping directamente a tail pierde el código de salida del comando.
  • Grep marcadores de fallo además de tail: grep -cE 'FAIL|ERROR|Traceback|panic' out.txt.
  • Imprime conteos con denominadores: pasaron 41/42, nunca solo "OK".
pytest -q --tb=short > /tmp/t.out 2>&1; echo "exit=$?"
grep -cE 'FAILED|ERROR' /tmp/t.out; tail -15 /tmp/t.out

3. Muchas comprobaciones similares → un script, una tabla

Diez endpoints, veinte archivos, treinta filas para validar: escribe un script que itere e imprima una tabla compacta (nombre | estado | detalle) más totales. No diez llamadas a herramientas con diez salidas completas.

for u in / /api/health /api/items; do
  printf "%-14s %s\n" "$u" "$(curl -s -o /dev/null -w '%{http_code}' "localhost:8000$u")"
done

4. Verifica el resumen por su significado, no por su forma

Un resultado con apariencia válida puede seguir siendo incorrecto. Compáralo con un valor esperado o un total de cordura: los conteos suman al tamaño de entrada, una fila conocida está presente, el número de archivos coincide con ls | wc -l. Si un resumen no se puede verificar, dilo.

5. Tests

Modo silencioso, trazas cortas, cola de la sección de fallos:

  • pytest -q --tb=short
  • vitest run --reporter=dot, jest --silent
  • go test ./... 2>&1 | grep -E '^(FAIL|ok|---)'
  • cargo test -q

6. Comprobaciones en el navegador

Evalúa un script que devuelva JSON compacto ({title, errors: n, buttons: n, overflowX: bool}) en lugar de instantáneas DOM completas. Toma una instantánea solo cuando la estructura DOM en sí es la pregunta. Capturas de pantalla para comprobaciones visuales, no para leer texto.

7. Investigación amplia → subagente

Búsquedas grandes, análisis forense de logs, volcados de base de datos: delega a un subagente que devuelva conclusiones con referencias archivo:línea. Su resultado sigue siendo una afirmación — verifica los puntos clave antes de actuar sobre ellos.

8. Secretos y datos personales

Nunca imprimas secretos o PII reales en resúmenes o diagnósticos. Enmascara (postgres://***) o cuéntalos (correos encontrados: 12). Enmascara cadenas de conexión y claves dentro de mensajes de excepción capturados también.

9. Lectura de archivos

  • grep -n primero, luego solo el rango relevante con offset/límite.
  • El código fuente que estás a punto de editar se lee completo — las lecturas parciales causan ediciones rotas.
  • No vuelvas a leer un archivo justo después de editarlo para "verificar"; la herramienta de edición ya informa errores en caso de fallo.

10. Regla de parada

La misma corrección falló dos veces → para. Encuentra la causa raíz desde la línea exacta del error, o pregunta. Sin tercer reintento ciego.

11. Higiene del contexto

  • Limpia el contexto entre tareas no relacionadas; compacta sesiones largas.
  • Deshabilita plugins, skills y servidores MCP que no uses en este proyecto: cada uno cuesta tokens de prompt en cada solicitud.
  • Juzga los ahorros por números reales de uso (ej. /cost), no por porcentajes declarados.

Skills relacionados