What problem does it solve? Hermes plugins fail silently when deployed incorrectly: flat .py files are never loaded, plugins stay disabled until explicitly enabled, and hook payload key spellings differ between surfaces. This Skill provides the verified plugin contract so hooks actually register and fire. ## Core Features & Use Cases - Directory plugin contract: Documents the required layout (~/.hermes/plugins/<name>/ with plugin.yaml and init.py exposing register(ctx)) and the opt-in plugins.enabled requirement. - Hook payload reference: Lists exact kwargs per hook (post_tool_call uses function_name/function_args, never cwd) and the stash/pop pattern for injecting context via pre_llm_call. - Memory-provider ABC reference: Covers the MemoryProvider abstract class, discovery heuristics, single-provider selection via memory.provider, and bridging to MCP servers like AiRaccoon. - Use Case: You wrote a post_tool_call hook that never fires. This Skill tells you to check the directory layout, run hermes plugins enable, verify with HERMES_PLUGINS_DEBUG=1, and test in a fresh session since hooks load only at session start. ## Quick Start Use the hermes-plugin-authoring skill to scaffold a directory plugin with plugin.yaml and register(ctx), then enable it and verify the hook fires in a fresh hermes chat session.