Files
Hermes-Skills/okx-auto-position/references/v4.5.41-hook-module-over-inline-preference.md
T
mike 98efe09387 lottery-hk: v1.2.6 — 特码脚本改中文文件名 lottery_特码.py
User 2026-07-30 反馈:
- 脚本名 lottery_te_ma.py → lottery_特码.py (中文, 更直观)
- 同步 SKILL.md 引用 (description + scripts 段)
- version 1.2.5 → 1.2.6
2026-07-30 20:43:39 +08:00

3.6 KiB

name, description, version, type
name description version type
v4.5.41-hook-module-over-inline-preference 用户明确偏好: gateway/run.py 等核心文件不要加塞业务逻辑, hook 必须放在 skill 目录下作为独立模块 1.0.0 reference

v4.5.41 (2026-07-30) Hook 放 skill 模块, 不要内联到 gateway/run.py

用户原话

"不要在 run 里改,把文件加到对应的skill下"

上下文

v4.5.40 我把 signal_inbox hook 代码 inlinegateway/run.py:10617-10674 (~58 行)。修完用户立刻纠正。

用户偏好的本质

偏好 含义
run.py 不加塞业务逻辑 gateway 是 hermes-agent 核心, 修改要 git commit 到主仓库 (~/.hermes/hermes-agent), 不是 ~/.hermes/skills/。频繁动核心文件 = 频繁 commit 上游 = 易冲突
hook 放 skill 目录 skill 目录是用户的私人扩展空间 (~/.hermes/skills/<skill>/), git 在 ~/.hermes/skills/trading, 修改不影响上游
会丢就 commit 用户原话 "现在要把文件加到 git 里, 不会丢" → skill 脚本靠 git track 防丢, 不靠 inline 防御

这跟 v4.5.40 cleanup-defense 矛盾

v4.5.40 的 inline 方案就是因为 signal_inbox.py 被 cleanup 删了 → 用 inline 防止再被删。用户最新偏好说:

选项 v4.5.40 观点 v4.5.41 用户偏好
Inline 到 run.py 防 cleanup 删除 不动核心文件
放 skill 目录 + git track 会被 cleanup 删 不会丢 + 不动核心

最终方案 (v4.5.41) = 放 skill 目录 + 立即 git commit。cleanup 删了 git checkout 就能恢复, 不需要 inline 防御。

当前代码 (v4.5.41 已部署)

gateway/run.py hook (12 行, 只做 import + try/except)

# ── [Hermes Hook] 信号自动入队 (v4.5.4) ────────────────────────
# 调 signal_inbox.enqueue_if_signal (位于 okx-auto-position/scripts/)
# 实现逻辑全部在模块里, 这里只做 import + try/except
try:
    import importlib
    import sys as _sys_hook
    _sig_skill = os.path.expanduser(
        "~/.hermes/skills/trading/okx-auto-position/scripts"
    )
    if _sig_skill not in _sys_hook.path:
        _sys_hook.path.insert(0, _sig_skill)
    _sig_mod = importlib.import_module('signal_inbox')
    await _sig_mod.enqueue_if_signal(source, event.text or "")
except Exception as _hook_err:
    logger.warning(f"[signal_inbox] hook 异常 (不致命): {_hook_err}")

skill 模块

路径: ~/.hermes/skills/trading/okx-auto-position/scripts/signal_inbox.py

git: commit b91f677 v4.5.4: signal_inbox.py hook helper for gateway

防御策略调整

风险 v4.5.40 防御 v4.5.41 防御
文件被 cleanup 删 Inline 到 run.py git checkout okx-auto-position/scripts/signal_inbox.py 恢复
run.py hook 失败 (无) 已知 try/except, hook 静默也不致命 (signal-queue-retry cron 兜底)
hook 不工作 看 inline 代码 git log --all --oneline -- signal_inbox.py 找 commit + checkout
改坏 core 文件 (无) 用户偏好禁止; 改坏就 git checkout gateway/run.py

给下次 session 的指令

用户偏好优先级 (这次的明令):

  1. 改 hook / 业务逻辑 → 放 skill 目录 (~/.hermes/skills/<skill>/scripts/)
  2. 不要 inline 到 gateway/run.py 等核心文件
  3. 新文件立即 git add + commit, 防 cleanup 删除
  4. inline 是最后手段, 仅在用户明确授权 + 无 skill 模块路径时

违反这条偏好 = 用户会立即反驳。如不确定, 先问用户"放 skill 还是改 core"。