Add profile skill visibility policies

Extend _skills with sparse allow/block rules and an explicit default for future skills, using the existing layered plugin configuration and skill-entry normalization.

Enforce the policy across discovery, loading, and chat activation while preserving loaded history, legacy hidden-skill behavior, and canonical name/path identity.
This commit is contained in:
Alessandro 2026-08-05 10:54:17 +02:00
parent eec18ad839
commit c2ee867665
6 changed files with 244 additions and 18 deletions

View file

@ -2,7 +2,8 @@
## Purpose
- Own current-chat skill loading and hidden skill configuration.
- Own current-chat skill loading, hidden skill configuration, and profile-level
visibility policy.
## Ownership
@ -17,6 +18,11 @@
- Loaded skills are append-only from the user UI because their instructions live in chat history.
- Store configured skills in normalized portable paths.
- Hidden skills affect catalog/search/load visibility but must not remove loaded skill history.
- A profile visibility policy has an explicit future-skill default. It limits
discovery and new loading without pinning skills or removing history-loaded
instructions.
- Chat visibility overrides may reverse legacy `hidden_skills`, but cannot
re-enable a skill blocked by profile policy.
## Work Guidance

View file

@ -1,6 +1,7 @@
# Skills
Skills is a built-in Agent Zero plugin that manages skill loading and visibility for the current chat.
Skills is a built-in Agent Zero plugin that manages current-chat skill loading
and layered skill visibility, including profile-level policy from Agent Editor.
## What It Does
@ -8,7 +9,7 @@ Skills is a built-in Agent Zero plugin that manages skill loading and visibility
- hides noisy skills from the model-facing available catalog, skill search, and load access
- shows loaded skills without offering removal, because loaded skill bodies are part of chat history
- lets users hide or show skills live per conversation
- supports global and project scoped configurations without agent-profile variants
- supports global/project settings plus profile-level Agent Editor visibility policy
- links directly to the built-in Skills list
- links directly to the active project's Skills section when a project is active
@ -26,3 +27,5 @@ The shared skill discovery and loaded-skill ledger live in `helpers/skills.py`,
- hidden skills are stored as control data, not injected into the prompt
- hidden skill paths are stored in normalized `/a0/...` form so configs stay portable across development and Docker-style layouts
- if a configured hidden skill is not visible in the current agent scope, it is skipped quietly instead of breaking catalog builds
- profile visibility uses sparse Allowed/Blocked exceptions with an explicit
default for future skills; allowing a skill does not load or pin it

View file

@ -6,4 +6,4 @@ always_enabled: true
settings_sections:
- agent
per_project_config: true
per_agent_config: false
per_agent_config: true