Skip to main content

Skill Type Definitions

This page contains the type definitions used in the Skills Marketplace.

Skill Status

type SkillStatus = 'experimental' | 'stable';

Skill Install Method

// Install method for a skill
// - 'npx-single': npx skills add <owner>/<repo>
// - 'npx-multi': npx skills add <url> --skill <name>
// - 'download': No repo, show download button
type SkillInstallMethod = 'npx-single' | 'npx-multi' | 'download';

Skill

type Skill = {
id: string; // Derived from directory name
name: string; // From frontmatter (required)
description: string; // From frontmatter (required)
author?: string; // From frontmatter
version?: string; // From frontmatter
status: SkillStatus; // From frontmatter (default: 'stable')
tags: string[]; // From frontmatter (default: [])
sourceUrl?: string; // From frontmatter - optional external source URL
content: string; // Markdown content after frontmatter
hasSupporting: boolean; // Computed: has files beyond SKILL.md
supportingFiles: string[]; // Computed: list of supporting file paths
installMethod: SkillInstallMethod; // Computed based on source
installCommand?: string; // Computed: npx command
viewSourceUrl: string; // Computed: GitHub link to skill source
repoUrl: string; // Repository URL (Agent-Skills for official, sourceUrl for external)
isCommunity: boolean; // True if author is not "goose" (community-contributed)
};

SKILL.md Frontmatter Schema

---
# Required fields
name: string # Skill identifier
description: string # Brief description (1-2 sentences)

# Optional fields
author: string # Author name or GitHub handle
version: string # Semantic version (e.g., "1.0")
status: experimental | stable # Development status (default: stable)
tags: # Array of category tags
- string
source_url: string # GitHub repo URL for npx install
---