Skill Format

Every Golden Path skill is defined as a structured document with YAML frontmatter and a markdown body. Skills are stored in the database and rendered to markdown when executed. This page is the complete specification for the format.

Frontmatter

The frontmatter defines the skill's metadata and argument schema. It is parsed as YAML between --- delimiters.

  • Name
    name
    Type
    string
    Description

    Skill slug, used as the MCP tool name. Must be kebab-case (e.g., add-caching).

  • Name
    description
    Type
    string
    Description

    What the skill does, in 1-2 sentences. Shown when listing available tools.

  • Name
    tool_name
    Type
    string
    Description

    Optional override for the MCP tool name. Defaults to name.

  • Name
    args
    Type
    array
    Description

    Skill arguments. Each becomes a parameter on the MCP tool.

Argument fields

Each entry in args accepts:

  • Name
    name
    Type
    string
    Description

    Argument name (snake_case). Also used as the template variable name (PascalCase conversion automatic).

  • Name
    description
    Type
    string
    Description

    What this argument is for. Shown in tool parameter descriptions.

  • Name
    required
    Type
    boolean
    Description

    Whether the argument must be provided.

  • Name
    type
    Type
    string
    Description

    Value type: string (default), boolean, number.

  • Name
    enum
    Type
    array
    Description

    Allowed values. Renders as a dropdown/choice in the tool schema.

  • Name
    default
    Type
    string
    Description

    Default value when not provided.

Example frontmatter

---
name: add-caching
description: Adds Redis caching to a service with cache-aside pattern.
args:
  - name: service_name
    description: Name of the target service (PascalCase)
    required: true
  - name: cache_provider
    description: Cache backend to use
    required: false
    type: string
    enum: [redis, memory]
    default: redis
  - name: ttl_minutes
    description: Default cache TTL in minutes
    required: false
    type: number
    default: "30"
---

Body structure

The markdown body follows a standard structure with named sections:

Title

The H1 heading. Describes the skill's purpose.

# Add Caching

Description (optional)

Free text between the title and first section. Provides context.

Prerequisites

A checklist of conditions that should be true before executing:

## Prerequisites

- [ ] Target service exists and builds
- [ ] Redis server is accessible (if using redis provider)

Execution Steps

The phases of the skill, each as an H3 under the execution steps section:

## Execution Steps

### Phase 1: Install packages

Add NuGet packages to the infrastructure project:
- `Microsoft.Extensions.Caching.StackExchangeRedis`

### Phase 2: Create cache service

**Template:** `CacheService.cs`
**Target:** `src/{ServiceName}/Infrastructure/Caching/{ServiceName}CacheService.cs`

Create the cache service implementation.

### Phase 3: Register in DI

Add the following to the DI registration...

Success Criteria

A checklist for validating the result:

## Success Criteria

- [ ] Solution builds without errors
- [ ] Cache service resolves from DI container
- [ ] GET endpoint returns cached response on second call

Template references

Phases reference template files using bold-label patterns:

  • Name
    Template
    Type
    reference
    Description

    Filename of the template in the skill directory.

  • Name
    Target
    Type
    path
    Description

    Output path with variable placeholders.

  • Name
    Condition
    Type
    string
    Description

    Optional condition — template-ref is only included when a skill arg matches the specified value (e.g. EndpointStyle=controller).

All skill args are automatically available as {VarName} placeholders in templates — no need to declare replacements explicitly.

Template reference

**Template:** `CacheService.cs`
**Target:** `src/{ServiceName}/Infrastructure/Caching/{ServiceName}CacheService.cs`

Sections ordering

By default, sections appear in this order: Prerequisites, Execution Steps (phases), Success Criteria.

You can customize the ordering with the sections parameter in create_skill, inserting free-form sections at any position:

Custom section ordering

[
  { "type": "prerequisites", "heading": "Prerequisites", "content": "..." },
  { "type": "free", "heading": "Architecture Notes", "content": "..." },
  { "type": "execution-steps", "heading": "Execution Steps", "content": "" },
  { "type": "success-criteria", "heading": "Success Criteria", "content": "..." }
]

Was this page helpful?