// 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.
Jak to funguje
Po kliknutí se zkombinují dva kusy dat:
- Nález — název, popis, důkazy, náprava, CWE — už načtený s reportem.
- Framework tvé codebase — detekovaný z nálezů
discovery.tech-fingerprintve skenu (Next.js, React, Vue, Django, Express, Rails, Laravel, Flask). Když se framework nedetekuje, použije se generický recept (prompt agenta pak požádá LLM, aby ho poznal ze stavu 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.
Jak prompt vypadá
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.
Podporované frameworky
Zobrazujeme frameworkově specifické snippety pro:
- Next.js, React, Vue, Nuxt, Svelte (frontend)
- Express, Fastify (Node.js backend)
- Django, Flask (Python)
- Ruby on Rails
- Laravel (PHP)
- ASP.NET Core (plánováno, dnes fallback na generický recept)
Detekce frameworku je best-effort. Čicháme tagy __NEXT_DATA__, __NUXT__, hash cookies (laravel_session), hlavičky X-Powered-By a pár dalších signálů. Pokud používáš vlastní framework, prompt spadne zpět na generický recept a agent si ho odvodí z tvého package.json.
Použij to ze svého AI agenta
Pokud máš zapojený MCP server, stejný prompt je vystavený jako slash příkaz. Z 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.
Proč při každém kliknutí nevoláme Claude
Při spuštění jsme zvažovali volat Anthropic API pro každé kliknutí, aby se prompt zpřesnil kontextem codebase. Neudělali jsme to, protože:
- Agent, do kterého uživatel vkládá, už kontext codebase má — používá Cursor / Claude Desktop s otevřeným repo.
- Šablonování po dvojici (kontrola × framework) pokryje ~80 % hodnoty bez nákladu za kliknutí.
- Volitelná možnost „Zpřesnit AI pro mou codebase” by později mohla API spustit, pokud ji uživatelé budou chtít. Dnes ne.
