{"repo":"NousResearch/hermes-agent","public_id":"108032","display_label":"External dirs skills provenance and write guard fix","summary":"These members address a bug where skills using external_dirs were misclassified as agent-owned ('learned') rather than external, and lacked proper guards preventing in-place writes or patches to those directories.","subsystem":null,"counts":{"members":4,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":2},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":128387,"merged_at":"2026-10-01T04:10:24+00:00"},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-10-01T04:10:24+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.5},"fix_edges":[{"issue_number":108032,"pr_number":128387,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false,"pr_merged_at":"2026-10-01T04:10:24+00:00"}],"members":[{"kind":"issue","number":108032,"title":"[Bug/Security]: external_dirs skills misclassified as \"learned\" (agent-owned) with absent write/patch permission guard","url":null,"state":"closed"},{"kind":"pr","number":108040,"title":"fix(skills): classify external_dirs as external and default-deny in-place writes","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"8c8fc6c1ec","number":0},{"kind":"pr","value":"#128387","number":128387},{"kind":"pr","value":"#17512","number":17512}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":108767,"title":"fix(skills): external_dirs distinct provenance and read-only guard (#108032)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#108040","number":108040},{"kind":"pr","value":"#108032","number":108032},{"kind":"pr","value":"#17512","number":17512}],"category":"duplicate_of","implication":"duplicate"},"merged":false},{"kind":"pr","number":128387,"title":"feat(skills): external mounts get an 'external' provenance tier (#108032)","url":null,"state":"merged","close_reason":{"category":"merged"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["agent/learning_graph.py","apps/desktop/src/app/capabilities/catalog/skill-catalog.tsx","apps/desktop/src/app/capabilities/skills/skill-detail.tsx","apps/desktop/src/app/capabilities/skills/skill-provenance.test.ts","apps/desktop/src/app/capabilities/skills/skill-provenance.ts","apps/desktop/src/types/hermes.ts","hermes_cli/curator.py","hermes_cli/web_routers/skills.py","tests/tools/test_skill_provenance_external.py","tools/skill_usage.py"]}],"trust":{"default_tier":"verified","includes_suggested":false}}