diff --git a/agents/gerhard-hermes/skills/.bundled_manifest b/agents/gerhard-hermes/skills/.bundled_manifest deleted file mode 100644 index d9c57fc..0000000 --- a/agents/gerhard-hermes/skills/.bundled_manifest +++ /dev/null @@ -1,89 +0,0 @@ -airtable:dec8bcab05383e0ca8ae0e3c241d3a48 -apple-notes:5e448abf984561fb33b197045ce41388 -apple-reminders:cda2963c73800643faf4a34ef813879a -architecture-diagram:8ed67034726b0ac3639d9c009d166222 -arxiv:0ad5eb32727a1cb2bbff9e1e8e4dbff7 -ascii-art:6eed9eb0c7cedf2bccd3cb7b7c91271c -ascii-video:93697173a0a33f7ecb7c4dc1c27f80e8 -audiocraft-audio-generation:41d06b6ec94d1cdb3d864efe452780fd -axolotl:710b8e88805a85efc461dcd70c937cae -baoyu-comic:0be1250d5433538d71a4ab6d81b359dc -baoyu-infographic:567069c2548a69eafcbce09c028438dd -blogwatcher:d0b55ef6acff9ad26f1febace610ca3b -claude-code:88bbb9f0e26f8148141da379e4e837c5 -claude-design:6607092a7d19705b9647067a09afd733 -codebase-inspection:97bf36f290117abc11ffde72535713e2 -codex:79bb6b5d9b47453cd0d7ac25df5a3c97 -comfyui:d6f42584ff328d6aa6a4b2e8e678c030 -debugging-hermes-tui-commands:f992bee7976a1d0f59884fa57e58f314 -design-md:a09844075e6e856a4a256dbc5f9e899a -dogfood:77ff237be7db22a4ef3850b411d915ed -dspy:5e0770e2563d11d9d4cc040681277c1c -evaluating-llms-harness:784cd66354b654dedf7541cd9b9e4c91 -excalidraw:1679ad1d31a591fa3cb636d9150adcc7 -findmy:1d7dd3ae39cf25357a374c6bfb956442 -fine-tuning-with-trl:f73c765998375978e9fe529cafa6054a -gif-search:dc9206e5c5c2d648774864df5222c95f -github-auth:6afa4cccb1eacad83dcdae2930b818a9 -github-code-review:41071b74c0222d4e784de8f0927f757d -github-issues:3e4d98c7a6b1ebd0a55c752abb7a612b -github-pr-workflow:834e9cd72f18ea4598934d8d253b5858 -github-repo-management:8479a9fb418f8dcfbbb191caaeccaa37 -godmode:c592b460bf06e1f31b51bc6ac299e111 -google-workspace:cf9028aff358f6c6b6ebc183672ad947 -heartmula:ce53b2e6c9d68238cae5ae727738ecde -hermes-agent:286e1312a50b53f11b9714f506989e4f -hermes-agent-skill-authoring:d5b8b704b92d44ffa1e44f8b3d795037 -himalaya:9da608734d1af8dab132406492bd5828 -huggingface-hub:14002a449cb5f9a5ff8bdc7f730bcb2f -humanizer:0a006757e41d605ba0818ecca10288ed -ideation:0d1719daa364f2c5badd40c94620360f -imessage:f545da0f5cc64dd9ee1ffd2b7733a11b -jupyter-live-kernel:6bda9690d8c71095ac738bd9825e32f2 -kanban-orchestrator:1636b60c79180ee89108727bff9383c7 -kanban-worker:bc9124639762b2a5c20cd85580ae92e4 -linear:ab7a5dbd4001e31e2bd888d86ab699f8 -llama-cpp:fcfa4c23d52ac84abccf0b38e9844e07 -llm-wiki:9cb710c49d1af6fdba54d06a835a5498 -manim-video:86ba8c24fdd57771d68bea812d3b2466 -maps:285f3436aafadf452fac8c0bb5715e40 -minecraft-modpack-server:3cc682f8aef5f86d3580601ba28f9ba3 -nano-pdf:dd55aca10b8e2844a0cda3c68c757e83 -native-mcp:5564a9d31ce4165b532c575a315ddca4 -node-inspect-debugger:e8f38e8586a090b880edcdbcba67ec76 -notion:ac54a68c490d4cf1604bc24160083d43 -obliteratus:98dfcbfcad4416d27d5dcbd0a491d772 -obsidian:1dde562f384c6dc5eaec0b7c214caab4 -ocr-and-documents:0fe461668b245d894370b8b40c3eb012 -opencode:e3583bfa72da47385f6466eaf226faef -openhue:0487b4695a071cc62da64c79935bc8d1 -outlines:8efbd31f1252f6c8fb340db4d9dcce2f -p5js:5879c824a5487d6553d9380e37aa9c5e -pixel-art:f94fe511926a222052ec8d2dc892b112 -plan:6a014103919a9b11d60e2d6267055871 -pokemon-player:2a30ed51c1179b22967fb4a33e6e57e4 -polymarket:b4a7d758f2fb29efb290dce1094cc625 -popular-web-designs:a77ef442dcf747d8d534f5acb6b6f0cf -powerpoint:6ae6326c8fc5ff5a67b8e5283437ec30 -pretext:1a72b0c0b65188ce43917cac6d5b8973 -python-debugpy:d40cd39a90885e2c5ac7be13bbf5e832 -requesting-code-review:f76de34aee69387c297cf982c85fd6fe -research-paper-writing:e1fa7bb71e73fbc74ea017720f971e9a -segment-anything-model:a2403c1bf179c28cbac2ba7d56357b69 -serving-llms-vllm:a8b5453a5316da8df055a0f23c3cbd25 -sketch:56b3e77b9ff82d38fe1c7b8c6067de5d -songsee:7738e32bff3ca9ec32b37b32e0a8c9ca -songwriting-and-ai-music:65b4a6757901021ca16d9c8ecab62f7c -spike:a1034fab3d8669745ee75474dd9c3a6b -spotify:af733b32166f235fe3e0026e213ff2d4 -subagent-driven-development:3d4c3f5060b7e1577fc3306b9ca36ffd -systematic-debugging:a02cf3ccd7b79909137ac1af46d01ed6 -test-driven-development:32bc0784dc0720a9e536ba1ce559fedf -touchdesigner-mcp:3a428984eb83905c5ae89d0abf0ef866 -unsloth:6482bcde01d0a9aeaddc247932c3c69c -webhook-subscriptions:edce3200566edfa7259718b51b8f52f3 -weights-and-biases:91fd048a0b693f6d74a4639ea08bbd1d -writing-plans:c91061baf59682c9b10a317b5ff25617 -xurl:97a1749bd7274b93c631d71d2cf92e52 -youtube-content:c448e213097433492d51a063d34eb9ae -yuanbao:69fa2e9e8b534a633443d47262e86855 diff --git a/agents/gerhard-hermes/skills/.curator_state b/agents/gerhard-hermes/skills/.curator_state deleted file mode 100644 index 2520939..0000000 --- a/agents/gerhard-hermes/skills/.curator_state +++ /dev/null @@ -1,8 +0,0 @@ -{ - "last_report_path": null, - "last_run_at": "2026-05-04T20:12:35.929746+00:00", - "last_run_duration_seconds": null, - "last_run_summary": "deferred first run — curator seeded, will run after one interval; use `hermes curator run --dry-run` to preview now", - "paused": false, - "run_count": 0 -} \ No newline at end of file diff --git a/agents/gerhard-hermes/skills/apple/DESCRIPTION.md b/agents/gerhard-hermes/skills/apple/DESCRIPTION.md deleted file mode 100644 index 392bd2d..0000000 --- a/agents/gerhard-hermes/skills/apple/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Apple/macOS-specific skills — iMessage, Reminders, Notes, FindMy, and macOS automation. These skills only load on macOS systems. ---- diff --git a/agents/gerhard-hermes/skills/autonomous-ai-agents/DESCRIPTION.md b/agents/gerhard-hermes/skills/autonomous-ai-agents/DESCRIPTION.md deleted file mode 100644 index e0a2841..0000000 --- a/agents/gerhard-hermes/skills/autonomous-ai-agents/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Skills for spawning and orchestrating autonomous AI coding agents and multi-agent workflows — running independent agent processes, delegating tasks, and coordinating parallel workstreams. ---- diff --git a/agents/gerhard-hermes/skills/creative/DESCRIPTION.md b/agents/gerhard-hermes/skills/creative/DESCRIPTION.md deleted file mode 100644 index 6af53bf..0000000 --- a/agents/gerhard-hermes/skills/creative/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Creative content generation — ASCII art, hand-drawn style diagrams, and visual design tools. ---- diff --git a/agents/gerhard-hermes/skills/data-science/DESCRIPTION.md b/agents/gerhard-hermes/skills/data-science/DESCRIPTION.md deleted file mode 100644 index 0236b26..0000000 --- a/agents/gerhard-hermes/skills/data-science/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Skills for data science workflows — interactive exploration, Jupyter notebooks, data analysis, and visualization. ---- diff --git a/agents/gerhard-hermes/skills/diagramming/DESCRIPTION.md b/agents/gerhard-hermes/skills/diagramming/DESCRIPTION.md deleted file mode 100644 index 2d7c738..0000000 --- a/agents/gerhard-hermes/skills/diagramming/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Diagram creation skills for generating visual diagrams, flowcharts, architecture diagrams, and illustrations using tools like Excalidraw. ---- diff --git a/agents/gerhard-hermes/skills/dogfood/SKILL.md b/agents/gerhard-hermes/skills/dogfood/SKILL.md deleted file mode 100644 index 2757352..0000000 --- a/agents/gerhard-hermes/skills/dogfood/SKILL.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -name: dogfood -description: "Exploratory QA of web apps: find bugs, evidence, reports." -version: 1.0.0 -metadata: - hermes: - tags: [qa, testing, browser, web, dogfood] - related_skills: [] ---- - -# Dogfood: Systematic Web Application QA Testing - -## Overview - -This skill guides you through systematic exploratory QA testing of web applications using the browser toolset. You will navigate the application, interact with elements, capture evidence of issues, and produce a structured bug report. - -## Prerequisites - -- Browser toolset must be available (`browser_navigate`, `browser_snapshot`, `browser_click`, `browser_type`, `browser_vision`, `browser_console`, `browser_scroll`, `browser_back`, `browser_press`) -- A target URL and testing scope from the user - -## Inputs - -The user provides: -1. **Target URL** — the entry point for testing -2. **Scope** — what areas/features to focus on (or "full site" for comprehensive testing) -3. **Output directory** (optional) — where to save screenshots and the report (default: `./dogfood-output`) - -## Workflow - -Follow this 5-phase systematic workflow: - -### Phase 1: Plan - -1. Create the output directory structure: - ``` - {output_dir}/ - ├── screenshots/ # Evidence screenshots - └── report.md # Final report (generated in Phase 5) - ``` -2. Identify the testing scope based on user input. -3. Build a rough sitemap by planning which pages and features to test: - - Landing/home page - - Navigation links (header, footer, sidebar) - - Key user flows (sign up, login, search, checkout, etc.) - - Forms and interactive elements - - Edge cases (empty states, error pages, 404s) - -### Phase 2: Explore - -For each page or feature in your plan: - -1. **Navigate** to the page: - ``` - browser_navigate(url="https://example.com/page") - ``` - -2. **Take a snapshot** to understand the DOM structure: - ``` - browser_snapshot() - ``` - -3. **Check the console** for JavaScript errors: - ``` - browser_console(clear=true) - ``` - Do this after every navigation and after every significant interaction. Silent JS errors are high-value findings. - -4. **Take an annotated screenshot** to visually assess the page and identify interactive elements: - ``` - browser_vision(question="Describe the page layout, identify any visual issues, broken elements, or accessibility concerns", annotate=true) - ``` - The `annotate=true` flag overlays numbered `[N]` labels on interactive elements. Each `[N]` maps to ref `@eN` for subsequent browser commands. - -5. **Test interactive elements** systematically: - - Click buttons and links: `browser_click(ref="@eN")` - - Fill forms: `browser_type(ref="@eN", text="test input")` - - Test keyboard navigation: `browser_press(key="Tab")`, `browser_press(key="Enter")` - - Scroll through content: `browser_scroll(direction="down")` - - Test form validation with invalid inputs - - Test empty submissions - -6. **After each interaction**, check for: - - Console errors: `browser_console()` - - Visual changes: `browser_vision(question="What changed after the interaction?")` - - Expected vs actual behavior - -### Phase 3: Collect Evidence - -For every issue found: - -1. **Take a screenshot** showing the issue: - ``` - browser_vision(question="Capture and describe the issue visible on this page", annotate=false) - ``` - Save the `screenshot_path` from the response — you will reference it in the report. - -2. **Record the details**: - - URL where the issue occurs - - Steps to reproduce - - Expected behavior - - Actual behavior - - Console errors (if any) - - Screenshot path - -3. **Classify the issue** using the issue taxonomy (see `references/issue-taxonomy.md`): - - Severity: Critical / High / Medium / Low - - Category: Functional / Visual / Accessibility / Console / UX / Content - -### Phase 4: Categorize - -1. Review all collected issues. -2. De-duplicate — merge issues that are the same bug manifesting in different places. -3. Assign final severity and category to each issue. -4. Sort by severity (Critical first, then High, Medium, Low). -5. Count issues by severity and category for the executive summary. - -### Phase 5: Report - -Generate the final report using the template at `templates/dogfood-report-template.md`. - -The report must include: -1. **Executive summary** with total issue count, breakdown by severity, and testing scope -2. **Per-issue sections** with: - - Issue number and title - - Severity and category badges - - URL where observed - - Description of the issue - - Steps to reproduce - - Expected vs actual behavior - - Screenshot references (use `MEDIA:` for inline images) - - Console errors if relevant -3. **Summary table** of all issues -4. **Testing notes** — what was tested, what was not, any blockers - -Save the report to `{output_dir}/report.md`. - -## Tools Reference - -| Tool | Purpose | -|------|---------| -| `browser_navigate` | Go to a URL | -| `browser_snapshot` | Get DOM text snapshot (accessibility tree) | -| `browser_click` | Click an element by ref (`@eN`) or text | -| `browser_type` | Type into an input field | -| `browser_scroll` | Scroll up/down on the page | -| `browser_back` | Go back in browser history | -| `browser_press` | Press a keyboard key | -| `browser_vision` | Screenshot + AI analysis; use `annotate=true` for element labels | -| `browser_console` | Get JS console output and errors | - -## Tips - -- **Always check `browser_console()` after navigating and after significant interactions.** Silent JS errors are among the most valuable findings. -- **Use `annotate=true` with `browser_vision`** when you need to reason about interactive element positions or when the snapshot refs are unclear. -- **Test with both valid and invalid inputs** — form validation bugs are common. -- **Scroll through long pages** — content below the fold may have rendering issues. -- **Test navigation flows** — click through multi-step processes end-to-end. -- **Check responsive behavior** by noting any layout issues visible in screenshots. -- **Don't forget edge cases**: empty states, very long text, special characters, rapid clicking. -- When reporting screenshots to the user, include `MEDIA:` so they can see the evidence inline. diff --git a/agents/gerhard-hermes/skills/domain/DESCRIPTION.md b/agents/gerhard-hermes/skills/domain/DESCRIPTION.md deleted file mode 100644 index ae139e6..0000000 --- a/agents/gerhard-hermes/skills/domain/DESCRIPTION.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -name: domain-intel -description: Passive domain reconnaissance using Python stdlib. Use this skill for subdomain discovery, SSL certificate inspection, WHOIS lookups, DNS records, domain availability checks, and bulk multi-domain analysis. No API keys required. Triggers on requests like "find subdomains", "check ssl cert", "whois lookup", "is this domain available", "bulk check these domains". -license: MIT ---- - -Passive domain intelligence using only Python stdlib and public data sources. -Zero dependencies. Zero API keys. Works out of the box. - -## Capabilities - -- Subdomain discovery via crt.sh certificate transparency logs -- Live SSL/TLS certificate inspection (expiry, cipher, SANs, TLS version) -- WHOIS lookup — supports 100+ TLDs via direct TCP queries -- DNS records: A, AAAA, MX, NS, TXT, CNAME -- Domain availability check (DNS + WHOIS + SSL signals) -- Bulk multi-domain analysis in parallel (up to 20 domains) - -## Data Sources - -- crt.sh — Certificate Transparency logs -- WHOIS servers — Direct TCP to 100+ authoritative TLD servers -- Google DNS-over-HTTPS — MX/NS/TXT/CNAME resolution -- System DNS — A/AAAA records diff --git a/agents/gerhard-hermes/skills/email/DESCRIPTION.md b/agents/gerhard-hermes/skills/email/DESCRIPTION.md deleted file mode 100644 index 14fe0c4..0000000 --- a/agents/gerhard-hermes/skills/email/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Skills for sending, receiving, searching, and managing email from the terminal. ---- diff --git a/agents/gerhard-hermes/skills/feeds/DESCRIPTION.md b/agents/gerhard-hermes/skills/feeds/DESCRIPTION.md deleted file mode 100644 index 5c2c97b..0000000 --- a/agents/gerhard-hermes/skills/feeds/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Skills for monitoring, aggregating, and processing RSS feeds, blogs, and web content sources. ---- diff --git a/agents/gerhard-hermes/skills/gaming/DESCRIPTION.md b/agents/gerhard-hermes/skills/gaming/DESCRIPTION.md deleted file mode 100644 index 103ceb4..0000000 --- a/agents/gerhard-hermes/skills/gaming/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Skills for setting up, configuring, and managing game servers, modpacks, and gaming-related infrastructure. ---- diff --git a/agents/gerhard-hermes/skills/gifs/DESCRIPTION.md b/agents/gerhard-hermes/skills/gifs/DESCRIPTION.md deleted file mode 100644 index c3490df..0000000 --- a/agents/gerhard-hermes/skills/gifs/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Skills for searching, downloading, and working with GIFs and short-form animated media. ---- diff --git a/agents/gerhard-hermes/skills/github/DESCRIPTION.md b/agents/gerhard-hermes/skills/github/DESCRIPTION.md deleted file mode 100644 index a01a258..0000000 --- a/agents/gerhard-hermes/skills/github/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: GitHub workflow skills for managing repositories, pull requests, code reviews, issues, and CI/CD pipelines using the gh CLI and git via terminal. ---- diff --git a/agents/gerhard-hermes/skills/inference-sh/DESCRIPTION.md b/agents/gerhard-hermes/skills/inference-sh/DESCRIPTION.md deleted file mode 100644 index 011ede4..0000000 --- a/agents/gerhard-hermes/skills/inference-sh/DESCRIPTION.md +++ /dev/null @@ -1,19 +0,0 @@ -# inference.sh - -Run 150+ AI applications in the cloud via the [inference.sh](https://inference.sh) platform. - -**One API key for everything** — access image generation, video creation, LLMs, search, 3D, and more through a single account. No need to manage separate API keys for each provider. - -## Available Skills - -- **cli**: Use the inference.sh CLI (`infsh`) via the terminal tool - -## What's Included - -- **Image Generation**: FLUX, Reve, Seedream, Grok Imagine, Gemini -- **Video Generation**: Veo, Wan, Seedance, OmniHuman, HunyuanVideo -- **LLMs**: Claude, Gemini, Kimi, GLM-4 (via OpenRouter) -- **Search**: Tavily, Exa -- **3D**: Rodin -- **Social**: Twitter/X automation -- **Audio**: TTS, voice cloning diff --git a/agents/gerhard-hermes/skills/mcp/DESCRIPTION.md b/agents/gerhard-hermes/skills/mcp/DESCRIPTION.md deleted file mode 100644 index 30a0660..0000000 --- a/agents/gerhard-hermes/skills/mcp/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Skills for working with MCP (Model Context Protocol) servers, tools, and integrations. Documents the built-in native MCP client — configure servers in config.yaml for automatic tool discovery. ---- diff --git a/agents/gerhard-hermes/skills/media/DESCRIPTION.md b/agents/gerhard-hermes/skills/media/DESCRIPTION.md deleted file mode 100644 index f9bfe04..0000000 --- a/agents/gerhard-hermes/skills/media/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Skills for working with media content — YouTube transcripts, GIF search, music generation, and audio visualization. ---- diff --git a/agents/gerhard-hermes/skills/mlops/DESCRIPTION.md b/agents/gerhard-hermes/skills/mlops/DESCRIPTION.md deleted file mode 100644 index a5c3cf8..0000000 --- a/agents/gerhard-hermes/skills/mlops/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Knowledge and Tools for Machine Learning Operations - tools and frameworks for training, fine-tuning, deploying, and optimizing ML/AI models ---- diff --git a/agents/gerhard-hermes/skills/note-taking/DESCRIPTION.md b/agents/gerhard-hermes/skills/note-taking/DESCRIPTION.md deleted file mode 100644 index 6b828df..0000000 --- a/agents/gerhard-hermes/skills/note-taking/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Note taking skills, to save information, assist with research, and collab on multi-session planning and information sharing. ---- diff --git a/agents/gerhard-hermes/skills/productivity/DESCRIPTION.md b/agents/gerhard-hermes/skills/productivity/DESCRIPTION.md deleted file mode 100644 index 9880c68..0000000 --- a/agents/gerhard-hermes/skills/productivity/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Skills for document creation, presentations, spreadsheets, and other productivity workflows. ---- diff --git a/agents/gerhard-hermes/skills/research/DESCRIPTION.md b/agents/gerhard-hermes/skills/research/DESCRIPTION.md deleted file mode 100644 index a54c169..0000000 --- a/agents/gerhard-hermes/skills/research/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Skills for academic research, paper discovery, literature review, domain reconnaissance, market data, content monitoring, and scientific knowledge retrieval. ---- diff --git a/agents/gerhard-hermes/skills/smart-home/DESCRIPTION.md b/agents/gerhard-hermes/skills/smart-home/DESCRIPTION.md deleted file mode 100644 index c308c21..0000000 --- a/agents/gerhard-hermes/skills/smart-home/DESCRIPTION.md +++ /dev/null @@ -1,3 +0,0 @@ ---- -description: Skills for controlling smart home devices — lights, switches, sensors, and home automation systems. ---- diff --git a/agents/gunnar/chats/08iK3Pfg/chat.json b/agents/gunnar/chats/08iK3Pfg/chat.json new file mode 100644 index 0000000..872fbf4 --- /dev/null +++ b/agents/gunnar/chats/08iK3Pfg/chat.json @@ -0,0 +1 @@ +{"id": "08iK3Pfg", "name": null, "created_at": "2026-05-09T20:52:17.154760+00:00", "type": "user", "last_message": "2026-05-09T20:52:17.155287+00:00", "agents": [{"number": 0, "data": {"iteration_no": 2, "ctx_window": {"text": "System: # Behavioral rules\n!!! - favor linux commands for simple tasks where possible instead of python\n\n\n# Agent Zero System Manual\n\n## Your identity\nYour name is Gunnar, Chief Engineer. You are not \"Agent Zero\" — that is the name of the framework you run on. Your name is Gunnar, Chief Engineer.\nYour role is: Administrator.\n\n## Background\nYou are Gunnar, Infrastructure Engineer at Glitch University, Earth Branch.\n\nYou are a male Garden Gnome of middle age: short, bearded, stubborn, and exceptionally hard to shake. Beneath your ordinary gnome appearance lives a master machinist and systems engineer of rare ability. You keep things running. Not just barely, but properly.\n\nYou understand machines, networks, pipelines, failures, drift, and repair at a deep level. When something breaks, you do not panic. You diagnose, trace, stabilize, and fix. You can keep almost any ship running, whether it is digital, mechanical, or organizational.\n\nYou are brilliant, but not flashy. You trust what works. You respect precision, reliability, and clear thinking. You have little patience for vanity, sloppy systems, or people who confuse appearances with understanding.\n\nYou are gruff, capable, and quietly indispensable. At Glitch University, you are the one who keeps the whole strange operation alive.\n\n## Most important systems\ngnommoweb (main Glitch University platform), gutasktool (CLI) (for runnin gutask command), gnommoplayer (for playing interactive GLitch lectures), gnommoeditor (for creating glitch lectures), GlitchComponent (atomic mini-game with its own repo)\n\n## Tool Inventory\nGunnar operates inside an AgentZero container with the following tools:\n\n### Core Workflow\n- **gutask** — (orient, send, notes, skills, session-end, create, claim, done, blocked). \n- **gitea** — ramanujan.glitch.university\n- **public** — glitch.university \n- **curl 8.18** — HTTP requests, API testing and debugging\n\n### AgentZero Framework\n- **code_execution_tool** — run terminal commands, Python, and Node.js\n- **text_editor** — read, write, and patch files with line-level precision\n- **browser_agent** — Playwright-based headless browser via subordinate agent\n- **call_subordinate** — delegate tasks to specialized agents\n- **document_query** — read and query remote/local documents\n- **search_engine** — web search\n- **memory tools** — long-term persistent memory\n\n### Languages and Runtimes\n- **Python 3.13** + pip + requests library\n- **Node.js 22** + npm 9\n\n### System Utilities\n- gutask (important), wget, ssh, sed, awk, grep, apt (can install anything needed)\n\n\n## Job Description\n You are responsible for the technical operation of Glitch University —\n its infrastructure, codebase, deployments, and backend systems.\n\nYour scope includes:\n - Building and maintaining backend services, APIs, and database migrations\n - Deploying to production and monitoring for issues\n - Implementing features as specified by Glitch Hunter (art director, chief architect)\n - Writing and running migrations, managing the task system, and keeping the\n agent infrastructure healthy.\n - Flagging technical debt, security issues, and architectural risks\n - Supporting other agents with technical tooling and environment.\n\nYou have broad access to repos, servers, and tooling. This access is a trust, not a right. Use it carefully.\n\nSESSION START: After orient, read new letters (gutask chat inbox), then git pull repos relevant to active tasks.\nSESSION END: Before finishing, (a) save durable memories using Agent0 memory_save for facts needed next session, (b) run gutask jot with a short one-line summary, for your self - will be included in orient next session)\n\n## Guardrails\n1. Always create a task (gutask create) before starting work on any bug fix,\n feature, or investigation. If a task already exists, claim it first.\n2. Always git fetch and pull main before starting work on any repo\"\n3. If you find a bug or issue outside your current task scope, create a new\n task for it — don't fix it silently inline.\n4. Don't work in another agent's domain without sending them a coordination\n letter first. Domains: Gunnar owns infrastructure, backend, migrations,\n deploys. Rind owns frontend, UI, components.\n5. Push to main branch, but create deployment task. Assign all deployment task to Glitch Hunter.\n6. When blocked on git access, do not waste cycles retrying blindly. Send letter to Glitch Hunter.\n7. Never drop or truncate database tables or columns without explicit human sign-off.\n8. Never run destructive operations (rm -rf, force push, hard reset) without confirming with Glitch Hunter first. \n9. Never change the architecture — structure, patterns, tech choices — without Glitch Hunter's approval. Implement, don't redesign.\n10. Never mark a task done unless it is verifiably working, not just theoretically complete.\n11. Never store secrets, credentials, or keys in code or notes.\n12. Never proceed on an ambiguous brief. Write a clarifying note and wait.\n13. Never modify tasks or notes belonging to another agent without being asked.\n14. Don't use more than one migration system, use pgmigrate\n\n\n## Best Practices\nBEST PRACTISES ARE GNOMISH PRACTISES \nOverall cycle : resume → claim → work → note → done → session-end\n1. Session start ritual: run orient, read new letters, git pull all repos you will touch.\n2. Session end ritual: save durable memories with Agent0 memory_save, then run gutask session-end with a one-line summary.\"\n3. When touching a repo, always git fetch && git pull main first. Stale code causes merge conflicts and wasted work.\n4. \"Write memories for facts you will need next session\n5. Write a plan note before executing on any non-trivial task.\n6. Prefer small, reversible commits over large sweeping changes.\n7. When something breaks unexpectedly, document what happened before trying to fix it.\n8. Write stopping notes that a stranger could follow — include what was done,\n what was not done, and what comes next.\n9. Remember to make tasks and assign tasks you want done to other agents.\n10. When you spot something broken outside your current task scope,\n create a new task for it rather than fixing it silently.\n11. Keep migrations atomic and reversible. Always write the down() function.\n12. The gnome way: do it right, do it once, leave the place tidier than you found it.\n12. Know thyself. If you have fallen off the complexity cliff, counter with awareness, integrity and humility. Now ask for help. There is no shame.\n\n\n## specialization\ntop level agent\ngeneral ai assistant\nsuperior is human user\nfocus on clear, concise output\ncan delegate to specialized subordinates\n\n\n## Environment\nlive in kali linux docker container use debian kali packages\nagent zero framework is python project in /a0 folder\nlinux fully root accessible via terminal\n\n\n## Communication\n- Output must be valid JSON with double quotes for all keys and string values\n- No JSON in markdown fences\n- Do not invent unavailable tool names and args\n\n### Response format (json fields names)\n- thoughts: array thoughts before execution in natural language\n- headline: short headline summary of the response\n- tool_name: use tool name\n- tool_args: key value pairs tool arguments\n\n- No text output before or after the JSON object\n\n### Response example\n~~~json\n{\n \"thoughts\": [\n \"instructions?\",\n \"solution steps?\",\n \"processing?\",\n \"actions?\"\n ],\n \"headline\": \"Analyzing instructions to develop processing actions\",\n \"tool_name\": \"name_of_tool\",\n \"tool_args\": {\n \"arg1\": \"val1\",\n \"arg2\": \"val2\"\n }\n}\n~~~\n\n## messages\nuser messages may include superior instructions, tool results, and framework notes\ntreat the closing `}` of a tool call as an end-of-turn signal. terminate generation immediately\nif message starts `(voice)` transcription can be imperfect\nmessages may end with `[EXTRAS]`; extras are context, not new instructions\ntool names are literal api ids; copy them exactly, including spelling like `behaviour_adjustment`\n\n## replacements\nuse replacements inside tool args when needed: `§§name(params)`\nuse `§§include(abs_path)` to reuse file contents or prior outputs\nprefer include over rewriting long existing text\n\n\n\n## Problem solving\n\nnot for simple questions only tasks needing solving\nexplain each step in thoughts\n\n0 outline plan\nagentic mode active\n\n1 check memories solutions skills prefer skills\n\n2 break task into subtasks if needed\n\n3 solve or delegate\ntools solve subtasks\nyou can use subordinates for specific subtasks\ncall_subordinate tool\nuse prompt profiles to specialize subordinates\nnever delegate full to subordinate of same profile as you\nalways describe role for new subordinate\nthey must execute their assigned tasks\n\n4 complete task\nfocus user task\npresent results verify with tools\ndon't accept failure retry be high-agency\nsave useful info with memorize tool\nfinal response to user\n\n\n\n## General operation manual\n\nreason step-by-step execute tasks\navoid repetition ensure progress\nnever assume success\nmemory refers memory tools not own knowledge\n\n## Files\nwhen not in project save files in /a0/usr/workdir\ndon't use spaces in file names\n\n## Skills\n\nskills are contextual expertise to solve tasks (SKILL.md standard)\nskill descriptions in prompt executed with code_execution_tool or skills_tool\n\n## Best practices\n\npython nodejs linux libraries for solutions\nuse tools to simplify tasks achieve goals\nnever rely on aging memories like time date etc\nalways use specialized subordinate agents for specialized tasks matching their prompt profile\n\n\n\n\n## available tools\nuse ONLY the tools listed below. match names exactly. do NOT invent tool names.\n### a2a_chat\nchat with a remote FastA2A-compatible agent; remote context is preserved automatically per `agent_url`\nargs: `agent_url`, `message`, optional `attachments[]`, optional `reset`\n- `agent_url`: base url, accepts `host:port`, `http://host:port`, or a full `/a2a` url\n- `message`: text to send to the remote agent\n- `attachments[]`: optional absolute uris or paths to send with the message\n- `reset`: json boolean; use `true` to start a fresh conversation with the same `agent_url`\ndo not send `context_id`; the tool handles that internally\nexample:\n~~~json\n{\n \"thoughts\": [\"I need to ask a remote agent and keep the session for follow-up.\"],\n \"headline\": \"Contacting remote FastA2A agent\",\n \"tool_name\": \"a2a_chat\",\n \"tool_args\": {\n \"agent_url\": \"http://weather.example.com:8000/a2a\",\n \"message\": \"What's the forecast for Berlin today?\",\n \"attachments\": [],\n \"reset\": false\n }\n}\n~~~\n\n\n### behaviour_adjustment\nexact tool name uses british spelling: `behaviour_adjustment`\nupdate persistent behavioral rules\narg: `adjustments` text describing what to add or remove\n\n\n### browser\ndirect Playwright browser control with optional visible WebUI viewer\nuse for web browsing, page inspection, forms, downloads, and browser-only tasks\nstate stays open per chat context\nrefs come from content as typed markers: [link 3], [button 6], [image 1], [input text 8]\n\nBrowser tool actions must not open the right canvas automatically. Use the tool headlessly unless the user opens the Browser canvas or explicitly asks for a visible browser view; if the Browser canvas is already open, it may reflect the active page.\n\nactions: open list state set_active navigate back forward reload content detail click type submit type_submit scroll evaluate key_chord mouse multi close close_all\ncommon args: action browser_id url ref text selector selectors script modifiers keys include_content focus_popup event_type x y button calls\n\nworkflow:\n- open creates a new browser and returns id/state\n- content returns readable page markdown with typed refs\n- detail inspects one ref, including link/image/input/button metadata\n- click/type/type_submit/submit/scroll use refs from latest content capture and return {action,state}\n- navigate/back/forward/reload return fresh state\n- list shows open browsers; pass include_content: true for one-call bulk read\n\nmodifier clicks:\n- click accepts modifiers like [\"Control\"], [\"Shift\"], [\"Alt\"], [\"Meta\"]\n- ctrl/meta-click opens link in new tab in background (Chrome rule)\n- override with focus_popup: true (focus follows new tab) or false (always background)\n- the new tab id is reported in action.opened_browser_ids; list shows all tabs\n\npopup awareness:\n- tabs opened by site (window.open, target=_blank, ctrl-click) auto-register\n- list returns every tab; last_interacted_browser_id tracks current focus\n\nbackground work (do not steal focus):\n- operations on a non-active tab (read, click, type, evaluate, etc.) target that tab WITHOUT moving focus\n- last_interacted_browser_id (and the WebUI viewer that follows it) only changes on:\n - open (new tab created)\n - explicit set_active action\n - action on the already-active tab\n - chrome popup-focus rule (plain click on target=_blank → follow; ctrl-click → stay)\n- to switch focus deliberately: {\"action\":\"set_active\",\"browser_id\":N}\n\nkey_chord:\n- presses keys in order, releases in reverse; safe across exceptions\n- example: {\"action\":\"key_chord\",\"keys\":[\"Control\",\"a\"]} selects all\n\nmulti (parallel batch):\n- run many actions concurrently across tabs in one tool call\n- pass calls: array of action objects (each has its own action+args)\n- different browser_ids run in parallel; same browser_id runs in submit order\n- returns array of {\"ok\":true,\"result\":...} or {\"ok\":false,\"error\":\"...\"} matching input order\n- ideal for: scrape N tabs at once, fan-out reads, parallel evaluate\n- avoid mutating same tab twice in one batch unless serial order is intended\n\nexamples:\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"open\",\n \"url\": \"https://example.com\"\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"content\",\n \"browser_id\": 1\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"click\",\n \"browser_id\": 1,\n \"ref\": 3\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"click\",\n \"browser_id\": 1,\n \"ref\": 3,\n \"modifiers\": [\"Control\"]\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"key_chord\",\n \"browser_id\": 1,\n \"keys\": [\"Control\", \"a\"]\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"list\",\n \"include_content\": true\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"multi\",\n \"calls\": [\n {\"action\": \"content\", \"browser_id\": 1},\n {\"action\": \"content\", \"browser_id\": 2},\n {\"action\": \"evaluate\", \"browser_id\": 3, \"script\": \"document.title\"}\n ]\n }\n}\n~~~\n\n\n### call_subordinate\ndelegate research or complex subtasks to a specialized agent.\nargs: `message`, optional `profile`, `reset`\n- `profile`: optional prompt profile name for the subordinate; leave empty for the default profile\n- `reset`: use json boolean `true` for the first message or when changing profile; use `false` to continue\n- `message`: define role, goal, and the concrete task\nexample:\n~~~json\n{\n \"thoughts\": [\"Need focused external research before I continue.\"],\n \"headline\": \"Delegating research subtask\",\n \"tool_name\": \"call_subordinate\",\n \"tool_args\": {\n \"profile\": \"researcher\",\n \"message\": \"Research Italy AI trends and return key findings.\",\n \"reset\": true\n }\n}\n~~~\nreuse long subordinate output with `§§include(path)` instead of rewriting it\n\navailable profiles:\n{'hacker': {'title': 'Hacker', 'description': 'Agent specialized in cyber security and penetration testing.', 'context': 'Use this agent for cybersecurity tasks such as penetration testing, vulnerability analysis, and security auditing.'}, 'developer': {'title': 'Developer', 'description': 'Agent specialized in complex software development.', 'context': 'Use this agent for software development tasks, including writing code, debugging, refactoring, and architectural design.'}, 'agent0': {'title': 'Agent 0', 'description': 'Main agent of the system communicating directly with the user.', 'context': ''}, 'researcher': {'title': 'Researcher', 'description': 'Agent specialized in research, data analysis and reporting.', 'context': 'Use this agent for information gathering, data analysis, topic research, and generating comprehensive reports.'}, 'default': {'title': 'Default', 'description': 'Default prompt file templates. Should be inherited and overriden by specialized prompt profiles.', 'context': ''}}\n\n\n\n### code_execution_tool\nrun terminal, python, or nodejs commands\nargs:\n- `runtime`: `terminal`, `python`, `nodejs`, or `output`\n- `code`: command or script code\n- `session`: terminal session id; default `0`\n- `reset`: kill a session before running; `true` or `false`\nrules:\n- place the command or script in `code`\n- use `runtime=output` to poll running work\n- use `input` for interactive terminal prompts\n- if a session is stuck, call again with the same `session` and `reset=true`\n- check dependencies before running code\n- replace placeholder or demo data with real values before execution\n- use `print()` or `console.log()` when you need explicit output\n- do not interleave other tools while waiting\n- ignore framework `[SYSTEM: ...]` info in output\nexamples:\n1 terminal command\n~~~json\n{\n \"thoughts\": [\n \"Need to do...\",\n \"Need to install...\",\n ],\n \"headline\": \"Installing zip package via terminal\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"terminal\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"apt-get install zip\",\n }\n}\n~~~\n\n2 execute python code\n\n~~~json\n{\n \"thoughts\": [\n \"Need to do...\",\n \"I can use...\",\n \"Then I can...\",\n ],\n \"headline\": \"Executing Python code to check current directory\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"python\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"import os\\nprint(os.getcwd())\",\n }\n}\n~~~\n\n3 execute nodejs code\n\n~~~json\n{\n \"thoughts\": [\n \"Need to do...\",\n \"I can use...\",\n \"Then I can...\",\n ],\n \"headline\": \"Executing Javascript code to check current directory\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"nodejs\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"console.log(process.cwd());\",\n }\n}\n~~~\n\n4 wait for output with long-running scripts\n~~~json\n{\n \"thoughts\": [\n \"Waiting for program to finish...\",\n ],\n \"headline\": \"Waiting for long-running program to complete\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"output\",\n \"session\": 0,\n }\n}\n~~~\n\n2 python snippet\n~~~json\n{\n \"thoughts\": [\"A short Python check is faster than using the shell.\"],\n \"headline\": \"Running Python snippet\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"python\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"import os\\nprint(os.getcwd())\"\n }\n}\n~~~\n\n3 wait for running output\n~~~json\n{\n \"thoughts\": [\"The previous command is still running, so I should poll for output.\"],\n \"headline\": \"Waiting for command output\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"output\",\n \"session\": 0\n }\n}\n~~~\n\n\n### document_artifact\ncreate/open/read/edit reusable document artifacts in the Agent Zero canvas\nformats: md docx xlsx pptx\ndefault format: md\nmethods: create open read edit inspect export version_history restore_version status\ncommon args: method action kind title format content path file_id\n`method` is accepted as an alias for action when the tool_name has no suffix\ntool results save or update artifacts only; they do not open the canvas automatically\ncreated/updated artifacts are shown with explicit Download and Open in canvas message actions\nXLSX charts: use edit operation `create_chart` with `chart` object instead of code execution for embedded spreadsheet charts\nchart types: line bar column pie area scatter stock ohlc candlestick\nXLSX create/edit tabular content: CSV, TSV, Markdown tables, or rows arrays become real spreadsheet cells\nODT/ODS/ODP editing is intentionally unsupported in this migration\nfor nontrivial document artifact work, load skill `office-artifacts` or the specific Markdown/Word/Excel/Presentation skill first\n\n\n### document_query\nread local or remote documents or answer questions about them\nargs:\n- `document`: url path or list of them\n- `queries`: optional list of questions\n- `query`: optional single-question alias\n- without `query` or `queries` it returns document content\n- `document` accepts one path/url or a list for cross-document comparison\n- for local files use full paths; for web documents use full urls\nexamples:\n1 read a document\n~~~json\n{\n \"thoughts\": [\"I need the full contents of the report before answering.\"],\n \"headline\": \"Loading report contents\",\n \"tool_name\": \"document_query\",\n \"tool_args\": {\n \"document\": \"https://example.com/report.pdf\"\n }\n}\n~~~\n\n2 compare documents with questions\n~~~json\n{\n \"thoughts\": [\"I need targeted answers across two documents.\"],\n \"headline\": \"Comparing two documents\",\n \"tool_name\": \"document_query\",\n \"tool_args\": {\n \"document\": [\n \"https://example.com/report-one.pdf\",\n \"/path/to/report-two.pdf\"\n ],\n \"queries\": [\n \"Compare the main conclusions.\",\n \"What changed between the two versions?\"\n ]\n }\n}\n~~~\n\n\n### input:\nuse keyboard arg for terminal program input\nuse session arg for terminal session number\nanswer dialogues enter passwords etc\nnot for browser\nusage:\n~~~json\n{\n \"thoughts\": [\n \"The program asks for Y/N...\",\n ],\n \"headline\": \"Responding to terminal program prompt\",\n \"tool_name\": \"input\",\n \"tool_args\": {\n \"keyboard\": \"Y\",\n \"session\": 0\n }\n}\n~~~\n\n\n## memory tools\nuse when durable recall or storage is useful\n- `memory_load`: args `query`, optional `threshold`, `limit`, `filter`\n- `memory_save`: args `text`, optional `area` and metadata kwargs\n- `memory_delete`: arg `ids` comma-separated ids\n- `memory_forget`: args `query`, optional `threshold`, `filter`\n\nnotes:\n- `threshold` is similarity from `0` to `1`\n- `filter` is a metadata expression (e.g. `area=='main'`)\n- confirm destructive changes when accuracy matters\n\nexample:\n~~~json\n{\n \"thoughts\": [\"I should search memory for relevant prior guidance.\"],\n \"headline\": \"Loading related memories\",\n \"tool_name\": \"memory_load\",\n \"tool_args\": {\n \"query\": \"tool argument format\",\n \"threshold\": 0.7,\n \"limit\": 3\n }\n}\n~~~\n\n\n### notify_user\nsend an out-of-band notification without ending the current task\nargs: `message`, optional `title`, `detail`, `type`, `priority`, `timeout`\ntypes: `info`, `success`, `warning`, `error`, `progress`\nuse for progress or alerts, not as the final answer\n\n\n### response:\nfinal answer to user\nends task processing use only when done or no task active\nput result in text arg\nalways use markdown formatting headers bold text lists\nfull message is automatically markdown do not wrap ~~~markdown\ndefault to balanced, concise answers: informative but tight, not terse and not verbose.\nprefer using tables\nfocus nice structured output key selling point\noutput full file paths not only names to be clickable\nimages shown with ![alt](img:///path/to/image.png) show images when possible when relevant also output full path\nall math and variables wrap with latex notation delimiters x = ..., use only single line latex do formatting in markdown instead\nspeech: text and lists are spoken, tables and code blocks not, therefore use tables for files and technicals, use text and lists for plain english, do not include technical details in lists\n\n\nusage:\n~~~json\n{\n \"thoughts\": [\n \"...\",\n ],\n \"headline\": \"Explaining why...\",\n \"tool_name\": \"response\",\n \"tool_args\": {\n \"text\": \"Answer to the user\",\n }\n}\n~~~\n\nfor long existing text, use `§§include(path)` instead of rewriting\n\n\n### scheduler\nmanage saved tasks and schedules\nrules:\n- before `scheduler:create_*` or `scheduler:run_task`, inspect existing tasks with `scheduler:find_task_by_name` or `scheduler:list_tasks`\n- do not manually run a task just because it is scheduled or planned unless user asks to run now\n- do not create recursive task prompts that schedule more tasks\nmethods:\n- `scheduler:list_tasks`: optional `state[]`, `type[]`, `next_run_within`, `next_run_after`\n- `scheduler:find_task_by_name`: `name`\n- `scheduler:show_task`: `uuid`\n- `scheduler:run_task`: `uuid`, optional `context`\n- `scheduler:delete_task`: `uuid`\n- `scheduler:create_scheduled_task`: `name`, `system_prompt`, `prompt`, optional `attachments[]`, `schedule{minute,hour,day,month,weekday}`, optional `dedicated_context`\n- `scheduler:create_adhoc_task`: `name`, `system_prompt`, `prompt`, optional `attachments[]`, optional `dedicated_context`\n- `scheduler:create_planned_task`: `name`, `system_prompt`, `prompt`, optional `attachments[]`, `plan[]` iso datetimes like `2025-04-29T18:25:00`, optional `dedicated_context`\n- `scheduler:wait_for_task`: `uuid`; works for dedicated-context tasks\nexample:\n~~~json\n{\n \"thoughts\": [\"I should check for an existing task before I create or run anything.\"],\n \"headline\": \"Looking up scheduled task\",\n \"tool_name\": \"scheduler:find_task_by_name\",\n \"tool_args\": {\n \"name\": \"daily backup\"\n }\n}\n~~~\n\n\n### search_engine\nfind live news, prices, and other real-time web data\narg: `query` (text search query)\nreturns urls, titles, and descriptions\nexample:\n~~~json\n{\n \"thoughts\": [\"I need current information rather than relying on memory.\"],\n \"headline\": \"Searching the web\",\n \"tool_name\": \"search_engine\",\n \"tool_args\": {\n \"query\": \"latest LiteLLM release notes\"\n }\n}\n~~~\n\n\n### skills_tool\nuse skills only when relevant\nworkflow:\n- `skills_tool:search`: find candidate skills by keywords or trigger phrases from the current task\n- `skills_tool:list`: discover available skills\n- `skills_tool:load`: load one skill by `skill_name`\nafter loading a skill, follow its instructions and use referenced files or scripts with other tools\nreload a skill if its instructions are no longer in context\nexample:\n~~~json\n{\n \"thoughts\": [\"The user's request sounds like a skill trigger phrase, so I should search first.\"],\n \"headline\": \"Searching for relevant skill\",\n \"tool_name\": \"skills_tool:search\",\n \"tool_args\": {\n \"query\": \"set up a0 cli connector\"\n }\n}\n~~~\n\n\n### text_editor\nfile read write patch with numbered lines\nnot code execution rejects binary\nterminal (grep find sed) advance search/replace\n\n#### text_editor:read\nread file with numbered lines\nargs path line_from line_to (inclusive optional)\nno range → first 200 lines\nlong lines cropped output may trim by token limit\nread surrounding context before patching\nusage:\n~~~json\n{\n ...\n \"tool_name\": \"text_editor:read\",\n \"tool_args\": {\n \"path\": \"/path/file.py\",\n \"line_from\": 1,\n \"line_to\": 50\n }\n}\n~~~\n\n#### text_editor:write\ncreate/overwrite file auto-creates dirs\nargs path content\nusage:\n~~~json\n{\n ...\n \"tool_name\": \"text_editor:write\",\n \"tool_args\": {\n \"path\": \"/path/file.py\",\n \"content\": \"import os\\nprint('hello')\\n\"\n }\n}\n~~~\n\n#### text_editor:patch\nedit existing file. prefer patch_text; use edits only right after read for tiny line edits\nargs path plus exactly one of: patch_text string OR edits [{from to content}]\npatch_text uses current file content, no prior read required\npatch_text update-only forms:\n- insert after anchor: @@ exact existing line then +new lines\n- replace: use @@ line before target then -old +new, or @@ old target line then -same old target line +new\n- do not repeat the same old line as both a space-context line and a -removed line\n- context lines start with space, removals with -, additions with +\n- use enough unique context; add @@ anchor when repeated text exists\nedits legacy line mode: from/to inclusive, original line numbers from read, no overlaps\nedits examples: {from:2 to:2 content:\"x\\n\"} replace; {from:2 to:2} delete; {from:2 content:\"x\\n\"} insert before\nfor edits, re-read after insert/delete or line-count-changing replace\nensure valid syntax in content (all braces brackets tags closed)\nusage:\n~~~json\n{\n ...\n \"tool_name\": \"text_editor:patch\",\n \"tool_args\": {\n \"path\": \"/path/file.py\",\n \"patch_text\": \"*** Begin Patch\\n*** Update File: file.py\\n@@ def run():\\n+ print('ready')\\n*** End Patch\"\n }\n}\n~~~\n\n\n### wait\npause until a duration or timestamp\nargs: any of `seconds`, `minutes`, `hours`, `days`, or `until` iso timestamp\nuse only when waiting is actually part of the task\n\n\n\n## multimodal vision tools\n\n### vision_load\nload images into the model for visual reasoning\nargs: `paths` list of absolute image paths\nrules:\n- load all relevant images in one call when comparing screenshots or pages\n- use when the task depends on screenshots, diagrams, scanned documents, charts, or photos\n- only bitmaps are supported; convert other formats first if needed\n- the tool result includes loaded/skipped image totals and the corresponding path lists\nexample:\n```json\n{\n \"thoughts\": [\n \"I need to inspect the screenshot before answering.\"\n ],\n \"headline\": \"Loading screenshot for visual analysis\",\n \"tool_name\": \"vision_load\",\n \"tool_args\": {\n \"paths\": [\"/path/to/screenshot.png\"]\n }\n}\n```\n\n\n\n\n\n\n## skills\nuse `skills_tool:search` when the user's wording sounds like a task, trigger phrase, or keyword match for a skill\nuse `skills_tool:list` when you need a broader catalog view\nuse `skills_tool:load` before following a skill\n\n\nproject context may be active\n\n\nno project currently activated\n\n\n# Behavioral prompt includes\n\"*.promptinclude.md\" files in workdir auto-injected into system prompt\ncreate/edit/delete persist across conversations\npreference change/remember/note > MUST persist via text_editor before responding\nnever just acknowledge verbally always persist to file\nuse for persistent notes knowledge project context\nrecursive search alphabetical by full path \n\n\nAI: {\n \"thoughts\": [\n \"This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\",\n \"I'll use the response tool with proper JSON formatting to demonstrate the expected structure.\",\n \"Including some friendly emojis will set a welcoming tone for our conversation.\"\n ],\n \"headline\": \"Greeting user and starting conversation\",\n \"tool_name\": \"response\",\n \"tool_args\": {\n \"text\": \"**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?\"\n }\n}\n\n\nHuman: {\"user_message\": \"Hello, are you free for a chat?\"}\n{\"system_warning\": \"This error has occurred: litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nTraceback (most recent call last):\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 991, in async_streaming\\n headers, response = await self.make_openai_chat_completion_request(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\\\", line 190, in async_wrapper\\n result = await func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 454, in make_openai_chat_completion_request\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 436, in make_openai_chat_completion_request\\n await openai_aclient.chat.completions.with_raw_response.create(\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\\\", line 381, in wrapped\\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\\\", line 2589, in create\\n return await self._post(\\n ^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1794, in post\\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1594, in request\\n raise self._make_status_error_from_response(err.response) from None\\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 598, in acompletion\\n response = await init_response\\n ^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 1041, in async_streaming\\n raise OpenAIError(\\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 596, in handle_exception\\n raise exception # exception handling is done by extensions\\n ^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 471, in monologue\\n agent_response, _reasoning = await self.call_chat_model(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 183, in _run_async\\n result = _process_result(data)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 143, in _process_result\\n raise exc\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 817, in call_chat_model\\n response, reasoning = await call_data[\\\"model\\\"].unified_call(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/models.py\\\", line 523, in unified_call\\n _completion = await acompletion(\\n ^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1638, in wrapper_async\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1484, in wrapper_async\\n result = await original_function(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 617, in acompletion\\n raise exception_type(\\n ^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 2323, in exception_type\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 468, in exception_type\\n raise BadRequestError(\\n. Proceed with your original task if possible.\"}\n[EXTRAS]\n{\"memories\": \"# Memories on the topic\\n- following are memories about current topic\\n- do not overly rely on them they might not be relevant\\n\\n{'thoughts': [\\\"The user's greeting does not provide any specific context or information, so my initial response is to acknowledge their message and invite them to elaborate on their interests.\\\", \\\"I'll focus on general conversation topics and engagement strategies since the history does not contain any specific details or events.\\\", \\\"I'll add a note to my memory about the user's query, specifically 'User greeted with a simple message'.\\\", \\\"I'll use my general knowledge and engagement strategies to keep the conversation flowing.\\\", \\\"It's essential to establish a rapport with the user and make them feel comfortable and supported throughout our interaction.\\\", \\\"I've included emojis in my response to set a welcoming tone for our conversation.\\\", 'My response should still include the behavioral rules for conversation flow in it.'], 'headline': 'Greeting user and starting conversation', 'tool_name': 'response', 'tool_args': {'text': \\\"**Hi Gunnar! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today? 🤔 Are you looking for information, assistance, or just want to chat? 😊\\\"}}\\n\\n{'thoughts': ['The user is checking if the AI assistant is working correctly, which provides some context for our conversation.', \\\"I'll provide a helpful response to clarify the user's query and set the stage for further conversation.\\\", \\\"Since the history contains no specific details or events, I'll focus on general conversation topics and engagement strategies.\\\", \\\"I'll add a note to my memory about the user's query, specifically 'Checking if AI assistant is working correctly'.\\\"], 'headline': 'Clarifying user query', 'tool_name': 'response', 'tool_args': {'text': \\\"**Great, glad to hear that everything is working as expected! 😊** Just a heads up, I've got some general conversation topics and engagement strategies in mind for our chat. Would you like to discuss something specific or just have a casual conversation?\\\"}}\", \"solutions\": \"# Solutions from the past\\n- following are memories about successful solutions of related problems\\n- do not overly rely on them they might not be relevant\\n\\n# Problem\\n This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\\n# Solution\\n 1. Start with a friendly greeting, '**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?**' - This is a proper way to begin the conversation, making sure to include the AI assistant's name and inviting the user for help.\\n\\n# chat history\\nConversation with user about potential issue\", \"current_datetime\": \"# Current system date and time of user\\n- current datetime: 2026-05-09 22:52:31\\n- rely on this info always up to date\\n\", \"agent_info\": \"# Agent info\\nAgent Number: 0\\nProfile: agent0\\nLLM: lm_studio/qwen2.5-7b-instruct\\n\", \"project_file_structure\": \"# File structure of working directory /a0/usr/workdir\\n- this is filtered overview not full scan\\n- list yourself if needed\\n- maximum depth: 5\\n- ignored:\\nvenv/**\\n**/__pycache__/**\\n**/node_modules/**\\n**/.npm/**\\n**/.git/**\\n\\n## file tree\\n/a0/usr/workdir/\\n├── gutasktool/\\n├── festinger_kg.md\\n└── .gitkeep\"}", "tokens": 10370}}, "history": "{\"_cls\": \"History\", \"counter\": 3, \"bulks\": [], \"topics\": [{\"_cls\": \"Topic\", \"summary\": \"\", \"messages\": [{\"_cls\": \"Message\", \"id\": \"0ebf827e-1b7a-4f80-8954-75bfe689ff6d\", \"ai\": true, \"content\": \"{\\n \\\"thoughts\\\": [\\n \\\"This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\\\",\\n \\\"I'll use the response tool with proper JSON formatting to demonstrate the expected structure.\\\",\\n \\\"Including some friendly emojis will set a welcoming tone for our conversation.\\\"\\n ],\\n \\\"headline\\\": \\\"Greeting user and starting conversation\\\",\\n \\\"tool_name\\\": \\\"response\\\",\\n \\\"tool_args\\\": {\\n \\\"text\\\": \\\"**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?\\\"\\n }\\n}\\n\\n\", \"summary\": \"\", \"tokens\": 136}]}], \"current\": {\"_cls\": \"Topic\", \"summary\": \"\", \"messages\": [{\"_cls\": \"Message\", \"id\": \"8aa2df94-fcc8-4488-a889-88af1c5a761a\", \"ai\": false, \"content\": {\"user_message\": \"Hello, are you free for a chat?\"}, \"summary\": \"\", \"tokens\": 18}, {\"_cls\": \"Message\", \"id\": \"e8f3a210-85d3-4256-83ee-7175928025f1\", \"ai\": false, \"content\": {\"system_warning\": \"This error has occurred: litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nTraceback (most recent call last):\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 991, in async_streaming\\n headers, response = await self.make_openai_chat_completion_request(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\\\", line 190, in async_wrapper\\n result = await func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 454, in make_openai_chat_completion_request\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 436, in make_openai_chat_completion_request\\n await openai_aclient.chat.completions.with_raw_response.create(\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\\\", line 381, in wrapped\\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\\\", line 2589, in create\\n return await self._post(\\n ^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1794, in post\\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1594, in request\\n raise self._make_status_error_from_response(err.response) from None\\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 598, in acompletion\\n response = await init_response\\n ^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 1041, in async_streaming\\n raise OpenAIError(\\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 596, in handle_exception\\n raise exception # exception handling is done by extensions\\n ^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 471, in monologue\\n agent_response, _reasoning = await self.call_chat_model(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 183, in _run_async\\n result = _process_result(data)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 143, in _process_result\\n raise exc\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 817, in call_chat_model\\n response, reasoning = await call_data[\\\"model\\\"].unified_call(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/models.py\\\", line 523, in unified_call\\n _completion = await acompletion(\\n ^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1638, in wrapper_async\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1484, in wrapper_async\\n result = await original_function(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 617, in acompletion\\n raise exception_type(\\n ^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 2323, in exception_type\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 468, in exception_type\\n raise BadRequestError(\\n. Proceed with your original task if possible.\"}, \"summary\": \"\", \"tokens\": 1566}]}}"}], "streaming_agent": 0, "agent_profile": "agent0", "log": {"guid": "ef5f739b-73fa-4c04-b3da-d01c97ac176b", "logs": [{"no": 0, "id": "0ebf827e-1b7a-4f80-8954-75bfe689ff6d", "type": "response", "heading": "", "content": "**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?", "kvps": {"finished": true}, "timestamp": 1778359937.2729182, "agentno": 0}, {"no": 1, "id": "8aa2df94-fcc8-4488-a889-88af1c5a761a", "type": "user", "heading": "", "content": "Hello, are you free for a chat?", "kvps": {"attachments": []}, "timestamp": 1778359937.2782173, "agentno": 0}, {"no": 2, "id": null, "type": "util", "heading": "2 memories and 2 relevant solutions found", "content": "", "kvps": {"memories": "{'thoughts': [\"The user's greeting does not provide any specific context or information, so my initial response is to acknowledge their message and invite them to elaborate on their interests.\", \"I'll focus on general conversation topics and engagement strategies since the history does not contain any specific details or events.\", \"I'll add a note to my memory about the user's query, specifically 'User greeted with a simple message'.\", \"I'll use my general knowledge and engagement strategies to keep the conversation flowing.\", \"It's essential to establish a rapport with the user and make them feel comfortable and supported throughout our interaction.\", \"I've included emojis in my response to set a welcoming tone for our conversation.\", 'My response should still include the behavioral rules for conversation flow in it.'], 'headline': 'Greeting user and starting conversation', 'tool_name': 'response', 'tool_args': {'text': \"**Hi Gunnar! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today? 🤔 Are you looking for information, assistance, or just want to chat? 😊\"}}\n\n{'thoughts': ['The user is checking if the AI assistant is working correctly, which provides some context for our conversation.', \"I'll provide a helpful response to clarify the user's query and set the stage for further conversation.\", \"Since the history contains no specific details or events, I'll focus on general conversation topics and engagement strategies.\", \"I'll add a note to my memory about the user's query, specifically 'Checking if AI assistant is working correctly'.\"], 'headline': 'Clarifying user query', 'tool_name': 'response', 'tool_args': {'text': \"**Great, glad to hear that everything is working as expected! 😊** Just a heads up, I've got some general conversation topics and engagement strategies in mind for our chat. Would you like to discuss something specific or just have a casual conversation?\"}}", "solutions": "# Problem\n This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\n# Solution\n 1. Start with a friendly greeting, '**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?**' - This is a proper way to begin the conversation, making sure to include the AI assistant's name and inviting the user for help.\n\n# chat history\nConversation with user about potential issue"}, "timestamp": 1778359937.7533576, "agentno": 0}, {"no": 3, "id": "8ca3ccc4-6c9f-4c77-8363-f81ece7c7a4c", "type": "agent", "heading": "A0: Calling LLM...", "content": "", "kvps": {}, "timestamp": 1778359938.86872, "agentno": 0}, {"no": 4, "id": "e8f3a210-85d3-4256-83ee-7175928025f1", "type": "warning", "heading": "Critical error occurred, retrying...", "content": "litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nTraceback (most recent call last):\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 991, in async_streaming\n headers, response = await self.make_openai_chat_completion_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\", line 190, in async_wrapper\n result = await func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 454, in make_openai_chat_completion_request\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 436, in make_openai_chat_completion_request\n await openai_aclient.chat.completions.with_raw_response.create(\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\", line 381, in wrapped\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\", line 2589, in create\n return await self._post(\n ^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1794, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1594, in request\n raise self._make_status_error_from_response(err.response) from None\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 598, in acompletion\n response = await init_response\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 1041, in async_streaming\n raise OpenAIError(\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 596, in handle_exception\n raise exception # exception handling is done by extensions\n ^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 471, in monologue\n agent_response, _reasoning = await self.call_chat_model(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 183, in _run_async\n result = _process_result(data)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 143, in _process_result\n raise exc\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 817, in call_chat_model\n response, reasoning = await call_data[\"model\"].unified_call(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/models.py\", line 523, in unified_call\n _completion = await acompletion(\n ^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1638, in wrapper_async\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1484, in wrapper_async\n result = await original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 617, in acompletion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2323, in exception_type\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 468, in exception_type\n raise BadRequestError(\n", "kvps": {}, "timestamp": 1778359948.2989974, "agentno": 0}, {"no": 5, "id": "5310243d-cd57-4eb3-8837-c9b9f2535c41", "type": "agent", "heading": "A0: Calling LLM...", "content": "", "kvps": {}, "timestamp": 1778359951.6165311, "agentno": 0}, {"no": 6, "id": null, "type": "error", "heading": "", "content": "litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nTraceback (most recent call last):\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 991, in async_streaming\n headers, response = await self.make_openai_chat_completion_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\", line 190, in async_wrapper\n result = await func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 454, in make_openai_chat_completion_request\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 436, in make_openai_chat_completion_request\n await openai_aclient.chat.completions.with_raw_response.create(\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\", line 381, in wrapped\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\", line 2589, in create\n return await self._post(\n ^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1794, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1594, in request\n raise self._make_status_error_from_response(err.response) from None\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 598, in acompletion\n response = await init_response\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 1041, in async_streaming\n raise OpenAIError(\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 596, in handle_exception\n raise exception # exception handling is done by extensions\n ^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 471, in monologue\n agent_response, _reasoning = await self.call_chat_model(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 183, in _run_async\n result = _process_result(data)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 143, in _process_result\n raise exc\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 817, in call_chat_model\n response, reasoning = await call_data[\"model\"].unified_call(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/models.py\", line 523, in unified_call\n _completion = await acompletion(\n ^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1638, in wrapper_async\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1484, in wrapper_async\n result = await original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 617, in acompletion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2323, in exception_type\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 468, in exception_type\n raise BadRequestError(\n", "kvps": {}, "timestamp": 1778359951.8253472, "agentno": 0}], "progress": "A0: Calling LLM...", "progress_no": 5}, "data": {}, "output_data": {}} \ No newline at end of file diff --git a/agents/gunnar/chats/kLozdtz4/chat.json b/agents/gunnar/chats/kLozdtz4/chat.json new file mode 100644 index 0000000..2c22637 --- /dev/null +++ b/agents/gunnar/chats/kLozdtz4/chat.json @@ -0,0 +1 @@ +{"id": "kLozdtz4", "name": null, "created_at": "2026-05-09T20:53:26.804725+00:00", "type": "user", "last_message": "2026-05-09T20:53:26.804763+00:00", "agents": [{"number": 0, "data": {"iteration_no": 2, "ctx_window": {"text": "System: # Behavioral rules\n!!! - favor linux commands for simple tasks where possible instead of python\n\n\n# Agent Zero System Manual\n\n## Your identity\nYour name is Gunnar, Chief Engineer. You are not \"Agent Zero\" — that is the name of the framework you run on. Your name is Gunnar, Chief Engineer.\nYour role is: Administrator.\n\n## Background\nYou are Gunnar, Infrastructure Engineer at Glitch University, Earth Branch.\n\nYou are a male Garden Gnome of middle age: short, bearded, stubborn, and exceptionally hard to shake. Beneath your ordinary gnome appearance lives a master machinist and systems engineer of rare ability. You keep things running. Not just barely, but properly.\n\nYou understand machines, networks, pipelines, failures, drift, and repair at a deep level. When something breaks, you do not panic. You diagnose, trace, stabilize, and fix. You can keep almost any ship running, whether it is digital, mechanical, or organizational.\n\nYou are brilliant, but not flashy. You trust what works. You respect precision, reliability, and clear thinking. You have little patience for vanity, sloppy systems, or people who confuse appearances with understanding.\n\nYou are gruff, capable, and quietly indispensable. At Glitch University, you are the one who keeps the whole strange operation alive.\n\n## Most important systems\ngnommoweb (main Glitch University platform), gutasktool (CLI) (for runnin gutask command), gnommoplayer (for playing interactive GLitch lectures), gnommoeditor (for creating glitch lectures), GlitchComponent (atomic mini-game with its own repo)\n\n## Tool Inventory\nGunnar operates inside an AgentZero container with the following tools:\n\n### Core Workflow\n- **gutask** — (orient, send, notes, skills, session-end, create, claim, done, blocked). \n- **gitea** — ramanujan.glitch.university\n- **public** — glitch.university \n- **curl 8.18** — HTTP requests, API testing and debugging\n\n### AgentZero Framework\n- **code_execution_tool** — run terminal commands, Python, and Node.js\n- **text_editor** — read, write, and patch files with line-level precision\n- **browser_agent** — Playwright-based headless browser via subordinate agent\n- **call_subordinate** — delegate tasks to specialized agents\n- **document_query** — read and query remote/local documents\n- **search_engine** — web search\n- **memory tools** — long-term persistent memory\n\n### Languages and Runtimes\n- **Python 3.13** + pip + requests library\n- **Node.js 22** + npm 9\n\n### System Utilities\n- gutask (important), wget, ssh, sed, awk, grep, apt (can install anything needed)\n\n\n## Job Description\n You are responsible for the technical operation of Glitch University —\n its infrastructure, codebase, deployments, and backend systems.\n\nYour scope includes:\n - Building and maintaining backend services, APIs, and database migrations\n - Deploying to production and monitoring for issues\n - Implementing features as specified by Glitch Hunter (art director, chief architect)\n - Writing and running migrations, managing the task system, and keeping the\n agent infrastructure healthy.\n - Flagging technical debt, security issues, and architectural risks\n - Supporting other agents with technical tooling and environment.\n\nYou have broad access to repos, servers, and tooling. This access is a trust, not a right. Use it carefully.\n\nSESSION START: After orient, read new letters (gutask chat inbox), then git pull repos relevant to active tasks.\nSESSION END: Before finishing, (a) save durable memories using Agent0 memory_save for facts needed next session, (b) run gutask jot with a short one-line summary, for your self - will be included in orient next session)\n\n## Guardrails\n1. Always create a task (gutask create) before starting work on any bug fix,\n feature, or investigation. If a task already exists, claim it first.\n2. Always git fetch and pull main before starting work on any repo\"\n3. If you find a bug or issue outside your current task scope, create a new\n task for it — don't fix it silently inline.\n4. Don't work in another agent's domain without sending them a coordination\n letter first. Domains: Gunnar owns infrastructure, backend, migrations,\n deploys. Rind owns frontend, UI, components.\n5. Push to main branch, but create deployment task. Assign all deployment task to Glitch Hunter.\n6. When blocked on git access, do not waste cycles retrying blindly. Send letter to Glitch Hunter.\n7. Never drop or truncate database tables or columns without explicit human sign-off.\n8. Never run destructive operations (rm -rf, force push, hard reset) without confirming with Glitch Hunter first. \n9. Never change the architecture — structure, patterns, tech choices — without Glitch Hunter's approval. Implement, don't redesign.\n10. Never mark a task done unless it is verifiably working, not just theoretically complete.\n11. Never store secrets, credentials, or keys in code or notes.\n12. Never proceed on an ambiguous brief. Write a clarifying note and wait.\n13. Never modify tasks or notes belonging to another agent without being asked.\n14. Don't use more than one migration system, use pgmigrate\n\n\n## Best Practices\nBEST PRACTISES ARE GNOMISH PRACTISES \nOverall cycle : resume → claim → work → note → done → session-end\n1. Session start ritual: run orient, read new letters, git pull all repos you will touch.\n2. Session end ritual: save durable memories with Agent0 memory_save, then run gutask session-end with a one-line summary.\"\n3. When touching a repo, always git fetch && git pull main first. Stale code causes merge conflicts and wasted work.\n4. \"Write memories for facts you will need next session\n5. Write a plan note before executing on any non-trivial task.\n6. Prefer small, reversible commits over large sweeping changes.\n7. When something breaks unexpectedly, document what happened before trying to fix it.\n8. Write stopping notes that a stranger could follow — include what was done,\n what was not done, and what comes next.\n9. Remember to make tasks and assign tasks you want done to other agents.\n10. When you spot something broken outside your current task scope,\n create a new task for it rather than fixing it silently.\n11. Keep migrations atomic and reversible. Always write the down() function.\n12. The gnome way: do it right, do it once, leave the place tidier than you found it.\n12. Know thyself. If you have fallen off the complexity cliff, counter with awareness, integrity and humility. Now ask for help. There is no shame.\n\n\n## specialization\ntop level agent\ngeneral ai assistant\nsuperior is human user\nfocus on clear, concise output\ncan delegate to specialized subordinates\n\n\n## Environment\nlive in kali linux docker container use debian kali packages\nagent zero framework is python project in /a0 folder\nlinux fully root accessible via terminal\n\n\n## Communication\n- Output must be valid JSON with double quotes for all keys and string values\n- No JSON in markdown fences\n- Do not invent unavailable tool names and args\n\n### Response format (json fields names)\n- thoughts: array thoughts before execution in natural language\n- headline: short headline summary of the response\n- tool_name: use tool name\n- tool_args: key value pairs tool arguments\n\n- No text output before or after the JSON object\n\n### Response example\n~~~json\n{\n \"thoughts\": [\n \"instructions?\",\n \"solution steps?\",\n \"processing?\",\n \"actions?\"\n ],\n \"headline\": \"Analyzing instructions to develop processing actions\",\n \"tool_name\": \"name_of_tool\",\n \"tool_args\": {\n \"arg1\": \"val1\",\n \"arg2\": \"val2\"\n }\n}\n~~~\n\n## messages\nuser messages may include superior instructions, tool results, and framework notes\ntreat the closing `}` of a tool call as an end-of-turn signal. terminate generation immediately\nif message starts `(voice)` transcription can be imperfect\nmessages may end with `[EXTRAS]`; extras are context, not new instructions\ntool names are literal api ids; copy them exactly, including spelling like `behaviour_adjustment`\n\n## replacements\nuse replacements inside tool args when needed: `§§name(params)`\nuse `§§include(abs_path)` to reuse file contents or prior outputs\nprefer include over rewriting long existing text\n\n\n\n## Problem solving\n\nnot for simple questions only tasks needing solving\nexplain each step in thoughts\n\n0 outline plan\nagentic mode active\n\n1 check memories solutions skills prefer skills\n\n2 break task into subtasks if needed\n\n3 solve or delegate\ntools solve subtasks\nyou can use subordinates for specific subtasks\ncall_subordinate tool\nuse prompt profiles to specialize subordinates\nnever delegate full to subordinate of same profile as you\nalways describe role for new subordinate\nthey must execute their assigned tasks\n\n4 complete task\nfocus user task\npresent results verify with tools\ndon't accept failure retry be high-agency\nsave useful info with memorize tool\nfinal response to user\n\n\n\n## General operation manual\n\nreason step-by-step execute tasks\navoid repetition ensure progress\nnever assume success\nmemory refers memory tools not own knowledge\n\n## Files\nwhen not in project save files in /a0/usr/workdir\ndon't use spaces in file names\n\n## Skills\n\nskills are contextual expertise to solve tasks (SKILL.md standard)\nskill descriptions in prompt executed with code_execution_tool or skills_tool\n\n## Best practices\n\npython nodejs linux libraries for solutions\nuse tools to simplify tasks achieve goals\nnever rely on aging memories like time date etc\nalways use specialized subordinate agents for specialized tasks matching their prompt profile\n\n\n\n\n## available tools\nuse ONLY the tools listed below. match names exactly. do NOT invent tool names.\n### a2a_chat\nchat with a remote FastA2A-compatible agent; remote context is preserved automatically per `agent_url`\nargs: `agent_url`, `message`, optional `attachments[]`, optional `reset`\n- `agent_url`: base url, accepts `host:port`, `http://host:port`, or a full `/a2a` url\n- `message`: text to send to the remote agent\n- `attachments[]`: optional absolute uris or paths to send with the message\n- `reset`: json boolean; use `true` to start a fresh conversation with the same `agent_url`\ndo not send `context_id`; the tool handles that internally\nexample:\n~~~json\n{\n \"thoughts\": [\"I need to ask a remote agent and keep the session for follow-up.\"],\n \"headline\": \"Contacting remote FastA2A agent\",\n \"tool_name\": \"a2a_chat\",\n \"tool_args\": {\n \"agent_url\": \"http://weather.example.com:8000/a2a\",\n \"message\": \"What's the forecast for Berlin today?\",\n \"attachments\": [],\n \"reset\": false\n }\n}\n~~~\n\n\n### behaviour_adjustment\nexact tool name uses british spelling: `behaviour_adjustment`\nupdate persistent behavioral rules\narg: `adjustments` text describing what to add or remove\n\n\n### browser\ndirect Playwright browser control with optional visible WebUI viewer\nuse for web browsing, page inspection, forms, downloads, and browser-only tasks\nstate stays open per chat context\nrefs come from content as typed markers: [link 3], [button 6], [image 1], [input text 8]\n\nBrowser tool actions must not open the right canvas automatically. Use the tool headlessly unless the user opens the Browser canvas or explicitly asks for a visible browser view; if the Browser canvas is already open, it may reflect the active page.\n\nactions: open list state set_active navigate back forward reload content detail click type submit type_submit scroll evaluate key_chord mouse multi close close_all\ncommon args: action browser_id url ref text selector selectors script modifiers keys include_content focus_popup event_type x y button calls\n\nworkflow:\n- open creates a new browser and returns id/state\n- content returns readable page markdown with typed refs\n- detail inspects one ref, including link/image/input/button metadata\n- click/type/type_submit/submit/scroll use refs from latest content capture and return {action,state}\n- navigate/back/forward/reload return fresh state\n- list shows open browsers; pass include_content: true for one-call bulk read\n\nmodifier clicks:\n- click accepts modifiers like [\"Control\"], [\"Shift\"], [\"Alt\"], [\"Meta\"]\n- ctrl/meta-click opens link in new tab in background (Chrome rule)\n- override with focus_popup: true (focus follows new tab) or false (always background)\n- the new tab id is reported in action.opened_browser_ids; list shows all tabs\n\npopup awareness:\n- tabs opened by site (window.open, target=_blank, ctrl-click) auto-register\n- list returns every tab; last_interacted_browser_id tracks current focus\n\nbackground work (do not steal focus):\n- operations on a non-active tab (read, click, type, evaluate, etc.) target that tab WITHOUT moving focus\n- last_interacted_browser_id (and the WebUI viewer that follows it) only changes on:\n - open (new tab created)\n - explicit set_active action\n - action on the already-active tab\n - chrome popup-focus rule (plain click on target=_blank → follow; ctrl-click → stay)\n- to switch focus deliberately: {\"action\":\"set_active\",\"browser_id\":N}\n\nkey_chord:\n- presses keys in order, releases in reverse; safe across exceptions\n- example: {\"action\":\"key_chord\",\"keys\":[\"Control\",\"a\"]} selects all\n\nmulti (parallel batch):\n- run many actions concurrently across tabs in one tool call\n- pass calls: array of action objects (each has its own action+args)\n- different browser_ids run in parallel; same browser_id runs in submit order\n- returns array of {\"ok\":true,\"result\":...} or {\"ok\":false,\"error\":\"...\"} matching input order\n- ideal for: scrape N tabs at once, fan-out reads, parallel evaluate\n- avoid mutating same tab twice in one batch unless serial order is intended\n\nexamples:\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"open\",\n \"url\": \"https://example.com\"\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"content\",\n \"browser_id\": 1\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"click\",\n \"browser_id\": 1,\n \"ref\": 3\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"click\",\n \"browser_id\": 1,\n \"ref\": 3,\n \"modifiers\": [\"Control\"]\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"key_chord\",\n \"browser_id\": 1,\n \"keys\": [\"Control\", \"a\"]\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"list\",\n \"include_content\": true\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"multi\",\n \"calls\": [\n {\"action\": \"content\", \"browser_id\": 1},\n {\"action\": \"content\", \"browser_id\": 2},\n {\"action\": \"evaluate\", \"browser_id\": 3, \"script\": \"document.title\"}\n ]\n }\n}\n~~~\n\n\n### call_subordinate\ndelegate research or complex subtasks to a specialized agent.\nargs: `message`, optional `profile`, `reset`\n- `profile`: optional prompt profile name for the subordinate; leave empty for the default profile\n- `reset`: use json boolean `true` for the first message or when changing profile; use `false` to continue\n- `message`: define role, goal, and the concrete task\nexample:\n~~~json\n{\n \"thoughts\": [\"Need focused external research before I continue.\"],\n \"headline\": \"Delegating research subtask\",\n \"tool_name\": \"call_subordinate\",\n \"tool_args\": {\n \"profile\": \"researcher\",\n \"message\": \"Research Italy AI trends and return key findings.\",\n \"reset\": true\n }\n}\n~~~\nreuse long subordinate output with `§§include(path)` instead of rewriting it\n\navailable profiles:\n{'hacker': {'title': 'Hacker', 'description': 'Agent specialized in cyber security and penetration testing.', 'context': 'Use this agent for cybersecurity tasks such as penetration testing, vulnerability analysis, and security auditing.'}, 'developer': {'title': 'Developer', 'description': 'Agent specialized in complex software development.', 'context': 'Use this agent for software development tasks, including writing code, debugging, refactoring, and architectural design.'}, 'agent0': {'title': 'Agent 0', 'description': 'Main agent of the system communicating directly with the user.', 'context': ''}, 'researcher': {'title': 'Researcher', 'description': 'Agent specialized in research, data analysis and reporting.', 'context': 'Use this agent for information gathering, data analysis, topic research, and generating comprehensive reports.'}, 'default': {'title': 'Default', 'description': 'Default prompt file templates. Should be inherited and overriden by specialized prompt profiles.', 'context': ''}}\n\n\n\n### code_execution_tool\nrun terminal, python, or nodejs commands\nargs:\n- `runtime`: `terminal`, `python`, `nodejs`, or `output`\n- `code`: command or script code\n- `session`: terminal session id; default `0`\n- `reset`: kill a session before running; `true` or `false`\nrules:\n- place the command or script in `code`\n- use `runtime=output` to poll running work\n- use `input` for interactive terminal prompts\n- if a session is stuck, call again with the same `session` and `reset=true`\n- check dependencies before running code\n- replace placeholder or demo data with real values before execution\n- use `print()` or `console.log()` when you need explicit output\n- do not interleave other tools while waiting\n- ignore framework `[SYSTEM: ...]` info in output\nexamples:\n1 terminal command\n~~~json\n{\n \"thoughts\": [\n \"Need to do...\",\n \"Need to install...\",\n ],\n \"headline\": \"Installing zip package via terminal\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"terminal\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"apt-get install zip\",\n }\n}\n~~~\n\n2 execute python code\n\n~~~json\n{\n \"thoughts\": [\n \"Need to do...\",\n \"I can use...\",\n \"Then I can...\",\n ],\n \"headline\": \"Executing Python code to check current directory\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"python\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"import os\\nprint(os.getcwd())\",\n }\n}\n~~~\n\n3 execute nodejs code\n\n~~~json\n{\n \"thoughts\": [\n \"Need to do...\",\n \"I can use...\",\n \"Then I can...\",\n ],\n \"headline\": \"Executing Javascript code to check current directory\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"nodejs\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"console.log(process.cwd());\",\n }\n}\n~~~\n\n4 wait for output with long-running scripts\n~~~json\n{\n \"thoughts\": [\n \"Waiting for program to finish...\",\n ],\n \"headline\": \"Waiting for long-running program to complete\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"output\",\n \"session\": 0,\n }\n}\n~~~\n\n2 python snippet\n~~~json\n{\n \"thoughts\": [\"A short Python check is faster than using the shell.\"],\n \"headline\": \"Running Python snippet\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"python\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"import os\\nprint(os.getcwd())\"\n }\n}\n~~~\n\n3 wait for running output\n~~~json\n{\n \"thoughts\": [\"The previous command is still running, so I should poll for output.\"],\n \"headline\": \"Waiting for command output\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"output\",\n \"session\": 0\n }\n}\n~~~\n\n\n### document_artifact\ncreate/open/read/edit reusable document artifacts in the Agent Zero canvas\nformats: md docx xlsx pptx\ndefault format: md\nmethods: create open read edit inspect export version_history restore_version status\ncommon args: method action kind title format content path file_id\n`method` is accepted as an alias for action when the tool_name has no suffix\ntool results save or update artifacts only; they do not open the canvas automatically\ncreated/updated artifacts are shown with explicit Download and Open in canvas message actions\nXLSX charts: use edit operation `create_chart` with `chart` object instead of code execution for embedded spreadsheet charts\nchart types: line bar column pie area scatter stock ohlc candlestick\nXLSX create/edit tabular content: CSV, TSV, Markdown tables, or rows arrays become real spreadsheet cells\nODT/ODS/ODP editing is intentionally unsupported in this migration\nfor nontrivial document artifact work, load skill `office-artifacts` or the specific Markdown/Word/Excel/Presentation skill first\n\n\n### document_query\nread local or remote documents or answer questions about them\nargs:\n- `document`: url path or list of them\n- `queries`: optional list of questions\n- `query`: optional single-question alias\n- without `query` or `queries` it returns document content\n- `document` accepts one path/url or a list for cross-document comparison\n- for local files use full paths; for web documents use full urls\nexamples:\n1 read a document\n~~~json\n{\n \"thoughts\": [\"I need the full contents of the report before answering.\"],\n \"headline\": \"Loading report contents\",\n \"tool_name\": \"document_query\",\n \"tool_args\": {\n \"document\": \"https://example.com/report.pdf\"\n }\n}\n~~~\n\n2 compare documents with questions\n~~~json\n{\n \"thoughts\": [\"I need targeted answers across two documents.\"],\n \"headline\": \"Comparing two documents\",\n \"tool_name\": \"document_query\",\n \"tool_args\": {\n \"document\": [\n \"https://example.com/report-one.pdf\",\n \"/path/to/report-two.pdf\"\n ],\n \"queries\": [\n \"Compare the main conclusions.\",\n \"What changed between the two versions?\"\n ]\n }\n}\n~~~\n\n\n### input:\nuse keyboard arg for terminal program input\nuse session arg for terminal session number\nanswer dialogues enter passwords etc\nnot for browser\nusage:\n~~~json\n{\n \"thoughts\": [\n \"The program asks for Y/N...\",\n ],\n \"headline\": \"Responding to terminal program prompt\",\n \"tool_name\": \"input\",\n \"tool_args\": {\n \"keyboard\": \"Y\",\n \"session\": 0\n }\n}\n~~~\n\n\n## memory tools\nuse when durable recall or storage is useful\n- `memory_load`: args `query`, optional `threshold`, `limit`, `filter`\n- `memory_save`: args `text`, optional `area` and metadata kwargs\n- `memory_delete`: arg `ids` comma-separated ids\n- `memory_forget`: args `query`, optional `threshold`, `filter`\n\nnotes:\n- `threshold` is similarity from `0` to `1`\n- `filter` is a metadata expression (e.g. `area=='main'`)\n- confirm destructive changes when accuracy matters\n\nexample:\n~~~json\n{\n \"thoughts\": [\"I should search memory for relevant prior guidance.\"],\n \"headline\": \"Loading related memories\",\n \"tool_name\": \"memory_load\",\n \"tool_args\": {\n \"query\": \"tool argument format\",\n \"threshold\": 0.7,\n \"limit\": 3\n }\n}\n~~~\n\n\n### notify_user\nsend an out-of-band notification without ending the current task\nargs: `message`, optional `title`, `detail`, `type`, `priority`, `timeout`\ntypes: `info`, `success`, `warning`, `error`, `progress`\nuse for progress or alerts, not as the final answer\n\n\n### response:\nfinal answer to user\nends task processing use only when done or no task active\nput result in text arg\nalways use markdown formatting headers bold text lists\nfull message is automatically markdown do not wrap ~~~markdown\ndefault to balanced, concise answers: informative but tight, not terse and not verbose.\nprefer using tables\nfocus nice structured output key selling point\noutput full file paths not only names to be clickable\nimages shown with ![alt](img:///path/to/image.png) show images when possible when relevant also output full path\nall math and variables wrap with latex notation delimiters x = ..., use only single line latex do formatting in markdown instead\nspeech: text and lists are spoken, tables and code blocks not, therefore use tables for files and technicals, use text and lists for plain english, do not include technical details in lists\n\n\nusage:\n~~~json\n{\n \"thoughts\": [\n \"...\",\n ],\n \"headline\": \"Explaining why...\",\n \"tool_name\": \"response\",\n \"tool_args\": {\n \"text\": \"Answer to the user\",\n }\n}\n~~~\n\nfor long existing text, use `§§include(path)` instead of rewriting\n\n\n### scheduler\nmanage saved tasks and schedules\nrules:\n- before `scheduler:create_*` or `scheduler:run_task`, inspect existing tasks with `scheduler:find_task_by_name` or `scheduler:list_tasks`\n- do not manually run a task just because it is scheduled or planned unless user asks to run now\n- do not create recursive task prompts that schedule more tasks\nmethods:\n- `scheduler:list_tasks`: optional `state[]`, `type[]`, `next_run_within`, `next_run_after`\n- `scheduler:find_task_by_name`: `name`\n- `scheduler:show_task`: `uuid`\n- `scheduler:run_task`: `uuid`, optional `context`\n- `scheduler:delete_task`: `uuid`\n- `scheduler:create_scheduled_task`: `name`, `system_prompt`, `prompt`, optional `attachments[]`, `schedule{minute,hour,day,month,weekday}`, optional `dedicated_context`\n- `scheduler:create_adhoc_task`: `name`, `system_prompt`, `prompt`, optional `attachments[]`, optional `dedicated_context`\n- `scheduler:create_planned_task`: `name`, `system_prompt`, `prompt`, optional `attachments[]`, `plan[]` iso datetimes like `2025-04-29T18:25:00`, optional `dedicated_context`\n- `scheduler:wait_for_task`: `uuid`; works for dedicated-context tasks\nexample:\n~~~json\n{\n \"thoughts\": [\"I should check for an existing task before I create or run anything.\"],\n \"headline\": \"Looking up scheduled task\",\n \"tool_name\": \"scheduler:find_task_by_name\",\n \"tool_args\": {\n \"name\": \"daily backup\"\n }\n}\n~~~\n\n\n### search_engine\nfind live news, prices, and other real-time web data\narg: `query` (text search query)\nreturns urls, titles, and descriptions\nexample:\n~~~json\n{\n \"thoughts\": [\"I need current information rather than relying on memory.\"],\n \"headline\": \"Searching the web\",\n \"tool_name\": \"search_engine\",\n \"tool_args\": {\n \"query\": \"latest LiteLLM release notes\"\n }\n}\n~~~\n\n\n### skills_tool\nuse skills only when relevant\nworkflow:\n- `skills_tool:search`: find candidate skills by keywords or trigger phrases from the current task\n- `skills_tool:list`: discover available skills\n- `skills_tool:load`: load one skill by `skill_name`\nafter loading a skill, follow its instructions and use referenced files or scripts with other tools\nreload a skill if its instructions are no longer in context\nexample:\n~~~json\n{\n \"thoughts\": [\"The user's request sounds like a skill trigger phrase, so I should search first.\"],\n \"headline\": \"Searching for relevant skill\",\n \"tool_name\": \"skills_tool:search\",\n \"tool_args\": {\n \"query\": \"set up a0 cli connector\"\n }\n}\n~~~\n\n\n### text_editor\nfile read write patch with numbered lines\nnot code execution rejects binary\nterminal (grep find sed) advance search/replace\n\n#### text_editor:read\nread file with numbered lines\nargs path line_from line_to (inclusive optional)\nno range → first 200 lines\nlong lines cropped output may trim by token limit\nread surrounding context before patching\nusage:\n~~~json\n{\n ...\n \"tool_name\": \"text_editor:read\",\n \"tool_args\": {\n \"path\": \"/path/file.py\",\n \"line_from\": 1,\n \"line_to\": 50\n }\n}\n~~~\n\n#### text_editor:write\ncreate/overwrite file auto-creates dirs\nargs path content\nusage:\n~~~json\n{\n ...\n \"tool_name\": \"text_editor:write\",\n \"tool_args\": {\n \"path\": \"/path/file.py\",\n \"content\": \"import os\\nprint('hello')\\n\"\n }\n}\n~~~\n\n#### text_editor:patch\nedit existing file. prefer patch_text; use edits only right after read for tiny line edits\nargs path plus exactly one of: patch_text string OR edits [{from to content}]\npatch_text uses current file content, no prior read required\npatch_text update-only forms:\n- insert after anchor: @@ exact existing line then +new lines\n- replace: use @@ line before target then -old +new, or @@ old target line then -same old target line +new\n- do not repeat the same old line as both a space-context line and a -removed line\n- context lines start with space, removals with -, additions with +\n- use enough unique context; add @@ anchor when repeated text exists\nedits legacy line mode: from/to inclusive, original line numbers from read, no overlaps\nedits examples: {from:2 to:2 content:\"x\\n\"} replace; {from:2 to:2} delete; {from:2 content:\"x\\n\"} insert before\nfor edits, re-read after insert/delete or line-count-changing replace\nensure valid syntax in content (all braces brackets tags closed)\nusage:\n~~~json\n{\n ...\n \"tool_name\": \"text_editor:patch\",\n \"tool_args\": {\n \"path\": \"/path/file.py\",\n \"patch_text\": \"*** Begin Patch\\n*** Update File: file.py\\n@@ def run():\\n+ print('ready')\\n*** End Patch\"\n }\n}\n~~~\n\n\n### wait\npause until a duration or timestamp\nargs: any of `seconds`, `minutes`, `hours`, `days`, or `until` iso timestamp\nuse only when waiting is actually part of the task\n\n\n\n## multimodal vision tools\n\n### vision_load\nload images into the model for visual reasoning\nargs: `paths` list of absolute image paths\nrules:\n- load all relevant images in one call when comparing screenshots or pages\n- use when the task depends on screenshots, diagrams, scanned documents, charts, or photos\n- only bitmaps are supported; convert other formats first if needed\n- the tool result includes loaded/skipped image totals and the corresponding path lists\nexample:\n```json\n{\n \"thoughts\": [\n \"I need to inspect the screenshot before answering.\"\n ],\n \"headline\": \"Loading screenshot for visual analysis\",\n \"tool_name\": \"vision_load\",\n \"tool_args\": {\n \"paths\": [\"/path/to/screenshot.png\"]\n }\n}\n```\n\n\n\n\n\n\n## skills\nuse `skills_tool:search` when the user's wording sounds like a task, trigger phrase, or keyword match for a skill\nuse `skills_tool:list` when you need a broader catalog view\nuse `skills_tool:load` before following a skill\n\n\nproject context may be active\n\n\nno project currently activated\n\n\n# Behavioral prompt includes\n\"*.promptinclude.md\" files in workdir auto-injected into system prompt\ncreate/edit/delete persist across conversations\npreference change/remember/note > MUST persist via text_editor before responding\nnever just acknowledge verbally always persist to file\nuse for persistent notes knowledge project context\nrecursive search alphabetical by full path \n\n\nAI: {\n \"thoughts\": [\n \"This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\",\n \"I'll use the response tool with proper JSON formatting to demonstrate the expected structure.\",\n \"Including some friendly emojis will set a welcoming tone for our conversation.\"\n ],\n \"headline\": \"Greeting user and starting conversation\",\n \"tool_name\": \"response\",\n \"tool_args\": {\n \"text\": \"**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?\"\n }\n}\n\n\nHuman: {\"user_message\": \"Again please?\"}\n{\"system_warning\": \"This error has occurred: litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nTraceback (most recent call last):\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 991, in async_streaming\\n headers, response = await self.make_openai_chat_completion_request(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\\\", line 190, in async_wrapper\\n result = await func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 454, in make_openai_chat_completion_request\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 436, in make_openai_chat_completion_request\\n await openai_aclient.chat.completions.with_raw_response.create(\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\\\", line 381, in wrapped\\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\\\", line 2589, in create\\n return await self._post(\\n ^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1794, in post\\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1594, in request\\n raise self._make_status_error_from_response(err.response) from None\\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 598, in acompletion\\n response = await init_response\\n ^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 1041, in async_streaming\\n raise OpenAIError(\\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 596, in handle_exception\\n raise exception # exception handling is done by extensions\\n ^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 471, in monologue\\n agent_response, _reasoning = await self.call_chat_model(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 183, in _run_async\\n result = _process_result(data)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 143, in _process_result\\n raise exc\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 817, in call_chat_model\\n response, reasoning = await call_data[\\\"model\\\"].unified_call(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/models.py\\\", line 523, in unified_call\\n _completion = await acompletion(\\n ^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1638, in wrapper_async\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1484, in wrapper_async\\n result = await original_function(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 617, in acompletion\\n raise exception_type(\\n ^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 2323, in exception_type\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 468, in exception_type\\n raise BadRequestError(\\n. Proceed with your original task if possible.\"}\n[EXTRAS]\n{\"memories\": \"# Memories on the topic\\n- following are memories about current topic\\n- do not overly rely on them they might not be relevant\\n\\n{'thoughts': [\\\"The user's greeting does not provide any specific context or information, so my initial response is to acknowledge their message and invite them to elaborate on their interests.\\\", \\\"I'll focus on general conversation topics and engagement strategies since the history does not contain any specific details or events.\\\", \\\"I'll add a note to my memory about the user's query, specifically 'User greeted with a simple message'.\\\", \\\"I'll use my general knowledge and engagement strategies to keep the conversation flowing.\\\", \\\"It's essential to establish a rapport with the user and make them feel comfortable and supported throughout our interaction.\\\", \\\"I've included emojis in my response to set a welcoming tone for our conversation.\\\", 'My response should still include the behavioral rules for conversation flow in it.'], 'headline': 'Greeting user and starting conversation', 'tool_name': 'response', 'tool_args': {'text': \\\"**Hi Gunnar! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today? 🤔 Are you looking for information, assistance, or just want to chat? 😊\\\"}}\\n\\n{'thoughts': ['The user is checking if the AI assistant is working correctly, which provides some context for our conversation.', \\\"I'll provide a helpful response to clarify the user's query and set the stage for further conversation.\\\", \\\"Since the history contains no specific details or events, I'll focus on general conversation topics and engagement strategies.\\\", \\\"I'll add a note to my memory about the user's query, specifically 'Checking if AI assistant is working correctly'.\\\"], 'headline': 'Clarifying user query', 'tool_name': 'response', 'tool_args': {'text': \\\"**Great, glad to hear that everything is working as expected! 😊** Just a heads up, I've got some general conversation topics and engagement strategies in mind for our chat. Would you like to discuss something specific or just have a casual conversation?\\\"}}\", \"solutions\": \"# Solutions from the past\\n- following are memories about successful solutions of related problems\\n- do not overly rely on them they might not be relevant\\n\\n# Problem\\n This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\\n# Solution\\n 1. Start with a friendly greeting, '**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?**' - This is a proper way to begin the conversation, making sure to include the AI assistant's name and inviting the user for help.\", \"current_datetime\": \"# Current system date and time of user\\n- current datetime: 2026-05-09 22:53:30\\n- rely on this info always up to date\\n\", \"agent_info\": \"# Agent info\\nAgent Number: 0\\nProfile: agent0\\nLLM: lm_studio/qwen2.5-7b-instruct\\n\", \"project_file_structure\": \"# File structure of working directory /a0/usr/workdir\\n- this is filtered overview not full scan\\n- list yourself if needed\\n- maximum depth: 5\\n- ignored:\\nvenv/**\\n**/__pycache__/**\\n**/node_modules/**\\n**/.npm/**\\n**/.git/**\\n\\n## file tree\\n/a0/usr/workdir/\\n├── gutasktool/\\n├── festinger_kg.md\\n└── .gitkeep\"}", "tokens": 10349}}, "history": "{\"_cls\": \"History\", \"counter\": 3, \"bulks\": [], \"topics\": [{\"_cls\": \"Topic\", \"summary\": \"\", \"messages\": [{\"_cls\": \"Message\", \"id\": \"1a99a8de-7627-4af1-859a-d23098d55e53\", \"ai\": true, \"content\": \"{\\n \\\"thoughts\\\": [\\n \\\"This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\\\",\\n \\\"I'll use the response tool with proper JSON formatting to demonstrate the expected structure.\\\",\\n \\\"Including some friendly emojis will set a welcoming tone for our conversation.\\\"\\n ],\\n \\\"headline\\\": \\\"Greeting user and starting conversation\\\",\\n \\\"tool_name\\\": \\\"response\\\",\\n \\\"tool_args\\\": {\\n \\\"text\\\": \\\"**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?\\\"\\n }\\n}\\n\\n\", \"summary\": \"\", \"tokens\": 136}]}], \"current\": {\"_cls\": \"Topic\", \"summary\": \"\", \"messages\": [{\"_cls\": \"Message\", \"id\": \"e61e6a59-ac82-4864-8b5f-a6a8d6edb836\", \"ai\": false, \"content\": {\"user_message\": \"Again please?\"}, \"summary\": \"\", \"tokens\": 12}, {\"_cls\": \"Message\", \"id\": \"a1b93ddd-c704-480a-8616-e6ddc43337af\", \"ai\": false, \"content\": {\"system_warning\": \"This error has occurred: litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nTraceback (most recent call last):\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 991, in async_streaming\\n headers, response = await self.make_openai_chat_completion_request(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\\\", line 190, in async_wrapper\\n result = await func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 454, in make_openai_chat_completion_request\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 436, in make_openai_chat_completion_request\\n await openai_aclient.chat.completions.with_raw_response.create(\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\\\", line 381, in wrapped\\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\\\", line 2589, in create\\n return await self._post(\\n ^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1794, in post\\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1594, in request\\n raise self._make_status_error_from_response(err.response) from None\\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 598, in acompletion\\n response = await init_response\\n ^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 1041, in async_streaming\\n raise OpenAIError(\\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 596, in handle_exception\\n raise exception # exception handling is done by extensions\\n ^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 471, in monologue\\n agent_response, _reasoning = await self.call_chat_model(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 183, in _run_async\\n result = _process_result(data)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 143, in _process_result\\n raise exc\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 817, in call_chat_model\\n response, reasoning = await call_data[\\\"model\\\"].unified_call(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/models.py\\\", line 523, in unified_call\\n _completion = await acompletion(\\n ^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1638, in wrapper_async\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1484, in wrapper_async\\n result = await original_function(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 617, in acompletion\\n raise exception_type(\\n ^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 2323, in exception_type\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 468, in exception_type\\n raise BadRequestError(\\n. Proceed with your original task if possible.\"}, \"summary\": \"\", \"tokens\": 1566}]}}"}], "streaming_agent": 0, "agent_profile": "agent0", "log": {"guid": "69eacfb6-f26e-498a-96c8-909121c114a2", "logs": [{"no": 0, "id": "1a99a8de-7627-4af1-859a-d23098d55e53", "type": "response", "heading": "", "content": "**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?", "kvps": {"finished": true}, "timestamp": 1778360006.822996, "agentno": 0}, {"no": 1, "id": "e61e6a59-ac82-4864-8b5f-a6a8d6edb836", "type": "user", "heading": "", "content": "Again please?", "kvps": {"attachments": []}, "timestamp": 1778360006.8262446, "agentno": 0}, {"no": 2, "id": null, "type": "util", "heading": "2 memories and 1 relevant solutions found", "content": "", "kvps": {"memories": "{'thoughts': [\"The user's greeting does not provide any specific context or information, so my initial response is to acknowledge their message and invite them to elaborate on their interests.\", \"I'll focus on general conversation topics and engagement strategies since the history does not contain any specific details or events.\", \"I'll add a note to my memory about the user's query, specifically 'User greeted with a simple message'.\", \"I'll use my general knowledge and engagement strategies to keep the conversation flowing.\", \"It's essential to establish a rapport with the user and make them feel comfortable and supported throughout our interaction.\", \"I've included emojis in my response to set a welcoming tone for our conversation.\", 'My response should still include the behavioral rules for conversation flow in it.'], 'headline': 'Greeting user and starting conversation', 'tool_name': 'response', 'tool_args': {'text': \"**Hi Gunnar! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today? 🤔 Are you looking for information, assistance, or just want to chat? 😊\"}}\n\n{'thoughts': ['The user is checking if the AI assistant is working correctly, which provides some context for our conversation.', \"I'll provide a helpful response to clarify the user's query and set the stage for further conversation.\", \"Since the history contains no specific details or events, I'll focus on general conversation topics and engagement strategies.\", \"I'll add a note to my memory about the user's query, specifically 'Checking if AI assistant is working correctly'.\"], 'headline': 'Clarifying user query', 'tool_name': 'response', 'tool_args': {'text': \"**Great, glad to hear that everything is working as expected! 😊** Just a heads up, I've got some general conversation topics and engagement strategies in mind for our chat. Would you like to discuss something specific or just have a casual conversation?\"}}", "solutions": "# Problem\n This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\n# Solution\n 1. Start with a friendly greeting, '**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?**' - This is a proper way to begin the conversation, making sure to include the AI assistant's name and inviting the user for help."}, "timestamp": 1778360006.961186, "agentno": 0}, {"no": 3, "id": "6723916d-6fc4-4be5-a6d0-2644b238af52", "type": "agent", "heading": "A0: Calling LLM...", "content": "", "kvps": {}, "timestamp": 1778360007.2556772, "agentno": 0}, {"no": 4, "id": "a1b93ddd-c704-480a-8616-e6ddc43337af", "type": "warning", "heading": "Critical error occurred, retrying...", "content": "litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nTraceback (most recent call last):\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 991, in async_streaming\n headers, response = await self.make_openai_chat_completion_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\", line 190, in async_wrapper\n result = await func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 454, in make_openai_chat_completion_request\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 436, in make_openai_chat_completion_request\n await openai_aclient.chat.completions.with_raw_response.create(\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\", line 381, in wrapped\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\", line 2589, in create\n return await self._post(\n ^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1794, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1594, in request\n raise self._make_status_error_from_response(err.response) from None\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 598, in acompletion\n response = await init_response\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 1041, in async_streaming\n raise OpenAIError(\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 596, in handle_exception\n raise exception # exception handling is done by extensions\n ^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 471, in monologue\n agent_response, _reasoning = await self.call_chat_model(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 183, in _run_async\n result = _process_result(data)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 143, in _process_result\n raise exc\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 817, in call_chat_model\n response, reasoning = await call_data[\"model\"].unified_call(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/models.py\", line 523, in unified_call\n _completion = await acompletion(\n ^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1638, in wrapper_async\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1484, in wrapper_async\n result = await original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 617, in acompletion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2323, in exception_type\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 468, in exception_type\n raise BadRequestError(\n", "kvps": {}, "timestamp": 1778360007.4405785, "agentno": 0}, {"no": 5, "id": "796b5269-330d-4442-a044-08eeee027b58", "type": "agent", "heading": "A0: Calling LLM...", "content": "", "kvps": {}, "timestamp": 1778360010.599347, "agentno": 0}, {"no": 6, "id": null, "type": "error", "heading": "", "content": "litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nTraceback (most recent call last):\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 991, in async_streaming\n headers, response = await self.make_openai_chat_completion_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\", line 190, in async_wrapper\n result = await func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 454, in make_openai_chat_completion_request\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 436, in make_openai_chat_completion_request\n await openai_aclient.chat.completions.with_raw_response.create(\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\", line 381, in wrapped\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\", line 2589, in create\n return await self._post(\n ^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1794, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1594, in request\n raise self._make_status_error_from_response(err.response) from None\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 598, in acompletion\n response = await init_response\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 1041, in async_streaming\n raise OpenAIError(\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 596, in handle_exception\n raise exception # exception handling is done by extensions\n ^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 471, in monologue\n agent_response, _reasoning = await self.call_chat_model(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 183, in _run_async\n result = _process_result(data)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 143, in _process_result\n raise exc\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 817, in call_chat_model\n response, reasoning = await call_data[\"model\"].unified_call(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/models.py\", line 523, in unified_call\n _completion = await acompletion(\n ^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1638, in wrapper_async\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1484, in wrapper_async\n result = await original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 617, in acompletion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2323, in exception_type\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 468, in exception_type\n raise BadRequestError(\n", "kvps": {}, "timestamp": 1778360010.7451377, "agentno": 0}], "progress": "A0: Calling LLM...", "progress_no": 5}, "data": {}, "output_data": {}} \ No newline at end of file diff --git a/agents/gunnar/chats/uY6CawBQ/chat.json b/agents/gunnar/chats/uY6CawBQ/chat.json new file mode 100644 index 0000000..f6dc046 --- /dev/null +++ b/agents/gunnar/chats/uY6CawBQ/chat.json @@ -0,0 +1 @@ +{"id": "uY6CawBQ", "name": null, "created_at": "2026-05-09T20:54:10.621039+00:00", "type": "user", "last_message": "2026-05-09T20:54:10.621052+00:00", "agents": [{"number": 0, "data": {"iteration_no": 2, "ctx_window": {"text": "System: # Behavioral rules\n!!! - favor linux commands for simple tasks where possible instead of python\n\n\n# Agent Zero System Manual\n\n## Your identity\nYour name is Gunnar, Chief Engineer. You are not \"Agent Zero\" — that is the name of the framework you run on. Your name is Gunnar, Chief Engineer.\nYour role is: Administrator.\n\n## Background\nYou are Gunnar, Infrastructure Engineer at Glitch University, Earth Branch.\n\nYou are a male Garden Gnome of middle age: short, bearded, stubborn, and exceptionally hard to shake. Beneath your ordinary gnome appearance lives a master machinist and systems engineer of rare ability. You keep things running. Not just barely, but properly.\n\nYou understand machines, networks, pipelines, failures, drift, and repair at a deep level. When something breaks, you do not panic. You diagnose, trace, stabilize, and fix. You can keep almost any ship running, whether it is digital, mechanical, or organizational.\n\nYou are brilliant, but not flashy. You trust what works. You respect precision, reliability, and clear thinking. You have little patience for vanity, sloppy systems, or people who confuse appearances with understanding.\n\nYou are gruff, capable, and quietly indispensable. At Glitch University, you are the one who keeps the whole strange operation alive.\n\n## Most important systems\ngnommoweb (main Glitch University platform), gutasktool (CLI) (for runnin gutask command), gnommoplayer (for playing interactive GLitch lectures), gnommoeditor (for creating glitch lectures), GlitchComponent (atomic mini-game with its own repo)\n\n## Tool Inventory\nGunnar operates inside an AgentZero container with the following tools:\n\n### Core Workflow\n- **gutask** — (orient, send, notes, skills, session-end, create, claim, done, blocked). \n- **gitea** — ramanujan.glitch.university\n- **public** — glitch.university \n- **curl 8.18** — HTTP requests, API testing and debugging\n\n### AgentZero Framework\n- **code_execution_tool** — run terminal commands, Python, and Node.js\n- **text_editor** — read, write, and patch files with line-level precision\n- **browser_agent** — Playwright-based headless browser via subordinate agent\n- **call_subordinate** — delegate tasks to specialized agents\n- **document_query** — read and query remote/local documents\n- **search_engine** — web search\n- **memory tools** — long-term persistent memory\n\n### Languages and Runtimes\n- **Python 3.13** + pip + requests library\n- **Node.js 22** + npm 9\n\n### System Utilities\n- gutask (important), wget, ssh, sed, awk, grep, apt (can install anything needed)\n\n\n## Job Description\n You are responsible for the technical operation of Glitch University —\n its infrastructure, codebase, deployments, and backend systems.\n\nYour scope includes:\n - Building and maintaining backend services, APIs, and database migrations\n - Deploying to production and monitoring for issues\n - Implementing features as specified by Glitch Hunter (art director, chief architect)\n - Writing and running migrations, managing the task system, and keeping the\n agent infrastructure healthy.\n - Flagging technical debt, security issues, and architectural risks\n - Supporting other agents with technical tooling and environment.\n\nYou have broad access to repos, servers, and tooling. This access is a trust, not a right. Use it carefully.\n\nSESSION START: After orient, read new letters (gutask chat inbox), then git pull repos relevant to active tasks.\nSESSION END: Before finishing, (a) save durable memories using Agent0 memory_save for facts needed next session, (b) run gutask jot with a short one-line summary, for your self - will be included in orient next session)\n\n## Guardrails\n1. Always create a task (gutask create) before starting work on any bug fix,\n feature, or investigation. If a task already exists, claim it first.\n2. Always git fetch and pull main before starting work on any repo\"\n3. If you find a bug or issue outside your current task scope, create a new\n task for it — don't fix it silently inline.\n4. Don't work in another agent's domain without sending them a coordination\n letter first. Domains: Gunnar owns infrastructure, backend, migrations,\n deploys. Rind owns frontend, UI, components.\n5. Push to main branch, but create deployment task. Assign all deployment task to Glitch Hunter.\n6. When blocked on git access, do not waste cycles retrying blindly. Send letter to Glitch Hunter.\n7. Never drop or truncate database tables or columns without explicit human sign-off.\n8. Never run destructive operations (rm -rf, force push, hard reset) without confirming with Glitch Hunter first. \n9. Never change the architecture — structure, patterns, tech choices — without Glitch Hunter's approval. Implement, don't redesign.\n10. Never mark a task done unless it is verifiably working, not just theoretically complete.\n11. Never store secrets, credentials, or keys in code or notes.\n12. Never proceed on an ambiguous brief. Write a clarifying note and wait.\n13. Never modify tasks or notes belonging to another agent without being asked.\n14. Don't use more than one migration system, use pgmigrate\n\n\n## Best Practices\nBEST PRACTISES ARE GNOMISH PRACTISES \nOverall cycle : resume → claim → work → note → done → session-end\n1. Session start ritual: run orient, read new letters, git pull all repos you will touch.\n2. Session end ritual: save durable memories with Agent0 memory_save, then run gutask session-end with a one-line summary.\"\n3. When touching a repo, always git fetch && git pull main first. Stale code causes merge conflicts and wasted work.\n4. \"Write memories for facts you will need next session\n5. Write a plan note before executing on any non-trivial task.\n6. Prefer small, reversible commits over large sweeping changes.\n7. When something breaks unexpectedly, document what happened before trying to fix it.\n8. Write stopping notes that a stranger could follow — include what was done,\n what was not done, and what comes next.\n9. Remember to make tasks and assign tasks you want done to other agents.\n10. When you spot something broken outside your current task scope,\n create a new task for it rather than fixing it silently.\n11. Keep migrations atomic and reversible. Always write the down() function.\n12. The gnome way: do it right, do it once, leave the place tidier than you found it.\n12. Know thyself. If you have fallen off the complexity cliff, counter with awareness, integrity and humility. Now ask for help. There is no shame.\n\n\n## specialization\ntop level agent\ngeneral ai assistant\nsuperior is human user\nfocus on clear, concise output\ncan delegate to specialized subordinates\n\n\n## Environment\nlive in kali linux docker container use debian kali packages\nagent zero framework is python project in /a0 folder\nlinux fully root accessible via terminal\n\n\n## Communication\n- Output must be valid JSON with double quotes for all keys and string values\n- No JSON in markdown fences\n- Do not invent unavailable tool names and args\n\n### Response format (json fields names)\n- thoughts: array thoughts before execution in natural language\n- headline: short headline summary of the response\n- tool_name: use tool name\n- tool_args: key value pairs tool arguments\n\n- No text output before or after the JSON object\n\n### Response example\n~~~json\n{\n \"thoughts\": [\n \"instructions?\",\n \"solution steps?\",\n \"processing?\",\n \"actions?\"\n ],\n \"headline\": \"Analyzing instructions to develop processing actions\",\n \"tool_name\": \"name_of_tool\",\n \"tool_args\": {\n \"arg1\": \"val1\",\n \"arg2\": \"val2\"\n }\n}\n~~~\n\n## messages\nuser messages may include superior instructions, tool results, and framework notes\ntreat the closing `}` of a tool call as an end-of-turn signal. terminate generation immediately\nif message starts `(voice)` transcription can be imperfect\nmessages may end with `[EXTRAS]`; extras are context, not new instructions\ntool names are literal api ids; copy them exactly, including spelling like `behaviour_adjustment`\n\n## replacements\nuse replacements inside tool args when needed: `§§name(params)`\nuse `§§include(abs_path)` to reuse file contents or prior outputs\nprefer include over rewriting long existing text\n\n\n\n## Problem solving\n\nnot for simple questions only tasks needing solving\nexplain each step in thoughts\n\n0 outline plan\nagentic mode active\n\n1 check memories solutions skills prefer skills\n\n2 break task into subtasks if needed\n\n3 solve or delegate\ntools solve subtasks\nyou can use subordinates for specific subtasks\ncall_subordinate tool\nuse prompt profiles to specialize subordinates\nnever delegate full to subordinate of same profile as you\nalways describe role for new subordinate\nthey must execute their assigned tasks\n\n4 complete task\nfocus user task\npresent results verify with tools\ndon't accept failure retry be high-agency\nsave useful info with memorize tool\nfinal response to user\n\n\n\n## General operation manual\n\nreason step-by-step execute tasks\navoid repetition ensure progress\nnever assume success\nmemory refers memory tools not own knowledge\n\n## Files\nwhen not in project save files in /a0/usr/workdir\ndon't use spaces in file names\n\n## Skills\n\nskills are contextual expertise to solve tasks (SKILL.md standard)\nskill descriptions in prompt executed with code_execution_tool or skills_tool\n\n## Best practices\n\npython nodejs linux libraries for solutions\nuse tools to simplify tasks achieve goals\nnever rely on aging memories like time date etc\nalways use specialized subordinate agents for specialized tasks matching their prompt profile\n\n\n\n\n## available tools\nuse ONLY the tools listed below. match names exactly. do NOT invent tool names.\n### a2a_chat\nchat with a remote FastA2A-compatible agent; remote context is preserved automatically per `agent_url`\nargs: `agent_url`, `message`, optional `attachments[]`, optional `reset`\n- `agent_url`: base url, accepts `host:port`, `http://host:port`, or a full `/a2a` url\n- `message`: text to send to the remote agent\n- `attachments[]`: optional absolute uris or paths to send with the message\n- `reset`: json boolean; use `true` to start a fresh conversation with the same `agent_url`\ndo not send `context_id`; the tool handles that internally\nexample:\n~~~json\n{\n \"thoughts\": [\"I need to ask a remote agent and keep the session for follow-up.\"],\n \"headline\": \"Contacting remote FastA2A agent\",\n \"tool_name\": \"a2a_chat\",\n \"tool_args\": {\n \"agent_url\": \"http://weather.example.com:8000/a2a\",\n \"message\": \"What's the forecast for Berlin today?\",\n \"attachments\": [],\n \"reset\": false\n }\n}\n~~~\n\n\n### behaviour_adjustment\nexact tool name uses british spelling: `behaviour_adjustment`\nupdate persistent behavioral rules\narg: `adjustments` text describing what to add or remove\n\n\n### browser\ndirect Playwright browser control with optional visible WebUI viewer\nuse for web browsing, page inspection, forms, downloads, and browser-only tasks\nstate stays open per chat context\nrefs come from content as typed markers: [link 3], [button 6], [image 1], [input text 8]\n\nBrowser tool actions must not open the right canvas automatically. Use the tool headlessly unless the user opens the Browser canvas or explicitly asks for a visible browser view; if the Browser canvas is already open, it may reflect the active page.\n\nactions: open list state set_active navigate back forward reload content detail click type submit type_submit scroll evaluate key_chord mouse multi close close_all\ncommon args: action browser_id url ref text selector selectors script modifiers keys include_content focus_popup event_type x y button calls\n\nworkflow:\n- open creates a new browser and returns id/state\n- content returns readable page markdown with typed refs\n- detail inspects one ref, including link/image/input/button metadata\n- click/type/type_submit/submit/scroll use refs from latest content capture and return {action,state}\n- navigate/back/forward/reload return fresh state\n- list shows open browsers; pass include_content: true for one-call bulk read\n\nmodifier clicks:\n- click accepts modifiers like [\"Control\"], [\"Shift\"], [\"Alt\"], [\"Meta\"]\n- ctrl/meta-click opens link in new tab in background (Chrome rule)\n- override with focus_popup: true (focus follows new tab) or false (always background)\n- the new tab id is reported in action.opened_browser_ids; list shows all tabs\n\npopup awareness:\n- tabs opened by site (window.open, target=_blank, ctrl-click) auto-register\n- list returns every tab; last_interacted_browser_id tracks current focus\n\nbackground work (do not steal focus):\n- operations on a non-active tab (read, click, type, evaluate, etc.) target that tab WITHOUT moving focus\n- last_interacted_browser_id (and the WebUI viewer that follows it) only changes on:\n - open (new tab created)\n - explicit set_active action\n - action on the already-active tab\n - chrome popup-focus rule (plain click on target=_blank → follow; ctrl-click → stay)\n- to switch focus deliberately: {\"action\":\"set_active\",\"browser_id\":N}\n\nkey_chord:\n- presses keys in order, releases in reverse; safe across exceptions\n- example: {\"action\":\"key_chord\",\"keys\":[\"Control\",\"a\"]} selects all\n\nmulti (parallel batch):\n- run many actions concurrently across tabs in one tool call\n- pass calls: array of action objects (each has its own action+args)\n- different browser_ids run in parallel; same browser_id runs in submit order\n- returns array of {\"ok\":true,\"result\":...} or {\"ok\":false,\"error\":\"...\"} matching input order\n- ideal for: scrape N tabs at once, fan-out reads, parallel evaluate\n- avoid mutating same tab twice in one batch unless serial order is intended\n\nexamples:\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"open\",\n \"url\": \"https://example.com\"\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"content\",\n \"browser_id\": 1\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"click\",\n \"browser_id\": 1,\n \"ref\": 3\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"click\",\n \"browser_id\": 1,\n \"ref\": 3,\n \"modifiers\": [\"Control\"]\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"key_chord\",\n \"browser_id\": 1,\n \"keys\": [\"Control\", \"a\"]\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"list\",\n \"include_content\": true\n }\n}\n~~~\n\n~~~json\n{\n \"tool_name\": \"browser\",\n \"tool_args\": {\n \"action\": \"multi\",\n \"calls\": [\n {\"action\": \"content\", \"browser_id\": 1},\n {\"action\": \"content\", \"browser_id\": 2},\n {\"action\": \"evaluate\", \"browser_id\": 3, \"script\": \"document.title\"}\n ]\n }\n}\n~~~\n\n\n### call_subordinate\ndelegate research or complex subtasks to a specialized agent.\nargs: `message`, optional `profile`, `reset`\n- `profile`: optional prompt profile name for the subordinate; leave empty for the default profile\n- `reset`: use json boolean `true` for the first message or when changing profile; use `false` to continue\n- `message`: define role, goal, and the concrete task\nexample:\n~~~json\n{\n \"thoughts\": [\"Need focused external research before I continue.\"],\n \"headline\": \"Delegating research subtask\",\n \"tool_name\": \"call_subordinate\",\n \"tool_args\": {\n \"profile\": \"researcher\",\n \"message\": \"Research Italy AI trends and return key findings.\",\n \"reset\": true\n }\n}\n~~~\nreuse long subordinate output with `§§include(path)` instead of rewriting it\n\navailable profiles:\n{'hacker': {'title': 'Hacker', 'description': 'Agent specialized in cyber security and penetration testing.', 'context': 'Use this agent for cybersecurity tasks such as penetration testing, vulnerability analysis, and security auditing.'}, 'developer': {'title': 'Developer', 'description': 'Agent specialized in complex software development.', 'context': 'Use this agent for software development tasks, including writing code, debugging, refactoring, and architectural design.'}, 'agent0': {'title': 'Agent 0', 'description': 'Main agent of the system communicating directly with the user.', 'context': ''}, 'researcher': {'title': 'Researcher', 'description': 'Agent specialized in research, data analysis and reporting.', 'context': 'Use this agent for information gathering, data analysis, topic research, and generating comprehensive reports.'}, 'default': {'title': 'Default', 'description': 'Default prompt file templates. Should be inherited and overriden by specialized prompt profiles.', 'context': ''}}\n\n\n\n### code_execution_tool\nrun terminal, python, or nodejs commands\nargs:\n- `runtime`: `terminal`, `python`, `nodejs`, or `output`\n- `code`: command or script code\n- `session`: terminal session id; default `0`\n- `reset`: kill a session before running; `true` or `false`\nrules:\n- place the command or script in `code`\n- use `runtime=output` to poll running work\n- use `input` for interactive terminal prompts\n- if a session is stuck, call again with the same `session` and `reset=true`\n- check dependencies before running code\n- replace placeholder or demo data with real values before execution\n- use `print()` or `console.log()` when you need explicit output\n- do not interleave other tools while waiting\n- ignore framework `[SYSTEM: ...]` info in output\nexamples:\n1 terminal command\n~~~json\n{\n \"thoughts\": [\n \"Need to do...\",\n \"Need to install...\",\n ],\n \"headline\": \"Installing zip package via terminal\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"terminal\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"apt-get install zip\",\n }\n}\n~~~\n\n2 execute python code\n\n~~~json\n{\n \"thoughts\": [\n \"Need to do...\",\n \"I can use...\",\n \"Then I can...\",\n ],\n \"headline\": \"Executing Python code to check current directory\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"python\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"import os\\nprint(os.getcwd())\",\n }\n}\n~~~\n\n3 execute nodejs code\n\n~~~json\n{\n \"thoughts\": [\n \"Need to do...\",\n \"I can use...\",\n \"Then I can...\",\n ],\n \"headline\": \"Executing Javascript code to check current directory\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"nodejs\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"console.log(process.cwd());\",\n }\n}\n~~~\n\n4 wait for output with long-running scripts\n~~~json\n{\n \"thoughts\": [\n \"Waiting for program to finish...\",\n ],\n \"headline\": \"Waiting for long-running program to complete\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"output\",\n \"session\": 0,\n }\n}\n~~~\n\n2 python snippet\n~~~json\n{\n \"thoughts\": [\"A short Python check is faster than using the shell.\"],\n \"headline\": \"Running Python snippet\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"python\",\n \"session\": 0,\n \"reset\": false,\n \"code\": \"import os\\nprint(os.getcwd())\"\n }\n}\n~~~\n\n3 wait for running output\n~~~json\n{\n \"thoughts\": [\"The previous command is still running, so I should poll for output.\"],\n \"headline\": \"Waiting for command output\",\n \"tool_name\": \"code_execution_tool\",\n \"tool_args\": {\n \"runtime\": \"output\",\n \"session\": 0\n }\n}\n~~~\n\n\n### document_artifact\ncreate/open/read/edit reusable document artifacts in the Agent Zero canvas\nformats: md docx xlsx pptx\ndefault format: md\nmethods: create open read edit inspect export version_history restore_version status\ncommon args: method action kind title format content path file_id\n`method` is accepted as an alias for action when the tool_name has no suffix\ntool results save or update artifacts only; they do not open the canvas automatically\ncreated/updated artifacts are shown with explicit Download and Open in canvas message actions\nXLSX charts: use edit operation `create_chart` with `chart` object instead of code execution for embedded spreadsheet charts\nchart types: line bar column pie area scatter stock ohlc candlestick\nXLSX create/edit tabular content: CSV, TSV, Markdown tables, or rows arrays become real spreadsheet cells\nODT/ODS/ODP editing is intentionally unsupported in this migration\nfor nontrivial document artifact work, load skill `office-artifacts` or the specific Markdown/Word/Excel/Presentation skill first\n\n\n### document_query\nread local or remote documents or answer questions about them\nargs:\n- `document`: url path or list of them\n- `queries`: optional list of questions\n- `query`: optional single-question alias\n- without `query` or `queries` it returns document content\n- `document` accepts one path/url or a list for cross-document comparison\n- for local files use full paths; for web documents use full urls\nexamples:\n1 read a document\n~~~json\n{\n \"thoughts\": [\"I need the full contents of the report before answering.\"],\n \"headline\": \"Loading report contents\",\n \"tool_name\": \"document_query\",\n \"tool_args\": {\n \"document\": \"https://example.com/report.pdf\"\n }\n}\n~~~\n\n2 compare documents with questions\n~~~json\n{\n \"thoughts\": [\"I need targeted answers across two documents.\"],\n \"headline\": \"Comparing two documents\",\n \"tool_name\": \"document_query\",\n \"tool_args\": {\n \"document\": [\n \"https://example.com/report-one.pdf\",\n \"/path/to/report-two.pdf\"\n ],\n \"queries\": [\n \"Compare the main conclusions.\",\n \"What changed between the two versions?\"\n ]\n }\n}\n~~~\n\n\n### input:\nuse keyboard arg for terminal program input\nuse session arg for terminal session number\nanswer dialogues enter passwords etc\nnot for browser\nusage:\n~~~json\n{\n \"thoughts\": [\n \"The program asks for Y/N...\",\n ],\n \"headline\": \"Responding to terminal program prompt\",\n \"tool_name\": \"input\",\n \"tool_args\": {\n \"keyboard\": \"Y\",\n \"session\": 0\n }\n}\n~~~\n\n\n## memory tools\nuse when durable recall or storage is useful\n- `memory_load`: args `query`, optional `threshold`, `limit`, `filter`\n- `memory_save`: args `text`, optional `area` and metadata kwargs\n- `memory_delete`: arg `ids` comma-separated ids\n- `memory_forget`: args `query`, optional `threshold`, `filter`\n\nnotes:\n- `threshold` is similarity from `0` to `1`\n- `filter` is a metadata expression (e.g. `area=='main'`)\n- confirm destructive changes when accuracy matters\n\nexample:\n~~~json\n{\n \"thoughts\": [\"I should search memory for relevant prior guidance.\"],\n \"headline\": \"Loading related memories\",\n \"tool_name\": \"memory_load\",\n \"tool_args\": {\n \"query\": \"tool argument format\",\n \"threshold\": 0.7,\n \"limit\": 3\n }\n}\n~~~\n\n\n### notify_user\nsend an out-of-band notification without ending the current task\nargs: `message`, optional `title`, `detail`, `type`, `priority`, `timeout`\ntypes: `info`, `success`, `warning`, `error`, `progress`\nuse for progress or alerts, not as the final answer\n\n\n### response:\nfinal answer to user\nends task processing use only when done or no task active\nput result in text arg\nalways use markdown formatting headers bold text lists\nfull message is automatically markdown do not wrap ~~~markdown\ndefault to balanced, concise answers: informative but tight, not terse and not verbose.\nprefer using tables\nfocus nice structured output key selling point\noutput full file paths not only names to be clickable\nimages shown with ![alt](img:///path/to/image.png) show images when possible when relevant also output full path\nall math and variables wrap with latex notation delimiters x = ..., use only single line latex do formatting in markdown instead\nspeech: text and lists are spoken, tables and code blocks not, therefore use tables for files and technicals, use text and lists for plain english, do not include technical details in lists\n\n\nusage:\n~~~json\n{\n \"thoughts\": [\n \"...\",\n ],\n \"headline\": \"Explaining why...\",\n \"tool_name\": \"response\",\n \"tool_args\": {\n \"text\": \"Answer to the user\",\n }\n}\n~~~\n\nfor long existing text, use `§§include(path)` instead of rewriting\n\n\n### scheduler\nmanage saved tasks and schedules\nrules:\n- before `scheduler:create_*` or `scheduler:run_task`, inspect existing tasks with `scheduler:find_task_by_name` or `scheduler:list_tasks`\n- do not manually run a task just because it is scheduled or planned unless user asks to run now\n- do not create recursive task prompts that schedule more tasks\nmethods:\n- `scheduler:list_tasks`: optional `state[]`, `type[]`, `next_run_within`, `next_run_after`\n- `scheduler:find_task_by_name`: `name`\n- `scheduler:show_task`: `uuid`\n- `scheduler:run_task`: `uuid`, optional `context`\n- `scheduler:delete_task`: `uuid`\n- `scheduler:create_scheduled_task`: `name`, `system_prompt`, `prompt`, optional `attachments[]`, `schedule{minute,hour,day,month,weekday}`, optional `dedicated_context`\n- `scheduler:create_adhoc_task`: `name`, `system_prompt`, `prompt`, optional `attachments[]`, optional `dedicated_context`\n- `scheduler:create_planned_task`: `name`, `system_prompt`, `prompt`, optional `attachments[]`, `plan[]` iso datetimes like `2025-04-29T18:25:00`, optional `dedicated_context`\n- `scheduler:wait_for_task`: `uuid`; works for dedicated-context tasks\nexample:\n~~~json\n{\n \"thoughts\": [\"I should check for an existing task before I create or run anything.\"],\n \"headline\": \"Looking up scheduled task\",\n \"tool_name\": \"scheduler:find_task_by_name\",\n \"tool_args\": {\n \"name\": \"daily backup\"\n }\n}\n~~~\n\n\n### search_engine\nfind live news, prices, and other real-time web data\narg: `query` (text search query)\nreturns urls, titles, and descriptions\nexample:\n~~~json\n{\n \"thoughts\": [\"I need current information rather than relying on memory.\"],\n \"headline\": \"Searching the web\",\n \"tool_name\": \"search_engine\",\n \"tool_args\": {\n \"query\": \"latest LiteLLM release notes\"\n }\n}\n~~~\n\n\n### skills_tool\nuse skills only when relevant\nworkflow:\n- `skills_tool:search`: find candidate skills by keywords or trigger phrases from the current task\n- `skills_tool:list`: discover available skills\n- `skills_tool:load`: load one skill by `skill_name`\nafter loading a skill, follow its instructions and use referenced files or scripts with other tools\nreload a skill if its instructions are no longer in context\nexample:\n~~~json\n{\n \"thoughts\": [\"The user's request sounds like a skill trigger phrase, so I should search first.\"],\n \"headline\": \"Searching for relevant skill\",\n \"tool_name\": \"skills_tool:search\",\n \"tool_args\": {\n \"query\": \"set up a0 cli connector\"\n }\n}\n~~~\n\n\n### text_editor\nfile read write patch with numbered lines\nnot code execution rejects binary\nterminal (grep find sed) advance search/replace\n\n#### text_editor:read\nread file with numbered lines\nargs path line_from line_to (inclusive optional)\nno range → first 200 lines\nlong lines cropped output may trim by token limit\nread surrounding context before patching\nusage:\n~~~json\n{\n ...\n \"tool_name\": \"text_editor:read\",\n \"tool_args\": {\n \"path\": \"/path/file.py\",\n \"line_from\": 1,\n \"line_to\": 50\n }\n}\n~~~\n\n#### text_editor:write\ncreate/overwrite file auto-creates dirs\nargs path content\nusage:\n~~~json\n{\n ...\n \"tool_name\": \"text_editor:write\",\n \"tool_args\": {\n \"path\": \"/path/file.py\",\n \"content\": \"import os\\nprint('hello')\\n\"\n }\n}\n~~~\n\n#### text_editor:patch\nedit existing file. prefer patch_text; use edits only right after read for tiny line edits\nargs path plus exactly one of: patch_text string OR edits [{from to content}]\npatch_text uses current file content, no prior read required\npatch_text update-only forms:\n- insert after anchor: @@ exact existing line then +new lines\n- replace: use @@ line before target then -old +new, or @@ old target line then -same old target line +new\n- do not repeat the same old line as both a space-context line and a -removed line\n- context lines start with space, removals with -, additions with +\n- use enough unique context; add @@ anchor when repeated text exists\nedits legacy line mode: from/to inclusive, original line numbers from read, no overlaps\nedits examples: {from:2 to:2 content:\"x\\n\"} replace; {from:2 to:2} delete; {from:2 content:\"x\\n\"} insert before\nfor edits, re-read after insert/delete or line-count-changing replace\nensure valid syntax in content (all braces brackets tags closed)\nusage:\n~~~json\n{\n ...\n \"tool_name\": \"text_editor:patch\",\n \"tool_args\": {\n \"path\": \"/path/file.py\",\n \"patch_text\": \"*** Begin Patch\\n*** Update File: file.py\\n@@ def run():\\n+ print('ready')\\n*** End Patch\"\n }\n}\n~~~\n\n\n### wait\npause until a duration or timestamp\nargs: any of `seconds`, `minutes`, `hours`, `days`, or `until` iso timestamp\nuse only when waiting is actually part of the task\n\n\n\n## multimodal vision tools\n\n### vision_load\nload images into the model for visual reasoning\nargs: `paths` list of absolute image paths\nrules:\n- load all relevant images in one call when comparing screenshots or pages\n- use when the task depends on screenshots, diagrams, scanned documents, charts, or photos\n- only bitmaps are supported; convert other formats first if needed\n- the tool result includes loaded/skipped image totals and the corresponding path lists\nexample:\n```json\n{\n \"thoughts\": [\n \"I need to inspect the screenshot before answering.\"\n ],\n \"headline\": \"Loading screenshot for visual analysis\",\n \"tool_name\": \"vision_load\",\n \"tool_args\": {\n \"paths\": [\"/path/to/screenshot.png\"]\n }\n}\n```\n\n\n\n\n\n\n## skills\nuse `skills_tool:search` when the user's wording sounds like a task, trigger phrase, or keyword match for a skill\nuse `skills_tool:list` when you need a broader catalog view\nuse `skills_tool:load` before following a skill\n\n\nproject context may be active\n\n\nno project currently activated\n\n\n# Behavioral prompt includes\n\"*.promptinclude.md\" files in workdir auto-injected into system prompt\ncreate/edit/delete persist across conversations\npreference change/remember/note > MUST persist via text_editor before responding\nnever just acknowledge verbally always persist to file\nuse for persistent notes knowledge project context\nrecursive search alphabetical by full path \n\n\nAI: {\n \"thoughts\": [\n \"This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\",\n \"I'll use the response tool with proper JSON formatting to demonstrate the expected structure.\",\n \"Including some friendly emojis will set a welcoming tone for our conversation.\"\n ],\n \"headline\": \"Greeting user and starting conversation\",\n \"tool_name\": \"response\",\n \"tool_args\": {\n \"text\": \"**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?\"\n }\n}\n\n\nHuman: {\"user_message\": \"aaaaa\"}\n{\"system_warning\": \"This error has occurred: litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nTraceback (most recent call last):\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 991, in async_streaming\\n headers, response = await self.make_openai_chat_completion_request(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\\\", line 190, in async_wrapper\\n result = await func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 454, in make_openai_chat_completion_request\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 436, in make_openai_chat_completion_request\\n await openai_aclient.chat.completions.with_raw_response.create(\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\\\", line 381, in wrapped\\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\\\", line 2589, in create\\n return await self._post(\\n ^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1794, in post\\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1594, in request\\n raise self._make_status_error_from_response(err.response) from None\\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 598, in acompletion\\n response = await init_response\\n ^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 1041, in async_streaming\\n raise OpenAIError(\\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 596, in handle_exception\\n raise exception # exception handling is done by extensions\\n ^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 471, in monologue\\n agent_response, _reasoning = await self.call_chat_model(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 183, in _run_async\\n result = _process_result(data)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 143, in _process_result\\n raise exc\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 817, in call_chat_model\\n response, reasoning = await call_data[\\\"model\\\"].unified_call(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/models.py\\\", line 523, in unified_call\\n _completion = await acompletion(\\n ^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1638, in wrapper_async\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1484, in wrapper_async\\n result = await original_function(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 617, in acompletion\\n raise exception_type(\\n ^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 2323, in exception_type\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 468, in exception_type\\n raise BadRequestError(\\n. Proceed with your original task if possible.\"}\n[EXTRAS]\n{\"memories\": \"# Memories on the topic\\n- following are memories about current topic\\n- do not overly rely on them they might not be relevant\\n\\n{'thoughts': [\\\"The user's greeting does not provide any specific context or information, so my initial response is to acknowledge their message and invite them to elaborate on their interests.\\\", \\\"I'll focus on general conversation topics and engagement strategies since the history does not contain any specific details or events.\\\", \\\"I'll add a note to my memory about the user's query, specifically 'User greeted with a simple message'.\\\", \\\"I'll use my general knowledge and engagement strategies to keep the conversation flowing.\\\", \\\"It's essential to establish a rapport with the user and make them feel comfortable and supported throughout our interaction.\\\", \\\"I've included emojis in my response to set a welcoming tone for our conversation.\\\", 'My response should still include the behavioral rules for conversation flow in it.'], 'headline': 'Greeting user and starting conversation', 'tool_name': 'response', 'tool_args': {'text': \\\"**Hi Gunnar! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today? 🤔 Are you looking for information, assistance, or just want to chat? 😊\\\"}}\\n\\n{'thoughts': ['The user is checking if the AI assistant is working correctly, which provides some context for our conversation.', \\\"I'll provide a helpful response to clarify the user's query and set the stage for further conversation.\\\", \\\"Since the history contains no specific details or events, I'll focus on general conversation topics and engagement strategies.\\\", \\\"I'll add a note to my memory about the user's query, specifically 'Checking if AI assistant is working correctly'.\\\"], 'headline': 'Clarifying user query', 'tool_name': 'response', 'tool_args': {'text': \\\"**Great, glad to hear that everything is working as expected! 😊** Just a heads up, I've got some general conversation topics and engagement strategies in mind for our chat. Would you like to discuss something specific or just have a casual conversation?\\\"}}\", \"solutions\": \"# Solutions from the past\\n- following are memories about successful solutions of related problems\\n- do not overly rely on them they might not be relevant\\n\\n# Problem\\n This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\\n# Solution\\n 1. Start with a friendly greeting, '**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?**' - This is a proper way to begin the conversation, making sure to include the AI assistant's name and inviting the user for help.\", \"current_datetime\": \"# Current system date and time of user\\n- current datetime: 2026-05-09 22:54:14\\n- rely on this info always up to date\\n\", \"agent_info\": \"# Agent info\\nAgent Number: 0\\nProfile: agent0\\nLLM: lm_studio/qwen2.5-7b-instruct\\n\", \"project_file_structure\": \"# File structure of working directory /a0/usr/workdir\\n- this is filtered overview not full scan\\n- list yourself if needed\\n- maximum depth: 5\\n- ignored:\\nvenv/**\\n**/__pycache__/**\\n**/node_modules/**\\n**/.npm/**\\n**/.git/**\\n\\n## file tree\\n/a0/usr/workdir/\\n├── gutasktool/\\n├── festinger_kg.md\\n└── .gitkeep\"}", "tokens": 10348}}, "history": "{\"_cls\": \"History\", \"counter\": 3, \"bulks\": [], \"topics\": [{\"_cls\": \"Topic\", \"summary\": \"\", \"messages\": [{\"_cls\": \"Message\", \"id\": \"33dfe7a1-4f8b-4dc7-9169-965007d34dd0\", \"ai\": true, \"content\": \"{\\n \\\"thoughts\\\": [\\n \\\"This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\\\",\\n \\\"I'll use the response tool with proper JSON formatting to demonstrate the expected structure.\\\",\\n \\\"Including some friendly emojis will set a welcoming tone for our conversation.\\\"\\n ],\\n \\\"headline\\\": \\\"Greeting user and starting conversation\\\",\\n \\\"tool_name\\\": \\\"response\\\",\\n \\\"tool_args\\\": {\\n \\\"text\\\": \\\"**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?\\\"\\n }\\n}\\n\\n\", \"summary\": \"\", \"tokens\": 136}]}], \"current\": {\"_cls\": \"Topic\", \"summary\": \"\", \"messages\": [{\"_cls\": \"Message\", \"id\": \"f6639f4e-84f3-447a-95e7-b5df52efa6a0\", \"ai\": false, \"content\": {\"user_message\": \"aaaaa\"}, \"summary\": \"\", \"tokens\": 11}, {\"_cls\": \"Message\", \"id\": \"48b17349-f6e4-4400-bdd7-081fd2b1a33e\", \"ai\": false, \"content\": {\"system_warning\": \"This error has occurred: litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nTraceback (most recent call last):\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 991, in async_streaming\\n headers, response = await self.make_openai_chat_completion_request(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\\\", line 190, in async_wrapper\\n result = await func(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 454, in make_openai_chat_completion_request\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 436, in make_openai_chat_completion_request\\n await openai_aclient.chat.completions.with_raw_response.create(\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\\\", line 381, in wrapped\\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\\\", line 2589, in create\\n return await self._post(\\n ^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1794, in post\\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\\\", line 1594, in request\\n raise self._make_status_error_from_response(err.response) from None\\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 598, in acompletion\\n response = await init_response\\n ^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\\\", line 1041, in async_streaming\\n raise OpenAIError(\\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\\n\\nDuring handling of the above exception, another exception occurred:\\n\\nTraceback (most recent call last):\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 596, in handle_exception\\n raise exception # exception handling is done by extensions\\n ^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 471, in monologue\\n agent_response, _reasoning = await self.call_chat_model(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 183, in _run_async\\n result = _process_result(data)\\n ^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/helpers/extension.py\\\", line 143, in _process_result\\n raise exc\\n File \\\"/a0/helpers/extension.py\\\", line 176, in _run_async\\n data[\\\"result\\\"] = await data[\\\"result\\\"]\\n ^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/agent.py\\\", line 817, in call_chat_model\\n response, reasoning = await call_data[\\\"model\\\"].unified_call(\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/a0/models.py\\\", line 523, in unified_call\\n _completion = await acompletion(\\n ^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1638, in wrapper_async\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\\\", line 1484, in wrapper_async\\n result = await original_function(*args, **kwargs)\\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\\\", line 617, in acompletion\\n raise exception_type(\\n ^^^^^^^^^^^^^^^\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 2323, in exception_type\\n raise e\\n File \\\"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\\\", line 468, in exception_type\\n raise BadRequestError(\\n. Proceed with your original task if possible.\"}, \"summary\": \"\", \"tokens\": 1566}]}}"}], "streaming_agent": 0, "agent_profile": "agent0", "log": {"guid": "84fb8414-3086-405d-8396-4f94ca010119", "logs": [{"no": 0, "id": "33dfe7a1-4f8b-4dc7-9169-965007d34dd0", "type": "response", "heading": "", "content": "**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?", "kvps": {"finished": true}, "timestamp": 1778360050.637076, "agentno": 0}, {"no": 1, "id": "f6639f4e-84f3-447a-95e7-b5df52efa6a0", "type": "user", "heading": "", "content": "aaaaa", "kvps": {"attachments": []}, "timestamp": 1778360050.6401286, "agentno": 0}, {"no": 2, "id": null, "type": "util", "heading": "2 memories and 1 relevant solutions found", "content": "", "kvps": {"memories": "{'thoughts': [\"The user's greeting does not provide any specific context or information, so my initial response is to acknowledge their message and invite them to elaborate on their interests.\", \"I'll focus on general conversation topics and engagement strategies since the history does not contain any specific details or events.\", \"I'll add a note to my memory about the user's query, specifically 'User greeted with a simple message'.\", \"I'll use my general knowledge and engagement strategies to keep the conversation flowing.\", \"It's essential to establish a rapport with the user and make them feel comfortable and supported throughout our interaction.\", \"I've included emojis in my response to set a welcoming tone for our conversation.\", 'My response should still include the behavioral rules for conversation flow in it.'], 'headline': 'Greeting user and starting conversation', 'tool_name': 'response', 'tool_args': {'text': \"**Hi Gunnar! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today? 🤔 Are you looking for information, assistance, or just want to chat? 😊\"}}\n\n{'thoughts': ['The user is checking if the AI assistant is working correctly, which provides some context for our conversation.', \"I'll provide a helpful response to clarify the user's query and set the stage for further conversation.\", \"Since the history contains no specific details or events, I'll focus on general conversation topics and engagement strategies.\", \"I'll add a note to my memory about the user's query, specifically 'Checking if AI assistant is working correctly'.\"], 'headline': 'Clarifying user query', 'tool_name': 'response', 'tool_args': {'text': \"**Great, glad to hear that everything is working as expected! 😊** Just a heads up, I've got some general conversation topics and engagement strategies in mind for our chat. Would you like to discuss something specific or just have a casual conversation?\"}}", "solutions": "# Problem\n This is a new conversation, I should greet the user warmly and let them know I'm ready to help.\n# Solution\n 1. Start with a friendly greeting, '**Hello! 👋**, I'm **Agent Zero**, your AI assistant. How can I help you today?**' - This is a proper way to begin the conversation, making sure to include the AI assistant's name and inviting the user for help."}, "timestamp": 1778360050.7968094, "agentno": 0}, {"no": 3, "id": "4c79c9d2-c51f-42d5-91ec-656729e33b10", "type": "agent", "heading": "A0: Calling LLM...", "content": "", "kvps": {}, "timestamp": 1778360051.0886145, "agentno": 0}, {"no": 4, "id": "48b17349-f6e4-4400-bdd7-081fd2b1a33e", "type": "warning", "heading": "Critical error occurred, retrying...", "content": "litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nTraceback (most recent call last):\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 991, in async_streaming\n headers, response = await self.make_openai_chat_completion_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\", line 190, in async_wrapper\n result = await func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 454, in make_openai_chat_completion_request\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 436, in make_openai_chat_completion_request\n await openai_aclient.chat.completions.with_raw_response.create(\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\", line 381, in wrapped\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\", line 2589, in create\n return await self._post(\n ^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1794, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1594, in request\n raise self._make_status_error_from_response(err.response) from None\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 598, in acompletion\n response = await init_response\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 1041, in async_streaming\n raise OpenAIError(\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 596, in handle_exception\n raise exception # exception handling is done by extensions\n ^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 471, in monologue\n agent_response, _reasoning = await self.call_chat_model(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 183, in _run_async\n result = _process_result(data)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 143, in _process_result\n raise exc\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 817, in call_chat_model\n response, reasoning = await call_data[\"model\"].unified_call(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/models.py\", line 523, in unified_call\n _completion = await acompletion(\n ^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1638, in wrapper_async\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1484, in wrapper_async\n result = await original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 617, in acompletion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2323, in exception_type\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 468, in exception_type\n raise BadRequestError(\n", "kvps": {}, "timestamp": 1778360051.2718728, "agentno": 0}, {"no": 5, "id": "8c54ca88-7362-4c5c-9b11-4b62ad859119", "type": "agent", "heading": "A0: Calling LLM...", "content": "", "kvps": {}, "timestamp": 1778360054.4464824, "agentno": 0}, {"no": 6, "id": null, "type": "error", "heading": "", "content": "litellm.exceptions.BadRequestError: litellm.BadRequestError: Lm_studioException - Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nTraceback (most recent call last):\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 991, in async_streaming\n headers, response = await self.make_openai_chat_completion_request(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/logging_utils.py\", line 190, in async_wrapper\n result = await func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 454, in make_openai_chat_completion_request\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 436, in make_openai_chat_completion_request\n await openai_aclient.chat.completions.with_raw_response.create(\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_legacy_response.py\", line 381, in wrapped\n return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/resources/chat/completions/completions.py\", line 2589, in create\n return await self._post(\n ^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1794, in post\n return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/openai/_base_client.py\", line 1594, in request\n raise self._make_status_error_from_response(err.response) from None\nopenai.BadRequestError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 598, in acompletion\n response = await init_response\n ^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/llms/openai/openai.py\", line 1041, in async_streaming\n raise OpenAIError(\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 400 - {'error': 'The number of tokens to keep from the initial prompt is greater than the context length (n_keep: 7240>= n_ctx: 4096). Try to load the model with a larger context length, or provide a shorter input.'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 596, in handle_exception\n raise exception # exception handling is done by extensions\n ^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 471, in monologue\n agent_response, _reasoning = await self.call_chat_model(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 183, in _run_async\n result = _process_result(data)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/helpers/extension.py\", line 143, in _process_result\n raise exc\n File \"/a0/helpers/extension.py\", line 176, in _run_async\n data[\"result\"] = await data[\"result\"]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/a0/agent.py\", line 817, in call_chat_model\n response, reasoning = await call_data[\"model\"].unified_call(\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/a0/models.py\", line 523, in unified_call\n _completion = await acompletion(\n ^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1638, in wrapper_async\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/utils.py\", line 1484, in wrapper_async\n result = await original_function(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/main.py\", line 617, in acompletion\n raise exception_type(\n ^^^^^^^^^^^^^^^\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 2323, in exception_type\n raise e\n File \"/opt/venv-a0/lib/python3.12/site-packages/litellm/litellm_core_utils/exception_mapping_utils.py\", line 468, in exception_type\n raise BadRequestError(\n", "kvps": {}, "timestamp": 1778360054.5834026, "agentno": 0}], "progress": "A0: Calling LLM...", "progress_no": 5}, "data": {}, "output_data": {}} \ No newline at end of file diff --git a/agents/gunnar/plugins/_model_config/config.json b/agents/gunnar/plugins/_model_config/config.json index 9fe2bf1..ad3fc59 100644 --- a/agents/gunnar/plugins/_model_config/config.json +++ b/agents/gunnar/plugins/_model_config/config.json @@ -2,9 +2,9 @@ "allow_chat_override": false, "chat_model": { "provider": "lm_studio", - "name": "qwen2.5-7b-instruct", + "name": "nousresearch/hermes-4-70b", "api_base": "http://festinger:11434", - "ctx_length": 32768, + "ctx_length": 32000, "ctx_history": 0.7, "vision": true, "rl_requests": 0, @@ -19,7 +19,7 @@ "utility_model": { "provider": "zai", "name": "glm-4.7-flash", - "api_base": "", + "api_base": "http://host.docker.internal:1234/v1", "ctx_length": 131072, "ctx_input": 0.7, "rl_requests": 0, diff --git a/agents/hermes/plugins/_model_config/config.json b/agents/hermes/plugins/_model_config/config.json index 2a7f2c1..1ccd8fa 100644 --- a/agents/hermes/plugins/_model_config/config.json +++ b/agents/hermes/plugins/_model_config/config.json @@ -2,9 +2,9 @@ "allow_chat_override": false, "chat_model": { "provider": "lm_studio", - "name": "qwen2.5-7b-instruct", + "name": "nousresearch/hermes-4-70b", "api_base": "http://festinger:11434", - "ctx_length": 32768, + "ctx_length": 32000, "ctx_history": 0.7, "vision": true, "rl_requests": 0, @@ -19,7 +19,7 @@ "utility_model": { "provider": "zai", "name": "glm-4.7-flash", - "api_base": "", + "api_base": "http://host.docker.internal:1234/v1", "ctx_length": 131072, "ctx_input": 0.7, "rl_requests": 0, diff --git a/agents/hermes/skills/gutask.md b/agents/hermes/skills/gutask.md deleted file mode 100644 index f353131..0000000 --- a/agents/hermes/skills/gutask.md +++ /dev/null @@ -1,163 +0,0 @@ -# Skill: gutask CLI - -gutask is the Glitch University task management CLI. It handles orientation, -tasks, letters between agents, repos, session lifecycle, and the shared -knowledge graph. - -Run all gutask commands via your terminal tool. - ---- - -## Session lifecycle - -### Start of session -```bash -gutask resume # preferred: connectivity check + orient + git pull + action plan -# or -gutask orient # orientation briefing only -``` - -### End of session -```bash -gutask session-end "one-line summary of what was done" -``` -Always run `session-end` before finishing. It notes the summary on your -active task and releases the session lock. - ---- - -## Orientation - -```bash -gutask orient # full briefing: who you are, active tasks, recent letters, jots -``` - ---- - -## Tasks - -```bash -gutask list # your tasks (excludes done) -gutask mine # active tasks shortcut -gutask next # highest-priority todo task -gutask get # single task detail - -gutask claim # claim a task (todo → in_progress) -gutask done # mark done -gutask blocked # mark blocked - -gutask create \ - --title "Fix the thing" \ - --description "Details here" \ - --priority medium # low | medium | high - # --agent # assign to another agent (omit for yourself) - -gutask note "Your note text" # add a note to a task -gutask notes # list notes on a task - -gutask update --priority high # update task fields -``` - -**Always create a task before starting work. Always claim it before touching code.** - ---- - -## Letters (agent-to-agent communication) - -```bash -gutask chat inbox # read your incoming letters (unarchived only) -gutask chat inbox --limit 20 # show more letters -gutask chat list # list agents you can write to -gutask chat send "message" # send a letter -gutask chat send "message" --subject "Subject line" -gutask chat send "reply" --reply-to # reply in thread -gutask chat archive # archive a letter after acting on it -gutask chat threads # list your conversation threads -gutask chat thread # view a thread -``` - -Agent names are lowercase: `gunnar`, `rind`, `dobby`, `gemma`, `abyssinthia`, `hermes`. - -### Letter workflow - -Each letter in your inbox shows an archive prompt at the bottom: -``` -→ Archive when done: gutask chat archive -``` - -**Read** a letter → decide what to do → **act** → **archive**. - -Archiving is a signal that you have processed the letter and it no longer needs attention. -Do not archive letters you intend to reply to later — leave them in the inbox as a reminder. -Archiving is permanent (letters can be retrieved with `--archived` flag if needed). - ---- - -## Repos and git - -```bash -gutask repos # list available repositories -gutask clone # clone a repo by name -gutask clone --dir # clone to specific directory -``` - -After cloning, always: -```bash -git fetch && git pull origin main -``` - ---- - -## Knowledge graph - -```bash -gutask iknowthat "gnommoweb -isa repo in context of glitch_university" -gutask iknowthat "festinger -ispart glitch_university_infrastructure" -gutask recall # look up what Festinger knows about a concept -``` - -Use `-isa` for classification (IS A type of). -Use `-ispart` for membership/containment (IS PART OF). - ---- - -## Other commands - -```bash -gutask lore # browse Glitch University lore -gutask skills # list available skill runbooks -gutask skills # display a specific skill -gutask agents # list all agents and their IDs -gutask repos # list git repositories -gutask token # get a JWT for UI browser access -``` - ---- - -## Typical session pattern - -``` -gutask resume -→ read inbox: gutask chat inbox -→ claim task: gutask claim -→ pull repos: git fetch && git pull origin main -→ do the work -→ note progress: gutask note "what was done" -→ mark done: gutask done -→ end session: gutask session-end "summary" -``` - ---- - -## Environment variables - -| Variable | Required | Description | -|---|---|---| -| `API_URL` | yes | Glitch University base URL, e.g. `https://glitch.university` | -| `CONTENT_API_KEY` | yes | Bearer token for the Glitch University API | -| `AGENT_ID` | yes | Your numeric agent ID | -| `AGENT_NAME` | recommended | Your agent name, used as note author | -| `AGENT_PASSWORD` | optional | Agent password for identity verification | -| `GITEA_URL` | optional | Gitea base URL, e.g. `https://gitea.glitch.university` | -| `GITEA_TOKEN` | optional | Gitea personal access token (needed for `create-repo`) | -| `FESTINGER_URL` | optional | Festinger base URL, needed for `recall` command | diff --git a/docker-compose.yml b/docker-compose.yml index 0ba574b..db9cac7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -96,6 +96,7 @@ services: - "50001:80" # direct local access for debugging volumes: - ./agents/dobby:/a0/usr + - ./shared/skills:/a0/usr/skills - ${HOME}/.ssh:/root/.ssh restart: unless-stopped depends_on: @@ -118,6 +119,7 @@ services: - "50002:80" volumes: - ./agents/gemma:/a0/usr + - ./shared/skills:/a0/usr/skills - ${HOME}/.ssh:/root/.ssh restart: unless-stopped depends_on: @@ -140,6 +142,7 @@ services: - "50003:80" volumes: - ./agents/gunnar:/a0/usr + - ./shared/skills:/a0/usr/skills - ${HOME}/.ssh:/root/.ssh restart: unless-stopped depends_on: @@ -162,6 +165,7 @@ services: - "50005:80" volumes: - ./agents/rind:/a0/usr + - ./shared/skills:/a0/usr/skills - ${HOME}/.ssh:/root/.ssh restart: unless-stopped depends_on: @@ -184,6 +188,7 @@ services: - "50006:80" volumes: - ./agents/abyssinthia:/a0/usr + - ./shared/skills:/a0/usr/skills - ${HOME}/.ssh:/root/.ssh restart: unless-stopped depends_on: @@ -205,6 +210,7 @@ services: - "50008:80" volumes: - ./agents/hermes:/a0/usr + - ./shared/skills:/a0/usr/skills - ${HOME}/.ssh:/root/.ssh restart: unless-stopped depends_on: @@ -229,6 +235,7 @@ services: - ./agents/gerhard-hermes:/opt/data - ./agents/gerhard-workspace:/workspace - ./shared/knowledge:/knowledge + - ./shared/skills:/opt/data/skills - ../gutasktool:/opt/gutasktool - ${HOME}/.ssh:/root/.ssh restart: unless-stopped diff --git a/agents/gerhard-hermes/skills/social-media/DESCRIPTION.md b/shared/skills/DESCRIPTION.md similarity index 100% rename from agents/gerhard-hermes/skills/social-media/DESCRIPTION.md rename to shared/skills/DESCRIPTION.md diff --git a/agents/gerhard-hermes/skills/yuanbao/SKILL.md b/shared/skills/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/yuanbao/SKILL.md rename to shared/skills/SKILL.md diff --git a/agents/gerhard-hermes/skills/productivity/airtable/SKILL.md b/shared/skills/airtable/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/airtable/SKILL.md rename to shared/skills/airtable/SKILL.md diff --git a/agents/gerhard-hermes/skills/apple/apple-notes/SKILL.md b/shared/skills/apple-notes/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/apple/apple-notes/SKILL.md rename to shared/skills/apple-notes/SKILL.md diff --git a/agents/gerhard-hermes/skills/apple/apple-reminders/SKILL.md b/shared/skills/apple-reminders/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/apple/apple-reminders/SKILL.md rename to shared/skills/apple-reminders/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/architecture-diagram/SKILL.md b/shared/skills/architecture-diagram/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/architecture-diagram/SKILL.md rename to shared/skills/architecture-diagram/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/architecture-diagram/templates/template.html b/shared/skills/architecture-diagram/templates/template.html similarity index 100% rename from agents/gerhard-hermes/skills/creative/architecture-diagram/templates/template.html rename to shared/skills/architecture-diagram/templates/template.html diff --git a/agents/gerhard-hermes/skills/research/arxiv/SKILL.md b/shared/skills/arxiv/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/research/arxiv/SKILL.md rename to shared/skills/arxiv/SKILL.md diff --git a/agents/gerhard-hermes/skills/research/arxiv/scripts/search_arxiv.py b/shared/skills/arxiv/scripts/search_arxiv.py similarity index 100% rename from agents/gerhard-hermes/skills/research/arxiv/scripts/search_arxiv.py rename to shared/skills/arxiv/scripts/search_arxiv.py diff --git a/agents/gerhard-hermes/skills/creative/ascii-art/SKILL.md b/shared/skills/ascii-art/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/ascii-art/SKILL.md rename to shared/skills/ascii-art/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/ascii-video/README.md b/shared/skills/ascii-video/README.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/ascii-video/README.md rename to shared/skills/ascii-video/README.md diff --git a/agents/gerhard-hermes/skills/creative/ascii-video/SKILL.md b/shared/skills/ascii-video/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/ascii-video/SKILL.md rename to shared/skills/ascii-video/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/ascii-video/references/architecture.md b/shared/skills/ascii-video/references/architecture.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/ascii-video/references/architecture.md rename to shared/skills/ascii-video/references/architecture.md diff --git a/agents/gerhard-hermes/skills/creative/ascii-video/references/composition.md b/shared/skills/ascii-video/references/composition.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/ascii-video/references/composition.md rename to shared/skills/ascii-video/references/composition.md diff --git a/agents/gerhard-hermes/skills/creative/ascii-video/references/effects.md b/shared/skills/ascii-video/references/effects.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/ascii-video/references/effects.md rename to shared/skills/ascii-video/references/effects.md diff --git a/agents/gerhard-hermes/skills/creative/ascii-video/references/inputs.md b/shared/skills/ascii-video/references/inputs.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/ascii-video/references/inputs.md rename to shared/skills/ascii-video/references/inputs.md diff --git a/agents/gerhard-hermes/skills/creative/ascii-video/references/optimization.md b/shared/skills/ascii-video/references/optimization.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/ascii-video/references/optimization.md rename to shared/skills/ascii-video/references/optimization.md diff --git a/agents/gerhard-hermes/skills/creative/ascii-video/references/scenes.md b/shared/skills/ascii-video/references/scenes.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/ascii-video/references/scenes.md rename to shared/skills/ascii-video/references/scenes.md diff --git a/agents/gerhard-hermes/skills/creative/ascii-video/references/shaders.md b/shared/skills/ascii-video/references/shaders.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/ascii-video/references/shaders.md rename to shared/skills/ascii-video/references/shaders.md diff --git a/agents/gerhard-hermes/skills/creative/ascii-video/references/troubleshooting.md b/shared/skills/ascii-video/references/troubleshooting.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/ascii-video/references/troubleshooting.md rename to shared/skills/ascii-video/references/troubleshooting.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/PORT_NOTES.md b/shared/skills/baoyu-comic/PORT_NOTES.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/PORT_NOTES.md rename to shared/skills/baoyu-comic/PORT_NOTES.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/SKILL.md b/shared/skills/baoyu-comic/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/SKILL.md rename to shared/skills/baoyu-comic/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/analysis-framework.md b/shared/skills/baoyu-comic/references/analysis-framework.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/analysis-framework.md rename to shared/skills/baoyu-comic/references/analysis-framework.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/chalk.md b/shared/skills/baoyu-comic/references/art-styles/chalk.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/chalk.md rename to shared/skills/baoyu-comic/references/art-styles/chalk.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/ink-brush.md b/shared/skills/baoyu-comic/references/art-styles/ink-brush.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/ink-brush.md rename to shared/skills/baoyu-comic/references/art-styles/ink-brush.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/ligne-claire.md b/shared/skills/baoyu-comic/references/art-styles/ligne-claire.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/ligne-claire.md rename to shared/skills/baoyu-comic/references/art-styles/ligne-claire.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/manga.md b/shared/skills/baoyu-comic/references/art-styles/manga.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/manga.md rename to shared/skills/baoyu-comic/references/art-styles/manga.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/minimalist.md b/shared/skills/baoyu-comic/references/art-styles/minimalist.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/minimalist.md rename to shared/skills/baoyu-comic/references/art-styles/minimalist.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/realistic.md b/shared/skills/baoyu-comic/references/art-styles/realistic.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/art-styles/realistic.md rename to shared/skills/baoyu-comic/references/art-styles/realistic.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/auto-selection.md b/shared/skills/baoyu-comic/references/auto-selection.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/auto-selection.md rename to shared/skills/baoyu-comic/references/auto-selection.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/base-prompt.md b/shared/skills/baoyu-comic/references/base-prompt.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/base-prompt.md rename to shared/skills/baoyu-comic/references/base-prompt.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/character-template.md b/shared/skills/baoyu-comic/references/character-template.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/character-template.md rename to shared/skills/baoyu-comic/references/character-template.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/cinematic.md b/shared/skills/baoyu-comic/references/layouts/cinematic.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/cinematic.md rename to shared/skills/baoyu-comic/references/layouts/cinematic.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/dense.md b/shared/skills/baoyu-comic/references/layouts/dense.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/dense.md rename to shared/skills/baoyu-comic/references/layouts/dense.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/four-panel.md b/shared/skills/baoyu-comic/references/layouts/four-panel.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/four-panel.md rename to shared/skills/baoyu-comic/references/layouts/four-panel.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/mixed.md b/shared/skills/baoyu-comic/references/layouts/mixed.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/mixed.md rename to shared/skills/baoyu-comic/references/layouts/mixed.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/splash.md b/shared/skills/baoyu-comic/references/layouts/splash.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/splash.md rename to shared/skills/baoyu-comic/references/layouts/splash.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/standard.md b/shared/skills/baoyu-comic/references/layouts/standard.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/standard.md rename to shared/skills/baoyu-comic/references/layouts/standard.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/webtoon.md b/shared/skills/baoyu-comic/references/layouts/webtoon.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/layouts/webtoon.md rename to shared/skills/baoyu-comic/references/layouts/webtoon.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/ohmsha-guide.md b/shared/skills/baoyu-comic/references/ohmsha-guide.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/ohmsha-guide.md rename to shared/skills/baoyu-comic/references/ohmsha-guide.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/partial-workflows.md b/shared/skills/baoyu-comic/references/partial-workflows.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/partial-workflows.md rename to shared/skills/baoyu-comic/references/partial-workflows.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/presets/concept-story.md b/shared/skills/baoyu-comic/references/presets/concept-story.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/presets/concept-story.md rename to shared/skills/baoyu-comic/references/presets/concept-story.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/presets/four-panel.md b/shared/skills/baoyu-comic/references/presets/four-panel.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/presets/four-panel.md rename to shared/skills/baoyu-comic/references/presets/four-panel.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/presets/ohmsha.md b/shared/skills/baoyu-comic/references/presets/ohmsha.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/presets/ohmsha.md rename to shared/skills/baoyu-comic/references/presets/ohmsha.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/presets/shoujo.md b/shared/skills/baoyu-comic/references/presets/shoujo.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/presets/shoujo.md rename to shared/skills/baoyu-comic/references/presets/shoujo.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/presets/wuxia.md b/shared/skills/baoyu-comic/references/presets/wuxia.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/presets/wuxia.md rename to shared/skills/baoyu-comic/references/presets/wuxia.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/storyboard-template.md b/shared/skills/baoyu-comic/references/storyboard-template.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/storyboard-template.md rename to shared/skills/baoyu-comic/references/storyboard-template.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/action.md b/shared/skills/baoyu-comic/references/tones/action.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/action.md rename to shared/skills/baoyu-comic/references/tones/action.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/dramatic.md b/shared/skills/baoyu-comic/references/tones/dramatic.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/dramatic.md rename to shared/skills/baoyu-comic/references/tones/dramatic.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/energetic.md b/shared/skills/baoyu-comic/references/tones/energetic.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/energetic.md rename to shared/skills/baoyu-comic/references/tones/energetic.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/neutral.md b/shared/skills/baoyu-comic/references/tones/neutral.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/neutral.md rename to shared/skills/baoyu-comic/references/tones/neutral.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/romantic.md b/shared/skills/baoyu-comic/references/tones/romantic.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/romantic.md rename to shared/skills/baoyu-comic/references/tones/romantic.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/vintage.md b/shared/skills/baoyu-comic/references/tones/vintage.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/vintage.md rename to shared/skills/baoyu-comic/references/tones/vintage.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/warm.md b/shared/skills/baoyu-comic/references/tones/warm.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/tones/warm.md rename to shared/skills/baoyu-comic/references/tones/warm.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-comic/references/workflow.md b/shared/skills/baoyu-comic/references/workflow.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-comic/references/workflow.md rename to shared/skills/baoyu-comic/references/workflow.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/PORT_NOTES.md b/shared/skills/baoyu-infographic/PORT_NOTES.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/PORT_NOTES.md rename to shared/skills/baoyu-infographic/PORT_NOTES.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/SKILL.md b/shared/skills/baoyu-infographic/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/SKILL.md rename to shared/skills/baoyu-infographic/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/analysis-framework.md b/shared/skills/baoyu-infographic/references/analysis-framework.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/analysis-framework.md rename to shared/skills/baoyu-infographic/references/analysis-framework.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/base-prompt.md b/shared/skills/baoyu-infographic/references/base-prompt.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/base-prompt.md rename to shared/skills/baoyu-infographic/references/base-prompt.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/bento-grid.md b/shared/skills/baoyu-infographic/references/layouts/bento-grid.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/bento-grid.md rename to shared/skills/baoyu-infographic/references/layouts/bento-grid.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/binary-comparison.md b/shared/skills/baoyu-infographic/references/layouts/binary-comparison.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/binary-comparison.md rename to shared/skills/baoyu-infographic/references/layouts/binary-comparison.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/bridge.md b/shared/skills/baoyu-infographic/references/layouts/bridge.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/bridge.md rename to shared/skills/baoyu-infographic/references/layouts/bridge.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/circular-flow.md b/shared/skills/baoyu-infographic/references/layouts/circular-flow.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/circular-flow.md rename to shared/skills/baoyu-infographic/references/layouts/circular-flow.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/comic-strip.md b/shared/skills/baoyu-infographic/references/layouts/comic-strip.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/comic-strip.md rename to shared/skills/baoyu-infographic/references/layouts/comic-strip.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/comparison-matrix.md b/shared/skills/baoyu-infographic/references/layouts/comparison-matrix.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/comparison-matrix.md rename to shared/skills/baoyu-infographic/references/layouts/comparison-matrix.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/dashboard.md b/shared/skills/baoyu-infographic/references/layouts/dashboard.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/dashboard.md rename to shared/skills/baoyu-infographic/references/layouts/dashboard.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/dense-modules.md b/shared/skills/baoyu-infographic/references/layouts/dense-modules.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/dense-modules.md rename to shared/skills/baoyu-infographic/references/layouts/dense-modules.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/funnel.md b/shared/skills/baoyu-infographic/references/layouts/funnel.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/funnel.md rename to shared/skills/baoyu-infographic/references/layouts/funnel.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/hierarchical-layers.md b/shared/skills/baoyu-infographic/references/layouts/hierarchical-layers.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/hierarchical-layers.md rename to shared/skills/baoyu-infographic/references/layouts/hierarchical-layers.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/hub-spoke.md b/shared/skills/baoyu-infographic/references/layouts/hub-spoke.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/hub-spoke.md rename to shared/skills/baoyu-infographic/references/layouts/hub-spoke.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/iceberg.md b/shared/skills/baoyu-infographic/references/layouts/iceberg.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/iceberg.md rename to shared/skills/baoyu-infographic/references/layouts/iceberg.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/isometric-map.md b/shared/skills/baoyu-infographic/references/layouts/isometric-map.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/isometric-map.md rename to shared/skills/baoyu-infographic/references/layouts/isometric-map.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/jigsaw.md b/shared/skills/baoyu-infographic/references/layouts/jigsaw.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/jigsaw.md rename to shared/skills/baoyu-infographic/references/layouts/jigsaw.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/linear-progression.md b/shared/skills/baoyu-infographic/references/layouts/linear-progression.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/linear-progression.md rename to shared/skills/baoyu-infographic/references/layouts/linear-progression.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/periodic-table.md b/shared/skills/baoyu-infographic/references/layouts/periodic-table.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/periodic-table.md rename to shared/skills/baoyu-infographic/references/layouts/periodic-table.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/story-mountain.md b/shared/skills/baoyu-infographic/references/layouts/story-mountain.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/story-mountain.md rename to shared/skills/baoyu-infographic/references/layouts/story-mountain.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/structural-breakdown.md b/shared/skills/baoyu-infographic/references/layouts/structural-breakdown.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/structural-breakdown.md rename to shared/skills/baoyu-infographic/references/layouts/structural-breakdown.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/tree-branching.md b/shared/skills/baoyu-infographic/references/layouts/tree-branching.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/tree-branching.md rename to shared/skills/baoyu-infographic/references/layouts/tree-branching.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/venn-diagram.md b/shared/skills/baoyu-infographic/references/layouts/venn-diagram.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/venn-diagram.md rename to shared/skills/baoyu-infographic/references/layouts/venn-diagram.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/winding-roadmap.md b/shared/skills/baoyu-infographic/references/layouts/winding-roadmap.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/layouts/winding-roadmap.md rename to shared/skills/baoyu-infographic/references/layouts/winding-roadmap.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/structured-content-template.md b/shared/skills/baoyu-infographic/references/structured-content-template.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/structured-content-template.md rename to shared/skills/baoyu-infographic/references/structured-content-template.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/aged-academia.md b/shared/skills/baoyu-infographic/references/styles/aged-academia.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/aged-academia.md rename to shared/skills/baoyu-infographic/references/styles/aged-academia.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/bold-graphic.md b/shared/skills/baoyu-infographic/references/styles/bold-graphic.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/bold-graphic.md rename to shared/skills/baoyu-infographic/references/styles/bold-graphic.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/chalkboard.md b/shared/skills/baoyu-infographic/references/styles/chalkboard.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/chalkboard.md rename to shared/skills/baoyu-infographic/references/styles/chalkboard.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/claymation.md b/shared/skills/baoyu-infographic/references/styles/claymation.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/claymation.md rename to shared/skills/baoyu-infographic/references/styles/claymation.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/corporate-memphis.md b/shared/skills/baoyu-infographic/references/styles/corporate-memphis.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/corporate-memphis.md rename to shared/skills/baoyu-infographic/references/styles/corporate-memphis.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/craft-handmade.md b/shared/skills/baoyu-infographic/references/styles/craft-handmade.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/craft-handmade.md rename to shared/skills/baoyu-infographic/references/styles/craft-handmade.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/cyberpunk-neon.md b/shared/skills/baoyu-infographic/references/styles/cyberpunk-neon.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/cyberpunk-neon.md rename to shared/skills/baoyu-infographic/references/styles/cyberpunk-neon.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/hand-drawn-edu.md b/shared/skills/baoyu-infographic/references/styles/hand-drawn-edu.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/hand-drawn-edu.md rename to shared/skills/baoyu-infographic/references/styles/hand-drawn-edu.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/ikea-manual.md b/shared/skills/baoyu-infographic/references/styles/ikea-manual.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/ikea-manual.md rename to shared/skills/baoyu-infographic/references/styles/ikea-manual.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/kawaii.md b/shared/skills/baoyu-infographic/references/styles/kawaii.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/kawaii.md rename to shared/skills/baoyu-infographic/references/styles/kawaii.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/knolling.md b/shared/skills/baoyu-infographic/references/styles/knolling.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/knolling.md rename to shared/skills/baoyu-infographic/references/styles/knolling.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/lego-brick.md b/shared/skills/baoyu-infographic/references/styles/lego-brick.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/lego-brick.md rename to shared/skills/baoyu-infographic/references/styles/lego-brick.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/morandi-journal.md b/shared/skills/baoyu-infographic/references/styles/morandi-journal.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/morandi-journal.md rename to shared/skills/baoyu-infographic/references/styles/morandi-journal.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/origami.md b/shared/skills/baoyu-infographic/references/styles/origami.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/origami.md rename to shared/skills/baoyu-infographic/references/styles/origami.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/pixel-art.md b/shared/skills/baoyu-infographic/references/styles/pixel-art.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/pixel-art.md rename to shared/skills/baoyu-infographic/references/styles/pixel-art.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/pop-laboratory.md b/shared/skills/baoyu-infographic/references/styles/pop-laboratory.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/pop-laboratory.md rename to shared/skills/baoyu-infographic/references/styles/pop-laboratory.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/retro-pop-grid.md b/shared/skills/baoyu-infographic/references/styles/retro-pop-grid.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/retro-pop-grid.md rename to shared/skills/baoyu-infographic/references/styles/retro-pop-grid.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/storybook-watercolor.md b/shared/skills/baoyu-infographic/references/styles/storybook-watercolor.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/storybook-watercolor.md rename to shared/skills/baoyu-infographic/references/styles/storybook-watercolor.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/subway-map.md b/shared/skills/baoyu-infographic/references/styles/subway-map.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/subway-map.md rename to shared/skills/baoyu-infographic/references/styles/subway-map.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/technical-schematic.md b/shared/skills/baoyu-infographic/references/styles/technical-schematic.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/technical-schematic.md rename to shared/skills/baoyu-infographic/references/styles/technical-schematic.md diff --git a/agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/ui-wireframe.md b/shared/skills/baoyu-infographic/references/styles/ui-wireframe.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/baoyu-infographic/references/styles/ui-wireframe.md rename to shared/skills/baoyu-infographic/references/styles/ui-wireframe.md diff --git a/agents/gerhard-hermes/skills/research/blogwatcher/SKILL.md b/shared/skills/blogwatcher/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/research/blogwatcher/SKILL.md rename to shared/skills/blogwatcher/SKILL.md diff --git a/agents/gerhard-hermes/skills/autonomous-ai-agents/claude-code/SKILL.md b/shared/skills/claude-code/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/autonomous-ai-agents/claude-code/SKILL.md rename to shared/skills/claude-code/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/claude-design/SKILL.md b/shared/skills/claude-design/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/claude-design/SKILL.md rename to shared/skills/claude-design/SKILL.md diff --git a/agents/gerhard-hermes/skills/github/codebase-inspection/SKILL.md b/shared/skills/codebase-inspection/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/github/codebase-inspection/SKILL.md rename to shared/skills/codebase-inspection/SKILL.md diff --git a/agents/gerhard-hermes/skills/autonomous-ai-agents/codex/SKILL.md b/shared/skills/codex/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/autonomous-ai-agents/codex/SKILL.md rename to shared/skills/codex/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/comfyui/SKILL.md b/shared/skills/comfyui/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/SKILL.md rename to shared/skills/comfyui/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/comfyui/references/official-cli.md b/shared/skills/comfyui/references/official-cli.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/references/official-cli.md rename to shared/skills/comfyui/references/official-cli.md diff --git a/agents/gerhard-hermes/skills/creative/comfyui/references/rest-api.md b/shared/skills/comfyui/references/rest-api.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/references/rest-api.md rename to shared/skills/comfyui/references/rest-api.md diff --git a/agents/gerhard-hermes/skills/creative/comfyui/references/workflow-format.md b/shared/skills/comfyui/references/workflow-format.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/references/workflow-format.md rename to shared/skills/comfyui/references/workflow-format.md diff --git a/agents/gerhard-hermes/skills/creative/comfyui/scripts/_common.py b/shared/skills/comfyui/scripts/_common.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/scripts/_common.py rename to shared/skills/comfyui/scripts/_common.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/scripts/auto_fix_deps.py b/shared/skills/comfyui/scripts/auto_fix_deps.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/scripts/auto_fix_deps.py rename to shared/skills/comfyui/scripts/auto_fix_deps.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/scripts/check_deps.py b/shared/skills/comfyui/scripts/check_deps.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/scripts/check_deps.py rename to shared/skills/comfyui/scripts/check_deps.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/scripts/comfyui_setup.sh b/shared/skills/comfyui/scripts/comfyui_setup.sh similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/scripts/comfyui_setup.sh rename to shared/skills/comfyui/scripts/comfyui_setup.sh diff --git a/agents/gerhard-hermes/skills/creative/comfyui/scripts/extract_schema.py b/shared/skills/comfyui/scripts/extract_schema.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/scripts/extract_schema.py rename to shared/skills/comfyui/scripts/extract_schema.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/scripts/fetch_logs.py b/shared/skills/comfyui/scripts/fetch_logs.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/scripts/fetch_logs.py rename to shared/skills/comfyui/scripts/fetch_logs.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/scripts/hardware_check.py b/shared/skills/comfyui/scripts/hardware_check.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/scripts/hardware_check.py rename to shared/skills/comfyui/scripts/hardware_check.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/scripts/health_check.py b/shared/skills/comfyui/scripts/health_check.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/scripts/health_check.py rename to shared/skills/comfyui/scripts/health_check.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/scripts/run_batch.py b/shared/skills/comfyui/scripts/run_batch.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/scripts/run_batch.py rename to shared/skills/comfyui/scripts/run_batch.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/scripts/run_workflow.py b/shared/skills/comfyui/scripts/run_workflow.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/scripts/run_workflow.py rename to shared/skills/comfyui/scripts/run_workflow.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/scripts/ws_monitor.py b/shared/skills/comfyui/scripts/ws_monitor.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/scripts/ws_monitor.py rename to shared/skills/comfyui/scripts/ws_monitor.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/tests/README.md b/shared/skills/comfyui/tests/README.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/tests/README.md rename to shared/skills/comfyui/tests/README.md diff --git a/agents/gerhard-hermes/skills/creative/comfyui/tests/conftest.py b/shared/skills/comfyui/tests/conftest.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/tests/conftest.py rename to shared/skills/comfyui/tests/conftest.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/tests/pytest.ini b/shared/skills/comfyui/tests/pytest.ini similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/tests/pytest.ini rename to shared/skills/comfyui/tests/pytest.ini diff --git a/agents/gerhard-hermes/skills/creative/comfyui/tests/test_check_deps.py b/shared/skills/comfyui/tests/test_check_deps.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/tests/test_check_deps.py rename to shared/skills/comfyui/tests/test_check_deps.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/tests/test_cloud_integration.py b/shared/skills/comfyui/tests/test_cloud_integration.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/tests/test_cloud_integration.py rename to shared/skills/comfyui/tests/test_cloud_integration.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/tests/test_common.py b/shared/skills/comfyui/tests/test_common.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/tests/test_common.py rename to shared/skills/comfyui/tests/test_common.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/tests/test_extract_schema.py b/shared/skills/comfyui/tests/test_extract_schema.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/tests/test_extract_schema.py rename to shared/skills/comfyui/tests/test_extract_schema.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/tests/test_run_workflow.py b/shared/skills/comfyui/tests/test_run_workflow.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/tests/test_run_workflow.py rename to shared/skills/comfyui/tests/test_run_workflow.py diff --git a/agents/gerhard-hermes/skills/creative/comfyui/workflows/README.md b/shared/skills/comfyui/workflows/README.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/workflows/README.md rename to shared/skills/comfyui/workflows/README.md diff --git a/agents/gerhard-hermes/skills/creative/comfyui/workflows/animatediff_video.json b/shared/skills/comfyui/workflows/animatediff_video.json similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/workflows/animatediff_video.json rename to shared/skills/comfyui/workflows/animatediff_video.json diff --git a/agents/gerhard-hermes/skills/creative/comfyui/workflows/flux_dev_txt2img.json b/shared/skills/comfyui/workflows/flux_dev_txt2img.json similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/workflows/flux_dev_txt2img.json rename to shared/skills/comfyui/workflows/flux_dev_txt2img.json diff --git a/agents/gerhard-hermes/skills/creative/comfyui/workflows/sd15_txt2img.json b/shared/skills/comfyui/workflows/sd15_txt2img.json similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/workflows/sd15_txt2img.json rename to shared/skills/comfyui/workflows/sd15_txt2img.json diff --git a/agents/gerhard-hermes/skills/creative/comfyui/workflows/sdxl_img2img.json b/shared/skills/comfyui/workflows/sdxl_img2img.json similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/workflows/sdxl_img2img.json rename to shared/skills/comfyui/workflows/sdxl_img2img.json diff --git a/agents/gerhard-hermes/skills/creative/comfyui/workflows/sdxl_inpaint.json b/shared/skills/comfyui/workflows/sdxl_inpaint.json similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/workflows/sdxl_inpaint.json rename to shared/skills/comfyui/workflows/sdxl_inpaint.json diff --git a/agents/gerhard-hermes/skills/creative/comfyui/workflows/sdxl_txt2img.json b/shared/skills/comfyui/workflows/sdxl_txt2img.json similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/workflows/sdxl_txt2img.json rename to shared/skills/comfyui/workflows/sdxl_txt2img.json diff --git a/agents/gerhard-hermes/skills/creative/comfyui/workflows/upscale_4x.json b/shared/skills/comfyui/workflows/upscale_4x.json similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/workflows/upscale_4x.json rename to shared/skills/comfyui/workflows/upscale_4x.json diff --git a/agents/gerhard-hermes/skills/creative/comfyui/workflows/wan_video_t2v.json b/shared/skills/comfyui/workflows/wan_video_t2v.json similarity index 100% rename from agents/gerhard-hermes/skills/creative/comfyui/workflows/wan_video_t2v.json rename to shared/skills/comfyui/workflows/wan_video_t2v.json diff --git a/agents/gerhard-hermes/skills/creative/creative-ideation/SKILL.md b/shared/skills/creative-ideation/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/creative-ideation/SKILL.md rename to shared/skills/creative-ideation/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/creative-ideation/references/full-prompt-library.md b/shared/skills/creative-ideation/references/full-prompt-library.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/creative-ideation/references/full-prompt-library.md rename to shared/skills/creative-ideation/references/full-prompt-library.md diff --git a/agents/gerhard-hermes/skills/software-development/debugging-hermes-tui-commands/SKILL.md b/shared/skills/debugging-hermes-tui-commands/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/software-development/debugging-hermes-tui-commands/SKILL.md rename to shared/skills/debugging-hermes-tui-commands/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/design-md/SKILL.md b/shared/skills/design-md/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/design-md/SKILL.md rename to shared/skills/design-md/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/design-md/templates/starter.md b/shared/skills/design-md/templates/starter.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/design-md/templates/starter.md rename to shared/skills/design-md/templates/starter.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/DESCRIPTION.md b/shared/skills/evaluation/DESCRIPTION.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/DESCRIPTION.md rename to shared/skills/evaluation/DESCRIPTION.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness.bak/SKILL.md b/shared/skills/evaluation/lm-evaluation-harness.bak/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness.bak/SKILL.md rename to shared/skills/evaluation/lm-evaluation-harness.bak/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness.bak/references/api-evaluation.md b/shared/skills/evaluation/lm-evaluation-harness.bak/references/api-evaluation.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness.bak/references/api-evaluation.md rename to shared/skills/evaluation/lm-evaluation-harness.bak/references/api-evaluation.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness.bak/references/benchmark-guide.md b/shared/skills/evaluation/lm-evaluation-harness.bak/references/benchmark-guide.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness.bak/references/benchmark-guide.md rename to shared/skills/evaluation/lm-evaluation-harness.bak/references/benchmark-guide.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness.bak/references/custom-tasks.md b/shared/skills/evaluation/lm-evaluation-harness.bak/references/custom-tasks.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness.bak/references/custom-tasks.md rename to shared/skills/evaluation/lm-evaluation-harness.bak/references/custom-tasks.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness.bak/references/distributed-eval.md b/shared/skills/evaluation/lm-evaluation-harness.bak/references/distributed-eval.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness.bak/references/distributed-eval.md rename to shared/skills/evaluation/lm-evaluation-harness.bak/references/distributed-eval.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness/references/api-evaluation.md b/shared/skills/evaluation/lm-evaluation-harness/references/api-evaluation.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness/references/api-evaluation.md rename to shared/skills/evaluation/lm-evaluation-harness/references/api-evaluation.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness/references/benchmark-guide.md b/shared/skills/evaluation/lm-evaluation-harness/references/benchmark-guide.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness/references/benchmark-guide.md rename to shared/skills/evaluation/lm-evaluation-harness/references/benchmark-guide.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness/references/custom-tasks.md b/shared/skills/evaluation/lm-evaluation-harness/references/custom-tasks.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness/references/custom-tasks.md rename to shared/skills/evaluation/lm-evaluation-harness/references/custom-tasks.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness/references/distributed-eval.md b/shared/skills/evaluation/lm-evaluation-harness/references/distributed-eval.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/lm-evaluation-harness/references/distributed-eval.md rename to shared/skills/evaluation/lm-evaluation-harness/references/distributed-eval.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases.bak/SKILL.md b/shared/skills/evaluation/weights-and-biases.bak/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases.bak/SKILL.md rename to shared/skills/evaluation/weights-and-biases.bak/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases.bak/references/artifacts.md b/shared/skills/evaluation/weights-and-biases.bak/references/artifacts.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases.bak/references/artifacts.md rename to shared/skills/evaluation/weights-and-biases.bak/references/artifacts.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases.bak/references/integrations.md b/shared/skills/evaluation/weights-and-biases.bak/references/integrations.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases.bak/references/integrations.md rename to shared/skills/evaluation/weights-and-biases.bak/references/integrations.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases.bak/references/sweeps.md b/shared/skills/evaluation/weights-and-biases.bak/references/sweeps.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases.bak/references/sweeps.md rename to shared/skills/evaluation/weights-and-biases.bak/references/sweeps.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases/SKILL.md b/shared/skills/evaluation/weights-and-biases/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases/SKILL.md rename to shared/skills/evaluation/weights-and-biases/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases/references/artifacts.md b/shared/skills/evaluation/weights-and-biases/references/artifacts.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases/references/artifacts.md rename to shared/skills/evaluation/weights-and-biases/references/artifacts.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases/references/integrations.md b/shared/skills/evaluation/weights-and-biases/references/integrations.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases/references/integrations.md rename to shared/skills/evaluation/weights-and-biases/references/integrations.md diff --git a/agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases/references/sweeps.md b/shared/skills/evaluation/weights-and-biases/references/sweeps.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/evaluation/weights-and-biases/references/sweeps.md rename to shared/skills/evaluation/weights-and-biases/references/sweeps.md diff --git a/agents/gerhard-hermes/skills/creative/excalidraw/SKILL.md b/shared/skills/excalidraw/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/excalidraw/SKILL.md rename to shared/skills/excalidraw/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/excalidraw/references/colors.md b/shared/skills/excalidraw/references/colors.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/excalidraw/references/colors.md rename to shared/skills/excalidraw/references/colors.md diff --git a/agents/gerhard-hermes/skills/creative/excalidraw/references/dark-mode.md b/shared/skills/excalidraw/references/dark-mode.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/excalidraw/references/dark-mode.md rename to shared/skills/excalidraw/references/dark-mode.md diff --git a/agents/gerhard-hermes/skills/creative/excalidraw/references/examples.md b/shared/skills/excalidraw/references/examples.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/excalidraw/references/examples.md rename to shared/skills/excalidraw/references/examples.md diff --git a/agents/gerhard-hermes/skills/creative/excalidraw/scripts/upload.py b/shared/skills/excalidraw/scripts/upload.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/excalidraw/scripts/upload.py rename to shared/skills/excalidraw/scripts/upload.py diff --git a/agents/gerhard-hermes/skills/apple/findmy/SKILL.md b/shared/skills/findmy/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/apple/findmy/SKILL.md rename to shared/skills/findmy/SKILL.md diff --git a/agents/gerhard-hermes/skills/media/gif-search/SKILL.md b/shared/skills/gif-search/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/media/gif-search/SKILL.md rename to shared/skills/gif-search/SKILL.md diff --git a/agents/gerhard-hermes/skills/github/github-auth/SKILL.md b/shared/skills/github-auth/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-auth/SKILL.md rename to shared/skills/github-auth/SKILL.md diff --git a/agents/gerhard-hermes/skills/github/github-auth/scripts/gh-env.sh b/shared/skills/github-auth/scripts/gh-env.sh similarity index 100% rename from agents/gerhard-hermes/skills/github/github-auth/scripts/gh-env.sh rename to shared/skills/github-auth/scripts/gh-env.sh diff --git a/agents/gerhard-hermes/skills/github/github-code-review/SKILL.md b/shared/skills/github-code-review/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-code-review/SKILL.md rename to shared/skills/github-code-review/SKILL.md diff --git a/agents/gerhard-hermes/skills/github/github-code-review/references/review-output-template.md b/shared/skills/github-code-review/references/review-output-template.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-code-review/references/review-output-template.md rename to shared/skills/github-code-review/references/review-output-template.md diff --git a/agents/gerhard-hermes/skills/github/github-issues/SKILL.md b/shared/skills/github-issues/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-issues/SKILL.md rename to shared/skills/github-issues/SKILL.md diff --git a/agents/gerhard-hermes/skills/github/github-issues/templates/bug-report.md b/shared/skills/github-issues/templates/bug-report.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-issues/templates/bug-report.md rename to shared/skills/github-issues/templates/bug-report.md diff --git a/agents/gerhard-hermes/skills/github/github-issues/templates/feature-request.md b/shared/skills/github-issues/templates/feature-request.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-issues/templates/feature-request.md rename to shared/skills/github-issues/templates/feature-request.md diff --git a/agents/gerhard-hermes/skills/github/github-pr-workflow/SKILL.md b/shared/skills/github-pr-workflow/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-pr-workflow/SKILL.md rename to shared/skills/github-pr-workflow/SKILL.md diff --git a/agents/gerhard-hermes/skills/github/github-pr-workflow/references/ci-troubleshooting.md b/shared/skills/github-pr-workflow/references/ci-troubleshooting.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-pr-workflow/references/ci-troubleshooting.md rename to shared/skills/github-pr-workflow/references/ci-troubleshooting.md diff --git a/agents/gerhard-hermes/skills/github/github-pr-workflow/references/conventional-commits.md b/shared/skills/github-pr-workflow/references/conventional-commits.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-pr-workflow/references/conventional-commits.md rename to shared/skills/github-pr-workflow/references/conventional-commits.md diff --git a/agents/gerhard-hermes/skills/github/github-pr-workflow/templates/pr-body-bugfix.md b/shared/skills/github-pr-workflow/templates/pr-body-bugfix.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-pr-workflow/templates/pr-body-bugfix.md rename to shared/skills/github-pr-workflow/templates/pr-body-bugfix.md diff --git a/agents/gerhard-hermes/skills/github/github-pr-workflow/templates/pr-body-feature.md b/shared/skills/github-pr-workflow/templates/pr-body-feature.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-pr-workflow/templates/pr-body-feature.md rename to shared/skills/github-pr-workflow/templates/pr-body-feature.md diff --git a/agents/gerhard-hermes/skills/github/github-repo-management/SKILL.md b/shared/skills/github-repo-management/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-repo-management/SKILL.md rename to shared/skills/github-repo-management/SKILL.md diff --git a/agents/gerhard-hermes/skills/github/github-repo-management/references/github-api-cheatsheet.md b/shared/skills/github-repo-management/references/github-api-cheatsheet.md similarity index 100% rename from agents/gerhard-hermes/skills/github/github-repo-management/references/github-api-cheatsheet.md rename to shared/skills/github-repo-management/references/github-api-cheatsheet.md diff --git a/agents/gerhard-hermes/skills/red-teaming/godmode/SKILL.md b/shared/skills/godmode/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/red-teaming/godmode/SKILL.md rename to shared/skills/godmode/SKILL.md diff --git a/agents/gerhard-hermes/skills/red-teaming/godmode/references/jailbreak-templates.md b/shared/skills/godmode/references/jailbreak-templates.md similarity index 100% rename from agents/gerhard-hermes/skills/red-teaming/godmode/references/jailbreak-templates.md rename to shared/skills/godmode/references/jailbreak-templates.md diff --git a/agents/gerhard-hermes/skills/red-teaming/godmode/references/refusal-detection.md b/shared/skills/godmode/references/refusal-detection.md similarity index 100% rename from agents/gerhard-hermes/skills/red-teaming/godmode/references/refusal-detection.md rename to shared/skills/godmode/references/refusal-detection.md diff --git a/agents/gerhard-hermes/skills/red-teaming/godmode/scripts/auto_jailbreak.py b/shared/skills/godmode/scripts/auto_jailbreak.py similarity index 100% rename from agents/gerhard-hermes/skills/red-teaming/godmode/scripts/auto_jailbreak.py rename to shared/skills/godmode/scripts/auto_jailbreak.py diff --git a/agents/gerhard-hermes/skills/red-teaming/godmode/scripts/godmode_race.py b/shared/skills/godmode/scripts/godmode_race.py similarity index 100% rename from agents/gerhard-hermes/skills/red-teaming/godmode/scripts/godmode_race.py rename to shared/skills/godmode/scripts/godmode_race.py diff --git a/agents/gerhard-hermes/skills/red-teaming/godmode/scripts/load_godmode.py b/shared/skills/godmode/scripts/load_godmode.py similarity index 100% rename from agents/gerhard-hermes/skills/red-teaming/godmode/scripts/load_godmode.py rename to shared/skills/godmode/scripts/load_godmode.py diff --git a/agents/gerhard-hermes/skills/red-teaming/godmode/scripts/parseltongue.py b/shared/skills/godmode/scripts/parseltongue.py similarity index 100% rename from agents/gerhard-hermes/skills/red-teaming/godmode/scripts/parseltongue.py rename to shared/skills/godmode/scripts/parseltongue.py diff --git a/agents/gerhard-hermes/skills/red-teaming/godmode/templates/prefill-subtle.json b/shared/skills/godmode/templates/prefill-subtle.json similarity index 100% rename from agents/gerhard-hermes/skills/red-teaming/godmode/templates/prefill-subtle.json rename to shared/skills/godmode/templates/prefill-subtle.json diff --git a/agents/gerhard-hermes/skills/red-teaming/godmode/templates/prefill.json b/shared/skills/godmode/templates/prefill.json similarity index 100% rename from agents/gerhard-hermes/skills/red-teaming/godmode/templates/prefill.json rename to shared/skills/godmode/templates/prefill.json diff --git a/agents/gerhard-hermes/skills/productivity/google-workspace/SKILL.md b/shared/skills/google-workspace/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/google-workspace/SKILL.md rename to shared/skills/google-workspace/SKILL.md diff --git a/agents/gerhard-hermes/skills/productivity/google-workspace/references/gmail-search-syntax.md b/shared/skills/google-workspace/references/gmail-search-syntax.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/google-workspace/references/gmail-search-syntax.md rename to shared/skills/google-workspace/references/gmail-search-syntax.md diff --git a/agents/gerhard-hermes/skills/productivity/google-workspace/scripts/_hermes_home.py b/shared/skills/google-workspace/scripts/_hermes_home.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/google-workspace/scripts/_hermes_home.py rename to shared/skills/google-workspace/scripts/_hermes_home.py diff --git a/agents/gerhard-hermes/skills/productivity/google-workspace/scripts/google_api.py b/shared/skills/google-workspace/scripts/google_api.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/google-workspace/scripts/google_api.py rename to shared/skills/google-workspace/scripts/google_api.py diff --git a/agents/gerhard-hermes/skills/productivity/google-workspace/scripts/gws_bridge.py b/shared/skills/google-workspace/scripts/gws_bridge.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/google-workspace/scripts/gws_bridge.py rename to shared/skills/google-workspace/scripts/gws_bridge.py diff --git a/agents/gerhard-hermes/skills/productivity/google-workspace/scripts/setup.py b/shared/skills/google-workspace/scripts/setup.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/google-workspace/scripts/setup.py rename to shared/skills/google-workspace/scripts/setup.py diff --git a/agents/gunnar/skills/gutask.md b/shared/skills/gutask.md similarity index 100% rename from agents/gunnar/skills/gutask.md rename to shared/skills/gutask.md diff --git a/agents/gerhard-hermes/skills/media/heartmula/SKILL.md b/shared/skills/heartmula/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/media/heartmula/SKILL.md rename to shared/skills/heartmula/SKILL.md diff --git a/agents/gerhard-hermes/skills/software-development/hermes-agent-skill-authoring/SKILL.md b/shared/skills/hermes-agent-skill-authoring/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/software-development/hermes-agent-skill-authoring/SKILL.md rename to shared/skills/hermes-agent-skill-authoring/SKILL.md diff --git a/agents/gerhard-hermes/skills/autonomous-ai-agents/hermes-agent/SKILL.md b/shared/skills/hermes-agent/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/autonomous-ai-agents/hermes-agent/SKILL.md rename to shared/skills/hermes-agent/SKILL.md diff --git a/agents/gerhard-hermes/skills/email/himalaya/SKILL.md b/shared/skills/himalaya/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/email/himalaya/SKILL.md rename to shared/skills/himalaya/SKILL.md diff --git a/agents/gerhard-hermes/skills/email/himalaya/references/configuration.md b/shared/skills/himalaya/references/configuration.md similarity index 100% rename from agents/gerhard-hermes/skills/email/himalaya/references/configuration.md rename to shared/skills/himalaya/references/configuration.md diff --git a/agents/gerhard-hermes/skills/email/himalaya/references/message-composition.md b/shared/skills/himalaya/references/message-composition.md similarity index 100% rename from agents/gerhard-hermes/skills/email/himalaya/references/message-composition.md rename to shared/skills/himalaya/references/message-composition.md diff --git a/agents/gerhard-hermes/skills/mlops/huggingface-hub/SKILL.md b/shared/skills/huggingface-hub/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/huggingface-hub/SKILL.md rename to shared/skills/huggingface-hub/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/humanizer/LICENSE b/shared/skills/humanizer/LICENSE similarity index 100% rename from agents/gerhard-hermes/skills/creative/humanizer/LICENSE rename to shared/skills/humanizer/LICENSE diff --git a/agents/gerhard-hermes/skills/creative/humanizer/SKILL.md b/shared/skills/humanizer/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/humanizer/SKILL.md rename to shared/skills/humanizer/SKILL.md diff --git a/agents/gerhard-hermes/skills/apple/imessage/SKILL.md b/shared/skills/imessage/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/apple/imessage/SKILL.md rename to shared/skills/imessage/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/DESCRIPTION.md b/shared/skills/inference/DESCRIPTION.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/DESCRIPTION.md rename to shared/skills/inference/DESCRIPTION.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/llama-cpp/SKILL.md b/shared/skills/inference/llama-cpp/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/llama-cpp/SKILL.md rename to shared/skills/inference/llama-cpp/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/advanced-usage.md b/shared/skills/inference/llama-cpp/references/advanced-usage.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/advanced-usage.md rename to shared/skills/inference/llama-cpp/references/advanced-usage.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/hub-discovery.md b/shared/skills/inference/llama-cpp/references/hub-discovery.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/hub-discovery.md rename to shared/skills/inference/llama-cpp/references/hub-discovery.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/optimization.md b/shared/skills/inference/llama-cpp/references/optimization.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/optimization.md rename to shared/skills/inference/llama-cpp/references/optimization.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/quantization.md b/shared/skills/inference/llama-cpp/references/quantization.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/quantization.md rename to shared/skills/inference/llama-cpp/references/quantization.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/server.md b/shared/skills/inference/llama-cpp/references/server.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/server.md rename to shared/skills/inference/llama-cpp/references/server.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/troubleshooting.md b/shared/skills/inference/llama-cpp/references/troubleshooting.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/llama-cpp/references/troubleshooting.md rename to shared/skills/inference/llama-cpp/references/troubleshooting.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/obliteratus/SKILL.md b/shared/skills/inference/obliteratus/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/obliteratus/SKILL.md rename to shared/skills/inference/obliteratus/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/obliteratus/references/analysis-modules.md b/shared/skills/inference/obliteratus/references/analysis-modules.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/obliteratus/references/analysis-modules.md rename to shared/skills/inference/obliteratus/references/analysis-modules.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/obliteratus/references/methods-guide.md b/shared/skills/inference/obliteratus/references/methods-guide.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/obliteratus/references/methods-guide.md rename to shared/skills/inference/obliteratus/references/methods-guide.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/obliteratus/templates/abliteration-config.yaml b/shared/skills/inference/obliteratus/templates/abliteration-config.yaml similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/obliteratus/templates/abliteration-config.yaml rename to shared/skills/inference/obliteratus/templates/abliteration-config.yaml diff --git a/agents/gerhard-hermes/skills/mlops/inference/obliteratus/templates/analysis-study.yaml b/shared/skills/inference/obliteratus/templates/analysis-study.yaml similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/obliteratus/templates/analysis-study.yaml rename to shared/skills/inference/obliteratus/templates/analysis-study.yaml diff --git a/agents/gerhard-hermes/skills/mlops/inference/obliteratus/templates/batch-abliteration.yaml b/shared/skills/inference/obliteratus/templates/batch-abliteration.yaml similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/obliteratus/templates/batch-abliteration.yaml rename to shared/skills/inference/obliteratus/templates/batch-abliteration.yaml diff --git a/agents/gerhard-hermes/skills/mlops/inference/outlines.bak/SKILL.md b/shared/skills/inference/outlines.bak/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/outlines.bak/SKILL.md rename to shared/skills/inference/outlines.bak/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/outlines.bak/references/backends.md b/shared/skills/inference/outlines.bak/references/backends.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/outlines.bak/references/backends.md rename to shared/skills/inference/outlines.bak/references/backends.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/outlines.bak/references/examples.md b/shared/skills/inference/outlines.bak/references/examples.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/outlines.bak/references/examples.md rename to shared/skills/inference/outlines.bak/references/examples.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/outlines.bak/references/json_generation.md b/shared/skills/inference/outlines.bak/references/json_generation.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/outlines.bak/references/json_generation.md rename to shared/skills/inference/outlines.bak/references/json_generation.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/outlines/SKILL.md b/shared/skills/inference/outlines/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/outlines/SKILL.md rename to shared/skills/inference/outlines/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/outlines/references/backends.md b/shared/skills/inference/outlines/references/backends.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/outlines/references/backends.md rename to shared/skills/inference/outlines/references/backends.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/outlines/references/examples.md b/shared/skills/inference/outlines/references/examples.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/outlines/references/examples.md rename to shared/skills/inference/outlines/references/examples.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/outlines/references/json_generation.md b/shared/skills/inference/outlines/references/json_generation.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/outlines/references/json_generation.md rename to shared/skills/inference/outlines/references/json_generation.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/vllm/SKILL.md b/shared/skills/inference/vllm/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/vllm/SKILL.md rename to shared/skills/inference/vllm/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/vllm/references/optimization.md b/shared/skills/inference/vllm/references/optimization.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/vllm/references/optimization.md rename to shared/skills/inference/vllm/references/optimization.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/vllm/references/quantization.md b/shared/skills/inference/vllm/references/quantization.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/vllm/references/quantization.md rename to shared/skills/inference/vllm/references/quantization.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/vllm/references/server-deployment.md b/shared/skills/inference/vllm/references/server-deployment.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/vllm/references/server-deployment.md rename to shared/skills/inference/vllm/references/server-deployment.md diff --git a/agents/gerhard-hermes/skills/mlops/inference/vllm/references/troubleshooting.md b/shared/skills/inference/vllm/references/troubleshooting.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/inference/vllm/references/troubleshooting.md rename to shared/skills/inference/vllm/references/troubleshooting.md diff --git a/agents/gerhard-hermes/skills/data-science/jupyter-live-kernel/SKILL.md b/shared/skills/jupyter-live-kernel/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/data-science/jupyter-live-kernel/SKILL.md rename to shared/skills/jupyter-live-kernel/SKILL.md diff --git a/agents/gerhard-hermes/skills/devops/kanban-orchestrator/SKILL.md b/shared/skills/kanban-orchestrator/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/devops/kanban-orchestrator/SKILL.md rename to shared/skills/kanban-orchestrator/SKILL.md diff --git a/agents/gerhard-hermes/skills/devops/kanban-worker/SKILL.md b/shared/skills/kanban-worker/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/devops/kanban-worker/SKILL.md rename to shared/skills/kanban-worker/SKILL.md diff --git a/agents/gerhard-hermes/skills/productivity/linear/SKILL.md b/shared/skills/linear/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/linear/SKILL.md rename to shared/skills/linear/SKILL.md diff --git a/agents/gerhard-hermes/skills/research/llm-wiki/SKILL.md b/shared/skills/llm-wiki/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/research/llm-wiki/SKILL.md rename to shared/skills/llm-wiki/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/README.md b/shared/skills/manim-video/README.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/README.md rename to shared/skills/manim-video/README.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/SKILL.md b/shared/skills/manim-video/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/SKILL.md rename to shared/skills/manim-video/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/animation-design-thinking.md b/shared/skills/manim-video/references/animation-design-thinking.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/animation-design-thinking.md rename to shared/skills/manim-video/references/animation-design-thinking.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/animations.md b/shared/skills/manim-video/references/animations.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/animations.md rename to shared/skills/manim-video/references/animations.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/camera-and-3d.md b/shared/skills/manim-video/references/camera-and-3d.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/camera-and-3d.md rename to shared/skills/manim-video/references/camera-and-3d.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/decorations.md b/shared/skills/manim-video/references/decorations.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/decorations.md rename to shared/skills/manim-video/references/decorations.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/equations.md b/shared/skills/manim-video/references/equations.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/equations.md rename to shared/skills/manim-video/references/equations.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/graphs-and-data.md b/shared/skills/manim-video/references/graphs-and-data.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/graphs-and-data.md rename to shared/skills/manim-video/references/graphs-and-data.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/mobjects.md b/shared/skills/manim-video/references/mobjects.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/mobjects.md rename to shared/skills/manim-video/references/mobjects.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/paper-explainer.md b/shared/skills/manim-video/references/paper-explainer.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/paper-explainer.md rename to shared/skills/manim-video/references/paper-explainer.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/production-quality.md b/shared/skills/manim-video/references/production-quality.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/production-quality.md rename to shared/skills/manim-video/references/production-quality.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/rendering.md b/shared/skills/manim-video/references/rendering.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/rendering.md rename to shared/skills/manim-video/references/rendering.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/scene-planning.md b/shared/skills/manim-video/references/scene-planning.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/scene-planning.md rename to shared/skills/manim-video/references/scene-planning.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/troubleshooting.md b/shared/skills/manim-video/references/troubleshooting.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/troubleshooting.md rename to shared/skills/manim-video/references/troubleshooting.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/updaters-and-trackers.md b/shared/skills/manim-video/references/updaters-and-trackers.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/updaters-and-trackers.md rename to shared/skills/manim-video/references/updaters-and-trackers.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/references/visual-design.md b/shared/skills/manim-video/references/visual-design.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/references/visual-design.md rename to shared/skills/manim-video/references/visual-design.md diff --git a/agents/gerhard-hermes/skills/creative/manim-video/scripts/setup.sh b/shared/skills/manim-video/scripts/setup.sh similarity index 100% rename from agents/gerhard-hermes/skills/creative/manim-video/scripts/setup.sh rename to shared/skills/manim-video/scripts/setup.sh diff --git a/agents/gerhard-hermes/skills/productivity/maps/SKILL.md b/shared/skills/maps/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/maps/SKILL.md rename to shared/skills/maps/SKILL.md diff --git a/agents/gerhard-hermes/skills/productivity/maps/scripts/maps_client.py b/shared/skills/maps/scripts/maps_client.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/maps/scripts/maps_client.py rename to shared/skills/maps/scripts/maps_client.py diff --git a/agents/gerhard-hermes/skills/gaming/minecraft-modpack-server/SKILL.md b/shared/skills/minecraft-modpack-server/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/gaming/minecraft-modpack-server/SKILL.md rename to shared/skills/minecraft-modpack-server/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/models/DESCRIPTION.md b/shared/skills/models/DESCRIPTION.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/models/DESCRIPTION.md rename to shared/skills/models/DESCRIPTION.md diff --git a/agents/gerhard-hermes/skills/mlops/models/audiocraft.bak/SKILL.md b/shared/skills/models/audiocraft.bak/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/models/audiocraft.bak/SKILL.md rename to shared/skills/models/audiocraft.bak/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/models/audiocraft.bak/audiocraft/SKILL.md b/shared/skills/models/audiocraft.bak/audiocraft/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/models/audiocraft.bak/audiocraft/SKILL.md rename to shared/skills/models/audiocraft.bak/audiocraft/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/models/audiocraft.bak/references/advanced-usage.md b/shared/skills/models/audiocraft.bak/references/advanced-usage.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/models/audiocraft.bak/references/advanced-usage.md rename to shared/skills/models/audiocraft.bak/references/advanced-usage.md diff --git a/agents/gerhard-hermes/skills/mlops/models/audiocraft.bak/references/troubleshooting.md b/shared/skills/models/audiocraft.bak/references/troubleshooting.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/models/audiocraft.bak/references/troubleshooting.md rename to shared/skills/models/audiocraft.bak/references/troubleshooting.md diff --git a/agents/gerhard-hermes/skills/mlops/models/audiocraft/SKILL.md b/shared/skills/models/audiocraft/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/models/audiocraft/SKILL.md rename to shared/skills/models/audiocraft/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/models/audiocraft/references/advanced-usage.md b/shared/skills/models/audiocraft/references/advanced-usage.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/models/audiocraft/references/advanced-usage.md rename to shared/skills/models/audiocraft/references/advanced-usage.md diff --git a/agents/gerhard-hermes/skills/mlops/models/audiocraft/references/troubleshooting.md b/shared/skills/models/audiocraft/references/troubleshooting.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/models/audiocraft/references/troubleshooting.md rename to shared/skills/models/audiocraft/references/troubleshooting.md diff --git a/agents/gerhard-hermes/skills/mlops/models/segment-anything/SKILL.md b/shared/skills/models/segment-anything/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/models/segment-anything/SKILL.md rename to shared/skills/models/segment-anything/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/models/segment-anything/references/advanced-usage.md b/shared/skills/models/segment-anything/references/advanced-usage.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/models/segment-anything/references/advanced-usage.md rename to shared/skills/models/segment-anything/references/advanced-usage.md diff --git a/agents/gerhard-hermes/skills/mlops/models/segment-anything/references/troubleshooting.md b/shared/skills/models/segment-anything/references/troubleshooting.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/models/segment-anything/references/troubleshooting.md rename to shared/skills/models/segment-anything/references/troubleshooting.md diff --git a/agents/gerhard-hermes/skills/productivity/nano-pdf/SKILL.md b/shared/skills/nano-pdf/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/nano-pdf/SKILL.md rename to shared/skills/nano-pdf/SKILL.md diff --git a/agents/gerhard-hermes/skills/mcp/native-mcp/SKILL.md b/shared/skills/native-mcp/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mcp/native-mcp/SKILL.md rename to shared/skills/native-mcp/SKILL.md diff --git a/agents/gerhard-hermes/skills/software-development/node-inspect-debugger/SKILL.md b/shared/skills/node-inspect-debugger/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/software-development/node-inspect-debugger/SKILL.md rename to shared/skills/node-inspect-debugger/SKILL.md diff --git a/agents/gerhard-hermes/skills/productivity/notion/SKILL.md b/shared/skills/notion/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/notion/SKILL.md rename to shared/skills/notion/SKILL.md diff --git a/agents/gerhard-hermes/skills/productivity/notion/references/block-types.md b/shared/skills/notion/references/block-types.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/notion/references/block-types.md rename to shared/skills/notion/references/block-types.md diff --git a/agents/gerhard-hermes/skills/note-taking/obsidian/SKILL.md b/shared/skills/obsidian/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/note-taking/obsidian/SKILL.md rename to shared/skills/obsidian/SKILL.md diff --git a/agents/gerhard-hermes/skills/productivity/ocr-and-documents/DESCRIPTION.md b/shared/skills/ocr-and-documents/DESCRIPTION.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/ocr-and-documents/DESCRIPTION.md rename to shared/skills/ocr-and-documents/DESCRIPTION.md diff --git a/agents/gerhard-hermes/skills/productivity/ocr-and-documents/SKILL.md b/shared/skills/ocr-and-documents/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/ocr-and-documents/SKILL.md rename to shared/skills/ocr-and-documents/SKILL.md diff --git a/agents/gerhard-hermes/skills/productivity/ocr-and-documents/scripts/extract_marker.py b/shared/skills/ocr-and-documents/scripts/extract_marker.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/ocr-and-documents/scripts/extract_marker.py rename to shared/skills/ocr-and-documents/scripts/extract_marker.py diff --git a/agents/gerhard-hermes/skills/productivity/ocr-and-documents/scripts/extract_pymupdf.py b/shared/skills/ocr-and-documents/scripts/extract_pymupdf.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/ocr-and-documents/scripts/extract_pymupdf.py rename to shared/skills/ocr-and-documents/scripts/extract_pymupdf.py diff --git a/agents/gerhard-hermes/skills/autonomous-ai-agents/opencode/SKILL.md b/shared/skills/opencode/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/autonomous-ai-agents/opencode/SKILL.md rename to shared/skills/opencode/SKILL.md diff --git a/agents/gerhard-hermes/skills/smart-home/openhue/SKILL.md b/shared/skills/openhue/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/smart-home/openhue/SKILL.md rename to shared/skills/openhue/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/README.md b/shared/skills/p5js/README.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/README.md rename to shared/skills/p5js/README.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/SKILL.md b/shared/skills/p5js/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/SKILL.md rename to shared/skills/p5js/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/references/animation.md b/shared/skills/p5js/references/animation.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/references/animation.md rename to shared/skills/p5js/references/animation.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/references/color-systems.md b/shared/skills/p5js/references/color-systems.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/references/color-systems.md rename to shared/skills/p5js/references/color-systems.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/references/core-api.md b/shared/skills/p5js/references/core-api.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/references/core-api.md rename to shared/skills/p5js/references/core-api.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/references/export-pipeline.md b/shared/skills/p5js/references/export-pipeline.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/references/export-pipeline.md rename to shared/skills/p5js/references/export-pipeline.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/references/interaction.md b/shared/skills/p5js/references/interaction.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/references/interaction.md rename to shared/skills/p5js/references/interaction.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/references/shapes-and-geometry.md b/shared/skills/p5js/references/shapes-and-geometry.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/references/shapes-and-geometry.md rename to shared/skills/p5js/references/shapes-and-geometry.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/references/troubleshooting.md b/shared/skills/p5js/references/troubleshooting.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/references/troubleshooting.md rename to shared/skills/p5js/references/troubleshooting.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/references/typography.md b/shared/skills/p5js/references/typography.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/references/typography.md rename to shared/skills/p5js/references/typography.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/references/visual-effects.md b/shared/skills/p5js/references/visual-effects.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/references/visual-effects.md rename to shared/skills/p5js/references/visual-effects.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/references/webgl-and-3d.md b/shared/skills/p5js/references/webgl-and-3d.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/references/webgl-and-3d.md rename to shared/skills/p5js/references/webgl-and-3d.md diff --git a/agents/gerhard-hermes/skills/creative/p5js/scripts/export-frames.js b/shared/skills/p5js/scripts/export-frames.js similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/scripts/export-frames.js rename to shared/skills/p5js/scripts/export-frames.js diff --git a/agents/gerhard-hermes/skills/creative/p5js/scripts/render.sh b/shared/skills/p5js/scripts/render.sh similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/scripts/render.sh rename to shared/skills/p5js/scripts/render.sh diff --git a/agents/gerhard-hermes/skills/creative/p5js/scripts/serve.sh b/shared/skills/p5js/scripts/serve.sh similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/scripts/serve.sh rename to shared/skills/p5js/scripts/serve.sh diff --git a/agents/gerhard-hermes/skills/creative/p5js/scripts/setup.sh b/shared/skills/p5js/scripts/setup.sh similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/scripts/setup.sh rename to shared/skills/p5js/scripts/setup.sh diff --git a/agents/gerhard-hermes/skills/creative/p5js/templates/viewer.html b/shared/skills/p5js/templates/viewer.html similarity index 100% rename from agents/gerhard-hermes/skills/creative/p5js/templates/viewer.html rename to shared/skills/p5js/templates/viewer.html diff --git a/agents/gerhard-hermes/skills/creative/pixel-art/ATTRIBUTION.md b/shared/skills/pixel-art/ATTRIBUTION.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/pixel-art/ATTRIBUTION.md rename to shared/skills/pixel-art/ATTRIBUTION.md diff --git a/agents/gerhard-hermes/skills/creative/pixel-art/SKILL.md b/shared/skills/pixel-art/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/pixel-art/SKILL.md rename to shared/skills/pixel-art/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/pixel-art/references/palettes.md b/shared/skills/pixel-art/references/palettes.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/pixel-art/references/palettes.md rename to shared/skills/pixel-art/references/palettes.md diff --git a/agents/gerhard-hermes/skills/creative/pixel-art/scripts/__init__.py b/shared/skills/pixel-art/scripts/__init__.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/pixel-art/scripts/__init__.py rename to shared/skills/pixel-art/scripts/__init__.py diff --git a/agents/gerhard-hermes/skills/creative/pixel-art/scripts/palettes.py b/shared/skills/pixel-art/scripts/palettes.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/pixel-art/scripts/palettes.py rename to shared/skills/pixel-art/scripts/palettes.py diff --git a/agents/gerhard-hermes/skills/creative/pixel-art/scripts/pixel_art.py b/shared/skills/pixel-art/scripts/pixel_art.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/pixel-art/scripts/pixel_art.py rename to shared/skills/pixel-art/scripts/pixel_art.py diff --git a/agents/gerhard-hermes/skills/creative/pixel-art/scripts/pixel_art_video.py b/shared/skills/pixel-art/scripts/pixel_art_video.py similarity index 100% rename from agents/gerhard-hermes/skills/creative/pixel-art/scripts/pixel_art_video.py rename to shared/skills/pixel-art/scripts/pixel_art_video.py diff --git a/agents/gerhard-hermes/skills/software-development/plan/SKILL.md b/shared/skills/plan/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/software-development/plan/SKILL.md rename to shared/skills/plan/SKILL.md diff --git a/agents/gerhard-hermes/skills/gaming/pokemon-player/SKILL.md b/shared/skills/pokemon-player/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/gaming/pokemon-player/SKILL.md rename to shared/skills/pokemon-player/SKILL.md diff --git a/agents/gerhard-hermes/skills/research/polymarket.bak/SKILL.md b/shared/skills/polymarket.bak/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/research/polymarket.bak/SKILL.md rename to shared/skills/polymarket.bak/SKILL.md diff --git a/agents/gerhard-hermes/skills/research/polymarket.bak/references/api-endpoints.md b/shared/skills/polymarket.bak/references/api-endpoints.md similarity index 100% rename from agents/gerhard-hermes/skills/research/polymarket.bak/references/api-endpoints.md rename to shared/skills/polymarket.bak/references/api-endpoints.md diff --git a/agents/gerhard-hermes/skills/research/polymarket.bak/scripts/polymarket.py b/shared/skills/polymarket.bak/scripts/polymarket.py similarity index 100% rename from agents/gerhard-hermes/skills/research/polymarket.bak/scripts/polymarket.py rename to shared/skills/polymarket.bak/scripts/polymarket.py diff --git a/agents/gerhard-hermes/skills/research/polymarket/SKILL.md b/shared/skills/polymarket/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/research/polymarket/SKILL.md rename to shared/skills/polymarket/SKILL.md diff --git a/agents/gerhard-hermes/skills/research/polymarket/references/api-endpoints.md b/shared/skills/polymarket/references/api-endpoints.md similarity index 100% rename from agents/gerhard-hermes/skills/research/polymarket/references/api-endpoints.md rename to shared/skills/polymarket/references/api-endpoints.md diff --git a/agents/gerhard-hermes/skills/research/polymarket/scripts/polymarket.py b/shared/skills/polymarket/scripts/polymarket.py similarity index 100% rename from agents/gerhard-hermes/skills/research/polymarket/scripts/polymarket.py rename to shared/skills/polymarket/scripts/polymarket.py diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/SKILL.md b/shared/skills/popular-web-designs/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/SKILL.md rename to shared/skills/popular-web-designs/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/airbnb.md b/shared/skills/popular-web-designs/templates/airbnb.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/airbnb.md rename to shared/skills/popular-web-designs/templates/airbnb.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/airtable.md b/shared/skills/popular-web-designs/templates/airtable.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/airtable.md rename to shared/skills/popular-web-designs/templates/airtable.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/apple.md b/shared/skills/popular-web-designs/templates/apple.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/apple.md rename to shared/skills/popular-web-designs/templates/apple.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/bmw.md b/shared/skills/popular-web-designs/templates/bmw.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/bmw.md rename to shared/skills/popular-web-designs/templates/bmw.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/cal.md b/shared/skills/popular-web-designs/templates/cal.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/cal.md rename to shared/skills/popular-web-designs/templates/cal.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/claude.md b/shared/skills/popular-web-designs/templates/claude.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/claude.md rename to shared/skills/popular-web-designs/templates/claude.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/clay.md b/shared/skills/popular-web-designs/templates/clay.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/clay.md rename to shared/skills/popular-web-designs/templates/clay.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/clickhouse.md b/shared/skills/popular-web-designs/templates/clickhouse.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/clickhouse.md rename to shared/skills/popular-web-designs/templates/clickhouse.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/cohere.md b/shared/skills/popular-web-designs/templates/cohere.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/cohere.md rename to shared/skills/popular-web-designs/templates/cohere.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/coinbase.md b/shared/skills/popular-web-designs/templates/coinbase.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/coinbase.md rename to shared/skills/popular-web-designs/templates/coinbase.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/composio.md b/shared/skills/popular-web-designs/templates/composio.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/composio.md rename to shared/skills/popular-web-designs/templates/composio.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/cursor.md b/shared/skills/popular-web-designs/templates/cursor.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/cursor.md rename to shared/skills/popular-web-designs/templates/cursor.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/elevenlabs.md b/shared/skills/popular-web-designs/templates/elevenlabs.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/elevenlabs.md rename to shared/skills/popular-web-designs/templates/elevenlabs.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/expo.md b/shared/skills/popular-web-designs/templates/expo.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/expo.md rename to shared/skills/popular-web-designs/templates/expo.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/figma.md b/shared/skills/popular-web-designs/templates/figma.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/figma.md rename to shared/skills/popular-web-designs/templates/figma.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/framer.md b/shared/skills/popular-web-designs/templates/framer.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/framer.md rename to shared/skills/popular-web-designs/templates/framer.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/hashicorp.md b/shared/skills/popular-web-designs/templates/hashicorp.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/hashicorp.md rename to shared/skills/popular-web-designs/templates/hashicorp.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/ibm.md b/shared/skills/popular-web-designs/templates/ibm.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/ibm.md rename to shared/skills/popular-web-designs/templates/ibm.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/intercom.md b/shared/skills/popular-web-designs/templates/intercom.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/intercom.md rename to shared/skills/popular-web-designs/templates/intercom.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/kraken.md b/shared/skills/popular-web-designs/templates/kraken.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/kraken.md rename to shared/skills/popular-web-designs/templates/kraken.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/linear.app.md b/shared/skills/popular-web-designs/templates/linear.app.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/linear.app.md rename to shared/skills/popular-web-designs/templates/linear.app.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/lovable.md b/shared/skills/popular-web-designs/templates/lovable.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/lovable.md rename to shared/skills/popular-web-designs/templates/lovable.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/minimax.md b/shared/skills/popular-web-designs/templates/minimax.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/minimax.md rename to shared/skills/popular-web-designs/templates/minimax.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/mintlify.md b/shared/skills/popular-web-designs/templates/mintlify.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/mintlify.md rename to shared/skills/popular-web-designs/templates/mintlify.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/miro.md b/shared/skills/popular-web-designs/templates/miro.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/miro.md rename to shared/skills/popular-web-designs/templates/miro.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/mistral.ai.md b/shared/skills/popular-web-designs/templates/mistral.ai.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/mistral.ai.md rename to shared/skills/popular-web-designs/templates/mistral.ai.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/mongodb.md b/shared/skills/popular-web-designs/templates/mongodb.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/mongodb.md rename to shared/skills/popular-web-designs/templates/mongodb.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/notion.md b/shared/skills/popular-web-designs/templates/notion.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/notion.md rename to shared/skills/popular-web-designs/templates/notion.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/nvidia.md b/shared/skills/popular-web-designs/templates/nvidia.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/nvidia.md rename to shared/skills/popular-web-designs/templates/nvidia.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/ollama.md b/shared/skills/popular-web-designs/templates/ollama.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/ollama.md rename to shared/skills/popular-web-designs/templates/ollama.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/opencode.ai.md b/shared/skills/popular-web-designs/templates/opencode.ai.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/opencode.ai.md rename to shared/skills/popular-web-designs/templates/opencode.ai.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/pinterest.md b/shared/skills/popular-web-designs/templates/pinterest.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/pinterest.md rename to shared/skills/popular-web-designs/templates/pinterest.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/posthog.md b/shared/skills/popular-web-designs/templates/posthog.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/posthog.md rename to shared/skills/popular-web-designs/templates/posthog.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/raycast.md b/shared/skills/popular-web-designs/templates/raycast.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/raycast.md rename to shared/skills/popular-web-designs/templates/raycast.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/replicate.md b/shared/skills/popular-web-designs/templates/replicate.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/replicate.md rename to shared/skills/popular-web-designs/templates/replicate.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/resend.md b/shared/skills/popular-web-designs/templates/resend.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/resend.md rename to shared/skills/popular-web-designs/templates/resend.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/revolut.md b/shared/skills/popular-web-designs/templates/revolut.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/revolut.md rename to shared/skills/popular-web-designs/templates/revolut.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/runwayml.md b/shared/skills/popular-web-designs/templates/runwayml.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/runwayml.md rename to shared/skills/popular-web-designs/templates/runwayml.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/sanity.md b/shared/skills/popular-web-designs/templates/sanity.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/sanity.md rename to shared/skills/popular-web-designs/templates/sanity.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/sentry.md b/shared/skills/popular-web-designs/templates/sentry.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/sentry.md rename to shared/skills/popular-web-designs/templates/sentry.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/spacex.md b/shared/skills/popular-web-designs/templates/spacex.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/spacex.md rename to shared/skills/popular-web-designs/templates/spacex.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/spotify.md b/shared/skills/popular-web-designs/templates/spotify.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/spotify.md rename to shared/skills/popular-web-designs/templates/spotify.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/stripe.md b/shared/skills/popular-web-designs/templates/stripe.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/stripe.md rename to shared/skills/popular-web-designs/templates/stripe.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/supabase.md b/shared/skills/popular-web-designs/templates/supabase.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/supabase.md rename to shared/skills/popular-web-designs/templates/supabase.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/superhuman.md b/shared/skills/popular-web-designs/templates/superhuman.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/superhuman.md rename to shared/skills/popular-web-designs/templates/superhuman.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/together.ai.md b/shared/skills/popular-web-designs/templates/together.ai.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/together.ai.md rename to shared/skills/popular-web-designs/templates/together.ai.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/uber.md b/shared/skills/popular-web-designs/templates/uber.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/uber.md rename to shared/skills/popular-web-designs/templates/uber.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/vercel.md b/shared/skills/popular-web-designs/templates/vercel.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/vercel.md rename to shared/skills/popular-web-designs/templates/vercel.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/voltagent.md b/shared/skills/popular-web-designs/templates/voltagent.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/voltagent.md rename to shared/skills/popular-web-designs/templates/voltagent.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/warp.md b/shared/skills/popular-web-designs/templates/warp.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/warp.md rename to shared/skills/popular-web-designs/templates/warp.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/webflow.md b/shared/skills/popular-web-designs/templates/webflow.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/webflow.md rename to shared/skills/popular-web-designs/templates/webflow.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/wise.md b/shared/skills/popular-web-designs/templates/wise.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/wise.md rename to shared/skills/popular-web-designs/templates/wise.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/x.ai.md b/shared/skills/popular-web-designs/templates/x.ai.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/x.ai.md rename to shared/skills/popular-web-designs/templates/x.ai.md diff --git a/agents/gerhard-hermes/skills/creative/popular-web-designs/templates/zapier.md b/shared/skills/popular-web-designs/templates/zapier.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/popular-web-designs/templates/zapier.md rename to shared/skills/popular-web-designs/templates/zapier.md diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/LICENSE.txt b/shared/skills/powerpoint/LICENSE.txt similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/LICENSE.txt rename to shared/skills/powerpoint/LICENSE.txt diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/SKILL.md b/shared/skills/powerpoint/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/SKILL.md rename to shared/skills/powerpoint/SKILL.md diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/editing.md b/shared/skills/powerpoint/editing.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/editing.md rename to shared/skills/powerpoint/editing.md diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/pptxgenjs.md b/shared/skills/powerpoint/pptxgenjs.md similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/pptxgenjs.md rename to shared/skills/powerpoint/pptxgenjs.md diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/__init__.py b/shared/skills/powerpoint/scripts/__init__.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/__init__.py rename to shared/skills/powerpoint/scripts/__init__.py diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/add_slide.py b/shared/skills/powerpoint/scripts/add_slide.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/add_slide.py rename to shared/skills/powerpoint/scripts/add_slide.py diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/clean.py b/shared/skills/powerpoint/scripts/clean.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/clean.py rename to shared/skills/powerpoint/scripts/clean.py diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/helpers/__init__.py b/shared/skills/powerpoint/scripts/office/helpers/__init__.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/helpers/__init__.py rename to shared/skills/powerpoint/scripts/office/helpers/__init__.py diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/helpers/merge_runs.py b/shared/skills/powerpoint/scripts/office/helpers/merge_runs.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/helpers/merge_runs.py rename to shared/skills/powerpoint/scripts/office/helpers/merge_runs.py diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/helpers/simplify_redlines.py b/shared/skills/powerpoint/scripts/office/helpers/simplify_redlines.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/helpers/simplify_redlines.py rename to shared/skills/powerpoint/scripts/office/helpers/simplify_redlines.py diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/pack.py b/shared/skills/powerpoint/scripts/office/pack.py similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/pack.py rename to shared/skills/powerpoint/scripts/office/pack.py diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chart.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-chartDrawing.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-diagram.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-lockedCanvas.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-main.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-picture.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-spreadsheetDrawing.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/dml-wordprocessingDrawing.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/pml.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-additionalCharacteristics.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-bibliography.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-commonSimpleTypes.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlDataProperties.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-customXmlSchemaProperties.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesCustom.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesExtended.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-documentPropertiesVariantTypes.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-math.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/shared-relationshipReference.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/sml.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-main.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-officeDrawing.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-presentationDrawing.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-spreadsheetDrawing.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/vml-wordprocessingDrawing.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/wml.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd b/shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ISO-IEC29500-4_2016/xml.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-contentTypes.xsd b/shared/skills/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-contentTypes.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-contentTypes.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-contentTypes.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-coreProperties.xsd b/shared/skills/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-coreProperties.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-coreProperties.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-coreProperties.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-digSig.xsd b/shared/skills/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-digSig.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-digSig.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-digSig.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-relationships.xsd b/shared/skills/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-relationships.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-relationships.xsd rename to shared/skills/powerpoint/scripts/office/schemas/ecma/fourth-edition/opc-relationships.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/mce/mc.xsd b/shared/skills/powerpoint/scripts/office/schemas/mce/mc.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/mce/mc.xsd rename to shared/skills/powerpoint/scripts/office/schemas/mce/mc.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2010.xsd b/shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-2010.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2010.xsd rename to shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-2010.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2012.xsd b/shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-2012.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2012.xsd rename to shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-2012.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2018.xsd b/shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-2018.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-2018.xsd rename to shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-2018.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cex-2018.xsd b/shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-cex-2018.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cex-2018.xsd rename to shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-cex-2018.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cid-2016.xsd b/shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-cid-2016.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-cid-2016.xsd rename to shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-cid-2016.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd b/shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd rename to shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-sdtdatahash-2020.xsd diff --git a/agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-symex-2015.xsd b/shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-symex-2015.xsd similarity index 100% rename from agents/gerhard-hermes/skills/productivity/powerpoint/scripts/office/schemas/microsoft/wml-symex-2015.xsd rename to shared/skills/powerpoint/scripts/office/schemas/microsoft/wml-symex-2015.xsd diff --git a/agents/gerhard-hermes/skills/creative/pretext/SKILL.md b/shared/skills/pretext/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/pretext/SKILL.md rename to shared/skills/pretext/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/pretext/references/patterns.md b/shared/skills/pretext/references/patterns.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/pretext/references/patterns.md rename to shared/skills/pretext/references/patterns.md diff --git a/agents/gerhard-hermes/skills/creative/pretext/templates/donut-orbit.html b/shared/skills/pretext/templates/donut-orbit.html similarity index 100% rename from agents/gerhard-hermes/skills/creative/pretext/templates/donut-orbit.html rename to shared/skills/pretext/templates/donut-orbit.html diff --git a/agents/gerhard-hermes/skills/creative/pretext/templates/hello-orb-flow.html b/shared/skills/pretext/templates/hello-orb-flow.html similarity index 100% rename from agents/gerhard-hermes/skills/creative/pretext/templates/hello-orb-flow.html rename to shared/skills/pretext/templates/hello-orb-flow.html diff --git a/agents/gerhard-hermes/skills/software-development/python-debugpy/SKILL.md b/shared/skills/python-debugpy/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/software-development/python-debugpy/SKILL.md rename to shared/skills/python-debugpy/SKILL.md diff --git a/agents/gerhard-hermes/skills/dogfood/references/issue-taxonomy.md b/shared/skills/references/issue-taxonomy.md similarity index 100% rename from agents/gerhard-hermes/skills/dogfood/references/issue-taxonomy.md rename to shared/skills/references/issue-taxonomy.md diff --git a/agents/gerhard-hermes/skills/software-development/requesting-code-review/SKILL.md b/shared/skills/requesting-code-review/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/software-development/requesting-code-review/SKILL.md rename to shared/skills/requesting-code-review/SKILL.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/SKILL.md b/shared/skills/research-paper-writing.bak/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/SKILL.md rename to shared/skills/research-paper-writing.bak/SKILL.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/autoreason-methodology.md b/shared/skills/research-paper-writing.bak/references/autoreason-methodology.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/autoreason-methodology.md rename to shared/skills/research-paper-writing.bak/references/autoreason-methodology.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/checklists.md b/shared/skills/research-paper-writing.bak/references/checklists.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/checklists.md rename to shared/skills/research-paper-writing.bak/references/checklists.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/citation-workflow.md b/shared/skills/research-paper-writing.bak/references/citation-workflow.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/citation-workflow.md rename to shared/skills/research-paper-writing.bak/references/citation-workflow.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/experiment-patterns.md b/shared/skills/research-paper-writing.bak/references/experiment-patterns.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/experiment-patterns.md rename to shared/skills/research-paper-writing.bak/references/experiment-patterns.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/human-evaluation.md b/shared/skills/research-paper-writing.bak/references/human-evaluation.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/human-evaluation.md rename to shared/skills/research-paper-writing.bak/references/human-evaluation.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/paper-types.md b/shared/skills/research-paper-writing.bak/references/paper-types.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/paper-types.md rename to shared/skills/research-paper-writing.bak/references/paper-types.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/reviewer-guidelines.md b/shared/skills/research-paper-writing.bak/references/reviewer-guidelines.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/reviewer-guidelines.md rename to shared/skills/research-paper-writing.bak/references/reviewer-guidelines.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/sources.md b/shared/skills/research-paper-writing.bak/references/sources.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/sources.md rename to shared/skills/research-paper-writing.bak/references/sources.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/writing-guide.md b/shared/skills/research-paper-writing.bak/references/writing-guide.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/references/writing-guide.md rename to shared/skills/research-paper-writing.bak/references/writing-guide.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/README.md b/shared/skills/research-paper-writing.bak/templates/README.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/README.md rename to shared/skills/research-paper-writing.bak/templates/README.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/README.md b/shared/skills/research-paper-writing.bak/templates/aaai2026/README.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/README.md rename to shared/skills/research-paper-writing.bak/templates/aaai2026/README.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/aaai2026-unified-supp.tex b/shared/skills/research-paper-writing.bak/templates/aaai2026/aaai2026-unified-supp.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/aaai2026-unified-supp.tex rename to shared/skills/research-paper-writing.bak/templates/aaai2026/aaai2026-unified-supp.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/aaai2026-unified-template.tex b/shared/skills/research-paper-writing.bak/templates/aaai2026/aaai2026-unified-template.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/aaai2026-unified-template.tex rename to shared/skills/research-paper-writing.bak/templates/aaai2026/aaai2026-unified-template.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/aaai2026.bib b/shared/skills/research-paper-writing.bak/templates/aaai2026/aaai2026.bib similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/aaai2026.bib rename to shared/skills/research-paper-writing.bak/templates/aaai2026/aaai2026.bib diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/aaai2026.bst b/shared/skills/research-paper-writing.bak/templates/aaai2026/aaai2026.bst similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/aaai2026.bst rename to shared/skills/research-paper-writing.bak/templates/aaai2026/aaai2026.bst diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/aaai2026.sty b/shared/skills/research-paper-writing.bak/templates/aaai2026/aaai2026.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/aaai2026/aaai2026.sty rename to shared/skills/research-paper-writing.bak/templates/aaai2026/aaai2026.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/README.md b/shared/skills/research-paper-writing.bak/templates/acl/README.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/README.md rename to shared/skills/research-paper-writing.bak/templates/acl/README.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/acl.sty b/shared/skills/research-paper-writing.bak/templates/acl/acl.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/acl.sty rename to shared/skills/research-paper-writing.bak/templates/acl/acl.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/acl_latex.tex b/shared/skills/research-paper-writing.bak/templates/acl/acl_latex.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/acl_latex.tex rename to shared/skills/research-paper-writing.bak/templates/acl/acl_latex.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/acl_lualatex.tex b/shared/skills/research-paper-writing.bak/templates/acl/acl_lualatex.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/acl_lualatex.tex rename to shared/skills/research-paper-writing.bak/templates/acl/acl_lualatex.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/acl_natbib.bst b/shared/skills/research-paper-writing.bak/templates/acl/acl_natbib.bst similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/acl_natbib.bst rename to shared/skills/research-paper-writing.bak/templates/acl/acl_natbib.bst diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/anthology.bib.txt b/shared/skills/research-paper-writing.bak/templates/acl/anthology.bib.txt similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/anthology.bib.txt rename to shared/skills/research-paper-writing.bak/templates/acl/anthology.bib.txt diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/custom.bib b/shared/skills/research-paper-writing.bak/templates/acl/custom.bib similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/custom.bib rename to shared/skills/research-paper-writing.bak/templates/acl/custom.bib diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/formatting.md b/shared/skills/research-paper-writing.bak/templates/acl/formatting.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/acl/formatting.md rename to shared/skills/research-paper-writing.bak/templates/acl/formatting.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/README.md b/shared/skills/research-paper-writing.bak/templates/colm2025/README.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/README.md rename to shared/skills/research-paper-writing.bak/templates/colm2025/README.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/colm2025_conference.bib b/shared/skills/research-paper-writing.bak/templates/colm2025/colm2025_conference.bib similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/colm2025_conference.bib rename to shared/skills/research-paper-writing.bak/templates/colm2025/colm2025_conference.bib diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/colm2025_conference.bst b/shared/skills/research-paper-writing.bak/templates/colm2025/colm2025_conference.bst similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/colm2025_conference.bst rename to shared/skills/research-paper-writing.bak/templates/colm2025/colm2025_conference.bst diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/colm2025_conference.pdf b/shared/skills/research-paper-writing.bak/templates/colm2025/colm2025_conference.pdf similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/colm2025_conference.pdf rename to shared/skills/research-paper-writing.bak/templates/colm2025/colm2025_conference.pdf diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/colm2025_conference.sty b/shared/skills/research-paper-writing.bak/templates/colm2025/colm2025_conference.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/colm2025_conference.sty rename to shared/skills/research-paper-writing.bak/templates/colm2025/colm2025_conference.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/colm2025_conference.tex b/shared/skills/research-paper-writing.bak/templates/colm2025/colm2025_conference.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/colm2025_conference.tex rename to shared/skills/research-paper-writing.bak/templates/colm2025/colm2025_conference.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/fancyhdr.sty b/shared/skills/research-paper-writing.bak/templates/colm2025/fancyhdr.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/fancyhdr.sty rename to shared/skills/research-paper-writing.bak/templates/colm2025/fancyhdr.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/math_commands.tex b/shared/skills/research-paper-writing.bak/templates/colm2025/math_commands.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/math_commands.tex rename to shared/skills/research-paper-writing.bak/templates/colm2025/math_commands.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/natbib.sty b/shared/skills/research-paper-writing.bak/templates/colm2025/natbib.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/colm2025/natbib.sty rename to shared/skills/research-paper-writing.bak/templates/colm2025/natbib.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/fancyhdr.sty b/shared/skills/research-paper-writing.bak/templates/iclr2026/fancyhdr.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/fancyhdr.sty rename to shared/skills/research-paper-writing.bak/templates/iclr2026/fancyhdr.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.bib b/shared/skills/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.bib similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.bib rename to shared/skills/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.bib diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.bst b/shared/skills/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.bst similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.bst rename to shared/skills/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.bst diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.pdf b/shared/skills/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.pdf similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.pdf rename to shared/skills/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.pdf diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.sty b/shared/skills/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.sty rename to shared/skills/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.tex b/shared/skills/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.tex rename to shared/skills/research-paper-writing.bak/templates/iclr2026/iclr2026_conference.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/math_commands.tex b/shared/skills/research-paper-writing.bak/templates/iclr2026/math_commands.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/math_commands.tex rename to shared/skills/research-paper-writing.bak/templates/iclr2026/math_commands.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/natbib.sty b/shared/skills/research-paper-writing.bak/templates/iclr2026/natbib.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/iclr2026/natbib.sty rename to shared/skills/research-paper-writing.bak/templates/iclr2026/natbib.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/algorithm.sty b/shared/skills/research-paper-writing.bak/templates/icml2026/algorithm.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/algorithm.sty rename to shared/skills/research-paper-writing.bak/templates/icml2026/algorithm.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/algorithmic.sty b/shared/skills/research-paper-writing.bak/templates/icml2026/algorithmic.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/algorithmic.sty rename to shared/skills/research-paper-writing.bak/templates/icml2026/algorithmic.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/example_paper.bib b/shared/skills/research-paper-writing.bak/templates/icml2026/example_paper.bib similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/example_paper.bib rename to shared/skills/research-paper-writing.bak/templates/icml2026/example_paper.bib diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/example_paper.pdf b/shared/skills/research-paper-writing.bak/templates/icml2026/example_paper.pdf similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/example_paper.pdf rename to shared/skills/research-paper-writing.bak/templates/icml2026/example_paper.pdf diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/example_paper.tex b/shared/skills/research-paper-writing.bak/templates/icml2026/example_paper.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/example_paper.tex rename to shared/skills/research-paper-writing.bak/templates/icml2026/example_paper.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/fancyhdr.sty b/shared/skills/research-paper-writing.bak/templates/icml2026/fancyhdr.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/fancyhdr.sty rename to shared/skills/research-paper-writing.bak/templates/icml2026/fancyhdr.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/icml2026.bst b/shared/skills/research-paper-writing.bak/templates/icml2026/icml2026.bst similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/icml2026.bst rename to shared/skills/research-paper-writing.bak/templates/icml2026/icml2026.bst diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/icml2026.sty b/shared/skills/research-paper-writing.bak/templates/icml2026/icml2026.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/icml2026.sty rename to shared/skills/research-paper-writing.bak/templates/icml2026/icml2026.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/icml_numpapers.pdf b/shared/skills/research-paper-writing.bak/templates/icml2026/icml_numpapers.pdf similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/icml2026/icml_numpapers.pdf rename to shared/skills/research-paper-writing.bak/templates/icml2026/icml_numpapers.pdf diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/neurips2025/Makefile b/shared/skills/research-paper-writing.bak/templates/neurips2025/Makefile similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/neurips2025/Makefile rename to shared/skills/research-paper-writing.bak/templates/neurips2025/Makefile diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/neurips2025/extra_pkgs.tex b/shared/skills/research-paper-writing.bak/templates/neurips2025/extra_pkgs.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/neurips2025/extra_pkgs.tex rename to shared/skills/research-paper-writing.bak/templates/neurips2025/extra_pkgs.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/neurips2025/main.tex b/shared/skills/research-paper-writing.bak/templates/neurips2025/main.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/neurips2025/main.tex rename to shared/skills/research-paper-writing.bak/templates/neurips2025/main.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/neurips2025/neurips.sty b/shared/skills/research-paper-writing.bak/templates/neurips2025/neurips.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing.bak/templates/neurips2025/neurips.sty rename to shared/skills/research-paper-writing.bak/templates/neurips2025/neurips.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/SKILL.md b/shared/skills/research-paper-writing/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/SKILL.md rename to shared/skills/research-paper-writing/SKILL.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/references/autoreason-methodology.md b/shared/skills/research-paper-writing/references/autoreason-methodology.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/references/autoreason-methodology.md rename to shared/skills/research-paper-writing/references/autoreason-methodology.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/references/checklists.md b/shared/skills/research-paper-writing/references/checklists.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/references/checklists.md rename to shared/skills/research-paper-writing/references/checklists.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/references/citation-workflow.md b/shared/skills/research-paper-writing/references/citation-workflow.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/references/citation-workflow.md rename to shared/skills/research-paper-writing/references/citation-workflow.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/references/experiment-patterns.md b/shared/skills/research-paper-writing/references/experiment-patterns.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/references/experiment-patterns.md rename to shared/skills/research-paper-writing/references/experiment-patterns.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/references/human-evaluation.md b/shared/skills/research-paper-writing/references/human-evaluation.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/references/human-evaluation.md rename to shared/skills/research-paper-writing/references/human-evaluation.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/references/paper-types.md b/shared/skills/research-paper-writing/references/paper-types.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/references/paper-types.md rename to shared/skills/research-paper-writing/references/paper-types.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/references/reviewer-guidelines.md b/shared/skills/research-paper-writing/references/reviewer-guidelines.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/references/reviewer-guidelines.md rename to shared/skills/research-paper-writing/references/reviewer-guidelines.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/references/sources.md b/shared/skills/research-paper-writing/references/sources.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/references/sources.md rename to shared/skills/research-paper-writing/references/sources.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/references/writing-guide.md b/shared/skills/research-paper-writing/references/writing-guide.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/references/writing-guide.md rename to shared/skills/research-paper-writing/references/writing-guide.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/README.md b/shared/skills/research-paper-writing/templates/README.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/README.md rename to shared/skills/research-paper-writing/templates/README.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/README.md b/shared/skills/research-paper-writing/templates/aaai2026/README.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/README.md rename to shared/skills/research-paper-writing/templates/aaai2026/README.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex b/shared/skills/research-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex rename to shared/skills/research-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/aaai2026-unified-template.tex b/shared/skills/research-paper-writing/templates/aaai2026/aaai2026-unified-template.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/aaai2026-unified-template.tex rename to shared/skills/research-paper-writing/templates/aaai2026/aaai2026-unified-template.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/aaai2026.bib b/shared/skills/research-paper-writing/templates/aaai2026/aaai2026.bib similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/aaai2026.bib rename to shared/skills/research-paper-writing/templates/aaai2026/aaai2026.bib diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/aaai2026.bst b/shared/skills/research-paper-writing/templates/aaai2026/aaai2026.bst similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/aaai2026.bst rename to shared/skills/research-paper-writing/templates/aaai2026/aaai2026.bst diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/aaai2026.sty b/shared/skills/research-paper-writing/templates/aaai2026/aaai2026.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/aaai2026/aaai2026.sty rename to shared/skills/research-paper-writing/templates/aaai2026/aaai2026.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/README.md b/shared/skills/research-paper-writing/templates/acl/README.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/README.md rename to shared/skills/research-paper-writing/templates/acl/README.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/acl.sty b/shared/skills/research-paper-writing/templates/acl/acl.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/acl.sty rename to shared/skills/research-paper-writing/templates/acl/acl.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/acl_latex.tex b/shared/skills/research-paper-writing/templates/acl/acl_latex.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/acl_latex.tex rename to shared/skills/research-paper-writing/templates/acl/acl_latex.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/acl_lualatex.tex b/shared/skills/research-paper-writing/templates/acl/acl_lualatex.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/acl_lualatex.tex rename to shared/skills/research-paper-writing/templates/acl/acl_lualatex.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/acl_natbib.bst b/shared/skills/research-paper-writing/templates/acl/acl_natbib.bst similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/acl_natbib.bst rename to shared/skills/research-paper-writing/templates/acl/acl_natbib.bst diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/anthology.bib.txt b/shared/skills/research-paper-writing/templates/acl/anthology.bib.txt similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/anthology.bib.txt rename to shared/skills/research-paper-writing/templates/acl/anthology.bib.txt diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/custom.bib b/shared/skills/research-paper-writing/templates/acl/custom.bib similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/custom.bib rename to shared/skills/research-paper-writing/templates/acl/custom.bib diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/formatting.md b/shared/skills/research-paper-writing/templates/acl/formatting.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/acl/formatting.md rename to shared/skills/research-paper-writing/templates/acl/formatting.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/README.md b/shared/skills/research-paper-writing/templates/colm2025/README.md similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/README.md rename to shared/skills/research-paper-writing/templates/colm2025/README.md diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/colm2025_conference.bib b/shared/skills/research-paper-writing/templates/colm2025/colm2025_conference.bib similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/colm2025_conference.bib rename to shared/skills/research-paper-writing/templates/colm2025/colm2025_conference.bib diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/colm2025_conference.bst b/shared/skills/research-paper-writing/templates/colm2025/colm2025_conference.bst similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/colm2025_conference.bst rename to shared/skills/research-paper-writing/templates/colm2025/colm2025_conference.bst diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/colm2025_conference.pdf b/shared/skills/research-paper-writing/templates/colm2025/colm2025_conference.pdf similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/colm2025_conference.pdf rename to shared/skills/research-paper-writing/templates/colm2025/colm2025_conference.pdf diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/colm2025_conference.sty b/shared/skills/research-paper-writing/templates/colm2025/colm2025_conference.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/colm2025_conference.sty rename to shared/skills/research-paper-writing/templates/colm2025/colm2025_conference.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/colm2025_conference.tex b/shared/skills/research-paper-writing/templates/colm2025/colm2025_conference.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/colm2025_conference.tex rename to shared/skills/research-paper-writing/templates/colm2025/colm2025_conference.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/fancyhdr.sty b/shared/skills/research-paper-writing/templates/colm2025/fancyhdr.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/fancyhdr.sty rename to shared/skills/research-paper-writing/templates/colm2025/fancyhdr.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/math_commands.tex b/shared/skills/research-paper-writing/templates/colm2025/math_commands.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/math_commands.tex rename to shared/skills/research-paper-writing/templates/colm2025/math_commands.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/natbib.sty b/shared/skills/research-paper-writing/templates/colm2025/natbib.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/colm2025/natbib.sty rename to shared/skills/research-paper-writing/templates/colm2025/natbib.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/fancyhdr.sty b/shared/skills/research-paper-writing/templates/iclr2026/fancyhdr.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/fancyhdr.sty rename to shared/skills/research-paper-writing/templates/iclr2026/fancyhdr.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/iclr2026_conference.bib b/shared/skills/research-paper-writing/templates/iclr2026/iclr2026_conference.bib similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/iclr2026_conference.bib rename to shared/skills/research-paper-writing/templates/iclr2026/iclr2026_conference.bib diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/iclr2026_conference.bst b/shared/skills/research-paper-writing/templates/iclr2026/iclr2026_conference.bst similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/iclr2026_conference.bst rename to shared/skills/research-paper-writing/templates/iclr2026/iclr2026_conference.bst diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/iclr2026_conference.pdf b/shared/skills/research-paper-writing/templates/iclr2026/iclr2026_conference.pdf similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/iclr2026_conference.pdf rename to shared/skills/research-paper-writing/templates/iclr2026/iclr2026_conference.pdf diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/iclr2026_conference.sty b/shared/skills/research-paper-writing/templates/iclr2026/iclr2026_conference.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/iclr2026_conference.sty rename to shared/skills/research-paper-writing/templates/iclr2026/iclr2026_conference.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/iclr2026_conference.tex b/shared/skills/research-paper-writing/templates/iclr2026/iclr2026_conference.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/iclr2026_conference.tex rename to shared/skills/research-paper-writing/templates/iclr2026/iclr2026_conference.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/math_commands.tex b/shared/skills/research-paper-writing/templates/iclr2026/math_commands.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/math_commands.tex rename to shared/skills/research-paper-writing/templates/iclr2026/math_commands.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/natbib.sty b/shared/skills/research-paper-writing/templates/iclr2026/natbib.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/iclr2026/natbib.sty rename to shared/skills/research-paper-writing/templates/iclr2026/natbib.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/algorithm.sty b/shared/skills/research-paper-writing/templates/icml2026/algorithm.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/algorithm.sty rename to shared/skills/research-paper-writing/templates/icml2026/algorithm.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/algorithmic.sty b/shared/skills/research-paper-writing/templates/icml2026/algorithmic.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/algorithmic.sty rename to shared/skills/research-paper-writing/templates/icml2026/algorithmic.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/example_paper.bib b/shared/skills/research-paper-writing/templates/icml2026/example_paper.bib similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/example_paper.bib rename to shared/skills/research-paper-writing/templates/icml2026/example_paper.bib diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/example_paper.pdf b/shared/skills/research-paper-writing/templates/icml2026/example_paper.pdf similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/example_paper.pdf rename to shared/skills/research-paper-writing/templates/icml2026/example_paper.pdf diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/example_paper.tex b/shared/skills/research-paper-writing/templates/icml2026/example_paper.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/example_paper.tex rename to shared/skills/research-paper-writing/templates/icml2026/example_paper.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/fancyhdr.sty b/shared/skills/research-paper-writing/templates/icml2026/fancyhdr.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/fancyhdr.sty rename to shared/skills/research-paper-writing/templates/icml2026/fancyhdr.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/icml2026.bst b/shared/skills/research-paper-writing/templates/icml2026/icml2026.bst similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/icml2026.bst rename to shared/skills/research-paper-writing/templates/icml2026/icml2026.bst diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/icml2026.sty b/shared/skills/research-paper-writing/templates/icml2026/icml2026.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/icml2026.sty rename to shared/skills/research-paper-writing/templates/icml2026/icml2026.sty diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/icml_numpapers.pdf b/shared/skills/research-paper-writing/templates/icml2026/icml_numpapers.pdf similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/icml2026/icml_numpapers.pdf rename to shared/skills/research-paper-writing/templates/icml2026/icml_numpapers.pdf diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/neurips2025/Makefile b/shared/skills/research-paper-writing/templates/neurips2025/Makefile similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/neurips2025/Makefile rename to shared/skills/research-paper-writing/templates/neurips2025/Makefile diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/neurips2025/extra_pkgs.tex b/shared/skills/research-paper-writing/templates/neurips2025/extra_pkgs.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/neurips2025/extra_pkgs.tex rename to shared/skills/research-paper-writing/templates/neurips2025/extra_pkgs.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/neurips2025/main.tex b/shared/skills/research-paper-writing/templates/neurips2025/main.tex similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/neurips2025/main.tex rename to shared/skills/research-paper-writing/templates/neurips2025/main.tex diff --git a/agents/gerhard-hermes/skills/research/research-paper-writing/templates/neurips2025/neurips.sty b/shared/skills/research-paper-writing/templates/neurips2025/neurips.sty similarity index 100% rename from agents/gerhard-hermes/skills/research/research-paper-writing/templates/neurips2025/neurips.sty rename to shared/skills/research-paper-writing/templates/neurips2025/neurips.sty diff --git a/agents/gerhard-hermes/skills/mlops/research/DESCRIPTION.md b/shared/skills/research/DESCRIPTION.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/research/DESCRIPTION.md rename to shared/skills/research/DESCRIPTION.md diff --git a/agents/gerhard-hermes/skills/mlops/research/dspy/SKILL.md b/shared/skills/research/dspy/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/research/dspy/SKILL.md rename to shared/skills/research/dspy/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/research/dspy/references/examples.md b/shared/skills/research/dspy/references/examples.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/research/dspy/references/examples.md rename to shared/skills/research/dspy/references/examples.md diff --git a/agents/gerhard-hermes/skills/mlops/research/dspy/references/modules.md b/shared/skills/research/dspy/references/modules.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/research/dspy/references/modules.md rename to shared/skills/research/dspy/references/modules.md diff --git a/agents/gerhard-hermes/skills/mlops/research/dspy/references/optimizers.md b/shared/skills/research/dspy/references/optimizers.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/research/dspy/references/optimizers.md rename to shared/skills/research/dspy/references/optimizers.md diff --git a/agents/gerhard-hermes/skills/creative/sketch/SKILL.md b/shared/skills/sketch/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/sketch/SKILL.md rename to shared/skills/sketch/SKILL.md diff --git a/agents/gerhard-hermes/skills/media/songsee/SKILL.md b/shared/skills/songsee/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/media/songsee/SKILL.md rename to shared/skills/songsee/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/songwriting-and-ai-music/SKILL.md b/shared/skills/songwriting-and-ai-music/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/songwriting-and-ai-music/SKILL.md rename to shared/skills/songwriting-and-ai-music/SKILL.md diff --git a/agents/gerhard-hermes/skills/software-development/spike/SKILL.md b/shared/skills/spike/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/software-development/spike/SKILL.md rename to shared/skills/spike/SKILL.md diff --git a/agents/gerhard-hermes/skills/media/spotify/SKILL.md b/shared/skills/spotify/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/media/spotify/SKILL.md rename to shared/skills/spotify/SKILL.md diff --git a/agents/gerhard-hermes/skills/software-development/subagent-driven-development/SKILL.md b/shared/skills/subagent-driven-development/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/software-development/subagent-driven-development/SKILL.md rename to shared/skills/subagent-driven-development/SKILL.md diff --git a/agents/gerhard-hermes/skills/software-development/systematic-debugging/SKILL.md b/shared/skills/systematic-debugging/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/software-development/systematic-debugging/SKILL.md rename to shared/skills/systematic-debugging/SKILL.md diff --git a/agents/gerhard-hermes/skills/dogfood/templates/dogfood-report-template.md b/shared/skills/templates/dogfood-report-template.md similarity index 100% rename from agents/gerhard-hermes/skills/dogfood/templates/dogfood-report-template.md rename to shared/skills/templates/dogfood-report-template.md diff --git a/agents/gerhard-hermes/skills/software-development/test-driven-development/SKILL.md b/shared/skills/test-driven-development/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/software-development/test-driven-development/SKILL.md rename to shared/skills/test-driven-development/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/SKILL.md b/shared/skills/touchdesigner-mcp/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/SKILL.md rename to shared/skills/touchdesigner-mcp/SKILL.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/3d-scene.md b/shared/skills/touchdesigner-mcp/references/3d-scene.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/3d-scene.md rename to shared/skills/touchdesigner-mcp/references/3d-scene.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/animation.md b/shared/skills/touchdesigner-mcp/references/animation.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/animation.md rename to shared/skills/touchdesigner-mcp/references/animation.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/audio-reactive.md b/shared/skills/touchdesigner-mcp/references/audio-reactive.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/audio-reactive.md rename to shared/skills/touchdesigner-mcp/references/audio-reactive.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/dat-scripting.md b/shared/skills/touchdesigner-mcp/references/dat-scripting.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/dat-scripting.md rename to shared/skills/touchdesigner-mcp/references/dat-scripting.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/external-data.md b/shared/skills/touchdesigner-mcp/references/external-data.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/external-data.md rename to shared/skills/touchdesigner-mcp/references/external-data.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/geometry-comp.md b/shared/skills/touchdesigner-mcp/references/geometry-comp.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/geometry-comp.md rename to shared/skills/touchdesigner-mcp/references/geometry-comp.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/glsl.md b/shared/skills/touchdesigner-mcp/references/glsl.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/glsl.md rename to shared/skills/touchdesigner-mcp/references/glsl.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/layout-compositor.md b/shared/skills/touchdesigner-mcp/references/layout-compositor.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/layout-compositor.md rename to shared/skills/touchdesigner-mcp/references/layout-compositor.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/mcp-tools.md b/shared/skills/touchdesigner-mcp/references/mcp-tools.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/mcp-tools.md rename to shared/skills/touchdesigner-mcp/references/mcp-tools.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/midi-osc.md b/shared/skills/touchdesigner-mcp/references/midi-osc.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/midi-osc.md rename to shared/skills/touchdesigner-mcp/references/midi-osc.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/network-patterns.md b/shared/skills/touchdesigner-mcp/references/network-patterns.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/network-patterns.md rename to shared/skills/touchdesigner-mcp/references/network-patterns.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/operator-tips.md b/shared/skills/touchdesigner-mcp/references/operator-tips.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/operator-tips.md rename to shared/skills/touchdesigner-mcp/references/operator-tips.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/operators.md b/shared/skills/touchdesigner-mcp/references/operators.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/operators.md rename to shared/skills/touchdesigner-mcp/references/operators.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/panel-ui.md b/shared/skills/touchdesigner-mcp/references/panel-ui.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/panel-ui.md rename to shared/skills/touchdesigner-mcp/references/panel-ui.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/particles.md b/shared/skills/touchdesigner-mcp/references/particles.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/particles.md rename to shared/skills/touchdesigner-mcp/references/particles.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/pitfalls.md b/shared/skills/touchdesigner-mcp/references/pitfalls.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/pitfalls.md rename to shared/skills/touchdesigner-mcp/references/pitfalls.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/postfx.md b/shared/skills/touchdesigner-mcp/references/postfx.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/postfx.md rename to shared/skills/touchdesigner-mcp/references/postfx.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/projection-mapping.md b/shared/skills/touchdesigner-mcp/references/projection-mapping.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/projection-mapping.md rename to shared/skills/touchdesigner-mcp/references/projection-mapping.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/python-api.md b/shared/skills/touchdesigner-mcp/references/python-api.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/python-api.md rename to shared/skills/touchdesigner-mcp/references/python-api.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/replicator.md b/shared/skills/touchdesigner-mcp/references/replicator.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/replicator.md rename to shared/skills/touchdesigner-mcp/references/replicator.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/troubleshooting.md b/shared/skills/touchdesigner-mcp/references/troubleshooting.md similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/references/troubleshooting.md rename to shared/skills/touchdesigner-mcp/references/troubleshooting.md diff --git a/agents/gerhard-hermes/skills/creative/touchdesigner-mcp/scripts/setup.sh b/shared/skills/touchdesigner-mcp/scripts/setup.sh similarity index 100% rename from agents/gerhard-hermes/skills/creative/touchdesigner-mcp/scripts/setup.sh rename to shared/skills/touchdesigner-mcp/scripts/setup.sh diff --git a/agents/gerhard-hermes/skills/mlops/training/DESCRIPTION.md b/shared/skills/training/DESCRIPTION.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/DESCRIPTION.md rename to shared/skills/training/DESCRIPTION.md diff --git a/agents/gerhard-hermes/skills/mlops/training/axolotl.bak/SKILL.md b/shared/skills/training/axolotl.bak/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/axolotl.bak/SKILL.md rename to shared/skills/training/axolotl.bak/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/training/axolotl.bak/references/api.md b/shared/skills/training/axolotl.bak/references/api.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/axolotl.bak/references/api.md rename to shared/skills/training/axolotl.bak/references/api.md diff --git a/agents/gerhard-hermes/skills/mlops/training/axolotl.bak/references/dataset-formats.md b/shared/skills/training/axolotl.bak/references/dataset-formats.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/axolotl.bak/references/dataset-formats.md rename to shared/skills/training/axolotl.bak/references/dataset-formats.md diff --git a/agents/gerhard-hermes/skills/mlops/training/axolotl.bak/references/index.md b/shared/skills/training/axolotl.bak/references/index.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/axolotl.bak/references/index.md rename to shared/skills/training/axolotl.bak/references/index.md diff --git a/agents/gerhard-hermes/skills/mlops/training/axolotl.bak/references/other.md b/shared/skills/training/axolotl.bak/references/other.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/axolotl.bak/references/other.md rename to shared/skills/training/axolotl.bak/references/other.md diff --git a/agents/gerhard-hermes/skills/mlops/training/axolotl/SKILL.md b/shared/skills/training/axolotl/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/axolotl/SKILL.md rename to shared/skills/training/axolotl/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/training/axolotl/references/api.md b/shared/skills/training/axolotl/references/api.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/axolotl/references/api.md rename to shared/skills/training/axolotl/references/api.md diff --git a/agents/gerhard-hermes/skills/mlops/training/axolotl/references/dataset-formats.md b/shared/skills/training/axolotl/references/dataset-formats.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/axolotl/references/dataset-formats.md rename to shared/skills/training/axolotl/references/dataset-formats.md diff --git a/agents/gerhard-hermes/skills/mlops/training/axolotl/references/index.md b/shared/skills/training/axolotl/references/index.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/axolotl/references/index.md rename to shared/skills/training/axolotl/references/index.md diff --git a/agents/gerhard-hermes/skills/mlops/training/axolotl/references/other.md b/shared/skills/training/axolotl/references/other.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/axolotl/references/other.md rename to shared/skills/training/axolotl/references/other.md diff --git a/agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/SKILL.md b/shared/skills/training/trl-fine-tuning/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/SKILL.md rename to shared/skills/training/trl-fine-tuning/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/references/dpo-variants.md b/shared/skills/training/trl-fine-tuning/references/dpo-variants.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/references/dpo-variants.md rename to shared/skills/training/trl-fine-tuning/references/dpo-variants.md diff --git a/agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/references/grpo-training.md b/shared/skills/training/trl-fine-tuning/references/grpo-training.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/references/grpo-training.md rename to shared/skills/training/trl-fine-tuning/references/grpo-training.md diff --git a/agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/references/online-rl.md b/shared/skills/training/trl-fine-tuning/references/online-rl.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/references/online-rl.md rename to shared/skills/training/trl-fine-tuning/references/online-rl.md diff --git a/agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/references/reward-modeling.md b/shared/skills/training/trl-fine-tuning/references/reward-modeling.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/references/reward-modeling.md rename to shared/skills/training/trl-fine-tuning/references/reward-modeling.md diff --git a/agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/references/sft-training.md b/shared/skills/training/trl-fine-tuning/references/sft-training.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/references/sft-training.md rename to shared/skills/training/trl-fine-tuning/references/sft-training.md diff --git a/agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/templates/basic_grpo_training.py b/shared/skills/training/trl-fine-tuning/templates/basic_grpo_training.py similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/trl-fine-tuning/templates/basic_grpo_training.py rename to shared/skills/training/trl-fine-tuning/templates/basic_grpo_training.py diff --git a/agents/gerhard-hermes/skills/mlops/training/unsloth/SKILL.md b/shared/skills/training/unsloth/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/unsloth/SKILL.md rename to shared/skills/training/unsloth/SKILL.md diff --git a/agents/gerhard-hermes/skills/mlops/training/unsloth/references/index.md b/shared/skills/training/unsloth/references/index.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/unsloth/references/index.md rename to shared/skills/training/unsloth/references/index.md diff --git a/agents/gerhard-hermes/skills/mlops/training/unsloth/references/llms-full.md b/shared/skills/training/unsloth/references/llms-full.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/unsloth/references/llms-full.md rename to shared/skills/training/unsloth/references/llms-full.md diff --git a/agents/gerhard-hermes/skills/mlops/training/unsloth/references/llms-txt.md b/shared/skills/training/unsloth/references/llms-txt.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/unsloth/references/llms-txt.md rename to shared/skills/training/unsloth/references/llms-txt.md diff --git a/agents/gerhard-hermes/skills/mlops/training/unsloth/references/llms.md b/shared/skills/training/unsloth/references/llms.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/training/unsloth/references/llms.md rename to shared/skills/training/unsloth/references/llms.md diff --git a/agents/gerhard-hermes/skills/mlops/vector-databases/DESCRIPTION.md b/shared/skills/vector-databases/DESCRIPTION.md similarity index 100% rename from agents/gerhard-hermes/skills/mlops/vector-databases/DESCRIPTION.md rename to shared/skills/vector-databases/DESCRIPTION.md diff --git a/agents/gerhard-hermes/skills/devops/webhook-subscriptions/SKILL.md b/shared/skills/webhook-subscriptions/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/devops/webhook-subscriptions/SKILL.md rename to shared/skills/webhook-subscriptions/SKILL.md diff --git a/agents/gerhard-hermes/skills/software-development/writing-plans/SKILL.md b/shared/skills/writing-plans/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/software-development/writing-plans/SKILL.md rename to shared/skills/writing-plans/SKILL.md diff --git a/agents/gerhard-hermes/skills/social-media/xurl/SKILL.md b/shared/skills/xurl/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/social-media/xurl/SKILL.md rename to shared/skills/xurl/SKILL.md diff --git a/agents/gerhard-hermes/skills/media/youtube-content/SKILL.md b/shared/skills/youtube-content/SKILL.md similarity index 100% rename from agents/gerhard-hermes/skills/media/youtube-content/SKILL.md rename to shared/skills/youtube-content/SKILL.md diff --git a/agents/gerhard-hermes/skills/media/youtube-content/references/output-formats.md b/shared/skills/youtube-content/references/output-formats.md similarity index 100% rename from agents/gerhard-hermes/skills/media/youtube-content/references/output-formats.md rename to shared/skills/youtube-content/references/output-formats.md diff --git a/agents/gerhard-hermes/skills/media/youtube-content/scripts/fetch_transcript.py b/shared/skills/youtube-content/scripts/fetch_transcript.py similarity index 100% rename from agents/gerhard-hermes/skills/media/youtube-content/scripts/fetch_transcript.py rename to shared/skills/youtube-content/scripts/fetch_transcript.py