/fix-posthog
Run /check-posthog , then fix the highest priority issue.
What This Does
-
Run /check-posthog to identify issues
-
Pick the highest priority unfixed issue
-
Implement the fix
-
Verify the fix works
-
Report what was fixed
Fixes one issue per invocation. Run multiple times to fix multiple issues.
Fix Playbook
P0: SDK Not Initialized
Problem: initPostHog() not called or PostHogProvider missing.
Fix:
codex exec --full-auto "Add PostHog initialization.
Create lib/analytics/posthog.ts with initPostHog().
Create PostHogProvider component.
Add to app/layout.tsx.
Reference: ~/.claude/skills/posthog/references/sdk-patterns.md.
Verify: pnpm typecheck"
--output-last-message /tmp/codex-fix.md 2>/dev/null
P0: API Key Missing
Problem: NEXT_PUBLIC_POSTHOG_KEY not set.
Fix:
Get key from PostHog dashboard
Add to .env.local
echo "NEXT_PUBLIC_POSTHOG_KEY=phc_xxx" >> .env.local
Add to Vercel production
printf '%s' 'phc_xxx' | vercel env add NEXT_PUBLIC_POSTHOG_KEY production
P1: No Reverse Proxy
Problem: Direct PostHog host gets blocked by ad blockers.
Fix:
codex exec --full-auto "Add PostHog reverse proxy to next.config.
Add rewrites for /ingest/* to us.i.posthog.com/.
Add rewrites for /ingest/static/ to us-assets.i.posthog.com/static/*.
Update posthog.init to use api_host: '/ingest'.
Reference: ~/.claude/skills/posthog/references/sdk-patterns.md section 4.
Verify: pnpm build"
--output-last-message /tmp/codex-fix.md 2>/dev/null
P1: Privacy Masking Missing
Problem: mask_all_text and maskAllInputs not configured.
Fix:
codex exec --full-auto "Add privacy settings to PostHog init.
Add mask_all_text: true.
Add session_recording.maskAllInputs: true.
Add person_profiles: 'identified_only'.
Reference: ~/.claude/skills/posthog/references/privacy-checklist.md.
Verify: pnpm typecheck"
--output-last-message /tmp/codex-fix.md 2>/dev/null
P1: PII in identify() Calls
Problem: Email/name passed to posthog.identify() .
Fix:
codex exec --full-auto "Remove PII from posthog.identify calls.
Only pass user ID, no email/name/phone properties.
Search: grep -rE 'posthog.identify.email|identify.name' --include='.ts' --include='.tsx'.
Verify: pnpm typecheck && grep -rE 'posthog.identify.*email' returns no results"
--output-last-message /tmp/codex-fix.md 2>/dev/null
P2: No Standard Events
Problem: No typed event schema defined.
Fix:
codex exec --full-auto "Add typed event schema to PostHog analytics.
Create StandardEvent type with: user_signed_up, user_activated, subscription_started, subscription_cancelled, feature_used.
Add trackEvent function that enforces type.
Reference: ~/.claude/skills/posthog/references/sdk-patterns.md section 1.
Verify: pnpm typecheck"
--output-last-message /tmp/codex-fix.md 2>/dev/null
Verification
After each fix, verify with MCP:
Check events are flowing
mcp__posthog__query-run with TrendsQuery for last 1h
Check for errors
mcp__posthog__list-errors
Manual browser verification:
-
Open DevTools → Network
-
Filter for ingest or posthog
-
Trigger action → verify request succeeds
-
Check PostHog Live Events → verify event appears
Output
After fixing, report:
-
What was fixed
-
How it was verified
-
What's the next priority issue (if any)
Related
-
/check-posthog
-
Audit only (no fixes)
-
/log-posthog-issues
-
Create GitHub issues
-
/posthog
-
Full lifecycle workflow