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:
- Type
/skill - Browse through user, project, and plugin skills
- 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:
- Type
/create-skill - Friday will guide you through creating a new skill
- 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