Personal-site Article Approval Plugin

This directory is installed as the opt-in Hermes plugin personal_article_approval, not as an agent skill. Its supported pre_gateway_dispatch hook handles an approval before any language model runs.

The hook accepts only an authorized Telegram text update whose normalized and raw text are identical and whose complete text matches one of:

It passes lowercase UTF-8 hex to the canonical decision-hex coordinator with asyncio.create_subprocess_exec. Raw message text is never shell input or a process argument. The existing Hermes gateway delivers the result and the original event is skipped, so there is no second Telegram listener or agent fallback on this path.