Skip to content

No way to edit or disable a configured skill #498

Description

@kristopolous

What happened?

In Settings → Skills, the "Enabled" list has no per-row action at all today — the flush-right action slot is wired to a Remove button (SkillSettings.tsx), but it's gated on skillCatalog.deleteSkill, which is never implemented (comment in skillCatalog.ts: "Delete omitted (no BE route)"). There is currently no DELETE route for skills at all (packages/trueforge/src/routes/skillRoutes.ts only has list/create/put), so the button silently never renders.

There's also no way to edit a configured skill's description or source once it's added — the SkillCatalogServer port (@truefoundry/assistant-ui-runtime) has no updateSkill method, and the list view (listSkills()) only returns { id, name, description } — not the skill's repoURL/path/ref — so even if an edit method existed, a custom GitHub-imported skill's current source isn't visible client-side to pre-fill a form (a registry-sourced skill's source is re-derivable from the catalog via its catalogId, but a plain imported one isn't).

Expected behavior

Like the equivalent MCP connector work (#494, #495):

  1. A real DELETE endpoint so a configured skill can be disabled/removed, wired through the already-optional SkillCatalogServer.deleteSkill.
  2. In the "Enabled" list, the flush-right action becomes "Edit", opening a dialog matching the "Update Agent" pattern (SaveAgentButton) — name shown, an actual "Disable" action available inside — rather than a bare inline "Remove" button.
  3. Full field editing (description, and repo/path/ref for GitHub-imported skills) needs a follow-up: either a new updateSkill port method plus a way to read a skill's full manifest client-side, or widening what listSkills() returns. That's a real port/data-shape change, not just a UI addition — scoping it out here rather than guessing at the shape.

How are you running TrueForge?

npx (standalone / SQLite) and Postgres

Version

main

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions