Files
claude-code-skills-reference/demos/README.md
daymade d9e1967689 feat(doc-to-markdown): CJK bold spacing, JSON pretty-print, 31 tests, full rename cleanup
- Add CJK bold spacing fix: insert spaces around **bold** spans containing
  CJK characters for correct rendering (handles emoji adjacency, already-spaced)
- Add JSON pretty-print: auto-format JSON code blocks with 2-space indent
- Add 31 unit tests covering all post-processing functions
- Fix pandoc simple table detection (1-space column gaps)
- Fix image path double-nesting when --assets-dir ends with 'media'
- Rename all markdown-tools references across 15 files (README, QUICKSTART,
  marketplace.json, CLAUDE.md, meeting-minutes-taker, GitHub templates)
- Add 5-tool benchmark report (Docling/MarkItDown/Pandoc/Mammoth/ours)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 03:18:37 +08:00

213 lines
4.6 KiB
Markdown

# Skill Demonstrations
This directory contains automated demonstrations of each skill using [VHS (Video Home System)](https://github.com/charmbracelet/vhs) by Charmbracelet.
VHS allows you to write terminal recordings as code, making demos reproducible, version-controllable, and typo-free.
## 📁 Demo Structure
```
demos/
├── skill-creator/
│ ├── init-skill.tape # Initialize a new skill
│ ├── validate-skill.tape # Validate skill quality
│ └── package-skill.tape # Package for distribution
├── github-ops/
│ └── create-pr.tape # Create pull requests
├── doc-to-markdown/
│ └── convert-docs.tape # Convert documents
└── generate_all_demos.sh # Generate all GIFs
```
## 🎬 Generating Demos
### Prerequisites
Install VHS:
**macOS:**
```bash
brew install vhs
```
**Linux (with Go):**
```bash
go install github.com/charmbracelet/vhs@latest
```
**Or download from:**
https://github.com/charmbracelet/vhs/releases
### Generate All Demos
```bash
./generate_all_demos.sh
```
This will:
1. Find all `.tape` files
2. Generate corresponding `.gif` files
3. Report success/failure for each demo
### Generate a Specific Demo
```bash
vhs < skill-creator/init-skill.tape
```
This creates `demos/skill-creator/init-skill.gif`.
## 📝 Creating New Demos
### VHS Tape File Format
A `.tape` file consists of commands that VHS executes in a virtual terminal:
```tape
# Output configuration
Output demos/my-skill/my-demo.gif
# Terminal settings
Set FontSize 16
Set Width 1400
Set Height 700
Set Theme "Dracula"
Set Padding 20
# Demo script
Type "echo Hello World" Sleep 500ms
Enter
Sleep 2s
```
### Common VHS Commands
| Command | Description | Example |
|---------|-------------|---------|
| `Output` | Set output file path | `Output demos/skill/demo.gif` |
| `Set FontSize` | Set terminal font size | `Set FontSize 18` |
| `Set Width/Height` | Set terminal dimensions | `Set Width 1400` |
| `Set Theme` | Set color theme | `Set Theme "Dracula"` |
| `Type` | Type text | `Type "ls -la"` |
| `Type@<speed>` | Type with custom speed | `Type@500ms "slow typing"` |
| `Enter` | Press Enter key | `Enter` |
| `Sleep` | Pause execution | `Sleep 2s` |
| `Ctrl+C` | Send Ctrl+C | `Ctrl+C` |
### Demo Guidelines
When creating new demos:
1. **Keep demos short** - Under 30 seconds ideally
2. **Use readable font size** - 16-18pt minimum
3. **Show realistic usage** - Practical, real-world examples
4. **Add brief comments** - Explain what's happening
5. **Use consistent theme** - Dracula theme recommended
6. **Test before committing** - Generate and review the GIF
### Example: Creating a New Demo
1. **Create the tape file:**
```bash
touch demos/my-skill/my-workflow.tape
```
2. **Write the demo script:**
```tape
Output demos/my-skill/my-workflow.gif
Set FontSize 16
Set Width 1400
Set Height 700
Set Theme "Dracula"
Set Padding 20
Type "# My Skill Demo" Sleep 500ms Enter
Sleep 1s
Type "echo 'Step 1: Setup'" Sleep 500ms
Enter
Sleep 2s
Type "echo 'Step 2: Execute'" Sleep 500ms
Enter
Sleep 2s
```
3. **Generate the GIF:**
```bash
vhs < demos/my-skill/my-workflow.tape
```
4. **Review the output:**
```bash
open demos/my-skill/my-workflow.gif # macOS
xdg-open demos/my-skill/my-workflow.gif # Linux
```
## 🎨 Themes
VHS supports various themes. We use "Dracula" for consistency, but you can try:
- `Dracula` (default)
- `Nord`
- `Monokai`
- `Solarized Dark`
- `Tokyo Night`
## 📚 Resources
- **VHS Documentation**: https://github.com/charmbracelet/vhs
- **VHS Examples**: https://github.com/charmbracelet/vhs/tree/main/examples
- **Tape File Syntax**: https://github.com/charmbracelet/vhs/blob/main/syntax.md
## 🔧 Troubleshooting
### VHS not found
Ensure VHS is in your PATH:
```bash
which vhs
```
### Permission denied
Make the generation script executable:
```bash
chmod +x generate_all_demos.sh
```
### Demo generation fails
Check the tape file syntax:
```bash
vhs validate < demos/my-skill/my-demo.tape
```
### GIF file too large
Reduce dimensions or duration:
```tape
Set Width 1200 # Smaller width
Set Height 600 # Smaller height
Sleep 1s # Shorter pauses
```
## 📝 Adding Demos to README
After generating demos, add them to the main README.md:
```markdown
### skill-creator - Skill Development Toolkit
<div align="center">
<img src="./demos/skill-creator/init-skill.gif" alt="Initialize Skill Demo" width="800"/>
</div>
Guide for creating effective Claude Code skills...
```
---
**Pro Tip**: Demos are automatically regenerated by CI/CD when tape files change (coming soon!).