gamma-core-workflow-a
Generate presentations, documents, and webpages via Gamma API. Use when creating content from text prompts, configuring themes, image styles, text modes, and output formats. Trigger: "gamma generate", "gamma presentation from text", "gamma AI slides", "gamma create deck", "gamma content generation".
What this skill does
# Gamma Core Workflow A: Content Generation
## Overview
Generate presentations, documents, webpages, and social posts using Gamma's Generate API (`POST /v1.0/generations`). This skill covers the full parameter set: content, output format, text mode, text amount, themes, image options, sharing, folders, and export format.
## Prerequisites
- Completed `gamma-sdk-patterns` (client wrapper ready)
- Pro account with available credits
- Workspace themes configured (optional)
## API Parameters Reference
| Parameter | Type | Options | Default |
|-----------|------|---------|---------|
| `content` | string | Your text/prompt | Required |
| `outputFormat` | string | `presentation`, `document`, `webpage`, `social_post` | `presentation` |
| `textMode` | string | `generate`, `condense`, `preserve` | `generate` |
| `textAmount` | string | `brief`, `medium`, `detailed`, `extensive` | `medium` |
| `themeId` | string | From `GET /v1.0/themes` | Workspace default |
| `imageOptions.style` | string | Free text (e.g., `"photorealistic"`, `"watercolor illustration"`) | AI default |
| `exportAs` | string | `pdf`, `pptx`, `png` | None (no auto-export) |
| `sharingOptions` | object | `workspaceAccess`, `externalAccess` | Workspace defaults |
| `folderIds` | string[] | From `GET /v1.0/folders` | Root folder |
## Instructions
### Step 1: Basic Presentation Generation
```typescript
import { createGammaClient, pollUntilDone } from "./lib/gamma";
const gamma = createGammaClient({ apiKey: process.env.GAMMA_API_KEY! });
// Simple generation — just content and format
const { generationId } = await gamma.generate({
content: "Create a 10-card pitch deck for a sustainable energy startup",
outputFormat: "presentation",
});
const result = await pollUntilDone(gamma, generationId);
console.log(`View: ${result.gammaUrl}`);
```
### Step 2: Full Parameter Generation
```typescript
// Use all available parameters for precise control
async function generateFullControl() {
// First, discover workspace themes
const themes = await gamma.listThemes();
const corporateTheme = themes.find((t) => t.name.includes("Corporate"));
// Discover folders
const folders = await gamma.listFolders();
const reportsFolder = folders.find((f) => f.name === "Reports");
const { generationId } = await gamma.generate({
content: `
Q1 2026 Business Review
- Revenue up 23% YoY
- Customer acquisition cost reduced by 15%
- Three new product lines launched
- Team grew from 45 to 62 employees
`,
outputFormat: "presentation",
textMode: "generate", // AI expands your bullet points
textAmount: "detailed", // More text per card
themeId: corporateTheme?.id,
exportAs: "pptx", // Auto-generate PPTX download
imageOptions: {
style: "professional corporate photography",
},
sharingOptions: {
workspaceAccess: "comment", // Team can comment
externalAccess: "view", // External viewers read-only
},
folderIds: reportsFolder ? [reportsFolder.id] : [],
});
const result = await pollUntilDone(gamma, generationId);
console.log(`View: ${result.gammaUrl}`);
console.log(`Download PPTX: ${result.exportUrl}`);
console.log(`Credits used: ${result.creditsUsed}`);
}
```
### Step 3: Text Mode Comparison
```typescript
// Same content, different text modes
const content = "Benefits of remote work: flexibility, reduced commute, global talent access";
// "generate" — AI expands bullets into full paragraphs
await gamma.generate({ content, textMode: "generate", outputFormat: "presentation" });
// "condense" — AI summarizes, keeps it concise
await gamma.generate({ content, textMode: "condense", outputFormat: "presentation" });
// "preserve" — uses your text as-is, no AI rewriting
await gamma.generate({ content, textMode: "preserve", outputFormat: "presentation" });
```
### Step 4: Document and Webpage Generation
```typescript
// Long-form document
const { generationId: docId } = await gamma.generate({
content: "Comprehensive guide to implementing CI/CD pipelines with GitHub Actions",
outputFormat: "document",
textAmount: "extensive",
exportAs: "pdf",
});
// Webpage
const { generationId: webId } = await gamma.generate({
content: "Product landing page for an AI-powered code review tool",
outputFormat: "webpage",
imageOptions: { style: "modern minimalist tech" },
});
// Social post
const { generationId: socialId } = await gamma.generate({
content: "Announcing our Series A funding round of $12M",
outputFormat: "social_post",
textAmount: "brief",
});
```
### Step 5: Batch Generation with Rate Limiting
```typescript
import pLimit from "p-limit";
const limit = pLimit(3); // Max 3 concurrent generations
const topics = [
"Machine Learning Fundamentals",
"Cloud Architecture Best Practices",
"API Design Patterns",
"DevOps Culture and Practices",
];
const results = await Promise.allSettled(
topics.map((topic) =>
limit(async () => {
const { generationId } = await gamma.generate({
content: `Create a training deck: ${topic}`,
outputFormat: "presentation",
textAmount: "medium",
exportAs: "pdf",
});
return pollUntilDone(gamma, generationId);
})
)
);
results.forEach((r, i) => {
if (r.status === "fulfilled") {
console.log(`${topics[i]}: ${r.value.gammaUrl}`);
} else {
console.error(`${topics[i]}: FAILED — ${r.reason.message}`);
}
});
```
### Step 6: curl Reference
```bash
# Generate with all parameters
curl -X POST "https://public-api.gamma.app/v1.0/generations" \
-H "X-API-KEY: ${GAMMA_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"content": "5-card overview of AI in healthcare",
"outputFormat": "presentation",
"textMode": "generate",
"textAmount": "medium",
"themeId": "theme_abc123",
"exportAs": "pdf",
"imageOptions": { "style": "medical illustration" },
"sharingOptions": {
"workspaceAccess": "edit",
"externalAccess": "view"
}
}'
```
## Credit Cost Awareness
| Image Model Tier | Credits per Image |
|-------------------|-------------------|
| Standard | 2-15 |
| Advanced | 20-33 |
| Premium | 34-75 |
| Ultra | 30-125 |
A 10-card deck with 5 standard images costs approximately 20-60 credits.
## Error Handling
| Error | Cause | Solution |
|-------|-------|----------|
| 422 Unprocessable | Invalid parameter combination | Check parameter types and allowed values |
| `status: "failed"` | Content too complex or long | Simplify content or reduce scope |
| 429 Rate Limited | Too many concurrent generations | Use `p-limit` for concurrency control |
| Empty `exportUrl` | No `exportAs` specified | Add `exportAs: "pdf"` to request |
## Resources
- [Generate a Gamma](https://developers.gamma.app/reference/generate-a-gamma)
- [Generate API Parameters Explained](https://developers.gamma.app/guides/generate-api-parameters-explained)
- [Themes and Folders APIs](https://developers.gamma.app/docs/list-themes-and-list-folders-apis-explained)
## Next Steps
Proceed to `gamma-core-workflow-b` for template-based generation and export retrieval.
Related in Image & Video
watch
IncludedWatch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.
physical-ai-defect-image-generation
IncludedUse when the user wants to orchestrate defect image generation, run associated setup, or handle outputs on OSMO. The Day 0 path handles cold-start with USD-to-ROI, image-edit augmentation, and AnomalyGen to create initial PCBA datasets. The Day 1 path performs inference and labeling on real images. This skill helps with first-time asset setup, creation of finetuning checkpoints, and configuring deployment. Trigger keywords: defect image generation, dig workflow, dig pipeline, defect image detection workflow, aoi pipeline, aoi anomalygen, usd2roi anomalygen, day 0 pcba, day 1 pcba, day 1 real-photo alignment, day 1 manual roi, metal surface anomaly, glass defect, anomalygen finetune, setup_pcb, setup_metal, setup_glass, setup_pretrained, dig setup, dig datasets, dig pretrained checkpoint, dig image-edit endpoint.
accelint-react-best-practices
IncludedReact performance optimization and best practices. ALWAYS use this skill when working with any React code - writing components, hooks, JSX; refactoring; optimizing re-renders, memoization, state management; reviewing for performance; fixing hydration mismatches; debugging infinite re-renders, stale closures, input focus loss, animations restarting; preventing remounting; implementing transitions, lazy initialization, effect dependencies. Even simple React tasks benefit from these patterns. Covers React 19+ (useEffectEvent, Activity, ref props). Triggers - useEffect, useState, useMemo, useCallback, memo, inline components, nested components, components inside components, re-render, performance, hydration, SSR, Next.js, useDeferredValue, combined hooks.
elevenlabs-agents
IncludedBuild conversational AI voice agents with ElevenLabs Platform using React, JavaScript, React Native, or Swift SDKs. Configure agents, tools (client/server/MCP), RAG knowledge bases, multi-voice, and Scribe real-time STT. Use when: building voice chat interfaces, implementing AI phone agents with Twilio, configuring agent workflows or tools, adding RAG knowledge bases, testing with CLI "agents as code", or troubleshooting deprecated @11labs packages, Android audio cutoff, CSP violations, dynamic variables, or WebRTC config. Keywords: ElevenLabs Agents, ElevenLabs voice agents, AI voice agents, conversational AI, @elevenlabs/react, @elevenlabs/client, @elevenlabs/react-native, @elevenlabs/elevenlabs-js, @elevenlabs/agents-cli, elevenlabs SDK, voice AI, TTS, text-to-speech, ASR, speech recognition, turn-taking model, WebRTC voice, WebSocket voice, ElevenLabs conversation, agent system prompt, agent tools, agent knowledge base, RAG voice agents, multi-voice agents, pronunciation dictionary, voice speed control, elevenlabs scribe, @11labs deprecated, Android audio cutoff, CSP violation elevenlabs, dynamic variables elevenlabs, case-sensitive tool names, webhook authentication
humanizer
IncludedHumanize AI-generated text by detecting and removing patterns typical of LLM output. Rewrites text to sound natural, specific, and human. Uses 28 pattern detectors, 560+ AI vocabulary terms across 3 tiers, and statistical analysis (burstiness, type-token ratio, readability) for comprehensive detection. Use when asked to humanize text, de-AI writing, make content sound more natural/human, review writing for AI patterns, score text for AI detection, or improve AI-generated drafts. Covers content, language, style, communication, and filler categories.
generating-mermaid-diagrams
IncludedSalesforce architecture diagrams using Mermaid with ASCII fallback. Use this skill when generating text-based diagrams for Salesforce architecture, OAuth flows, ERDs, integration sequences, or Agentforce structure. TRIGGER when: user says "diagram", "visualize", "ERD", or asks for sequence diagrams, flowcharts, class diagrams, or architecture visualizations in Mermaid. DO NOT TRIGGER when: user wants PNG/SVG image output (use generating-visual-diagrams), or asks about non-Salesforce systems.