🧪 Skills

Demo Precacher

Pre-generate and cache all demo content before live presentations — hit every API endpoint in advance, verify playback, report coverage gaps. Use before hack...

v1.0.0
❤️ 0
⬇️ 91
👁 2
Share

Description


name: demo-precacher description: Pre-generate and cache all demo content before live presentations — hit every API endpoint in advance, verify playback, report coverage gaps. Use before hackathon demos, investor pitches, or any live presentation that relies on AI-generated content. Never demo live API calls. version: 1.0.0 metadata: { "openclaw": { "emoji": "\ud83c\udfc3", "requires": { "bins": [], "env": [ "ELEVENLABS_API_KEY", "MISTRAL_API_KEY" ] }, "primaryEnv": "ELEVENLABS_API_KEY", "network": { "outbound": true, "reason": "Pre-generates content by calling your configured APIs (ElevenLabs, Mistral, etc.) ahead of a live demo." } } }

Demo Precacher

The golden rule of AI demos: never rely on live API calls during a presentation. This skill provides a systematic approach to pre-generating and verifying all demo content before you go live.

Why This Exists

In a 48-hour hackathon, we had 18 stories across 10 languages with audio narration, sound effects, and background music. During the demo, the Mistral API had a 3-second latency spike. Because everything was pre-cached, the demo played flawlessly from cache while the audience assumed it was generating in real-time.

The Pattern

async def precache_demo():
    scenarios = [
        {"name": "Sophie", "language": "fr", "prompt": "A story about cloud whales..."},
        {"name": "Kai", "language": "ja", "prompt": "A story about bamboo forests..."},
    ]
    
    for s in scenarios:
        # Step 1: Generate content (hits the real API)
        story = await generate_story(s["prompt"], s["name"], s["language"])
        
        # Step 2: Cache the result
        await cache.set(s, story)
        
        # Step 3: Generate all derived content (audio, images)
        for scene in story["scenes"]:
            audio = await generate_tts(scene["text"], voice_id)
            await cache.set(f"audio_{scene['id']}", audio)
        
        # Step 4: Verify playback
        cached = await cache.get(s)
        assert cached is not None, f"Cache miss for {s['name']}"
    
    # Step 5: Report coverage
    print(f"Cached {len(scenarios)} scenarios, all verified ✅")

Checklist

Before any live demo, verify:

  • All primary scenarios cached and verified
  • Audio files playable (correct format, no corruption)
  • Fallback content available if cache miss occurs
  • Demo account credentials working
  • Network not required for cached playback
  • Cache TTL won't expire during the presentation

Files

  • scripts/precache_demo.py — Example precacher with verification and coverage reporting

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs