К основному содержанию
скилл CX Codex

encore-go-service — скилл для Claude Code: сервисы и установка

Скилл помогает создавать сервисы Encore.go, раскладывать Go-пакеты и вызывать один сервис из другого. Пригодится для новых и уже спроектированных приложений.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add encoredev/skills --skill encore-go-service -a claude-code
npx skills add encoredev/skills --skill go-service -a claude-code
Открыть на GitHub

Что делает encore-go-service

Скилл объясняет, как устроить приложение на Encore.go: вынести API в сервисные пакеты, добавить базы и миграции, сгруппировать связанные сервисы по системам. Он также задаёт правила для одиночной, многосервисной и крупной системной структуры.

Вызов другого сервиса выглядит как обычный импорт и вызов функции, а Encore превращает его в RPC. Для общих хелперов используются пакеты без //encore:api; пакет без такого endpoint не становится сервисом. Сервисные границы ещё не выбраны — для этого скилл отсылает к encore-architecture.

Какие задачи решает

  • создать Go-сервис с API Encore.go
  • разложить приложение по сервисным пакетам
  • сгруппировать сервисы в системы
  • организовать внутренние пакеты для общих хелперов
  • вызвать один сервис из другого через типизированную функцию

Примеры запросов агенту

  • Создай сервис Encore.go для пользователей с endpoint GetUser и пакетом user.
  • Разложи это приложение по системам commerce и identity, сохранив отдельные сервисы.
  • Добавь вызов сервиса user из order через типизированную функцию Encore.go.

Как установить encore-go-service

1Через Skills CLI (Vercel)

npx skills add encoredev/skills --skill encore-go-service -a claude-code
npx skills add encoredev/skills --skill go-service -a claude-code

2Вручную: положить файлы

~/.claude/skills/go-service/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/go-service/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о encore-go-service

Как установить encore-go-service в Claude Code?

Выполните npx skills add encoredev/skills --skill encore-go-service -a claude-code, затем npx skills add encoredev/skills --skill go-service -a claude-code. После установки проверьте файл ~/.claude/skills/go-service/SKILL.md.

Что делает encore-go-service?

Скилл помогает создавать и раскладывать сервисы Encore.go, организовывать системы и внутренние пакеты, а также вызывать сервисы друг из друга.

Когда пакет Encore.go становится сервисом?

Пакет становится сервисом, если в нём есть хотя бы один endpoint с аннотацией //encore:api. Пакеты без неё подходят для общих хелперов.

Исходный текст

SKILL.md · Apache-2.0
---
name: encore-go-service
description: Implement Encore.go services and lay out an application using service packages, internal subpackages, systems, and typed service calls. For service boundaries and architecture decisions, use `encore-architecture`.
when_to_use: >-
  User wants to add or modify an Encore.go service or microservice, implement an already-chosen service layout, organize packages and directories, group services into system folders, or call another service. Trigger phrases: "add a Go service", "create a Go service", "add a microservice", "service package", "lay out these services", "Go package layout", "internal package", "call another service".
---

# Encore.go Service Structure

## Instructions

In Encore.go, **each package with an API endpoint is automatically a service**. No special configuration needed.

### Creating a Service

Simply create a package with at least one `//encore:api` endpoint:

```go
// user/user.go
package user

import "context"

type User struct {
    ID    string `json:"id"`
    Email string `json:"email"`
    Name  string `json:"name"`
}

//encore:api public method=GET path=/users/:id
func GetUser(ctx context.Context, params *GetUserParams) (*User, error) {
    // This makes "user" a service
}
```

### Minimal Service Structure

```
user/
├── user.go          # API endpoints
├── db.go            # Database (if needed)
└── migrations/      # SQL migrations
    └── 1_create_users.up.sql
```

## Application Patterns

### Single Service

An application can define its APIs in one root service package:

```
my-app/
├── encore.app
├── go.mod
├── api.go           # All endpoints
├── db.go            # Database
└── migrations/
    └── 1_initial.up.sql
```

### Multi-Service

Each service lives in its own package:

```
my-app/
├── encore.app
├── go.mod
├── user/
│   ├── user.go
│   ├── db.go
│   └── migrations/
├── order/
│   ├── order.go
│   ├── db.go
│   └── migrations/
└── notification/
    └── notification.go
```

### Large Application (System-based)

Group related services into systems:

