From kagents
C# 14 / .NET 10 patterns — primary constructors, collection expressions, pattern matching, records, required members, nullable reference types, file-scoped namespaces, sealed classes, naming conventions. USE FOR: writing modern C# code, applying .NET 10 language features, enforcing naming and style conventions. DO NOT USE FOR: concurrency (use csharp-concurrency-patterns) or EF Core entities (use efcore-patterns).
npx claudepluginhub grexyloco/k.agents --plugin kagentsThis skill uses the workspace's default tool permissions.
```csharp
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
// ✅ Gut
public class UserService(IUserRepository repository, ILogger<UserService> logger);
// ❌ Vermeiden
public class UserService
{
private readonly IUserRepository _repository;
public UserService(IUserRepository repository) => _repository = repository;
}
int[] numbers = [1, 2, 3];
List<string> names = ["Alice", "Bob"];
ReadOnlySpan<byte> bytes = [0x00, 0xFF];
var result = status switch
{
HttpStatusCode.OK => HandleSuccess(),
HttpStatusCode.NotFound => HandleNotFound(),
>= HttpStatusCode.InternalServerError => HandleServerError(),
_ => HandleUnexpected()
};
public record CreateUserRequest(string Email, string DisplayName);
public record UserResponse(Guid Id, string Email, string DisplayName, DateTime CreatedAt);
public class Configuration
{
public required string ConnectionString { get; init; }
public required int MaxRetries { get; init; }
}
| Element | Convention | Beispiel |
|---|---|---|
| Klasse/Record | PascalCase | UserService |
| Interface | IPascalCase | IUserRepository |
| Methode | PascalCase | GetUserByIdAsync |
| Property | PascalCase | DisplayName |
| Parameter | camelCase | userId |
| Lokale Variable | camelCase | currentUser |
| Private Field | _camelCase | _repository |
| Konstante | PascalCase | MaxRetryCount |
| Async Methode | Suffix Async | CreateUserAsync |
GlobalUsings.csasync void — nur async Task