Problem
When an agent with auto_evolve = true creates or updates a skill via background_skill_review:
- No approval gate for creates: the skill is installed directly without appearing in the Pending queue for human review (unless
auto_evolve_mode = "controlled" is configured, which is not the default on existing agents)
- No approval gate for updates/patches: when the reviewer proposes an update or version bump to an existing skill, it applies directly — no diff review, no approve/reject
- Not added to creator's allowlist: agents with
skills_mode = "allowlist" create skills they can never use — the new skill is globally installed but not in the agent's capabilities.skills list
- Not visible in agent's Skills tab: the agent detail Skills tab only shows assigned skills, with no section for "available but not assigned" skills
Expected behavior
- Auto_evolve creates → skill appears in Pending tab for approval
- Auto_evolve updates/patches → skill version change appears in Pending with a diff view (old vs new) for approval
- On approval, the skill is automatically added to the creating agent's allowlist (for new creates)
- The agent's Skills tab shows a section "Available" with skills that exist globally but aren't assigned to this agent, with a + button to assign
Current behavior
- Creates silently install globally
- Updates/patches silently apply in-place
- Agent's allowlist unchanged after create
- Agent cannot use its own creation
- No approval, no visibility, no diff review for version changes
Suggested fix
Kernel
approve_candidate in skill_workshop/storage.rs: after promoting to active, call registry.add_skill_to_agent(agent_id, skill_name) to update the creator agent's allowlist
- Store
agent_id in the candidate provenance (already done)
- For updates/patches in
controlled mode: create a candidate with the diff (old_content vs new_content) so the reviewer can see what changed before approving
Dashboard
- Pending tab: show diff view for update/patch candidates (old version vs proposed version)
- Agent Skills tab: add "Available" section below "Installed" showing unassigned global skills with assign/unassign buttons
Refs #5819, #5798
Problem
When an agent with
auto_evolve = truecreates or updates a skill viabackground_skill_review:auto_evolve_mode = "controlled"is configured, which is not the default on existing agents)skills_mode = "allowlist"create skills they can never use — the new skill is globally installed but not in the agent'scapabilities.skillslistExpected behavior
Current behavior
Suggested fix
Kernel
approve_candidateinskill_workshop/storage.rs: after promoting to active, callregistry.add_skill_to_agent(agent_id, skill_name)to update the creator agent's allowlistagent_idin the candidate provenance (already done)controlledmode: create a candidate with the diff (old_content vs new_content) so the reviewer can see what changed before approvingDashboard
Refs #5819, #5798