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.

چطور کار می‌کند

دو تکه داده هنگام کلیک با هم ترکیب می‌شوند:

  • Finding — عنوان، توضیح، evidence، remediation، CWE — از قبل همراه گزارش load شده است.
  • Framework کدبیس شما — از findingهای discovery.tech-fingerprint همان scan تشخیص داده می‌شود (Next.js، React، Vue، Django، Express، Rails، Laravel، Flask). اگر framework تشخیص داده نشود به recipe عمومی fallback می‌کند (بعد prompt از LLM می‌خواهد آن را از وضعیت 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.

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.

Frameworkهای پشتیبانی‌شده

Snippetهای framework-specific را برای این‌ها نشان می‌دهیم:

  • Next.js، React، Vue، Nuxt، Svelte (frontend)
  • Express، Fastify (Node.js backend)
  • Django، Flask (Python)
  • Ruby on Rails
  • Laravel (PHP)
  • ASP.NET Core (برنامه‌ریزی‌شده، فعلا fallback به عمومی)

تشخیص framework به‌صورت best-effort است. tagهای __NEXT_DATA__، __NUXT__، cookieهای hash مثل (laravel_session)، headerهای X-Powered-By، و چند signal دیگر را sniff می‌کنیم. اگر custom framework اجرا می‌کنید، prompt به recipe عمومی fallback می‌کند و agent از package.json شما تشخیص می‌دهد.

از AI agent خود استفاده‌اش کنید

اگر سرور MCP را وصل کرده باشید، همان prompt به‌صورت slash command exposed می‌شود. از 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.

چرا برای هر کلیک به Claude نمی‌زنیم

در launch به این فکر کردیم که برای هر کلیک Anthropic API را صدا بزنیم تا prompt را با context کدبیس refine کند. این کار را نکردیم، چون:

  • agentی که کاربر در آن paste می‌کند از قبل context کدبیس را دارد؛ آن‌ها از Cursor / Claude Desktop با repo باز استفاده می‌کنند.
  • Templating برای هر (check × framework) حدود ۸۰٪ ارزش را بدون cost به‌ازای کلیک پوشش می‌دهد.
  • یک opt-in با عنوان “Refine with AI for my codebase” می‌تواند بعدا API را اجرا کند اگر کاربران بخواهند. امروز، نه.
AI improvement prompts — Docs · FixWeb