Skills

Overview

Skills are reusable instructions that Friday automatically loads into its context, allowing you to define specialized behaviors and guidelines that persist across conversations. Unlike custom commands that you invoke explicitly, skills work behind the scenes to enhance Friday's capabilities with domain-specific knowledge, formatting rules, or workflow patterns. Store skills in ~/.claude/skills/ for personal use across all projects, or in .claude/skills/ for project-specific skills that can be shared with your team. Friday's skills are compatible with Claude Code's skill ecosystem with some exceptions, see below for more details.

Skills are automatically loaded by the main Friday agent. Subagents can also load specific skills by including them in their agent definition using the skills parameter.

Quick Start

Option 1: Browse and use existing skills

Use the /skill command to browse all available skills and trigger them:

  1. Type /skill
  2. Browse through user, project, and plugin skills
  3. Select a skill to use it in your current conversation

Option 2: Create a skill with Friday

The easiest way to create a skill is to use the /create-skill command:

  1. Type /create-skill
  2. Friday will guide you through creating a new skill
  3. Restart your Friday session to make the new skill available

Option 3: Create a skill manually

1. Create the skills directory

mkdir -p ~/.claude/skills/my-first-skill

2. Create a SKILL.md file

cat > ~/.claude/skills/my-first-skill/SKILL.md << 'EOF'
---
name: code-reviewer
description: Apply thorough code review standards focusing on security and performance
---

# Code Review Standards

When reviewing code, always check for:

## Security
- Input validation and sanitization
- Authentication and authorization checks
- Sensitive data handling

## Performance
- Algorithm efficiency
- Database query optimization
- Memory usage patterns

## Best Practices
- Error handling
- Code readability
- Test coverage
EOF

3. Restart Friday

Skills are loaded when Friday starts. Restart your Friday session to make the new skill available.

Usage

Skill File Structure

Skills are directories containing a SKILL.md file with YAML frontmatter:

---
name: skill-name
description: Brief description of what this skill provides
---

# Skill Title

Your skill instructions go here. These instructions will be
automatically included in Friday's context.

## Section 1

Detailed guidelines...

## Section 2

More instructions...

Frontmatter Fields

  • name - A unique identifier for the skill (max 64 characters, required)
  • description - A brief description of what the skill does (max 1024 characters, required)

Both fields are required. Skills without valid frontmatter will be ignored.

Skill Locations

Friday loads skills from three locations:

User Skills (~/.claude/skills/)

Personal skills available across all your projects. Use this for:

  • Personal coding preferences
  • General-purpose guidelines
  • Reusable patterns you use frequently

Project Skills (.claude/skills/)

Project-specific skills that can be committed to version control and shared with your team. Use this for:

  • Project-specific conventions
  • Team coding standards
  • Domain-specific knowledge for the project

Plugin Skills

Skills provided by enabled plugins. These are automatically loaded when you enable a plugin and provide specialized capabilities for specific integrations or workflows.

Using the /skill Command

The /skill command provides a convenient way to browse and trigger skills on demand:

/skill

This opens a modal showing all available skills from user, project, and plugin sources. Each skill displays:

  • Name - The skill identifier
  • Description - What the skill does
  • Source - Where the skill comes from (user, project, or plugin name)

When you select a skill, Friday will run the agent with the instruction use the selected skill, applying that skill's guidelines to the current conversation.

Examples

Example 1: PR Formatter Skill

A skill that ensures consistent PR formatting:

# ~/.claude/skills/pr-formatter/SKILL.md

---

name: pr-formatter
description: Format PR titles and descriptions with standardized sections, use this before creating or updating a PR

---

# PR Formatter

## Title Format

- If Linear ID is available: `[LINEAR-ID] Title`
- Otherwise: `Title`

## Description Format

Wrap any code blocks in backticks for readability

## Overview

Brief overview of changes

## Implementation Details

- change 1 in `TestCode`
- change 2 in `test_code.py`

This skill helps Friday automatically format PRs according to your team's standards.

Example 2: Testing Standards Skill

A skill that enforces testing best practices:

# .claude/skills/testing-standards/SKILL.md

---

name: testing-standards
description: Apply comprehensive testing standards for all code changes

---

# Testing Standards

When writing or reviewing tests:

## Test Structure

- Use descriptive test names that explain what is being tested
- Follow Arrange-Act-Assert pattern
- One assertion per test when possible

## Coverage Requirements

- All new functions must have unit tests
- Critical paths require integration tests
- Edge cases and error conditions must be tested

## Test Quality

- Tests should be independent and isolated
- Use fixtures and mocks appropriately
- Avoid testing implementation details

Example 3: API Design Skill

A skill for consistent API design:

# ~/.claude/skills/api-design/SKILL.md

---

name: api-design
description: Guidelines for designing RESTful APIs with consistent patterns

---

# API Design Guidelines

## Endpoint Naming

- Use plural nouns for resources: `/users`, `/posts`
- Use kebab-case for multi-word resources: `/user-profiles`
- Nest resources logically: `/users/:id/posts`

## HTTP Methods

- GET: Retrieve resources (idempotent)
- POST: Create new resources
- PUT: Replace entire resource
- PATCH: Partial update
- DELETE: Remove resource

## Response Format

- Always return JSON
- Include appropriate status codes
- Provide meaningful error messages
- Use consistent field naming (camelCase)

## Versioning

- Include version in URL: `/api/v1/users`
- Maintain backward compatibility within major versions

Tips and Best Practices

  • Keep skills focused - Each skill should address a specific domain or concern
  • Use clear descriptions - The description helps you remember what each skill does
  • Share team skills - Commit project-level skills to version control
  • Test your skills - Verify that Friday applies the skill instructions correctly
  • Update regularly - Keep skills current as your standards evolve
  • Avoid conflicts - Use unique names to prevent skills from overriding each other