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

aspire — скилл для Claude Code: что делает и установка

Помогает настроить .NET Aspire для локального запуска сервисов, ресурсов и обнаружения сервисов. Нужен при работе с AppHost и общими настройками сервисов.

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

Что делает aspire

Скилл подсказывает, как собрать AppHost для совместного запуска проектов, PostgreSQL, Redis и RabbitMQ. Он использует AddProject, WithReference и интеграции Aspire, чтобы передавать строку подключения и связывать сервисы без её жёсткой записи в коде.

Отдельный проект ServiceDefaults задаёт OpenTelemetry, проверки работоспособности, обнаружение сервисов и стандартную устойчивость HTTP-клиентов. Для локальной диагностики он направляет к Aspire dashboard с трассировками, логами и метриками.

AppHost остаётся средством разработки и сборки, а не процессом рабочей среды. Для развёртывания нужны результаты aspire publish или aspire deploy, поэтому запуск AppHost в рабочей среде — повод проверить схему поставки.

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

  • настроить AppHost для нескольких .NET-сервисов
  • подключить PostgreSQL, Redis или RabbitMQ через Aspire
  • передать зависимости между проектами через WithReference
  • добавить общие проверки работоспособности и телеметрию
  • настроить обнаружение сервисов для HTTP-клиента

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

  • Настрой AppHost для API, фонового обработчика и PostgreSQL через AddProject и WithReference.
  • Добавь ServiceDefaults в проект API и настрой проверки работоспособности с OpenTelemetry.
  • Свяжи payment-api с order-api через обнаружение сервисов Aspire.

Как установить aspire

1Через Skills CLI (Vercel)

npx skills add codewithmukesh/dotnet-claude-kit --skill aspire -a claude-code

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

~/.claude/skills/aspire/SKILL.md

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

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

Вопросы о aspire

Как установить aspire в Claude Code?

Выполните npx skills add codewithmukesh/dotnet-claude-kit --skill aspire -a claude-code, затем повторите npx skills add codewithmukesh/dotnet-claude-kit --skill aspire -a claude-code. Файл скилла находится в ~/.claude/skills/aspire/SKILL.md.

Что делает aspire?

Скилл помогает работать с .NET Aspire: настраивать AppHost, общие настройки сервисов, ресурсы, обнаружение сервисов и Aspire dashboard. Он охватывает локальную оркестрацию нескольких сервисов.

Можно ли развёртывать AppHost как процесс рабочей среды?

Нет. AppHost служит для разработки и сборки; для развёртывания используются материалы, созданные через aspire publish, либо команда aspire deploy.

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

SKILL.md · MIT
---
name: aspire
description: >
  .NET Aspire for cloud-native orchestration. Covers AppHost configuration,
  service defaults, resource configuration, service discovery, and the Aspire
  dashboard.
  Load this skill when setting up local development orchestration, service
  discovery, or Aspire-managed infrastructure, or when the user mentions
  "Aspire", "AppHost", "service defaults", "service discovery", "orchestration",
  "Aspire dashboard", "AddProject", "WithReference", or "cloud-native .NET".
---

# .NET Aspire

## Core Principles

1. **AppHost orchestrates; it is never deployed itself** — Aspire's core job is the local development experience: starting services, databases, and message brokers together. Modern Aspire also generates deployment assets (`aspire publish` for docker-compose/Kubernetes manifests, `aspire deploy` for Azure Container Apps) — but the AppHost process itself stays a dev/build-time tool, not a production runtime.
2. **Service defaults are your baseline** — The `ServiceDefaults` project configures OpenTelemetry, health checks, and resilience for all services in one place.
3. **Use Aspire integrations** — Aspire has built-in integrations for PostgreSQL, Redis, RabbitMQ, SQL Server, and more. They handle connection strings, health checks, and tracing automatically.
4. **The dashboard is your observability tool** — Use the Aspire dashboard for local development tracing, logging, and metrics instead of setting up Seq/Grafana locally.

