Skill: ckchzh/slide-maker (version 2.0.0)

--- version: "2.0.0" name: slide-maker description: "Presentation and slide deck generator. Create outlines, full slide decks, speaker notes, pitch decks, training slides, report presentations." author: BytesAgain homepage: https://bytesagain.com source: https://github.com/bytesagain/ai-skills --- # 🎬 Slide Maker — Presentation Generator > From outline to full deck in one command. Never stare at a blank slide again. ## 📌 Use Cases ### 🏢 Work Reports → `report` Weekly/monthly/quarterly reviews with data-driven structured slides. ### 💰 Fundraising → `pitch` Standard 10-15 page Pitch Deck covering Problem / Solution / Market / Business Model / Team / Ask. ### 📚 Training & Workshops → `training` Course slides with objectives, content, exercises, and summary — great for internal training or workshops. ### 🎤 Speaking Prep → `speaker` Generate speaker notes with time allocation and transition phrases. Walk on stage with confidence. ### 📝 Quick Outline → `outline` Not sure about structure yet? Start with an outline, then fill in content. ### 📊 Full Content → `slides` Go from topic to complete slide deck in Markdown format (--- page separators). ### 🎨 Design Guide → `design` Color schemes, typography, and layout recommendations to make your slides look professional. ## 💡 Output Format Each slide separated by `---`, Markdown format. Import directly into Marp / Slidev / Reveal.js. ``` # Title Page --- ## Slide Two - Point 1 - Point 2 --- ## Slide Three ``` ## 📂 Scripts - `scripts/slides.sh` — Main script --- 💬 Feedback & Feature Requests: https://bytesagain.com/feedback Powered by BytesAgain | bytesagain.com ## Commands Run `slide-maker help` to see all available commands.

path: scripts/script.sh
content: #!/usr/bin/env bash
# Slide Maker — content tool
# Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]
set -euo pipefail

DATA_DIR="${HOME}/.local/share/slide-maker"
mkdir -p "$DATA_DIR"

_log() { echo "$(date '+%m-%d %H:%M') $1: $2" >> "$DATA_DIR/history.log"; }

_version() { echo "slide-maker v2.0.0"; }

_help() {
    echo "Slide Maker v2.0.0 — content toolkit"
    echo ""
    echo "Usage: slide-maker <command> [args]"
    echo ""
    echo "Commands:"
    echo "  draft              Draft"
    echo "  edit               Edit"
    echo "  optimize           Optimize"
    echo "  schedule           Schedule"
    echo "  hashtags           Hashtags"
    echo "  hooks              Hooks"
    echo "  cta                Cta"
    echo "  rewrite            Rewrite"
    echo "  translate          Translate"
    echo "  tone               Tone"
    echo "  headline           Headline"
    echo "  outline            Outline"
    echo "  stats              Summary statistics"
    echo "  export <fmt>       Export (json|csv|txt)"
    echo "  status             Health check"
    echo "  help               Show this help"
    echo "  version            Show version"
    echo ""
    echo "Data: $DATA_DIR"
}

