* refactor(skills): clean up bundled skill set + add environments: relevance gate Bundled skills cleanup pass plus a new offer-time relevance gate. Removals (redundant / dead): - spotify (covered by the spotify plugin's 7 native tools) - linear (covered by `hermes mcp install linear`) - kanban-codex-lane, debugging-hermes-tui-commands - empty category markers: diagramming, gifs, inference-sh, mlops/training, mlops/vector-databases - domain (stale orphan dup of optional/research/domain-intel) Bundled -> optional: - baoyu-article-illustrator, baoyu-comic, creative-ideation, pixel-art - dspy, subagent-driven-development - minecraft-modpack-server, pokemon-player - hermes-s6-container-supervision (-> optional/devops) Consolidation: - webhook-subscriptions + native-mcp folded into the hermes-agent skill as references/webhooks.md + references/native-mcp.md with SKILL.md pointers - writing-plans merged into plan (v2.0.0); related_skills + prose refs updated New: environments: frontmatter gate (agent/skill_utils.skill_matches_environment) - Offer-time relevance filter (kanban / docker / s6), parallel to platforms:. - Wired into the 3 OFFER surfaces only (prompt_builder skills index, skills_tool.list_skills, skill_commands slash discovery). - Explicit loads (skill_view, --skills preload) intentionally BYPASS it, so load-bearing force-loads like the kanban dispatcher's `--skills kanban-worker` always resolve. Verified via E2E. - kanban-orchestrator/kanban-worker tagged environments: [kanban]; hermes-s6-container-supervision tagged environments: [s6] + platforms: [linux]. Validation: 8/8 E2E gating assertions (incl force-load invariant); 442 targeted tests green (agent, skills_tool, skill_commands, kanban worker). * docs: regenerate skill catalogs + pages for the bundled cleanup Regenerated per-skill doc pages, catalogs, and sidebar to match the skill moves/removals in the parent commit. Moved skills' pages relocate bundled -> optional (history preserved); removed skills' pages deleted; edited skills' pages refreshed (hermes-agent now embeds the webhook + native-mcp reference pointers). zh-Hans i18n mirror: stale bundled pages and catalog rows for moved/removed skills pruned (new optional translations land via the translation pipeline). * test: drop regression test for removed kanban-codex-lane skill The kanban-codex-lane skill was removed in the bundled-skills cleanup; its dedicated regression test read the now-deleted SKILL.md and failed with FileNotFoundError on CI shard 6.
2.2 KiB
Attribution
This skill bundles code ported from a third-party MIT-licensed project. All reuse is credited here.
pixel-art-studio (Synero)
- Source: https://github.com/Synero/pixel-art-studio
- License: MIT
- Copyright: © Synero, MIT-licensed contributors
What was ported
scripts/palettes.py — the PALETTES dict containing 23 named RGB
palettes (hardware and artistic). Values are reproduced verbatim from
scripts/pixelart.py of pixel-art-studio.
scripts/pixel_art_video.py — the 12 procedural animation init/draw pairs
(stars, fireflies, leaves, dust_motes, sparkles, rain,
lightning, bubbles, embers, snowflakes, neon_pulse, heat_shimmer)
and the SCENES → layer mapping. Ported from scripts/pixelart_video.py
with minor refactors:
- Names prefixed with
_for private helpers (_px,_pixel_cross) SCENE_ANIMATIONSrenamed toSCENESand restructured to hold layer names (strings) instead of function-name strings resolved viaglobals()generate_video()split: the Pollinations text-to-image call was removed (Hermes uses its ownimage_generate+pixel_art()pipeline for base frames). Only the overlay + ffmpeg encoding remains.- Frame directory is now a
tempfile.TemporaryDirectoryinstead of hand-managed cleanup. ffmpeginvocation switched fromos.systemtosubprocess.run(check=True)for safety.
What was NOT ported
- Wu's Color Quantization (PIL's built-in
quantizesuffices) - Sobel edge-aware downsampling (requires scipy; not worth the dep)
- Bayer / Atkinson dither (would need numpy reimplementation; kept scope tight)
- Pollinations text-to-image generation (
pixelart_image.py,generate_base()inpixelart_video.py) — Hermes hasimage_generate
License compatibility
pixel-art-studio ships under the MIT License, which permits redistribution with attribution. This skill preserves the original copyright notice here and in the SKILL.md credits block. No code was relicensed.
pixel-art skill itself
- License: MIT (inherits from hermes-agent repo)
- Original author of the skill shell: dodo-reach
- Expansion with palettes + video: Hermes Agent contributors