{"repo":"NousResearch/hermes-agent","public_id":"72495","display_label":"Fix O(N) rglob-per-skill startup performance regression","summary":"These items address a startup performance regression where `_find_installed_skill_dir_by_name` triggered a full `SKILLS_DIR.rglob` scan for each optional skill, causing slow startup times. The fixes cache or consolidate the directory index to avoid repeated filesystem traversals.","subsystem":"skills","counts":{"members":5,"open_issues":0,"open_issues_distinct":0,"open_prs":0,"closed_issues":1,"merged_prs":1,"attempt_prs":3},"landed_fix":{"status":"merged_to_main","basis":"structural","pr":72622},"resolution":{"state":"unresolved","by":null},"freshness":{"state":"verified","last_verified_at":"2026-07-28T09:24:50+00:00","is_stale":false},"grouping":{"backbone":"STRUCTURAL_SPANNING","link_density":0.4},"fix_edges":[{"issue_number":72431,"pr_number":72622,"tier":"verified","basis":"closing_ref","confidence":0.95,"recoverable_from_timeline":true},{"issue_number":72495,"pr_number":72622,"tier":"verified","basis":"superseded_ref","confidence":0.9,"recoverable_from_timeline":false}],"members":[{"kind":"issue","number":72495,"title":"Startup takes minutes — `_find_installed_skill_dir_by_name` runs a full `SKILLS_DIR.rglob` once per optional skill (regression `72de75c0a` / v2026.7.20)","url":null,"state":"closed"},{"kind":"pr","number":72512,"title":"fix(tools): cache SKILLS_DIR rglob index to fix O(N*|tree|) startup regression (#72495)","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#72622","number":72622}],"category":"superseded_by_pr","implication":"superseded"},"merged":false},{"kind":"pr","number":72517,"title":"fix: build skill name index once instead of rglob per optional skill","url":null,"state":"closed","close_reason":{"refs":[{"kind":"commit","value":"1dfe781edd5e96d09511cf27d800a03e63b09789","number":0},{"kind":"pr","value":"#72622","number":72622}],"category":"implemented_elsewhere","implication":"superseded"},"merged":false},{"kind":"pr","number":72622,"title":"fix(skills): avoid redundant bind-mount scans","url":null,"state":"merged","close_reason":{"category":"merged","implication":"superseded"},"merged":true,"is_fix_pr":true,"fix_tier":"verified","files_changed":["tests/tools/test_skills_sync.py","tools/skills_sync.py"]},{"kind":"pr","number":72974,"title":"fix(skills): avoid repeated optional backfill scans","url":null,"state":"closed","close_reason":{"refs":[{"kind":"pr","value":"#72622","number":72622}],"category":"superseded_by_pr","implication":"superseded"},"merged":false}],"trust":{"default_tier":"verified","includes_suggested":false}}