## Patterns

### AppHost Configuration

```csharp
// AppHost/Program.cs
var builder = DistributedApplication.CreateBuilder(args);

// Infrastructure resources
var postgres = builder.AddPostgres("postgres")
    .WithPgAdmin()
    .AddDatabase("myappdb");

var redis = builder.AddRedis("redis")
    .WithRedisInsight();

var rabbitmq = builder.AddRabbitMQ("messaging")
    .WithManagementPlugin();

// Application projects
var api = builder.AddProject<Projects.MyApp_Api>("api")
    .WithReference(postgres)
    .WithReference(redis)
    .WithReference(rabbitmq)
    .WithExternalHttpEndpoints();

var worker = builder.AddProject<Projects.MyApp_Worker>("worker")
    .WithReference(postgres)
    .WithReference(rabbitmq);

builder.Build().Run();
```

### Service Defaults

```csharp
// ServiceDefaults/Extensions.cs — Standard Aspire service defaults
// Configures OpenTelemetry (metrics + tracing), health checks, service discovery, and resilience
public static class Extensions
{
    public static IHostApplicationBuilder AddServiceDefaults(this IHostApplicationBuilder builder)
    {
        builder.ConfigureOpenTelemetry();
        builder.AddDefaultHealthChecks();
        builder.Services.AddServiceDiscovery();

        builder.Services.ConfigureHttpClientDefaults(http =>
        {
            http.AddStandardResilienceHandler();
            http.AddServiceDiscovery();
        });

        return builder;
    }

    // ConfigureOpenTelemetry: adds logging, metrics (ASP.NET, HttpClient, Runtime),
    //   tracing (ASP.NET, HttpClient, EF Core), and OTLP exporter if configured
    // AddDefaultHealthChecks: adds a "self" liveness check tagged ["live"]
}
```

### Using Service Defaults in a Project

```csharp
// MyApp.Api/Program.cs
var builder = WebApplication.CreateBuilder(args);
builder.AddServiceDefaults();

// Add Aspire integrations
builder.AddNpgsqlDbContext<AppDbContext>("myappdb");
builder.AddRedisDistributedCache("redis");

var app = builder.Build();
app.MapDefaultEndpoints(); // health check endpoints
app.Run();
```

### Service-to-Service Communication

```csharp
// AppHost — configure service references
var orderApi = builder.AddProject<Projects.OrderApi>("order-api");
var paymentApi = builder.AddProject<Projects.PaymentApi>("payment-api")
    .WithReference(orderApi); // paymentApi can discover orderApi

// In PaymentApi — use service discovery
builder.Services.AddHttpClient<OrderClient>(client =>
{
    client.BaseAddress = new Uri("https+http://order-api");
});
```

### Solution Structure with Aspire

```
MyApp.slnx
├── MyApp.AppHost/               # Aspire orchestrator
│   └── Program.cs
├── MyApp.ServiceDefaults/       # Shared service configuration
│   └── Extensions.cs
├── src/
│   ├── MyApp.Api/               # Web API project
│   └── MyApp.Worker/            # Background worker
└── tests/
    └── MyApp.Api.Tests/
```

## Anti-patterns

### Don't Deploy the AppHost Process

```csharp
// BAD — running the AppHost executable in production as an orchestrator
// The AppHost is a dev/build-time tool, not a production runtime

// GOOD — deploy the generated assets, not the AppHost:
//   aspire publish  → docker-compose / Kubernetes manifests from the app model
//   aspire deploy   → direct deployment (e.g., Azure Container Apps)
```

### Don't Hardcode Connection Strings with Aspire

```csharp
// BAD — hardcoding connection strings defeats Aspire's purpose
builder.Services.AddDbContext<AppDbContext>(o =>
    o.UseNpgsql("Host=localhost;Database=myapp;..."));

// GOOD — use Aspire integration (connection string injected automatically)
builder.AddNpgsqlDbContext<AppDbContext>("myappdb");
```

### Don't Skip Service Defaults

