# Demo Skill

Learn how to create demo skills - executable skills that do something impressive quickly and are undo-able so they can be run many times for demos.

## Quick start

Read the `SKILL.md` file for complete documentation on creating demo skills.

## What is a demo skill?

A demo skill is an executable skill that:
- **Does something impressive quickly** - Creates visible, impactful results
- **Is undo-able** - Can be cleaned up and rerun without side effects
- **Is repeatable** - Can be run many times for different demos
- **Is self-contained** - Has clear boundaries for what it creates/changes

## Example: demo-research

The `demo-research` skill is a complete example of a demo skill:

**Run it:**
```bash
python Skills/demo-research/scripts/run-skill.py
```

**Clean up:**
```bash
rm -rf web/scratch/src/data/usa_energy
rm web/scratch/src/pages/UsaEnergy.tsx
```

**What it creates:**
- Data files: `web/scratch/src/data/usa_energy/*.json`
- Page component: `web/scratch/src/pages/UsaEnergy.tsx`
- Route: `/usa-energy` in `App.tsx`

## Creating your own demo skill

See `SKILL.md` for complete instructions on:
- Defining the scope
- Creating the skill structure
- Writing the main script
- Writing the cleanup script
- Creating templates
- Testing and iterating

## Key principles

1. **Clear boundaries** - Define exactly what the skill creates
2. **Undo-ability** - Provide a way to clean up
3. **Impressive results** - Create something that looks good and tells a story
4. **Fast execution** - Should complete in seconds

## Common patterns

See `SKILL.md` for common patterns:
- Data generation
- Page creation
- Route addition
- Verification

## Best practices

- Make it fast
- Make it safe
- Make it clear
- Make it undo-able
- Make it impressive