hermes - 💡(How to fix) Fix skill_manage reports success without verifying on-disk persistence — skills silently lost

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Error Message

  • No error surfaced: User and agent only discover the loss later In our session on 2026-05-23, the error log showed: and the error is swallowed error to the agent logging.error(f"Skill {name} was not persisted to {skill_path}")

Retry once, then surface error to agent

Root Cause

Root Cause Hypothesis

Fix Action

Fix / Workaround

After every skill_manage(action='create') or (action='patch'):

RAW_BUFFERClick to expand / collapse

Bug Description

The skill_manage tool (action='create') reports successful creation even when the SKILL.md file was never actually written to disk. The skill appears in the in-memory index during the session, but after a restart or cache reload, it vanishes silently.

Reproduction

  1. Create multiple skills in rapid succession via skill_manage(action='create')
  2. Observe: all report success in the tool response
  3. Restart the gateway or start a new session
  4. Try to load the skills — they're gone

Impact

  • Silent data loss: 6 of 11 skills created during a session disappeared
  • No error surfaced: User and agent only discover the loss later
  • Trust erosion: The agent builds workflows assuming skills exist that don't

Evidence

In our session on 2026-05-23, the error log showed: Skill 'strategy-selector' not found. Skill 'rules-auditor' not found. Skill 'sdd-architect' not found. Skill 'workspace-manager' not found. Skill 'skill-curator' not found. Skill 'receiving-code-review' not found.

code

All six had been "successfully" created earlier in the same session.

Root Cause Hypothesis

skill_manage writes to an in-memory index immediately but either: (a) defers disk writes and they're lost on certain code paths, or (b) the file write fails silently (permissions, path issues) and the error is swallowed

Proposed Solution: Post-Write Verification

After every skill_manage(action='create') or (action='patch'):

  1. stat/read back the SKILL.md file that was supposedly written
  2. If missing: retry the write, log a warning, and surface the error to the agent
  3. If present: confirm persistence before reporting success

Pseudocode:

def create_skill(name, content):
    write_file(skill_path, content)
    if not os.path.exists(skill_path):
        logging.error(f"Skill {name} was not persisted to {skill_path}")
        # Retry once, then surface error to agent
        write_file(skill_path, content)
        if not os.path.exists(skill_path):
            raise SkillPersistenceError(...)
    # Only now report success
    return {"status": "created", "verified": True}
Benefits
Safety: No more silent data loss
Stability: Agent can trust that created skills will survive restarts
Debuggability: Writes that fail get surfaced immediately, not discovered days later
Low cost: One os.path.exists() call per write operation

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING