// 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.
Så fungerar det
Två datadelar kombineras vid klick:
- Fyndet - titel, beskrivning, evidens, åtgärd, CWE - redan laddat med rapporten.
- Kodbasens ramverk - upptackt från skanningens
discovery.tech-fingerprint-fynd (Next.js, React, Vue, Django, Express, Rails, Laravel, Flask). Faller tillbaka till ett generiskt recept när inget ramverk upptacks (agentprompten ber då LLM:en att upptacka det från repots tillstånd).
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.
Hur prompten ser ut
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.
Stödda ramverk
Vi visar ramverksspecifika snippets för:
- Next.js, React, Vue, Nuxt, Svelte (frontend)
- Express, Fastify (Node.js-backend)
- Django, Flask (Python)
- Ruby on Rails
- Laravel (PHP)
- ASP.NET Core (planerat, faller tillbaka till generiskt i dag)
Ramverksdetektering är best effort. Vi sniffar __NEXT_DATA__-taggar, __NUXT__, hash-cookies (laravel_session), X-Powered-By-headers och några andra signaler. Om du kör ett eget ramverk faller prompten tillbaka till det generiska receptet och agenten listar ut det från din package.json.
Använd från din AI-agent
Om du har kopplat in MCP-servern exponeras samma prompt som ett slashkommando. Från 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.
Varfor vi inte anropar Claude per klick
Vid lansering övervägde vi att anropa Anthropic API för varje klick för att förfina prompten med kodbaskontext. Vi gjorde det inte, eftersom:
- Agenten som användaren klistrar in i har redan kodbaskontext - de använder Cursor / Claude Desktop med sitt repo öppet.
- Mallning per (kontroll × ramverk) tacker ~80% av värdet utan någon kostnad per klick.
- Ett opt-in för “Förfina med AI för min kodbas” skulle kunna anropa API:t senare om användare vill. I dag: nej.
