원클릭으로
deploy-hermes
Hermes deploy pipeline — sync, test, and prevent drift between staging and prod
메뉴
Hermes deploy pipeline — sync, test, and prevent drift between staging and prod
ASCII art: pyfiglet, cowsay, boxes, image-to-ascii.
Knowledge comics (知识漫画): educational, biography, tutorial.
Infographics: 21 layouts x 21 styles (信息图, 可视化).
Generate images, video, and audio with ComfyUI — install, launch, manage nodes/models, run workflows with parameter injection. Uses the official comfy-cli for lifecycle and direct REST/WebSocket API for execution.
Pixel art w/ era palettes (NES, Game Boy, PICO-8).
Run multi-hour autonomous coding tasks using a 5-agent harness: Researcher, Planner, Executor (with Opus advisor), Evaluator, and Orchestrator. Combines Anthropic's advisor strategy, GAN-inspired generator/evaluator design, and Boris Tane's annotation-cycle workflow.
| name | deploy-hermes |
| description | Hermes deploy pipeline — sync, test, and prevent drift between staging and prod |
| owner | jleechan |
| created | "2026-04-21T00:00:00.000Z" |
| tags | ["hermes","deploy","sync","staging-prod"] |
Invoke this skill when:
bash scripts/deploy.sh for Hermesscripts/deploy.sh (any change to hermes_sync_config())~/.hermes/~/.hermes/ (staging) and ~/.hermes_prod/ (prod)Any top-level file tracked in git ls-files must be in exactly one of:
hermes_sync_config() function in deploy.sh (synced to prod)INTENTIONALLY_SKIPPED or INTENTIONALLY_SKIPPED_DIRS set in tests/test_deploy_sync_completeness.py (with a comment explaining why)Why this matters: If a file is tracked in git (so it survives re-clone) but is NOT synced to prod, the prod runtime will run stale code/config indefinitely after a deploy, because the deploy script doesn't touch it.
The specific failure this prevents: agent-orchestrator.yaml was added to git but not added to hermes_sync_config() → prod ran an older version of the AO config while staging had the new one → drift undetected for weeks.
hermes_sync_config() syncs these individual files via a for policy_file in ... loop:
SOUL.md AGENTS.md TOOLS.md HEARTBEAT.md prefill.json agent-orchestrator.yaml
When adding a new policy/config file:
INTENTIONALLY_SKIPPED in the testtest_policy_files_loop_uses_complete_enumeration() verifies it appears in the loopconfig.yaml is synced but then patched for known prod-specific overrides:
slack.require_mention → False (prod allows bot-free messaging)platforms.api_server.extra.port → 8642 (prod native port)When adding a new prod-native override: add it to the OVERRIDES list in hermes_sync_config() — do NOT hardcode it separately.
Synced via rsync --delete with __pycache__ and *.pyc excluded. The sync test verifies every skill tracked in git appears in the destination.
Run the completeness test before and after any deploy.sh edit:
python -m pytest tests/test_deploy_sync_completeness.py -v
If the test fails with "Top-level git-tracked files missing from hermes_sync_config()", you must either:
deploy.sh, ORINTENTIONALLY_SKIPPED / INTENTIONALLY_SKIPPED_DIRS in the test with a commentNot adding it to EITHER place is a harness regression.