pitch-deck-generator
Guides through AI pitch deck generation workflow and troubleshooting. Use when creating pitch decks, debugging wizard errors, troubleshooting Edge Functions, or working with the PitchDeckWizard component.
About pitch-deck-generator
pitch-deck-generator is a Claude AI skill developed by amo-tech-ai. Guides through AI pitch deck generation workflow and troubleshooting. Use when creating pitch decks, debugging wizard errors, troubleshooting Edge Functions, or working with the PitchDeckWizard component. This powerful Claude Code plugin helps developers automate workflows and enhance productivity with intelligent AI assistance.
Why use pitch-deck-generator? With 0 stars on GitHub, this skill has been trusted by developers worldwide. Install this Claude skill instantly to enhance your development workflow with AI-powered automation.
| name | pitch-deck-generator |
| description | Guides through AI pitch deck generation workflow and troubleshooting. Use when creating pitch decks, debugging wizard errors, troubleshooting Edge Functions, or working with the PitchDeckWizard component. |
| version | 1.0.0 |
Pitch Deck Generator Skill
Purpose
Guide Claude through the pitch deck generation workflow using the project's architecture (React + Supabase + OpenAI Edge Functions).
Architecture Overview
Frontend: /src/pages/PitchDeckWizard.tsx
Backend: /supabase/functions/pitch-deck-assistant/index.ts
Database: pitch_conversations table (stores chat history)
Tables: presentations, profiles, pitch_conversations
Workflow Steps
1. User Journey
User → Chat Interface → Edge Function → OpenAI API → Stream Response
↓
Progress Tracking (0-100%)
↓
Generate Deck Button (appears at 80%+)
↓
Create Presentation → Redirect to /presentations/{id}/outline
2. Key Files to Check
Frontend Chat:
src/pages/PitchDeckWizard.tsx- Main wizard interfacesrc/hooks/usePresentations.ts- Data fetching logic
Backend:
supabase/functions/pitch-deck-assistant/index.ts- Chat endpointsupabase/functions/generate-pitch-deck/index.ts- Deck generation
Database:
pitch_conversations- Stores chat progresspresentations- Stores generated decks
Common Issues & Fixes
Issue 1: AI Not Responding
Symptom: Chat message sent but no response Check:
# Verify Edge Function is deployed supabase functions list | grep pitch-deck-assistant # Check function logs supabase functions logs pitch-deck-assistant --tail
Fix: Redeploy if not active
cd supabase/functions/pitch-deck-assistant supabase functions deploy pitch-deck-assistant
Issue 2: Progress Not Updating
Symptom: Progress bar stuck at same percentage Check Database:
SELECT id, completeness, collected_data FROM pitch_conversations ORDER BY created_at DESC LIMIT 1;
Fix: Ensure completeness field updates in Edge Function
Issue 3: Generate Button Not Appearing
Symptom: Chat completes but no button Check:
- Frontend:
PitchDeckWizard.tsxline ~120 (button visibility logic) - Condition:
completeness >= 80Fix: Verify progress reaches 80%+ in database
Issue 4: RLS Policy Blocking Access
Symptom: 401 errors when fetching presentations Check:
-- Verify RLS is enabled SELECT tablename, rowsecurity FROM pg_tables WHERE tablename = 'presentations'; -- Check if presentation is public or owned by user SELECT id, is_public, profile_id FROM presentations WHERE id = '{presentation_id}';
Fix: Set is_public = true for test presentations
Testing Checklist
Quick Test (2 minutes)
# 1. Start dev server pnpm dev # 2. Navigate to wizard # http://localhost:8080/pitch-deck-wizard # 3. Send test message # "I want to create a pitch deck for TestCorp, an AI company" # 4. Verify response appears # ✅ AI responds # ✅ Progress bar updates # ✅ No console errors
Full E2E Test (5 minutes)
- Open wizard:
/pitch-deck-wizard - Complete conversation (3-4 messages)
- Verify progress reaches 80%+
- Click "Generate Deck"
- Wait for redirect to
/presentations/{id}/outline - Verify all 10 slides render
Edge Function Structure
Request Format
{ "conversationId": "uuid", "message": "User message text", "messages": [ {"role": "user", "content": "Previous message"}, {"role": "assistant", "content": "Previous response"} ] }
Response Format (Streaming)
data: {"type":"progress","completeness":20,"message":"AI response chunk"} data: {"type":"message","content":"More text"} data: {"type":"complete"}
Environment Variables
Required in Edge Function (Supabase secrets):
OPENAI_API_KEY- OpenAI API keySUPABASE_URL- Project URLSUPABASE_ANON_KEY- Public key
Check secrets:
supabase secrets list
Set secret:
supabase secrets set OPENAI_API_KEY=sk-...
Debugging Commands
Check Edge Function Status
supabase functions list
View Live Logs
supabase functions logs pitch-deck-assistant --tail
Test Edge Function Directly
curl -X POST \ "https://dhesktsqhcxhqfjypulk.supabase.co/functions/v1/pitch-deck-assistant" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${SUPABASE_ANON_KEY}" \ -d '{"message":"Test message"}'
Check Database State
-- Latest conversations SELECT id, completeness, created_at FROM pitch_conversations ORDER BY created_at DESC LIMIT 5; -- Recent presentations SELECT id, title, created_at FROM presentations ORDER BY created_at DESC LIMIT 5;
Performance Optimization
Frontend
- Use React.memo for chat messages
- Debounce progress updates (max 1/second)
- Stream responses (don't wait for complete response)
Backend
- Use OpenAI streaming API
- Return chunks immediately (don't buffer)
- Update database in background
Database
- Add index on
pitch_conversations.profile_id - Add index on
presentations.profile_id
Security Checklist
- RLS enabled on
pitch_conversations✅ - RLS enabled on
presentations✅ - API keys only in Edge Functions (never frontend) ✅
- User can only access own conversations ✅
- Public presentations accessible to all ✅
Quick Reference
Start Development:
pnpm dev
Deploy Edge Function:
supabase functions deploy pitch-deck-assistant
Check Logs:
supabase functions logs pitch-deck-assistant --tail
Test Locally:
- Open: http://localhost:8080/pitch-deck-wizard
- Send message
- Verify response
This skill guides Claude through the complete pitch deck generation workflow, from frontend to backend to database.

amo-tech-ai
medellin-spark
Download Skill Files
View Installation GuideDownload the complete skill directory including SKILL.md and all related files