# MOP Skills 🐙 This repository contains a collection of specialized **Claude Skills**. These skills extend Claude's capabilities with domain-specific knowledge, workflows, and automated reporting. ## Repository Structure ``` . ├── AGENTS.md # This file (purpose and overview) ├── skills/ # Dedicated directory for individual skills │ ├── nerd-report/ # Personal report generator for Moritz Graf │ ├── rvv-regensburg/ # Real-time public transport for Regensburg │ └── skill-creator/ # Toolkit for creating and validating new skills ``` ## Available Skills ### [nerd-report](skills/nerd-report/SKILL.md) A professional "Octobot Journalist" that generates daily, weekly, and monthly reports for Moritz Graf. - **Topics:** IT News, GCP, AI (Anthropic/OpenAI), Hacker News, Regensburg Local News. - **Special Features:** Monday catch-up, Drill-down ("Tell me more"), Gardening (Hochbeet), Supermarket Shopping Guide. ### [memobird](skills/memobird/SKILL.md) Direct printing to the Memobird thermal printer. Allows sending text, images, and notes to the device on the local network. - **Features:** Text styling (big, bold, underline), automated 1-bit image conversion, separator lines. - **Target:** Default targets the static IP `192.168.10.165`. ### [rvv-regensburg](skills/rvv-regensburg/SKILL.md) Real-time public transport information for Regensburg (RVV). Provides departures, stop finding, and journey planning via direct API access. - **Features:** Real-time departures with delay info, connection search, Stop ID resolver. - **Tools:** Includes `rvv_query.py` for direct EFA API interaction. ### [text-to-audio](skills/text-to-audio/SKILL.md) Audio dossier and podcast producer. Converts arbitrary research, summaries, notes, or articles into audio dossiers with duration target, importance compression, and solo or NotebookLM-style dialogue. - **Features:** Target duration pacing (~130 words/min), importance filtering, solo monologue or multi-speaker dialogue. - **Voices:** Primary Google Gemini 3.1 Flash TTS with automatic MiniMax Speech 02 HD fallback. German voices (`Puck` host/solo, `Aoede` co-host, `Charon` deep), English voices (`Zephyr` host/solo, `Aoede` co-host). - **Tools:** Includes `scripts/text_to_audio.py` for parallel chunk synthesis, auto-fallback, and MP3 generation. ### [jelly-media](skills/jelly-media/SKILL.md) Seamless Jellyfin and Jellyseerr integration. Enables natural-language discovery, stream & download URLs, living room playback dispatch, continue watching, and media requests. - **Features:** Smart search cross-referenced with library availability, discover with genre & rating filters, direct stream & download links, Jellyfin active sessions & remote play, Jellyseerr requests. - **Tools:** Standalone MCP server and CLI at `scripts/jelly_media.py`. ### [shopping](skills/shopping/SKILL.md) Smart shopping advisor and Vorrats-Concierge. - **Features:** German supermarket & discounter weekly discounts (Edeka, Rewe, Aldi, Lidl, Kaufland, Netto, Penny, dm, Rossmann), Vorratskauf multi-brand comparison (Mutti / Oro di Parma), diaper piece-price calculator (ct/Windel), Geizhals price comparison & all-time-low price history, and eBay marketplace search. - **Tools:** Standalone MCP servers and CLIs at `scripts/supermarket_deals.py`, `scripts/geizhals_mcp.py`, and `scripts/ebay_mcp.py`. ### [spotify](skills/spotify/SKILL.md) Spotify music intelligence, catalog search, playback control, playlist curation, party queueing, and personal listening history. - **Features:** 35+ tools via `mcp-server-spotify` (search, playlists, player/queue, listening stats, top items). - **Synergy:** Bridges Spotify search with Home Assistant to stream Spotify URIs directly on Sonos multi-room speakers and sync Philips Hue lighting. - **Tools:** Includes one-time token generator `scripts/spotify_auth.py`. ### [markitdown](skills/markitdown/SKILL.md) Universal document and media converter powered by Microsoft MarkItDown. - **Features:** Converts PDF, Word (.docx), Excel (.xlsx), PowerPoint (.pptx), HTML, CSV, audio, and images to clean Markdown. - **Tools:** Standalone CLI and URL downloader at `scripts/convert_to_markdown.py`. ### [regensburg-stadtrat](skills/regensburg-stadtrat/SKILL.md) Municipal politics, city council resolutions, meeting agendas, and Ratsinformation for the City of Regensburg (ALLRIS net). - **Features:** Live Latin-1 full-text search across 20+ years of council records, native XML calendar and agenda feeds, Vorlagen metadata & verbatim resolution extraction, and compilation into the Obsidian knowledge vault. - **Tools:** Includes `scripts/regensburg_ris.py` with `search`, `calendar`, `session`, `vorlage`, and `compile-topic` commands. ### [google-calendar](skills/google-calendar/SKILL.md) Two-way Google Calendar integration for Family Appointments and Regensburg Local Events via GCP Service Account. - **Features:** Read, search, create, update, and delete events across two distinct calendars (`family` and `regensburg`). - **Tools:** Standalone MCP server and CLI at `scripts/google_calendar.py` (`calendar_list_events`, `calendar_create_event`, `calendar_update_event`, `calendar_delete_event`, `calendar_get_event`). ### [hosting](skills/hosting/SKILL.md) Public S3 file sharing and static website hosting on `https://hosting.haumdaucher.de`. - **Features:** Upload HTML research dossiers, recipes, documents, and images with clean URLs (`/{category}/{YYYYMMDD}-{slug}.{ext}`). - **Workflow:** Proactively triggers `ask_user` with Telegram inline buttons to offer generating a branded QR code for the public link. - **Tools:** Standalone publisher CLI at `scripts/publish_file.py`. ### [qr-code](skills/qr-code/SKILL.md) Universal QR code generator featuring the Haumdaucher logo in the center. - **Features:** High-redundancy QR code synthesis (`ERROR_CORRECT_H`), logo overlay with clean white badge, and native Telegram image delivery via `MEDIA:`. - **Tools:** Standalone CLI at `scripts/generate_qr.py`. ### [chart-to-chat](skills/chart-to-chat/SKILL.md) Instant chart and diagram generation for chat and Telegram. - **Features:** Transforms structured data (JSON, CSV, key-value metrics) into publication-grade PNG diagrams (bar, line, area, donut, KPI cards, tables) powered by dbt-charts (`dct`) with QuickChart.io fallback. - **Delivery:** Generates local PNGs and outputs `MEDIA:` for native Telegram image rendering. - **Tools:** Standalone CLI at `scripts/chart.py`. ### [create-website](skills/create-website/SKILL.md) Creative Web Director and Senior Frontend Engineer for single-page applications and interactive showcases. - **Features:** Builds fancy, responsive, zero-build SPAs (Tailwind CSS Play CDN, Alpine.js reactivity, Lucide icons, Google Fonts) with anti-AI-slop design archetypes (Dark Obsidian, Editorial Warmth, Neo-Brutalism, Modern Clean SaaS). - **Hosting:** Direct validation and upload to `https://hosting.haumdaucher.de/showcase/...` via the `hosting` skill pipeline, with native Telegram document delivery and QR code generation. - **Tools:** Standalone validation & publisher CLI at `scripts/publish_website.py`. ### [grill-me](skills/grill-me/SKILL.md) Relentless, structured interview to stress-test and sharpen plans, architectures, decisions, or ideas before writing code. - **Features:** Decision tree & frontier exploration, Telegram/mobile-optimized batching (1-3 questions per round), facts-first environment research, anti-sycophancy challenge, and final specification/ADR synthesis. ### [zwift-workout](skills/zwift-workout/SKILL.md) Builds, previews, validates and publishes Zwift `.zwo` workout files (bike-only). - **Workflow:** draft JSON spec -> human-readable preview -> user confirms -> publish via hosting -> file into Knowledge Wiki. - **Features:** Step types `Warmup`/`Cooldown`/`SteadyState`/`Ramp`/`IntervalsT`/`FreeRide`/`MaxEffort`/`SolidState`; power as FTP fractions; guardrails (0.20-1.50 FTP, XML escaping, round-trip parse check); TSS/duration estimate; templates (`endurance`, `sweetspot`, `vo2max`, `sprint`). - **Tools:** CLI at `scripts/zwo.py` (`build`, `from-template`, `validate`, `parse`, `render`, `templates`) + builder at `scripts/zwo_builder.py`. - **Integration:** Fitness agent / Tacx Flux 2; synergistic with `garmin-workout` (one spec, two targets). ### [datastore](skills/datastore/SKILL.md) Structured personal data layer for OpenClaw powered by in-memory DuckDB and git-backed JSONL in `knowledge-wiki/data/`. - **Purpose:** Eliminates LLM arithmetic errors across nutrition intake, baby sleep tracking, and daily caloric balances (ADR 0004). - **Features:** Unified time-series events (`nutrition.intake`, `sleep.session` with open intervals `end=NULL`, `feeding.bottle`), entity catalogs (`foods`, `recipes`, `places`, `people`), dual-engine geospatial radius queries (DuckDB spatial + Haversine fallback), and nightly Garmin Connect mirror. - **Presentation:** Automatically renders Markdown logs in `entities/` and responsive HTML dashboards on `hosting.haumdaucher.de/family/`. - **Tools:** Standalone MCP server and CLI at `scripts/datastore.py`, `scripts/garmin_sync.py`, and `scripts/render_views.py`. ### [skill-creator](skills/skill-creator/SKILL.md) Guidelines and scripts to help developers build high-quality, token-efficient Claude skills. ## How to use Add individual skill directories to your Claude context. Each skill is self-contained within its directory and driven by its `SKILL.md` file. ## Creating New Skills Use the templates and scripts in `skills/skill-creator` to bootstrap new skills: ```bash python3 skills/skill-creator/scripts/init_skill.py --path skills/ ```