create-demo-materials.sh•6.9 kB
#!/bin/bash
echo "🎬 Creating Demo Materials for Sentinel MCP"
echo "=========================================="
# Create demo directory structure
mkdir -p demo/{screenshots,gifs,videos,examples}
echo "📸 Screenshot Instructions"
echo "========================="
echo ""
echo "To create compelling demo materials, capture these scenarios:"
echo ""
echo "1. BEFORE/AFTER Comparison:"
echo " 📷 Terminal showing Godot error"
echo " 📷 AI assistant understanding the error"
echo " 📷 Automatic fix being applied"
echo " 📷 Tests passing after fix"
echo ""
echo "2. Live Development Session:"
echo " 🎥 GIF: File change → Auto-fix → Tests pass (30s loop)"
echo " 🎥 GIF: 'sentinel watch' in action"
echo ""
echo "3. MCP Integration Demo:"
echo " 📷 Claude Code seeing project structure"
echo " 📷 AI assistant reading error context"
echo " 📷 Smart fix being proposed and applied"
echo ""
echo "4. CLI Usage Examples:"
echo " 📷 'sentinel test' output with errors"
echo " 📷 'sentinel ctx' showing code context"
echo " 📷 'sentinel moveset list' command"
echo ""
# Create example terminal sessions
cat > demo/examples/basic-usage.txt << 'EOF'
$ sentinel test
🧪 Running tests...
❌ Tests failed
🚨 Error Details:
File: res://scripts/combat/fighter.gd:45
Type: script_error
Message: Invalid call. Nonexistent function 'get_damage' in base 'Node'.
$ # Ask Claude: "What's wrong with my Godot game?"
# Claude sees the error and responds:
# "I can see the error in fighter.gd:45. The function should be
# 'calculate_damage()' not 'get_damage()'. Let me fix that..."
$ # Claude applies the fix automatically
✅ Fixed function name in fighter.gd
✅ Tests now passing
✅ Created branch: ai/fix-20241210-143022
EOF
cat > demo/examples/watch-mode.txt << 'EOF'
$ sentinel watch
👀 Watching for file changes...
📝 Changed: scripts/player.gd
🔧 Auto-fixing...
📖 Gathering context...
🤖 AI found issue: Missing return statement
🔨 Applied patch on branch ai/fix-20241210-143055
✅ Tests now passing!
📝 Changed: scripts/enemy.gd
🔧 Auto-fixing...
✅ Applied 1 fix automatically
🎮 Game still running perfectly
EOF
cat > demo/examples/mcp-integration.txt << 'EOF'
# Claude Code with MCP access:
User: "What's the structure of my combat system?"
Claude: I can see your combat system has these components:
📁 Combat System Structure:
├── res://scripts/combat/fighter.gd (main Fighter class)
├── res://scripts/combat/state_machine.gd (state management)
├── res://scripts/combat/input_buffer.gd (input handling)
├── res://data/movesets/basic_attacks.json (3 moves)
├── res://data/movesets/special_moves.json (2 moves)
└── res://scenes/combat/battle_scene.tscn
📊 Current Status:
✅ 8 tests passing
❌ 2 tests failing in fighter.gd:89 and state_machine.gd:156
The errors are related to null reference checks. Would you like me to fix them?
EOF
echo "🎨 Demo Material Creation Guide"
echo "=============================="
echo ""
echo "To create the demo materials:"
echo ""
echo "1. Setup Terminal Recording:"
echo " • Use 'asciinema' for terminal recordings"
echo " • Or 'termtosvg' for SVG animations"
echo " • Record in 80x24 terminal for best results"
echo ""
echo "2. Screenshot Settings:"
echo " • Use clean terminal theme (dark with good contrast)"
echo " • Ensure text is readable at GitHub thumbnail size"
echo " • Include Sentinel branding/colors if possible"
echo ""
echo "3. GIF Creation:"
echo " • Keep under 3MB for GitHub embedding"
echo " • 15-30 seconds max duration"
echo " • Focus on key value moments"
echo " • Add text overlays if needed"
echo ""
echo "4. Recommended Tools:"
echo " • asciinema (terminal recording)"
echo " • ImageOptim (image compression)"
echo " • LICEcap (GIF creation)"
echo " • CleanShot X (screenshots with annotations)"
echo ""
# Create placeholder files for actual media
touch demo/screenshots/.gitkeep
touch demo/gifs/.gitkeep
touch demo/videos/.gitkeep
# Create a simple script to generate an ASCII art demo
cat > demo/create-ascii-demo.sh << 'EOF'
#!/bin/bash
echo "Creating ASCII art demo..."
# This would use tools like 'figlet' or 'toilet' to create nice terminal art
cat << 'ASCII'
╔══════════════════════════════════════════════════════════════╗
║ 🤖 Godot Sentinel MCP ║
║ AI-Powered Terminal Game Development ║
╚══════════════════════════════════════════════════════════════╝
$ sentinel test
🧪 Running Godot tests...
❌ ERROR DETECTED:
📂 File: res://scripts/combat/fighter.gd:45
🐛 Issue: Invalid function call 'get_damage()'
💡 Should be: 'calculate_damage()'
$ # Ask your AI assistant: "Fix my Godot error"
🤖 AI RESPONSE:
"I can see the issue! Let me fix that function name..."
🔧 APPLYING FIX:
✅ Updated fighter.gd:45
✅ Created branch: ai/fix-20241210
✅ Running tests...
✅ All tests now passing!
$ sentinel run
🎮 Game launching...
🎉 Perfect! No errors detected.
╔══════════════════════════════════════════════════════════════╗
║ 🚀 From Error to Fix in 30 seconds - That's Sentinel MCP! ║
╚══════════════════════════════════════════════════════════════╝
ASCII
EOF
chmod +x demo/create-ascii-demo.sh
echo "📁 Demo Structure Created:"
echo "├── demo/"
echo "│ ├── screenshots/ (for static images)"
echo "│ ├── gifs/ (for animated demos)"
echo "│ ├── videos/ (for longer demos)"
echo "│ ├── examples/ (text-based examples)"
echo "│ └── create-ascii-demo.sh (ASCII art generator)"
echo ""
echo "🎯 Next Steps:"
echo "1. Run ./demo/create-ascii-demo.sh to see ASCII demo"
echo "2. Use the examples/ files as scripts for recordings"
echo "3. Capture actual terminal sessions using the workflows"
echo "4. Optimize images/GIFs for web (under 3MB each)"
echo "5. Add to README.md in ## Demo section"
echo ""
echo "🌟 Pro Tips for Viral Content:"
echo "• Show the 'wow moment' - error to fix in seconds"
echo "• Include before/after comparisons"
echo "• Make it relatable to common developer pain points"
echo "• Use consistent branding and colors"
echo "• Test on mobile - many people browse GitHub on phones"