```csharp
// BAD — manually configuring each service
builder.Services.AddOpenTelemetry()...
builder.Services.AddHealthChecks()...

// GOOD — use shared service defaults
builder.AddServiceDefaults();
```

## Decision Guide

| Scenario | Recommendation |
|----------|---------------|
| Local dev with multiple services | Aspire AppHost |
| Single-project local dev | `dotnet run` is fine, Aspire optional |
| Shared service configuration | ServiceDefaults project |
| Database for local dev | Aspire `AddPostgres()` / `AddSqlServer()` |
| Service discovery | Aspire's built-in service discovery |
| Production deployment | `aspire publish` (compose/K8s manifests) or `aspire deploy` (ACA); never the AppHost itself |
| Observability in local dev | Aspire dashboard (auto-configured) |

© codewithmukesh · MIT · codewithmukesh/dotnet-claude-kit

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

Всё по теме «Бэкенд и API» →
aspire-configuration Aaronontheweb Учит AppHost переводить ресурсы Aspire в явные ключи конфигурации, чтобы код приложения не зависел от клиентов Aspire и service discovery. CX Codex +1 463установок aspireify Microsoft Скилл сканирует репозиторий, предлагает граф ресурсов и доводит AppHost до рабочего состояния. Пригодится сразу после aspire init. CX Codex +1 630установок akka-net-aspire-configuration Aaronontheweb Скилл помогает связать Akka.NET и .NET Aspire: актор-система, кластер, персистентность и Akka.Management в одном проекте. CX Codex +1 396установок aspire-monitoring Microsoft Скилл для наблюдения за приложениями .NET Aspire: логи, трейсы, метрики, состояние ресурсов и отдельный дашборд. Помогает разобраться, что сломалось, до правок в коде. CX Codex +1 1 100установок create-spring-boot-java-project официальный github Создаёт каркас Spring Boot на Java с Maven, базами данных и Docker Compose. Подходит для старта API, которому нужны PostgreSQL, Redis и MongoDB. 9 516установок create-spring-boot-kotlin-project официальный github Скилл создаёт каркас Spring Boot на Kotlin с Gradle и настраивает PostgreSQL, Redis и MongoDB. Подойдёт, если нужен стартовый проект с реактивными зависимостями и тестами. 8 700установок

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

project-setup Подбирает стек технологий для проектов на .NET: базу данных, авторизацию, кеш и очереди. Пригодится на старте архитектурного выбора или ревизии зависимостей. CX Codex +1 2 800установок instinct-system Фиксирует паттерны, правки пользователя и находки в файлах проекта. Нужен, когда агенту надо учиться на повторяющихся решениях. CX Codex +1 2 800установок container-publish Собирает OCI-образы прямо из dotnet publish /t:PublishContainer, без Dockerfile. Пригодится, когда проект на .NET 10 надо упаковать в контейнер и запушить в реестр. CX Codex +1 2 800установок workflow-mastery Набор практик и готовых конфигураций для ускорения разработки на .NET в Claude Code. Помогает настроить параллельные сессии через git worktree, циклы верификации и лимиты контекста. CX Codex +1 2 800установок convention-learner Разбирает существующий код и выводит из него правила проекта: имена, структуру папок, оформление тестов. Пригодится, когда агент пишет код не в том стиле. CX Codex +1 2 800установок api-versioning Направляет агента при версионировании ASP.NET Core API через библиотеку Asp.Versioning. Помогает настроить пути, заголовки и мягкую депрекацию устаревших версий. CX Codex +1 2 800установок caching Настраивает кеширование в приложениях .NET 10: HybridCache, кеш ответов и распределённый кеш. Нужен при снижении нагрузки на базу данных и настройке инвалидации. CX Codex +1 2 800установок health-check Прогоняет .NET-проект по восьми осям и ставит буквенные оценки A–F с общим GPA. Пригодится при онбординге, перед релизом и после уборки кода. CX Codex +1 2 800установок

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

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