Implement core Gamma workflow for AI presentation generation. Use when creating presentations from prompts, documents, or structured content with AI assistance. Trigger with phrases like "gamma generate presentation", "gamma AI slides", "gamma from prompt", "gamma content to slides", "gamma automation".
From gamma-packnpx claudepluginhub nickloveinvesting/nick-love-plugins --plugin gamma-packThis skill is limited to using the following tools:
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Details PluginEval's skill quality evaluation: 3 layers (static, LLM judge), 10 dimensions, rubrics, formulas, anti-patterns, badges. Use to interpret scores, improve triggering, calibrate thresholds.
Implement the core workflow for generating presentations using Gamma's AI capabilities from various input sources.
gamma-sdk-patterns setupimport { GammaClient } from '@gamma/sdk';
const gamma = new GammaClient({ apiKey: process.env.GAMMA_API_KEY });
async function generateFromPrompt(topic: string, slides: number = 10) {
const presentation = await gamma.presentations.generate({
prompt: topic,
slideCount: slides,
style: 'professional',
includeImages: true,
includeSpeakerNotes: true,
});
return presentation;
}
// Usage
const deck = await generateFromPrompt('Introduction to Machine Learning', 8);
console.log('Generated:', deck.url);
async function generateFromDocument(filePath: string) {
const document = await fs.readFile(filePath, 'utf-8');
const presentation = await gamma.presentations.generate({
sourceDocument: document,
sourceType: 'markdown', // or 'pdf', 'docx', 'text'
extractKeyPoints: true,
maxSlides: 15,
});
return presentation;
}
interface SlideOutline {
title: string;
points: string[];
imagePrompt?: string;
}
async function generateFromOutline(outline: SlideOutline[]) {
const presentation = await gamma.presentations.generate({
slides: outline.map(slide => ({
title: slide.title,
content: slide.points.join('\n'),
generateImage: slide.imagePrompt,
})),
style: 'modern',
});
return presentation;
}
async function batchGenerate(topics: string[]) {
const results = await Promise.allSettled(
topics.map(topic =>
gamma.presentations.generate({
prompt: topic,
slideCount: 5,
})
)
);
return results.map((r, i) => ({
topic: topics[i],
status: r.status,
url: r.status === 'fulfilled' ? r.value.url : null,
error: r.status === 'rejected' ? r.reason.message : null,
}));
}
| Error | Cause | Solution |
|---|---|---|
| Generation Timeout | Complex prompt | Reduce slide count or simplify |
| Content Too Long | Document exceeds limit | Split into sections |
| Rate Limit | Too many requests | Implement queue system |
| Style Not Found | Invalid style name | Check available styles |
Proceed to gamma-core-workflow-b for presentation editing and export workflows.
Basic usage: Apply gamma core workflow a to a standard project setup with default configuration options.
Advanced scenario: Customize gamma core workflow a for production environments with multiple constraints and team-specific requirements.