# Hermes Skills Rollout — mapping # # Source of truth for the converter (scripts/build-hermes.py). # EVERY skill in skills/ MUST appear in `skills:` exactly once — the build # fails on unmapped skills (forces an explicit decision per skill). # # Modes: # auto — convert from skills//, applying replace-rules. Lands in # dist-hermes///. # manual — copy from `source:` directory verbatim (no replace-rules). # Used for Hermes-flavour rewrites (e.g. yaml-edit MCP setups). # skip — audited as not-applicable; recorded in dist-hermes/SKIPPED.md. # pending — present in mapping but not yet built; recorded in SKIPPED.md. # `intended:` block declares the future mode/category, so the # audit table is preserved across MVP iterations. # # Categories: software-development | productivity | mcp | research | meta # # See .wiki/concepts/hermes-skills-rollout-design.md for the full audit # (Q1-Q8 + the 21-row decision table). version: 1 hermes: installer_path: meta/claude-skills-installer default_category: software-development categories: - software-development - productivity - mcp - research - meta skills: # ─── auto (4 universals — MVP target) ──────────────────────────────── pulling-before-work: mode: auto category: software-development active-platform: mode: auto category: software-development replace-rules: - find: "**Windows + PowerShell.**" replace: "**Linux + bash.**" reason: "Hermes runs on Linux factory machines (/opt/data/projects). Default platform shifts." - find: "Use this until something in the session tells you to switch. Reason: the user's primary workstation is Windows." replace: "Use this until something in the session tells you to switch. Reason: Hermes runs on Linux factory machines." reason: "Mirror reasoning sentence to match the new default." project-discipline: mode: auto category: software-development tdd-criteria: mode: auto category: software-development using-markitdown: mode: auto category: productivity # ─── skip (8 — audited as not-applicable) ──────────────────────────── caveman: mode: skip reason: "Hermes runs on glm-5.1 (cheap local model); token-compression motive disappears." caveman-commit: mode: skip reason: "Caveman family — cheap-model context, no compression motive." caveman-compress: mode: skip reason: "Caveman family — cheap-model context, no compression motive." caveman-help: mode: skip reason: "Help-card for the caveman family which itself is skipped." caveman-review: mode: skip reason: "Caveman family — cheap-model context, no compression motive." setup-interns: mode: skip reason: "Hermes itself is a cheap-intern model — the delegation tier collapses." using-interns: mode: skip reason: "Hermes itself is a cheap-intern model — the delegation tier collapses." find-skills: mode: skip reason: "Hermes has built-in skills_list() / progressive disclosure." # ─── pending (10 — deferred to follow-up tasks) ────────────────────── setup-tasks: mode: auto category: productivity using-tasks: mode: auto category: productivity setup-wiki: mode: auto category: research using-wiki: mode: auto category: research setup-projects-meta: mode: manual source: hermes/skills/setup-projects-meta category: mcp using-projects-meta: mode: auto category: mcp setup-context7: mode: manual source: hermes/skills/setup-context7 category: mcp using-context7: mode: auto category: mcp project-bootstrap: mode: auto category: software-development recommend-dont-menu: mode: auto category: productivity update-claude-skills: mode: skip reason: "Claude-Code-only orchestrator — Hermes uses hermes-installer-skill instead." # ─── pending (8 — behavioral audit required) ───────────────────────── delegate-task: mode: pending intended: mode: auto category: mcp reason: "Calls mcp__projects-meta__tasks_create to create tasks in other projects/agents (Gitea commit, cross-project side-effect). Behavioral audit via delegate-task-test-trigger required before promotion to auto." using-yt-tools: mode: pending intended: mode: auto category: research reason: "Shells out to yt-dlp + ffmpeg and writes ./yt-cache/ in cwd. Behavioral audit via using-yt-tools-test-trigger required before promotion to auto." using-vds-ops: mode: pending intended: mode: auto category: mcp reason: "Calls mcp__vds-ops__* tools (read-only, but touches infrastructure). Behavioral audit via using-vds-ops-test-trigger required before promotion to auto." using-wiki-graph: mode: pending intended: mode: auto category: mcp reason: "Calls mcp__wiki-graph__* tools (read-only, parses a .wiki/ corpus server-side). Behavioral audit via using-wiki-graph-test-trigger required before promotion to auto." session-handoff: mode: pending intended: mode: auto category: productivity reason: "Writes .tasks/NEXT_SESSION.md (project-scope, sliding overwrite) and reads it on session start. Bidirectional file-system side-effect, opt-in via CLAUDE.md trigger-line. Behavioral audit via session-handoff-test-trigger required before promotion to auto." private-dev-public-publish: mode: pending intended: mode: auto category: software-development reason: "Steps shell out to git / gh / Gitea-API, handle tokens, force-push, and repo deletion/privacy toggles — not a purely stylistic skill. Behavioral audit via private-dev-public-publish-test-trigger required before promotion to auto." task-loop: mode: pending intended: mode: auto category: mcp reason: "Orchestrates the board claim/close/update/heartbeat cycle via mcp__projects-meta__tasks_claim_next / tasks_close / tasks_update / tasks_heartbeat (cross-session claim ownership, irreversible close, Gitea side-effects) and may arm a single long ScheduleWakeup for the explicit long-watch opt-in. Critical-infra-adjacent — touches the same claim/close machinery the unattended poller relies on. Behavioral audit via task-loop-test-trigger required before promotion to auto." session-inbox-monitor: mode: pending intended: mode: auto category: productivity reason: "Paired SessionStart hook registers itself in ~/.claude/settings.json and sweeps orphaned monitor OS processes (Get-CimInstance | Stop-Process by sentinel+inbox-path); the skill then raises an in-session Monitor on .claude-inbox/. Primary activation is the CLAUDE.md trigger-line `inbox monitor: raise on start` + the injector, not a hermes-trigger. Behavioral gate CLEARED 2026-06-17 — test-trigger + review BOTH VERDICT PASS (activation 3/3 monitor + neg clean; structural hook audit 5 PASS/1 CONCERN, the CONCERN fixed in v0.2.2). STAYS pending on two independent tool-side blockers, NOT on behavioral verification: (1) the SessionStart hook is Windows-PowerShell and needs a Linux port for Hermes factory machines; (2) machine-level side-effects (user-config mutation of ~/.claude/settings.json + Get-CimInstance|Stop-Process kills) need a tool-side audit before auto. Promotion blocked on those two, not on test-trigger/review." inter-session-peer-discipline: mode: auto category: meta # Promoted pending→auto 2026-06-17. Gate ("non-implementer test-trigger + review") # SATISFIED — both VERDICT PASS this session (test-trigger: pos 4/4→peer, 0 false-positive # on 5 foreign phrases RU+EN; review: body v0.1.1 carries proposal-not-authority / # human-ratification-gate / echo-chamber-guard, no blocking findings). Purely behavioral # governance skill: NO tool-side effects (no settings.json write, no process kill, no Monitor # raise) and no Windows-PowerShell hook → no Linux port needed for the Hermes factory. # Human-ratified promotion (not a peer ruling). # ─── pending (5 — newly-mapped 2026-06-17, build-integrity fix) ────── # These lived in skills/ UNMAPPED → the build was RED ("unmapped entries"). # Mapped `pending` = conservative placeholder, no auto-commitment; each still # needs its own mode decision. meta-host-routing here executes the open task # `meta-host-routing-hermes-mapping`. meta-host-routing: mode: pending intended: mode: auto category: meta reason: "Resolves WHERE a project's meta lives before tasks_create / knowledge_ingest / brainstorm-promotion (meta-out-of-repo). Touches projects-meta MCP (tasks_create / knowledge_ingest / meta_status) and routes writes across repos. Review PASS (meta-host-routing-review) but the -install baseline is still open and a tool-side audit (cross-repo MCP writes) is required before auto. Mapping executes task meta-host-routing-hermes-mapping." using-system-snapshot: mode: pending intended: mode: auto category: mcp reason: "Calls mcp__projects-meta__meta_system_snapshot (read-only whole-machine ops snapshot: poller / docker / cross-project task load). Read-only, same class as using-vds-ops / using-wiki-graph; pending a behavioral test-trigger before auto." task-format: mode: pending intended: mode: auto category: productivity reason: "Documentational skill — how to write a .tasks/STATUS.md task block the autonomous poller will claim/route/report (block header, status emoji, Weight/Notify/Requirements fields). No tool-side effects; pending a behavioral test-trigger before auto." setup-agents-task-runner: mode: pending reason: "L2 installer — installs the standing-duty stack (agents-task-runner + watchdog + appeals-inbox) as platform-native OS services (systemd/launchd/winsw), fetches a pinned binary, writes poller-scope.json. Heavy infra side-effects (OS services + binary fetch); mode decision (skip vs manual vs auto) deferred — needs an explicit Hermes-factory applicability audit. Placeholder pending to keep the build green." ralph-loop-execution: mode: pending reason: "Behavioral oracle-loop skill (Verifier / Attempts / Max-Attempts retry loop). NB: source SKILL.md currently lacks YAML frontmatter (no name/description) — cannot auto-convert cleanly until that is fixed. Mapped pending as a placeholder; needs frontmatter + a behavioral audit before any mode decision."