--- name: fix-virality description: | Run /check-virality, then fix the highest priority virality issue. Creates one fix per invocation. Invoke again for next issue. Use /log-virality-issues to create issues without fixing. --- # /fix-virality Fix the highest priority viral growth gap. ## What This Does 1. Invoke `/check-virality` to audit shareability 2. Identify highest priority gap 3. Fix that one issue 4. Verify the fix 5. Report what was done **This is a fixer.** It fixes one issue at a time. Run again for next issue. Use `/virality` for full setup. ## Process ### 1. Run Primitive Invoke `/check-virality` skill to get prioritized findings. ### 2. Fix Priority Order Fix in this order: 1. **P0**: No OG tags, no root metadata 2. **P1**: Dynamic OG images, share mechanics, Twitter cards 3. **P2**: Referral system, UTM tracking, share prompts 4. **P3**: Launch assets, changelog ### 3. Execute Fix **No OG tags (P0):** Add to `app/layout.tsx`: ```typescript import type { Metadata } from 'next'; export const metadata: Metadata = { metadataBase: new URL(process.env.NEXT_PUBLIC_APP_URL!), title: { default: 'Your Product - Tagline', template: '%s | Your Product', }, description: 'One sentence that makes people want to try it.', openGraph: { type: 'website', locale: 'en_US', siteName: 'Your Product', images: ['/og-default.png'], }, twitter: { card: 'summary_large_image', creator: '@yourhandle', }, }; ``` **No dynamic OG images (P1):** ```bash pnpm add @vercel/og ``` Create `app/api/og/route.tsx`: ```typescript import { ImageResponse } from 'next/og'; export const runtime = 'edge'; export async function GET(request: Request) { const { searchParams } = new URL(request.url); const title = searchParams.get('title') ?? 'Your Product'; return new ImageResponse( (