# NousResearch/hermes-agent · Skill delete guards bypass via category path names

## Open now

- 1 issue, 3 PRs open on GitHub.
- #120528: \[Bug\]: skill_manage delete removes a pinned or essential skill when it is named by its category path
- PR #120529: fix(skills): the delete pin/essential guard sees a skill named by its category path
- PR #120971: fix(skills): check base skill name against pinned and essential guards
- PR #129651: fix(skills): harden skill_manage name, pin and SKILL.md handling

These issues and PRs concern a bug where the skill management delete operation fails to protect pinned or essential skills when they are referenced by their category path rather than their base name. The work involves hardening the name-matching logic used in delete guards.

## TL;DR

- 6 member(s): 1 open issue(s), 0 closed issue(s), 3 open PR(s), 0 merged PR(s), 2 PR(s) closed without merging.
- No fix has been merged to main; one or more PRs were attempted (see below).
- **Recommended:** review the prior/competing PR(s) below. A fix was attempted but not merged; your case may extend or revive that work.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.40`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Open related issues

- #120528: \[Bug\]: skill_manage delete removes a pinned or essential skill when it is named by its category path

## Prior & competing PRs

- **#120529: fix(skills): the delete pin/essential guard sees a skill named by its category path**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#120674`
  - files: `tests/tools/test_skill_manager_tool.py`, `tools/skill_manager_guards.py`, `tools/skill_manager_tool.py`, `tools/skill_usage.py`
- **#120674: fix(skills): enforce delete guards for categorized paths**. closed without merge
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#120529`
- **#120971: fix(skills): check base skill name against pinned and essential guards**. open
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `4fecd0515`, `#120529`, `#120529`
  - files: `tests/tools/test_skill_manager_tool.py`, `tools/skill_manager_guards.py`
- **#128730: fix(skills): harden skill_manage name, pin and SKILL.md handling**. closed without merge
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#129651`
- **#129651: fix(skills): harden skill_manage name, pin and SKILL.md handling**. open
  - maintainer direction: category `silent_close`; implication `active`
  - files: `tests/e2e/core/security/test_store_traversal.py`, `tests/tools/test_skill_manage_batch.py`, `tests/tools/test_skill_manager_tool.py`, `tools/skill_manager_batch.py`, `tools/skill_manager_guards.py`, `tools/skill_manager_tool.py`, `tools/skill_usage.py`, `tools/write_approval.py`

## Fix status

- No merged fix on record.
- Subsystem: `skills`
