用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/lukemcqueen/hermes-cortex --skill installer-validation命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Cross-server agent health monitoring using binary status vectors — deploy health endpoints on each agent, poll from orchestrator, alert on state transitions.
Wire a self-hosted Langfuse instance to Hermes Agent — generate API keys, configure env vars, enable the bundled plugin, install SDK, and verify traces flow.
Use before enforcement code changes or shared-repo commits.
正在显示 SKILL.md
| name | installer-validation |
| description | Validate installers and strip post-decommission stale refs. |
| version | 1.0.0 |
| author | Hermes Cortex |
| license | MIT |
| platforms | ["linux","macos"] |
| metadata | {"hermes":{"tags":["installer","validation","stale-reference","decommission","deploy","sweep","orchestrator-gate"],"related_skills":["shell-scripting","repo-gotchas","deployed-component-verification","enforcement-change-safety"]}} |
When the repo's installers have been updated over time and a component was
decommissioned or renamed (real example: gbrain → mycortex, 2026-08-02),
run a class-level validation sweep before touching anything. This skill is
the checklist for "are the installers current and will they work" plus the
commit-gate reality that attends repo ops/ work.
ops/install/, ops/scripts/install/,
any install-*.sh, quick-start.sh, or deploy templatestitus). Commits to
ops/ are blocked by the pre-commit hook in that case — see the
commit-gate section; the deliverable becomes a verified staged diff.Find every installer and its referenced script paths. bash -n every one
first — validates syntax before any semantic work.
bash -n ops/install/install.sh ops/install/quick-start.sh \
ops/scripts/install/*.sh ops/scripts/install-crons.sh
Verify every path each installer references actually exists in the repo
(_scripts(), _deploy(), _offline(), _core_gov(), ${SCRIPT_DIR},
${REPO_ROOT} forms). Use a Python extraction pass rather than blind grep —
function-call forms ($(_scripts)/...) and quoted forms both appear.
Grep every location for the old name — do NOT stop at the obvious file:
for d in ops/install ops/install/deploy ops/scripts/install ops/scripts/health \
ops/scripts/agent docs/install; do
[ -d "$d" ] && grep -rni '<old-name>' "$d" 2>/dev/null
done
# also cortex-update.sh register/unregister blocks and
# cortex_doctor/checks.py (its remediation hints still name old units)
Classify each match:
ollama-linux-*.tgz llama-server tarball extraction — the .tgz format
is a 404 (became .tar.zst), and the replacement (mycortex) is pure Python
needing no llama-server. Remove the whole block.GBRAIN_PG_PASSWORD → MYCORTEX_PG_PASSWORD), legacy plugin-name checks
in config.yaml, decommission comments. Keep these; only fix wording that
claims the old component is installed/needed.A stale template (deploy/<old>-autopilot.service) may be referenced by the
doctor or health scripts that detect the half-state on old hosts — those
reference the systemd unit name, not the repo file, and are correct to
keep. Prove the repo file is safe to delete:
grep -rn '<unit>' ops/scripts/cortex-update.sh ops/install/install.sh
# if nothing deploys/copies it → git rm is safe
The SERVICE_MAP key list is duplicated across the live emitter
(ops/scripts/health/health-vector.py) and several consumers that must agree:
agent-registry.template.json, agent-registry.json.example,
orch-fleet-watchdog.py, orch-health-report.py, and the push script's
index comments. After any rename (e.g. gbrain_sources_ok →
mycortex_sources_ok) all five must match or the fleet watchdog/report misreads
the live vector. Treat the emitter's list as the authority and grep every copy
of the old key. Validate the JSON files still parse after edits.
${SCRIPT_DIR} in standalone helper installersSmall installers (quick-start.sh) sometimes reference ${SCRIPT_DIR}
without defining it, so the skill/file-copy block silently no-ops (exit 0, no
error). Define it from "${BASH_SOURCE[0]}" and walk up to the repo root, and
drop from install lists any skill/path that no longer exists in the repo
(find . -type d -name '<skill>' returns nothing). Verify the copy actually
lands by running the script with a temp HERMES_HOME — running is the only
proof.
bash -n every changed shell script.py filesinstall.sh --check from the real repo path (proves it
executes end-to-end)secret-leak-detector.sh)The pre-commit hook BLOCKS commits on ops/ (and other
docs/orchestrator-only-paths.txt entries) by reading the COMMITTED config —
editing the working copy cannot bypass it, and --no-verify is a logged
governance violation. Non-orchestrators:
git checkout -b titus/<slug>, apply changes, run the step-6 suite.git commit ONCE to confirm the block fires (expected).SCRIPT_DIR — a copy/skill block silently no-ops; verify by
running, not reading..tgz Ollama URLs are dead — the release format became .tar.zst.ops/install/ for a stale name — the same string lives
in health scripts, agent orch scripts, doctor checks, and cortex-update.sh.yaml, unrelated module import
exit) should be confirmed unrelated to your diff before reporting.bash -n and the adversarial gateinstall.sh --check runs from the real path with no error