- AGENTS.md Header Format
- QUICK_FACTS.md (Moved from docs/)
- FAQ.md (Moved from docs/)
- MAINTENANCE_REPORT.md
- AUDIT.md
- SUGGESTIONS.md
- docs/index.md
- Dependency Bloat: The
pyproject.tomlcontains an extensive list of dependencies and optional extras, making the package heavy and difficult to maintain. - Service Bundling: Multiple standalone services (intent, skill installer, etc.) are bundled in a single repo, increasing complexity.
- Pipeline Complexity: The intent pipeline is highly configurable but also highly complex, leading to potential "configuration hell" for users.
- Legacy Compatibility: High amount of "glue code" to maintain compatibility with Mycroft skills and legacy messagebus events.
- Bare
except:clauses (5 instances):transformers.py:56,116,203,intent_services/service.py:165,483— fixed toexcept Exception:. - Typo
validate_constrainstsinskill_installer.py— fixed tovalidate_constraints(method + 2 call sites). - Missing return type hints across
skill_manager.py(all 35 methods),skill_installer.py,transformers.py— all added. - Missing docstrings on
SkillsStoremethods — added.
- plugin_skills dict concurrent mutation (skill_manager.py:585-603, 618-661) —
_unload_plugin_skilland iteration methods were not guarded by_plugin_skills_lock, creating RuntimeError: dictionary changed size during iteration. FIXED: added lock guards and snapshot-before-iterate pattern. - Busy-wait in fallback skill response collection (fallback_service.py:122-125) —
_collect_fallback_skillsspun withtime.sleep(0.02)on every utterance. FIXED: replaced withthreading.Eventsignaling. - Temporary Event object spam (skill_manager.py:462) —
wait_for_intent_servicecreated one throwaway Event per 1-second retry. FIXED: reusedself._stop_event.
- S-001:
_unload_on_network_disconnect/internet_disconnect/gui_disconnectare stub methods — no implementation. - S-002:
handle_uninstall_skillalways returns "not implemented". - S-003:
validate_skillonly checks GitHub URL prefix; no structural skill validation. - S-006:
send_skill_list,activate_skill,deactivate_skill,deactivate_exceptdo not track external/Hivemind skills.
- Audit the
optional-dependencieslist to see if some skills-essential can be decoupled (see S-004). - Consider adding
ruff E722lint rule to CI to prevent bareexcept:regressions (see S-005).