// docs / ai fix prompts
AI improvement prompts
Every finding has a Copy prompt button beneath the remediation. Click it, paste into Claude / Cursor / Copilot, and the agent gets the canonical improvement recipe for that website-quality issue — no Claude API call from us.
Cómo funciona
Dos piezas de datos se combinan al hacer clic:
- El hallazgo: título, descripción, evidencia, remediación, CWE; ya cargado con el informe.
- El framework de tu código: detectado desde los hallazgos
discovery.tech-fingerprintdel escaneo (Next.js, React, Vue, Django, Express, Rails, Laravel, Flask). Si no se detecta un framework, usa una receta genérica como fallback (el prompt del agente le pide al LLM que lo detecte desde el estado del repo).
Templates live in lib/scanner/fix-prompts.ts. The registry has check-specific guidance for crawlability, search presentation, semantic content, structured data, media, performance, accessibility, forms, mobile/i18n, runtime, owner journeys, and repo-quality issues. For everything else, the existing remediation field on the finding becomes the generic recipe.
Cómo se ve el prompt
Fix the "Hero image is lazy-loaded and missing dimensions" finding on /pricing. Issue: The largest above-the-fold image is marked loading="lazy" and has no explicit width/height. That can delay LCP and create layout shift. Codebase context: Next.js. Recommended fix: Use next/image or the existing image component with explicit width/height, responsive sizes, meaningful alt text, and priority/fetchPriority for the first major visual on the page. Constraints: - Don't break existing tests; run the test suite after the change. - Match the codebase's existing style and lint config. - Add a brief comment explaining the performance reasoning only where the fix would otherwise look arbitrary. - If the fix needs a new dependency, install it via the project's package manager (npm / pnpm / pip / bundle / composer). Reference: Core Web Vitals / Largest Contentful Paint guidance.
Frameworks compatibles
Mostramos snippets específicos por framework para:
- Next.js, React, Vue, Nuxt, Svelte (frontend)
- Express, Fastify (backend Node.js)
- Django, Flask (Python)
- Ruby on Rails
- Laravel (PHP)
- ASP.NET Core (planificado; hoy usa fallback genérico)
La detección de framework es de mejor esfuerzo. Buscamos tags __NEXT_DATA__, __NUXT__, cookies hash (laravel_session), headers X-Powered-By y algunas otras señales. Si usas un framework personalizado, el prompt cae a la receta genérica y el agente lo deduce desde tu package.json.
Úsalo desde tu agente de IA
Si conectaste el servidor MCP, el mismo prompt se expone como comando slash. Desde Claude Desktop:
/fixweb-fix finding_id=550e8400-e29b-41d4-a716-446655440000
The renderer looks up the finding, detects the framework from the parent scan when available, renders the templated prompt, and injects it into your conversation as the user message. No round-trip to our Claude API; templates are pure and free.
Por qué no llamamos a Claude en cada clic
En el lanzamiento consideramos llamar a la API de Anthropic en cada clic para refinar el prompt con contexto del código. No lo hicimos porque:
- El agente donde pegas el prompt ya tiene contexto del código: estás usando Cursor / Claude Desktop con tu repo abierto.
- Crear plantillas por (comprobación × framework) cubre ~80% del valor sin costo por clic.
- Más adelante, una opción “Refinar con IA para mi código” podría disparar la API si los usuarios la quieren. Hoy, no.
