agentleFS
iapiap/hermes-guide/skills/diagnosing-update/SKILL.md

diagnosing-update

Skill6 starsChanged 8 days agoMITView on GitHub

Diagnose Hermes update issues — stale update lock, dead owner PID, wedged checkout, and update failures.

  • Installs packages

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Symptom: Update fails on macOS < 13 with node v25+ (libc++ symbol missing).

    line 76
  2. Very specific:

    Keep node pinned to 24.x in pm/lock.json

    line 81
  3. Very specific:

    Symptom: Every hermes command triggers a multi-minute retry loop.

    line 87
  4. Distinctive:

    After applying the fix:

    line 113

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Diagnosing Updates

Goal: reduce any update problem to one concrete fix — a lock removal, a retry, or a manual checkout update.

1. How to inspect

  • hermes guide — runs check_update_lock (stale lock audit)
  • hermes update — trigger an update
  • hermes --version — current version
  • ls ~/.hermes/installs/*/source-completion-* — pending update state

2. Common failures

Stale update lock (dead owner, held checkout)

Symptom: hermes guide reports broken update lock; hermes update hangs or fails.

Cause: Previous update process died but left the lock held on the checkout.

Fix:

# Check lock candidates
ls ~/.hermes/installs/*/source-completion-pending 2>/dev/null
# If owner PID is dead, the lock is genuinely wedged.
# DO NOT delete the lock while a holder exists.
# Identify the exact holder PID from the lock file before acting.
# Wait for the holder to finish, or use a supported stop procedure.
# Then retry:
hermes update

Stale update lock (dead owner, free checkout)

Symptom: hermes guide reports informational (not broken) stale lock.

Cause: Previous update completed but left residue. Harmless.

Fix:

# Safe to remove (human confirmation required) — exact paths only:
rm ~/.hermes/installs/*/source-completion-pending
rm ~/.hermes/installs/*/source-completion-attempts
# Then retry:
hermes update

Update layout unrecognized

Symptom: hermes guide reports UPDATE_LAYOUT_UNRECOGNIZED.

Cause: Install layout doesn't match expected patterns (git checkout, ZIP root).

Fix:

hermes config path           # verify $HERMES_HOME
ls ~/.hermes/installs/       # check install directories
# If layout is non-standard, prefer hermes update.
# Manual fallback requires locating the actual install directory first:
ls ~/.hermes/installs/       # identify the install root
# Then run from that directory:
# cd <install-root> && git pull && pip install -e .

macOS < 13 node toolchain issue

Symptom: Update fails on macOS < 13 with node v25+ (libc++ symbol missing).

Cause: Node v25+ requires __libcpp_verbose_abort which Monterey doesn't export.

Fix:

  • Keep node pinned to 24.x in pm/lock.json
  • Use --without cua-driver
  • See AGENTS.md "Traps" section for full details

Pending update tail

Symptom: Every hermes command triggers a multi-minute retry loop.

Cause: source-completion-pending file exists; Hermes tries to finish the update tail.

Fix:

rm ~/.hermes/installs/*/source-completion-pending
rm ~/.hermes/installs/*/source-completion-attempts
# Let one uninterrupted hermes command finish
hermes --version

3. Verification

hermes guide               # update check healthy
hermes update              # completes without error
hermes --version           # shows expected version

Pass: update check shows healthy; hermes update completes.

Fail: update check shows broken — check for stale locks or layout issues.

Verification

After applying the fix:

hermes guide               # update check healthy
hermes update              # completes without error
hermes --version           # shows expected version

Pass: update check shows healthy; hermes update completes.

Fail: update check shows broken — check for stale locks or layout issues.

4. Related

  • hermes-post-update — post-update verification and cleanup
  • installing-hermes — install/reinstall procedures
  • diagnosing-path — path resolution issues

Facts re-verified 2026-10-31 against upstream source at commit cedf4a3d78675283fa93e4e6ea2d6212bf414667: hermes_cli/checks.py (check_update_lock), hermes_cli/plugins_cmd_update.py. Re-verify before reuse.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.