Урок 08

Кастомные Skills для твоего проекта

Стандартные Skills покрывают общие пакеты. Но у каждого проекта есть свои конвенции.

Когда нужен кастомный Skill

  • В проекте есть доменная логика
  • Свои правила написания кода
  • Специфические паттерны
  • Интеграции с внутренними сервисами

Создание Skill

mkdir -p .ai/skills/my-project

Создай .ai/skills/my-project/SKILL.md :

---
name: my-project-development
description: Conventions and patterns for My Project.
---

# My Project Development

## When to use
Use when working with core domain features of My Project.

## File structure

- Controllers: `app/Http/Controllers/`
- Actions: `app/Actions/`
- DTOs: `app/DTOs/`
- Enums: `app/Enums/`

## Conventions

### Actions

All business logic in Actions:

```php
namespace App\Actions;

class CreateOrder
{
    public function handle(array $data): Order
    {
        // ...
    }
}

DTOs

Use DTOs instead of arrays:

namespace App\DTOs;

readonly class OrderData
{
    public function __construct(
        public string $title,
        public int $total,
    ) {}
}

Enums

namespace App\Enums;

enum OrderStatus: string
{
    case Pending = 'pending';
    case Paid = 'paid';
    case Shipped = 'shipped';
}

Testing

Use Pest. Every Action has a test:

it('creates an order', function () {
    $order = app(CreateOrder::class)->handle([...]);
    expect($order)->toBeInstanceOf(Order::class);
});

## Установка Skill

```bash
php artisan boost:update

Skill установится в .claude/skills/ или другую директорию агента .

Переопределение встроенных Skills

Если встроенный Skill не подходит — переопредели:

.ai/skills/livewire-development/SKILL.md

Boost использует твой вместо встроенного .

Пример: Skill для API

---
name: api-development
description: Build and modify API endpoints.
---

# API Development

## Structure

- Controllers: `app/Http/Controllers/Api/`
- Resources: `app/Http/Resources/`
- Requests: `app/Http/Requests/Api/`

## Response format

```json
{
    "data": {},
    "meta": {}
}

Errors

{
    "message": "...",
    "errors": {}
}

Versioning

All API routes under /api/v1/.

Authentication

Use Sanctum. Token via Authorization: Bearer.


## Skill для фронтенда

```markdown
---
name: frontend-development
description: React/Inertia conventions.
---

# Frontend Development

## Structure

- Pages: `resources/js/Pages/`
- Components: `resources/js/Components/`
- Hooks: `resources/js/hooks/`

## Naming

- Pages: PascalCase
- Hooks: camelCase, start with `use`
- Components: PascalCase

Советы

  • Держи Skill коротким. 100–300 строк
  • Примеры кода. Не только описание
  • Фокус на конвенциях. Что отличает твой проект
  • Обновляй при изменениях. Skill — живой документ

Итоги

  • Кастомные Skills для домена
  • Формат SKILL.md
  • Установка через boost:update
  • Переопределение встроенных
  • Примеры для API и фронтенда