FixWeb

// 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.

Comment ça marche

Deux éléments de données se combinent au clic :

  • Le constat : titre, description, preuve, remédiation, CWE, déjà chargés avec le rapport.
  • Le framework de ton codebase : détecté à partir des constats discovery.tech-fingerprint du scan (Next.js, React, Vue, Django, Express, Rails, Laravel, Flask). Si aucun framework n'est détecté, FixWeb revient à une recette générique (le prompt de l'agent demande alors au LLM de l'identifier depuis l'état du dépôt).

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.

À quoi ressemble le 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 pris en charge

Nous affichons des extraits spécifiques aux frameworks pour :

  • Next.js, React, Vue, Nuxt, Svelte (frontend)
  • Express, Fastify (backend Node.js)
  • Django, Flask (Python)
  • Ruby on Rails
  • Laravel (PHP)
  • ASP.NET Core (prévu, fallback générique aujourd'hui)

La détection de framework fait au mieux. Nous repérons les balises __NEXT_DATA__, __NUXT__, les cookies de hash (laravel_session), les en-têtes X-Powered-By et quelques autres signaux. Si tu utilises un framework maison, le prompt revient à la recette générique et l'agent le déduit depuis ton package.json.

L'utiliser depuis ton agent IA

Si tu as câblé le serveur MCP, le même prompt est exposé comme commande slash. Depuis 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.

Pourquoi nous n'appelons pas Claude à chaque clic

Au lancement, nous avons envisagé d'appeler l'API Anthropic à chaque clic pour affiner le prompt avec le contexte du codebase. Nous ne l'avons pas fait, parce que :

  • L'agent dans lequel l'utilisateur colle le prompt a déjà le contexte du codebase : il utilise Cursor / Claude Desktop avec son dépôt ouvert.
  • Les templates par couple (check × framework) couvrent ~80 % de la valeur sans coût par clic.
  • Une option « Affiner avec l'IA pour mon codebase » pourrait appeler l'API plus tard si les utilisateurs la veulent. Aujourd'hui, non.
AI improvement prompts — Docs · FixWeb