_stats() {
    echo "=== Slide Maker Stats ==="
    local total=0
    for f in "$DATA_DIR"/*.log; do
        [ -f "$f" ] || continue
        local name=$(basename "$f" .log)
        local c=$(wc -l < "$f")
        total=$((total + c))
        echo "  $name: $c entries"
    done
    echo "  ---"
    echo "  Total: $total entries"
    echo "  Data size: $(du -sh "$DATA_DIR" 2>/dev/null | cut -f1)"
    echo "  Since: $(head -1 "$DATA_DIR/history.log" 2>/dev/null | cut -d'|' -f1 || echo 'N/A')"
}

_export() {
    local fmt="${1:-json}"
    local out="$DATA_DIR/export.$fmt"
    case "$fmt" in
        json)
            echo "[" > "$out"
            local first=1
            for f in "$DATA_DIR"/*.log; do
                [ -f "$f" ] || continue
                local name=$(basename "$f" .log)
                while IFS='|' read -r ts val; do
                    [ $first -eq 1 ] && first=0 || echo "," >> "$out"
                    printf '  {"type":"%s","time":"%s","value":"%s"}' "$name" "$ts" "$val" >> "$out"
                done < "$f"
            done
            echo "" >> "$out"
            echo "]" >> "$out"
            ;;
        csv)
            echo "type,time,value" > "$out"
            for f in "$DATA_DIR"/*.log; do
                [ -f "$f" ] || continue
                local name=$(basename "$f" .log)
                while IFS='|' read -r ts val; do
                    echo "$name,$ts,$val" >> "$out"
                done < "$f"
            done
            ;;
        txt)
            echo "=== Slide Maker Export ===" > "$out"
            for f in "$DATA_DIR"/*.log; do
                [ -f "$f" ] || continue
                echo "--- $(basename "$f" .log) ---" >> "$out"
                cat "$f" >> "$out"
                echo "" >> "$out"
            done
            ;;
        *) echo "Formats: json, csv, txt"; return 1 ;;
    esac
    echo "Exported to $out ($(wc -c < "$out") bytes)"
}

_status() {
    echo "=== Slide Maker Status ==="
    echo "  Version: v2.0.0"
    echo "  Data dir: $DATA_DIR"
    echo "  Entries: $(cat "$DATA_DIR"/*.log 2>/dev/null | wc -l) total"
    echo "  Disk: $(du -sh "$DATA_DIR" 2>/dev/null | cut -f1)"
    local last=$(tail -1 "$DATA_DIR/history.log" 2>/dev/null || echo "never")
    echo "  Last activity: $last"
    echo "  Status: OK"
}

_search() {
    local term="${1:?Usage: slide-maker search <term>}"
    echo "Searching for: $term"
    local found=0
    for f in "$DATA_DIR"/*.log; do
        [ -f "$f" ] || continue
        local matches=$(grep -i "$term" "$f" 2>/dev/null || true)
        if [ -n "$matches" ]; then
            echo "  --- $(basename "$f" .log) ---"
            echo "$matches" | while read -r line; do
                echo "    $line"
                found=$((found + 1))
            done
        fi
    done
    [ $found -eq 0 ] && echo "  No matches found."
}

_recent() {
    echo "=== Recent Activity ==="
    if [ -f "$DATA_DIR/history.log" ]; then
        tail -20 "$DATA_DIR/history.log" | while IFS='' read -r line; do
            echo "  $line"
        done
    else
        echo "  No activity yet."
    fi
}

# Main dispatch
case "${1:-help}" in
    draft)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent draft entries:"
            tail -20 "$DATA_DIR/draft.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker draft <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/draft.log"
            local total=$(wc -l < "$DATA_DIR/draft.log")
            echo "  [Slide Maker] draft: $input"
            echo "  Saved. Total draft entries: $total"
            _log "draft" "$input"
        fi
        ;;
    edit)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent edit entries:"
            tail -20 "$DATA_DIR/edit.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker edit <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/edit.log"
            local total=$(wc -l < "$DATA_DIR/edit.log")
            echo "  [Slide Maker] edit: $input"
            echo "  Saved. Total edit entries: $total"
            _log "edit" "$input"
        fi
        ;;
    optimize)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent optimize entries:"
            tail -20 "$DATA_DIR/optimize.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker optimize <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/optimize.log"
            local total=$(wc -l < "$DATA_DIR/optimize.log")
            echo "  [Slide Maker] optimize: $input"
            echo "  Saved. Total optimize entries: $total"
            _log "optimize" "$input"
        fi
        ;;
    schedule)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent schedule entries:"
            tail -20 "$DATA_DIR/schedule.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker schedule <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/schedule.log"
            local total=$(wc -l < "$DATA_DIR/schedule.log")
            echo "  [Slide Maker] schedule: $input"
            echo "  Saved. Total schedule entries: $total"
            _log "schedule" "$input"
        fi
        ;;
    hashtags)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent hashtags entries:"
            tail -20 "$DATA_DIR/hashtags.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker hashtags <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/hashtags.log"
            local total=$(wc -l < "$DATA_DIR/hashtags.log")
            echo "  [Slide Maker] hashtags: $input"
            echo "  Saved. Total hashtags entries: $total"
            _log "hashtags" "$input"
        fi
        ;;
    hooks)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent hooks entries:"
            tail -20 "$DATA_DIR/hooks.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker hooks <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/hooks.log"
            local total=$(wc -l < "$DATA_DIR/hooks.log")
            echo "  [Slide Maker] hooks: $input"
            echo "  Saved. Total hooks entries: $total"
            _log "hooks" "$input"
        fi
        ;;
    cta)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent cta entries:"
            tail -20 "$DATA_DIR/cta.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker cta <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/cta.log"
            local total=$(wc -l < "$DATA_DIR/cta.log")
            echo "  [Slide Maker] cta: $input"
            echo "  Saved. Total cta entries: $total"
            _log "cta" "$input"
        fi
        ;;
    rewrite)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent rewrite entries:"
            tail -20 "$DATA_DIR/rewrite.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker rewrite <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/rewrite.log"
            local total=$(wc -l < "$DATA_DIR/rewrite.log")
            echo "  [Slide Maker] rewrite: $input"
            echo "  Saved. Total rewrite entries: $total"
            _log "rewrite" "$input"
        fi
        ;;
    translate)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent translate entries:"
            tail -20 "$DATA_DIR/translate.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker translate <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/translate.log"
            local total=$(wc -l < "$DATA_DIR/translate.log")
            echo "  [Slide Maker] translate: $input"
            echo "  Saved. Total translate entries: $total"
            _log "translate" "$input"
        fi
        ;;
    tone)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent tone entries:"
            tail -20 "$DATA_DIR/tone.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker tone <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/tone.log"
            local total=$(wc -l < "$DATA_DIR/tone.log")
            echo "  [Slide Maker] tone: $input"
            echo "  Saved. Total tone entries: $total"
            _log "tone" "$input"
        fi
        ;;
    headline)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent headline entries:"
            tail -20 "$DATA_DIR/headline.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker headline <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/headline.log"
            local total=$(wc -l < "$DATA_DIR/headline.log")
            echo "  [Slide Maker] headline: $input"
            echo "  Saved. Total headline entries: $total"
            _log "headline" "$input"
        fi
        ;;
    outline)
        shift
        if [ $# -eq 0 ]; then
            echo "Recent outline entries:"
            tail -20 "$DATA_DIR/outline.log" 2>/dev/null || echo "  No entries yet. Use: slide-maker outline <input>"
        else
            local input="$*"
            local ts=$(date '+%Y-%m-%d %H:%M')
            echo "$ts|$input" >> "$DATA_DIR/outline.log"
            local total=$(wc -l < "$DATA_DIR/outline.log")
            echo "  [Slide Maker] outline: $input"
            echo "  Saved. Total outline entries: $total"
            _log "outline" "$input"
        fi
        ;;
    stats) _stats ;;
    export) shift; _export "$@" ;;
    search) shift; _search "$@" ;;
    recent) _recent ;;
    status) _status ;;
    help|--help|-h) _help ;;
    version|--version|-v) _version ;;
    *)
        echo "Unknown command: $1"
        echo "Run 'slide-maker help' for available commands."
        exit 1
        ;;
esac

path: scripts/slides.sh
content: #!/usr/bin/env bash
# slide-maker: Presentation/slide generator
# Usage: bash slides.sh <command> [topic]

set -euo pipefail

COMMAND="${1:-help}"
shift 2>/dev/null || true
INPUT="$*"

case "$COMMAND" in
  outline)
    python3 << 'PYEOF'
inp = """{}"""
if not inp.strip():
    inp = "AI in Education"
print("=" * 60)
print("  PRESENTATION OUTLINE")
print("=" * 60)
print()
topic = inp.strip()
sections = [
    ("Title Slide", "Main title, subtitle, presenter name, date"),
    ("Agenda", "Overview of topics to be covered"),
    ("Background / Problem", "Context and current challenges"),
    ("Key Insights / Data", "Core findings with supporting data"),
    ("Solution / Approach", "Proposed solution or methodology"),
    ("Case Study / Example", "Real-world application or demo"),
    ("Results / Impact", "Outcomes and measurable results"),
    ("Next Steps", "Action items and timeline"),
    ("Q&A", "Questions and discussion"),
    ("Thank You", "Contact info and resources")
]
print("Topic: {}".format(topic))
print()
for i, (title, desc) in enumerate(sections, 1):
    print("  Slide {}: {}".format(i, title))
    print("    {}".format(desc))
    print()
print("Total slides: {}".format(len(sections)))
print("Est. duration: {}-{} minutes".format(len(sections) * 2, len(sections) * 3))
print()
print("Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]")
PYEOF
    ;;

  slides)
    python3 << 'PYEOF'
inp = """{}"""
if not inp.strip():
    inp = "AI in Education"
topic = inp.strip()
print("=" * 60)
print("  FULL SLIDE DECK (Markdown)")
print("=" * 60)
print()
slides = [
    "---\n# {topic}\n\n**Transforming the Future**\n\nPresenter: [Name]\nDate: [Date]\n",
    "---\n## Agenda\n\n1. Background & Challenge\n2. Key Insights\n3. Our Approach\n4. Results\n5. Next Steps\n",
    "---\n## The Challenge\n\n- Current state of {topic}\n- Pain points and gaps\n- Why now? Market timing\n\n> \"The best time to act was yesterday. The second best is now.\"\n",
    "---\n## Key Data & Insights\n\n| Metric | Before | After | Change |\n|--------|--------|-------|--------|\n| Efficiency | 45% | 82% | +37% |\n| Cost | $100K | $65K | -35% |\n| Satisfaction | 3.2 | 4.7 | +47% |\n",
    "---\n## Our Solution\n\n### Three Pillars\n\n1. **Innovation** - Cutting-edge approach\n2. **Execution** - Proven methodology\n3. **Scale** - Built for growth\n",
    "---\n## Case Study\n\n### Real-World Application\n\n- Client: [Company Name]\n- Challenge: [Specific problem]\n- Solution: Applied {topic} framework\n- Result: 3x improvement in 6 months\n",
    "---\n## Impact & Results\n\n- **82%** efficiency improvement\n- **$35K** annual cost savings\n- **4.7/5** user satisfaction\n- **3x** faster delivery\n",
    "---\n## Next Steps\n\n- [ ] Phase 1: Research & Planning (Week 1-2)\n- [ ] Phase 2: Implementation (Week 3-6)\n- [ ] Phase 3: Testing & Launch (Week 7-8)\n- [ ] Phase 4: Review & Optimize (Week 9+)\n",
    "---\n## Q&A\n\n### Questions?\n\nLet's discuss how {topic} can work for you.\n",
    "---\n## Thank You\n\n- Email: [REDACTED_SECRET]\n- Website: company.com\n- LinkedIn: /in/presenter\n"
]
for slide in slides:
    print(slide.replace("{topic}", topic))
print()
print("Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]")
PYEOF
    ;;

  speaker)
    python3 << 'PYEOF'
inp = """{}"""
if not inp.strip():
    inp = "AI in Education"
topic = inp.strip()
print("=" * 60)
print("  SPEAKER NOTES")
print("=" * 60)
print()
notes = [
    ("Opening (2 min)", "Good morning everyone. Today I am excited to talk about {}. This topic is critical because it impacts all of us.".format(topic)),
    ("Problem Statement (3 min)", "Let me start with the challenge we face. The current approach to {} has several limitations that we need to address.".format(topic)),
    ("Key Insights (4 min)", "Our research shows three important findings. First... Second... Third... These data points paint a clear picture."),
    ("Solution (4 min)", "Based on these insights, we propose a three-pillar approach. Let me walk you through each one in detail."),
    ("Case Study (3 min)", "To see this in action, let me share a real example. This company implemented our approach and saw remarkable results."),
    ("Results (2 min)", "The numbers speak for themselves. We achieved significant improvements across all key metrics."),
    ("Next Steps (2 min)", "So what do we do next? I have a clear four-phase plan that we can start implementing immediately."),
    ("Closing (1 min)", "Thank you for your time. I look forward to your questions and to working together on this exciting journey.")
]
total_min = 0
for title, script in notes:
    mins = int(title.split("(")[1].split(" ")[0])
    total_min += mins
    print("[{}]".format(title))
    print(script)
    print()
    print("  TIP: Pause here for eye contact. Breathe.")
    print()
print("Total estimated time: {} minutes".format(total_min))
print()
print("Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]")
PYEOF
    ;;

  pitch)
    python3 << 'PYEOF'
inp = """{}"""
if not inp.strip():
    inp = "EdTech Startup"
topic = inp.strip()
print("=" * 60)
print("  PITCH DECK")
print("=" * 60)
print()
pages = [
    ("Cover", "# {}\n\nSeed Round | $2M\n[Logo]"),
    ("Problem", "## The Problem\n\n- 70% of users face this issue\n- Current solutions are expensive\n- Market gap of $X billion"),
    ("Solution", "## Our Solution\n\n- One-line description\n- Key differentiator\n- Screenshot / demo"),
    ("Market", "## Market Opportunity\n\n- TAM: $50B\n- SAM: $5B\n- SOM: $500M (Year 3)"),
    ("Product", "## Product\n\n- Core features\n- User experience\n- Technology stack"),
    ("Traction", "## Traction\n\n- 10K users (growing 20% MoM)\n- $50K MRR\n- 95% retention rate"),
    ("Business Model", "## Business Model\n\n- SaaS subscription\n- Freemium + Premium\n- Enterprise tier"),
    ("Competition", "## Competitive Landscape\n\n| Feature | Us | Comp A | Comp B |\n|---------|-----|--------|--------|\n| Price | Low | High | Med |"),
    ("Team", "## Team\n\n- CEO: 10yr industry exp\n- CTO: Ex-FAANG\n- COO: MBA, operations"),
    ("Financials", "## Financial Projections\n\n| Year | Revenue | Users |\n|------|---------|-------|\n| Y1 | $600K | 50K |\n| Y2 | $3M | 200K |\n| Y3 | $10M | 500K |"),
    ("Ask", "## The Ask\n\n- Raising: $2M Seed\n- Use: 50% Product, 30% Growth, 20% Ops\n- Timeline: 18 months to Series A"),
    ("Contact", "## Let's Talk\n\n- Email: [REDACTED_SECRET]\n- Deck: startup.com/deck")
]
for title, content in pages:
    print("---")
    print(content.replace("{}", topic))
    print()
print("Total: {} slides (standard pitch format)".format(len(pages)))
print()
print("Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]")
PYEOF
    ;;

  training)
    python3 << 'PYEOF'
inp = """{}"""
if not inp.strip():
    inp = "Python Programming Basics"
topic = inp.strip()
print("=" * 60)
print("  TRAINING SLIDES")
print("=" * 60)
print()
modules = [
    ("Welcome", "# Training: {}\n\nObjective: By the end, you will understand the fundamentals.\nDuration: 2 hours\nFormat: Lecture + Hands-on".format(topic)),
    ("Learning Goals", "## What You Will Learn\n\n1. Core concepts\n2. Practical applications\n3. Best practices\n4. Common pitfalls"),
    ("Module 1", "## Module 1: Introduction\n\n- What is {}?\n- Why does it matter?\n- Real-world examples".format(topic)),
    ("Exercise 1", "## Hands-On Exercise 1\n\nTask: Try the basic example\nTime: 10 minutes\nExpected outcome: Working demo"),
    ("Module 2", "## Module 2: Deep Dive\n\n- Advanced concepts\n- Technical details\n- Performance tips"),
    ("Exercise 2", "## Hands-On Exercise 2\n\nTask: Build a mini-project\nTime: 15 minutes\nBonus: Add extra features"),
    ("Best Practices", "## Best Practices & Tips\n\n- Do: Follow conventions\n- Do: Write tests\n- Don't: Skip documentation\n- Don't: Premature optimization"),
    ("Summary", "## Key Takeaways\n\n1. Start with fundamentals\n2. Practice regularly\n3. Learn from mistakes\n4. Keep building"),
    ("Resources", "## Further Resources\n\n- Documentation: [link]\n- Tutorials: [link]\n- Community: [link]")
]
for title, content in modules:
    print("---")
    print(content)
    print()
print("Total: {} slides | Est. duration: 2 hours".format(len(modules)))
print()
print("Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]")
PYEOF
    ;;

  report)
    python3 << 'PYEOF'
inp = """{}"""
if not inp.strip():
    inp = "Q3 Business Review"
topic = inp.strip()
print("=" * 60)
print("  REPORT SLIDES")
print("=" * 60)
print()
pages = [
    "---\n# {}\n\nPeriod: [Date Range]\nPresenter: [Name]\nDepartment: [Team]".format(topic),
    "---\n## Executive Summary\n\n- Overall status: On Track\n- Key achievement: [Highlight]\n- Challenge: [Issue]\n- Next priority: [Focus]",
    "---\n## KPI Dashboard\n\n| KPI | Target | Actual | Status |\n|-----|--------|--------|--------|\n| Revenue | $1M | $1.1M | Above |\n| Users | 10K | 9.5K | Near |\n| NPS | 50 | 55 | Above |",
    "---\n## Achievements\n\n1. Launched feature X (+25% engagement)\n2. Reduced costs by 15%\n3. Hired 3 key roles\n4. Reached milestone ahead of schedule",
    "---\n## Challenges & Risks\n\n- Risk 1: [Description] - Mitigation: [Plan]\n- Risk 2: [Description] - Mitigation: [Plan]\n- Blocker: [What needs escalation]",
    "---\n## Next Period Plan\n\n- [ ] Priority 1: [Task]\n- [ ] Priority 2: [Task]\n- [ ] Priority 3: [Task]\n\nDeadline: [Date]"
]
for page in pages:
    print(page)
    print()
print("Total: {} slides".format(len(pages)))
print()
print("Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]")
PYEOF
    ;;

  design)
    python3 << 'PYEOF'
print("=" * 60)
print("  SLIDE DESIGN GUIDE")
print("=" * 60)
print()
print("[COLOR SCHEMES]")
schemes = [
    ("Professional Blue", "#1a365d, #2b6cb0, #bee3f8, #ffffff"),
    ("Modern Dark", "#1a1a2e, #16213e, #0f3460, #e94560"),
    ("Nature Green", "#1b4332, #2d6a4f, #95d5b2, #f0fdf4"),
    ("Warm Sunset", "#7f1d1d, #dc2626, #fbbf24, #fffbeb"),
    ("Clean Minimal", "#111827, #6b7280, #e5e7eb, #ffffff"),
]
for name, colors in schemes:
    print("  {} : {}".format(name, colors))
print()
print("[TYPOGRAPHY]")
print("  Title: Bold, 36-44pt")
print("  Subtitle: Regular, 24-28pt")
print("  Body: Regular, 18-22pt")
print("  Caption: Light, 14-16pt")
print()
print("  Recommended fonts:")
print("    - Inter / Source Sans Pro (body)")
print("    - Montserrat / Poppins (headings)")
print("    - Noto Sans SC (Chinese)")
print()
print("[LAYOUT RULES]")
print("  - Max 6 bullet points per slide")
print("  - One idea per slide")
print("  - 60/40 or 50/50 split for text+image")
print("  - Consistent margins (min 5% padding)")
print("  - Left-align text (avoid center for body)")
print()
print("Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]")
PYEOF
    ;;

  help|*)
    cat << 'HELPEOF'
========================================
  Slide Maker - Presentation Generator
========================================

Commands:
  outline    Presentation outline
  slides     Full slide deck (Markdown)
  speaker    Speaker notes with timing
  pitch      Pitch deck (fundraising)
  training   Training slides
  report     Report/review slides
  design     Design recommendations

Usage:
  bash slides.sh <command> <topic>

Output: Markdown with --- page separators
Compatible with: Marp, Slidev, Reveal.js

Powered by BytesAgain | bytesagain.com | [REDACTED_SECRET]
HELPEOF
    ;;
esac


path: slides/scripts/slides.sh
content: #!/usr/bin/env bash
# Original implementation by BytesAgain (bytesagain.com)
# This is independent code, not derived from any third-party source
# License: MIT
# Slides — terminal presentation tool (inspired by maaslalani/slides 11K+ stars)
set -euo pipefail
CMD="${1:-help}"; shift 2>/dev/null || true
case "$CMD" in
help) echo "Slides — Markdown presentation generator
Commands:
  create <title>       Create presentation skeleton
  outline <topic>      Generate slide outline
  template <type>      Get template (pitch/tech/report/education)
  export <file>        Export slides to clean markdown
  count <file>         Count slides
  timing <file> <min>  Calculate time per slide
  info                 Version info
Powered by BytesAgain | bytesagain.com";;
create)
    title="${1:-My Presentation}"
    cat << EOF
---
title: $title
author: $(whoami)
date: $(date +%Y-%m-%d)
---

# $title

---

## Agenda

1. Introduction
2. Problem Statement
3. Solution
4. Demo
5. Q&A

---

## Introduction

Your opening content here.

---

## Problem

What problem are we solving?

---

## Solution

How we solve it.

---

## Demo

Live demonstration.

---

## Q&A

Thank you!

---
*Powered by BytesAgain*
EOF
;;
outline)
    topic="${1:-AI Tools}"
    cat << EOF
# $topic — Slide Outline

## Slide 1: Title
- $topic
- Presenter: $(whoami)
- Date: $(date +%Y-%m-%d)

## Slide 2: Why This Matters
- Key problem statement
- Market context
- Audience pain point

## Slide 3: Current State
- What exists today
- Limitations
- Gaps

## Slide 4: Our Approach
- Core idea
- Differentiation
- Key insight

## Slide 5: How It Works
- Architecture / Process
- Key components
- Flow diagram

## Slide 6: Results
- Metrics
- Before/After
- Impact

## Slide 7: Demo
- Live walkthrough

## Slide 8: Next Steps
- Roadmap
- Call to action

## Slide 9: Q&A
- Contact info
EOF
;;
template)
    type="${1:-pitch}"
    case "$type" in
        pitch) echo "# [Company Name]
---
## The Problem
- Pain point 1
- Pain point 2
---
## Market Size
- TAM: \$X billion
- Growth: X%/year
---
## Our Solution
- Feature 1
- Feature 2
---
## Traction
- Users: X
- Revenue: \$X
---
## Team
- CEO: Name
- CTO: Name
---
## Ask
- Raising: \$X
- Use of funds";;
        tech) echo "# Technical Deep Dive
---
## Architecture
- Component diagram
---
## Stack
- Frontend / Backend / DB
---
## Performance
- Benchmarks
---
## Security
- Measures taken
---
## Deployment
- CI/CD pipeline";;
        *) echo "Templates: pitch, tech, report, education";;
    esac;;
export)
    f="${1:-}"; [ -z "$f" ] && { echo "Usage: export <file>"; exit 1; }
    grep -v "^---$" "$f" 2>/dev/null;;
count)
    f="${1:-}"; [ -z "$f" ] && { echo "Usage: count <file>"; exit 1; }
    n=$(grep -c "^---$" "$f" 2>/dev/null || echo 0)
    echo "Slides: $((n/2 + 1))";;
timing)
    f="${1:-}"; min="${2:-15}"
    [ -z "$f" ] && { echo "Usage: timing <file> <minutes>"; exit 1; }
    n=$(grep -c "^---$" "$f" 2>/dev/null || echo 0)
    slides=$((n/2 + 1))
    per=$(echo "$min $slides" | awk '{printf "%.1f", $1/$2}')
    echo "Slides: $slides | Time: ${min}min | Per slide: ${per}min";;
info) echo "Slides v1.0.0"; echo "Inspired by: maaslalani/slides (11,000+ stars)"; echo "Powered by BytesAgain | bytesagain.com";;
*) echo "Unknown: $CMD"; exit 1;;
esac


path: slides/tips.md
content: # Tips for Slides

## Quick Start
1. Run `help` to see all commands
2. Most commands work without arguments (uses defaults)

## Inspired By
- [maaslalani/slides](https://github.com/maaslalani/slides) — 11,330+ stars on GitHub

---
Powered by BytesAgain | bytesagain.com


path: tips.md
content: # 💡 Slide Maker Tips

1. **Outline first, slides second**: Unsure about structure? Run `outline` to clarify your thinking, then `slides` to fill in content.

2. **Keep pitch decks under 12 slides**: Investors have short attention spans. 10-12 pages is the sweet spot for a Pitch Deck.

3. **One core idea per slide**: Don't cram content. One slide, one message — your audience will actually remember it.

4. **Speaker notes include timing**: `speaker` allocates 2-3 minutes per slide so your total presentation time stays on track.

5. **Markdown is portable**: Output Markdown imports directly into Marp, Slidev, or Reveal.js — no vendor lock-in.

6. **Check design before building**: Run `design` first for color and typography recommendations — saves rework later.

7. **Reports need numbers**: Every report slide should have 1-2 key metrics. Data beats paragraphs of text.

8. **Add interaction to training**: Training slides should include a question or exercise every 3-4 pages to keep engagement up.


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)