SKILL.md
Demo Scaffolding Skill
Generate complete, security-hardened demo platforms for Assistant Skills plugins in minutes instead of days.
What This Skill Does
Creates production-ready demo infrastructure similar to jira-demo, confluence-demo, and splunk-demo with:
| Component |
Description |
| Queue Manager |
Node.js WebSocket server with session management |
| Landing Page |
Responsive HTML/CSS/JS with queue UI |
| Demo Container |
Claude Code terminal with plugin pre-installed |
| Observability |
LGTM stack (Grafana, Loki, Tempo, Prometheus) |
| Nginx |
Reverse proxy with SSL support |
| Security |
12 security features enabled by default |
Quick Start
Interactive Mode (Recommended)
python scripts/create_demo.py
# Interactive wizard guides you through configuration
Command Line Mode
python scripts/create_demo.py \
--name github-demo \
--product GitHub \
--plugin github-assistant-skills \
--plugin-source pypi \
--api-url-var GITHUB_API_URL \
--api-token-var GITHUB_TOKEN \
--scenarios search,issues,repos,admin \
--output ./github-demo
Dry Run
python scripts/create_demo.py --dry-run
# Shows what would be generated without creating files
Usage Examples
"Create a demo for my new GitHub Assistant Skills plugin"
"Scaffold a demo infrastructure for Slack plugin"
"Generate a demo project with mock API support"
"Set up demo environment similar to confluence-demo"
Configuration Options
| Option |
Description |
Default |
--name |
Demo project name (kebab-case) |
Required |
--product |
Product/brand name |
Required |
--plugin |
Plugin identifier |
Optional |
--plugin-source |
pypi, github, or none |
none |
--api-url-var |
Base URL env var name |
{PRODUCT}APIURL |
--api-token-var |
Auth token env var name |
{PRODUCT}APITOKEN |
--scenarios |
Comma-separated scenario names |
search,admin |
--output |
Output directory |
./{name} |
--session-timeout |
Session timeout minutes |
60 |
--max-queue |
Max queue size |
10 |
--enable-ci |
Generate GitHub Actions workflow |
false |
--enable-precommit |
Generate pre-commit config |
false |
--dry-run |
Show what would be created |
false |
Generated Structure
{demo-name}/
├── docker-compose.yml # Production orchestration
├── docker-compose.dev.yml # Development overrides
├── Makefile # 50+ dev/deploy targets
├── CLAUDE.md # Claude Code instructions
├── README.md # Project documentation
├── .gitignore
├── pyproject.toml # Python linting config
│
├── queue-manager/ # Node.js WebSocket server
│ ├── server.js # Main entry (modular)
│ ├── package.json
│ ├── Dockerfile
│ ├── config/ # Configuration modules
│ ├── services/ # Business logic
│ ├── routes/ # HTTP endpoints
│ └── handlers/ # WebSocket handlers
│
├── demo-container/ # Claude + plugin container
│ ├── Dockerfile
│ ├── entrypoint.sh
│ └── scenarios/ # Test scenarios
│
├── landing-page/ # Static web frontend
│ ├── index.html
│ ├── queue-client.js
│ └── styles.css
│
├── nginx/ # Reverse proxy
├── observability/ # LGTM stack config
├── scripts/ # Utility scripts
├── secrets/ # Credentials template
└── .claude/ # Claude Code commands
Security Features (Always Enabled)
All generated demos include these security measures:
- Input Validation - Regex validation, whitelist enforcement
- Rate Limiting - Connection and invite brute-force protection
- Session Security - HMAC-SHA256 tokens, HttpOnly cookies
- Container Security - Memory/CPU/PID limits, capability dropping
- Credential Protection - Env-file secrets, cleanup on session end
- HTTP Headers - Helmet.js with strict CSP
- XSS Prevention - DOMPurify, HTML escaping
- Path Traversal - Resolved path validation
- WebSocket Security - Origin validation, rate limiting
- Redis Security - Error handling, TTL enforcement
- Docker Socket - Minimal privileges
- Production Validation - SESSION_SECRET enforcement
Post-Generation Steps
After running the scaffolder:
cd {demo-name}
# 1. Configure credentials
cp secrets/example.env secrets/.env
# Edit secrets/.env with your API credentials
# 2. Start development environment
make dev
# 3. Generate invite URL
make invite-local
# 4. Access the demo
open http://localhost:8080
Related Skills
| Skill |
Purpose |
assistant-builder |
Create the plugin itself |
landing-page |
Generate README and branding |
e2e-testing |
Add comprehensive tests |
skills-optimizer |
Optimize skill token usage |
Reference Implementations
| Demo |
Repository |
Skills |
| jira-demo |
grandcamel/jira-demo |
14 |
| confluence-demo |
grandcamel/confluence-demo |
14 |
| splunk-demo |
grandcamel/splunk-demo |
13 |
Templates are extracted from these production demos.