OSSA Skills Extension Implementation
OSSA Skills Extension Implementation
Overview
The Skills Extension enables Claude Desktop and Cursor to discover and invoke OSSA agents as callable skills using slash commands (e.g., /devops:mr-review).
Changes
1. OSSA Manifest Schema Extension
Added new skills extension to OSSA v0.3.3 manifests:
extensions: skills: enabled: true skill_name: "category:name" # e.g., devops:mr-review description: "One-sentence description" invocation: "When to use this skill" instructions: | Detailed instructions including: - What the skill does - Usage examples - Expected output format
2. Updated Agent Manifests
Completed (3 agents):
-
code-reviewer (
packages/@ossa/code-reviewer/agent.ossa.yaml)- Skill:
dev:analyze-project - Purpose: Deep code analysis and quality assessment
- Skill:
-
security-scanner (
packages/@ossa/security-scanner/agent.ossa.yaml)- Skill:
devops:security-scan - Purpose: Security vulnerability scanning
- Skill:
-
ci-fixer-worker (
packages/@ossa/ci-fixer-worker/agent.ossa.yaml)- Skill:
devops:ci-debug - Purpose: Debug and fix failing CI/CD pipelines
- Skill:
Note: mr-reviewer was archived/consolidated in release/v0.1.x
3. Agent-BuildKit Integration
Created new buildkit skills command for managing skills:
Commands:
buildkit skills list- List all skillsbuildkit skills get <manifestPath>- Get skill detailsbuildkit skills validate [--manifest <path>]- Validate skillsbuildkit skills generate <manifestPath>- Generate skills configbuildkit skills export --format <claude-desktop|cursor|both>- Export to JSONbuildkit skills add <manifestPath>- Add skills extension interactively
Files Added:
src/types/skills.types.ts- TypeScript types and Zod schemassrc/services/skills.service.ts- Skills CRUD servicesrc/cli/commands/skills.command.ts- CLI commandstest-skills.ts- Test script
Skills Extension Schema
Field Definitions
{ enabled: boolean; // Enable/disable skill skill_name: string; // Format: "category:name" description: string; // 10-200 chars, user-facing invocation: string; // When to use (10-300 chars) instructions: string; // Detailed guide (50+ chars) }
Validation Rules
-
skill_name: Must match regex
/^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*$/- Valid:
devops:mr-review,cs:expansion,dev:analyze-project - Invalid:
MrReview,mr_review,mr-review(no category)
- Valid:
-
description: 10-200 characters, clear and concise
-
invocation: Describes triggers/use cases
-
instructions: Should include:
- Usage: section with input format
- Output: section with expected results
- Examples when helpful
Export Formats
Claude Desktop (skills.json)
{ "skills": [ { "name": "devops:mr-review", "description": "Perform comprehensive code review on a GitLab merge request", "invocation": "Use when reviewing GitLab merge requests", "manifest": "/path/to/agent.ossa.yaml", "instructions": "..." } ] }
Cursor (cursor-skills.json)
{ "version": "0.4.9", "skills": [ { "id": "devops-mr-review", "name": "mr-reviewer", "description": "...", "trigger": "/devops:mr-review", "manifestPath": "/path/to/agent.ossa.yaml", "category": "devops" } ] }
Skill Categories
Recommended categories:
- devops: CI/CD, deployment, operations (mr-review, ci-debug, deploy)
- dev: Development tools (analyze-project, refactor, tdd-setup)
- cs: Customer Success (expansion, qbr, health-check, onboarding)
- gitlab: GitLab-specific (dashboard, duo-analyze, glql)
- api: API tooling (sync-apidog, validate-api)
Implementation Status
Phase 1: Core Implementation ✓
- Skills Extension schema design
- TypeScript types and Zod validation
- Skills service (CRUD operations)
- CLI commands
- 3 production agents updated
Phase 2: Rollout (In Progress)
- code-reviewer
- security-scanner
- ci-fixer-worker (devops:ci-debug)
-
mr-reviewer(archived in release/v0.1.x) - cluster-operator (devops:k8s-ops)
- documentation-aggregator (dev:doc-gen)
- drupal-standards-checker (dev:drupal-standards)
- issue-lifecycle-manager (gitlab:issue-triage)
- kagent-worker (devops:kagent-ops)
- mcp-server-builder (dev:mcp-builder)
- module-generator (dev:module-gen)
- ossa-validator (dev:ossa-validate)
- pipeline-remediation (devops:pipeline-fix)
- release-coordinator (devops:release-coord)
- token-optimizer (dev:token-optimize)
- vulnerability-scanner (devops:vuln-scan)
- wiki-aggregator (dev:wiki-aggregate)
Phase 3: Testing & Documentation
- Generate comprehensive skills.json for all agents
- Test with Claude Desktop
- Test with Cursor
- Update agent platform docs
Usage Examples
For Users (Claude Desktop/Cursor)
User: /devops:mr-review https://gitlab.com/blueflyio/platform-agents/-/merge_requests/845
Agent: I'll review MR #845 for you. Let me analyze:
- Code quality and style
- Security vulnerabilities
- Test coverage
- CI pipeline status
...
For Developers
# List all skills buildkit skills list --path ./platform-agents/packages/@ossa # Validate a skill buildkit skills validate --manifest ./mr-reviewer/agent.ossa.yaml # Export all skills buildkit skills export --format both --path ./packages/@ossa --output ./dist # Add skill to manifest buildkit skills add ./new-agent/agent.ossa.yaml \ --skill-name "devops:new-skill" \ --description "Does something awesome" \ --invocation "Use when doing awesome things" \ --instructions "Detailed instructions here..."
Testing
Manual Validation
-
Check YAML syntax:
yamllint packages/@ossa/*/agent.ossa.yaml -
Verify skill_name format:
grep -r "skill_name:" packages/@ossa/ | grep -v "^[a-z][a-z0-9-]*:[a-z][a-z0-9-]*$" -
Check required fields:
grep -A 5 "skills:" packages/@ossa/*/agent.ossa.yaml
Automated Testing (once buildkit builds)
npm --prefix agent-buildkit test npm --prefix agent-buildkit run build buildkit skills validate --path ./platform-agents/packages/@ossa buildkit skills export --format both --output ./test-export
Migration Guide
To add skills extension to existing OSSA manifest:
-
Determine category:name
- Use existing categories when possible
- Follow kebab-case convention
-
Add extension block
extensions: skills: enabled: true skill_name: "category:name" description: "Clear, concise description" invocation: "When to invoke" instructions: | **Usage:** - Input format - Parameters **Output:** - What to expect -
Validate
buildkit skills validate --manifest path/to/agent.ossa.yaml
References
- OSSA Specification: https://gitlab.com/blueflyio/ossa/openstandardagents
- Claude Desktop Skills: https://claude.ai/docs/skills
- Cursor Integration: https://cursor.com/docs/agents
- Platform Agents: https://gitlab.com/blueflyio/platform-agents
Next Steps
- Complete Phase 2 rollout (remaining 15 agents)
- Generate production skills.json files
- Test with Claude Desktop and Cursor
- Create MRs for review
- Update platform documentation
- Announce to team
Questions?
Contact: thomas@bluefly.io GitLab: @thomasscola