```
my-app/
├── encore.app
├── go.mod
├── commerce/
│   ├── order/
│   │   └── order.go
│   ├── cart/
│   │   └── cart.go
│   └── payment/
│       └── payment.go
├── identity/
│   ├── user/
│   │   └── user.go
│   └── auth/
│       └── auth.go
└── comms/
    ├── email/
    │   └── email.go
    └── push/
        └── push.go
```

## Service-to-Service Calls

Just import and call the function directly - Encore handles the RPC:

```go
package order

import (
    "context"
    "encore.app/user"  // Import the user service
)

//encore:api auth method=GET path=/orders/:id
func GetOrderWithUser(ctx context.Context, params *GetOrderParams) (*OrderWithUser, error) {
    order, err := getOrder(ctx, params.ID)
    if err != nil {
        return nil, err
    }
    
    // This becomes an RPC call - Encore handles it
    orderUser, err := user.GetUser(ctx, &user.GetUserParams{ID: order.UserID})
    if err != nil {
        return nil, err
    }
    
    return &OrderWithUser{Order: order, User: orderUser}, nil
}
```

## Internal Helpers (Non-Service Packages)

Create packages without `//encore:api` endpoints for shared code:

```
my-app/
├── user/
│   └── user.go       # Service (has API)
├── order/
│   └── order.go      # Service (has API)
└── internal/
    ├── util/
    │   └── util.go   # Not a service (no API)
    └── validation/
        └── validate.go
```

## Guidelines

- A package becomes a service when it has `//encore:api` endpoints
- Services cannot be nested within other services
- Cross-service calls look like regular function calls
- Each service can have its own database
- Package names should be lowercase, descriptive
- Don't create services just for code organization - use sub-packages instead
- Use `encore-architecture` when the service boundaries have not been decided

© encoredev · Apache-2.0 · encoredev/skills

Похожие скиллы

Все скиллы по теме «Бэкенд и API» →
mcp-builder официальный anthropics Скилл проводит через создание MCP-сервера на TypeScript или Python: от изучения протокола до тестов и оценки качества. 130 949установок claude-api официальный anthropics Справочник по Anthropic SDK и API Claude для генерации кода без устаревших параметров и выдуманных методов. 74 198установок lark-im larksuite Скилл подключает Lark IM к агенту: он отправляет сообщения, ищет историю, управляет чатами и файлами. Подойдёт для задач вокруг командных коммуникаций. CX Codex +1 472 900установок lark-event larksuite Слушает события Lark/Feishu и отдаёт их потоком NDJSON. Подходит для ботов, обработчиков сообщений и долгих подписчиков. CX Codex +1 466 800установок caveman-discover JuliusBrussee Находит точки вызова LLM в репозитории и размечает их воркфлоу для Caveman Cloud, чтобы расходы на токены не сливались в одну общую кучу. CX Codex +1 104 400установок migration JuliusBrussee Скилл задаёт правила безопасных миграций схем, данных и API с обязательным откатом. Пригодится при изменениях, где нельзя терять данные или ломать совместимость. CX Codex +1 103 900установок

Из того же набора25

encore-frontend Скилл связывает фронтенд на React, Next.js, Vue или Svelte с бэкендом Encore.ts: генерация типизированного клиента, CORS и токены авторизации. CX Codex +1 763установок encore-migrate Пошагово переносит бэкенд на Encore.ts или Encore Go. Создаёт план в migration-plan.md, инвентаризирует эндпоинты, базы и очереди, разделяя серверную логику и фронтенд. CX Codex +1 725установок encore-go-auth Скилл помогает защищать Go-эндпоинты Encore и проверять, кто выполняет запрос. Пригодится для JWT, API-ключей и сессионных cookie. CX Codex +1 557установок encore-go-testing Скилл помогает писать и запускать тесты для Encore Go через encore test и стандартный пакет testing. Пригодится для API, сервисов, БД и ошибок. CX Codex +1 556установок encore-go-api Помогает агенту писать эндпоинты Encore Go с аннотацией //encore:api: типизированные структуры запроса и ответа, параметры пути, query, заголовки и cookie, коды ошибок. CX Codex +1 555установок encore-go-database Помогает создавать таблицы PostgreSQL, писать миграции и выполнять SQL-запросы в сервисах на Encore Go через пакет sqldb. CX Codex +1 553установок encore-go-code-review Скилл проверяет Go-код на Encore: инфраструктура внутри функций, забытый context, SQL-инъекции и другие анти-паттерны перед мержем. CX Codex +1 553установок encore-secret Скилл помогает хранить API-ключи и другие секреты в Encore.ts. Он подсказывает, как объявлять, читать и задавать значения по окружениям. CX Codex +1 418установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой