| 1 | # Skills Plugin DOX |
| 2 | |
| 3 | ## Purpose |
| 4 | |
| 5 | - Own current-chat skill loading, hidden skill configuration, and profile-level |
| 6 | visibility policy. |
| 7 | |
| 8 | ## Ownership |
| 9 | |
| 10 | - `hooks.py` owns skill config normalization. |
| 11 | - `api/skills_catalog.py` owns skill catalog access and loading selected skills into chat history. |
| 12 | - `webui/` owns skill settings UI and store. |
| 13 | - `default_config.yaml`, `plugin.yaml`, `README.md`, and `LICENSE` own defaults, metadata, docs, and license. |
| 14 | |
| 15 | ## Local Contracts |
| 16 | |
| 17 | - Skills selected in `webui/` load into the current chat history only; do not store them as scope defaults. |
| 18 | - Loaded skills are append-only from the user UI because their instructions live in chat history. |
| 19 | - Store configured skills in normalized portable paths. |
| 20 | - Hidden skills affect catalog/search/load visibility but must not remove loaded skill history. |
| 21 | - A profile visibility policy has an explicit future-skill default. It limits |
| 22 | discovery and new loading without pinning skills or removing history-loaded |
| 23 | instructions. |
| 24 | - Chat visibility overrides may reverse legacy `hidden_skills`, but cannot |
| 25 | re-enable a skill blocked by profile policy. |
| 26 | |
| 27 | ## Work Guidance |
| 28 | |
| 29 | - Coordinate skill loading changes with `skills_tool`, loaded-skill history reattachment, and settings UI. |
| 30 | |
| 31 | ## Verification |
| 32 | |
| 33 | - Run skill runtime/catalog tests or smoke-test active, hidden, global, project, and chat-scope behavior after changes. |
| 34 | |
| 35 | ## Child DOX Index |
| 36 | |
| 37 | No child DOX files. |