Skip to content

feat: Add skills management system with features extensibility layer#66

Open
mattbrailsford wants to merge 2 commits into
devfrom
claude/skills-management-ui-P7Jvy
Open

feat: Add skills management system with features extensibility layer#66
mattbrailsford wants to merge 2 commits into
devfrom
claude/skills-management-ui-P7Jvy

Conversation

@mattbrailsford
Copy link
Copy Markdown
Contributor

Summary

This PR introduces a comprehensive Skills Management System for Umbraco AI, built on a new Features extensibility layer for the provider/capability system. Skills are managed entities in Core that represent provider-backed AI operations (web search, code interpreter, image generation, etc.) that users can configure and assign to agents via a backoffice management UI.

Key Changes

Core Infrastructure (Features System)

  • New feature marker interface (IAIFeature) enabling typed extension points on capabilities beyond the base capability contract
  • Feature discovery methods on IAICapability and IAIConfiguredCapability: TryGetFeature<T>(), HasFeature<T>(), GetFeatures()
  • Provider-level feature aggregation scanning all capabilities to expose available features
  • Management API exposure of provider features in provider detail responses

Skills Domain & Persistence

  • Skill domain model (AISkill) with properties: alias, name, description, skillTypeId, connectionId, settings, toolScopeIds, isActive, and standard audit metadata
  • Skills feature interface (IAISkillsFeature) defining provider contract for skill type discovery and settings schema generation
  • Skill descriptor (AISkillDescriptor) representing available skill types from providers
  • Skill service (IAISkillService) for CRUD operations, availability queries, and schema resolution
  • EF Core persistence layer with repository, entity factory, and migrations for both SQL Server and SQLite

Management API

  • 8 REST endpoints for skill management:
    • GET /v1/skill — list all skills (paginated with filtering)
    • GET /v1/skill/{idOrAlias} — get skill detail
    • POST /v1/skill — create skill
    • PUT /v1/skill/{id} — update skill
    • DELETE /v1/skill/{id} — delete skill
    • GET /v1/skill/{alias}/exists — check alias uniqueness
    • GET /v1/skill/available-types — list available skill types (optionally filtered by connection)
    • GET /v1/skill/settings-schema — get dynamic settings schema for a skill type
  • Request/response models with proper validation and immutability constraints (skillTypeId is immutable after creation)

Frontend UI

  • Skills collection view with table listing skills, their types, connections, status, and modification dates
  • Skills workspace editor with:
    • Details tab: connection picker, skill type selector, dynamic settings editor, tool scope picker
    • Info tab: version history, metadata, creation/modification timestamps
  • Create flow with modal for selecting connection and skill type before editing
  • Menu integration under the AI section alongside Connections and Profiles
  • Type-safe models and data sources following Umbraco patterns

OpenAI Provider Integration

  • OpenAI skills feature implementing IAISkillsFeature on the Chat capability
  • Initial skill types: web-search, code-interpreter, image-generation with descriptors and optional settings schemas

Implementation Details

  • Skills are provider-level entities (like connections), not agent-specific, enabling reuse across multiple agents
  • Features are not metadata flags but full implementations with provider-specific logic and discovery
  • Same patterns as capabilities — consistent API surface for feature discovery and access
  • Settings are provider-specific — stored as JSON, schema-driven by providers for dynamic UI generation
  • Tool scopes for permission grouping — allows agents to include/exclude skills via scope-based permissions
  • Immutable skill type — prevents breaking changes to skill configuration after creation
  • Optimistic concurrency via version tracking on save operations

Files Changed

  • Core: 7 modified files (providers, configuration)
  • Persistence: 3 modified files + 4 new files (entity, factory, repository, migrations)
  • Web API: 1 modified file + 8 new controller files + 5 new model files + 1 mapping file
  • Frontend: ~25 new files (constants, types, collection, workspace, repository, modals, manifests)
  • OpenAI Provider: 1 new file (

https://claude.ai/code/session_015RD6irreUevTGNUnzEDZtD

Comprehensive design plan for integrating the new Agent Skills
standard (supported by both Anthropic and OpenAI) into Umbraco.AI.
Covers domain model, provider sync, management API, frontend UI,
chat client integration, and database schema.

https://claude.ai/code/session_015RD6irreUevTGNUnzEDZtD
Replaces the earlier SKILL.md manifest/file bundle design with a
refined architecture based on the Features extensibility layer.
Key changes:

- Skills in Core as provider-level managed entities
- Features as typed interfaces on capabilities (IAIFeature)
- TryGetFeature<T>()/HasFeature<T>() discovery pattern
- Provider-implemented IAISkillsFeature with available types
- 8-phase implementation plan covering backend + frontend

https://claude.ai/code/session_015RD6irreUevTGNUnzEDZtD
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants