--- name: hosting description: Upload and host static HTML websites, PDFs, images, recipes, and dossiers on public S3 storage (https://hosting.haumdaucher.de). --- # Public S3 File & Website Hosting 🌐 Publishes files and standalone static web pages to **`https://hosting.haumdaucher.de`**. ## When to Use - **Research Dossiers & Websites**: After compiling an in-depth research report or summary, build an HTML page (styled with clean CSS) and upload it so the user can view it in their browser or share it with friends. - **Recipes & Cooking Plans**: For Koch subagent (`agents/koch.md`) when creating shareable recipe cards or dinner menus. - **Documents & PDFs**: Uploading PDFs, cheat sheets, or notes. - **Images**: Sharing generated images, diagrams, or charts via a clean link. - **Link Collections**: Hosting curated bookmarks or event overviews. ## URL Structure & Conventions Artifacts are automatically named with the required pattern: ``` https://hosting.haumdaucher.de/{category}/{YYYYMMDD}-{slug}.{ext} ``` - **Categories**: `research`, `recipes`, `images`, `docs`, `shared`. - **Date**: Auto-generated in `YYYYMMDD` format (e.g. `20260916`). - **Slug**: Short, lowercase, alphanumeric hyphenated identifier (e.g. `haumdaucher-agent-framework`). ## CLI Execution Run the publisher via `uv run`: ### 1. Uploading a Local File ```bash uv run /home/node/mop-skills/mop-skills/skills/hosting/scripts/publish_file.py \ --file /tmp/my-report.html \ --category research \ --slug ai-agent-framework ``` ### 2. Publishing Inline HTML Content Directly ```bash uv run /home/node/mop-skills/mop-skills/skills/hosting/scripts/publish_file.py \ --content "Rezept

Pistazien-Eis

" \ --category recipes \ --slug pistazien-eis \ --ext html ``` ### 3. Deleting an Artifact ```bash uv run /home/node/mop-skills/mop-skills/skills/hosting/scripts/publish_file.py \ --delete "research/20260916-ai-agent-framework.html" ``` ## Mandatory Workflow: QR Code Offer Whenever you host an artifact and present the public link to the user: 1. Present the link clearly in your message: ```markdown Hier ist deine veröffentlichte Website / dein Dokument: 🔗 https://hosting.haumdaucher.de/research/20260916-ai-agent-framework.html ``` 2. **Immediately follow up with the `ask_user` tool** to ask whether a QR code should be generated: ```json { "question": "Möchtest du für diesen Link einen QR-Code generieren?", "options": ["Ja, QR-Code erstellen", "Nein, danke"] } ``` 3. If the user selects **"Ja, QR-Code erstellen"**: Run the `qr-code` skill: ```bash uv run /home/node/mop-skills/mop-skills/skills/qr-code/scripts/generate_qr.py "https://hosting.haumdaucher.de/research/20260916-ai-agent-framework.html" ``` And deliver the image using `MEDIA:` in your response.