home / skills / levnikolaevich / claude-code-skills / ln-722-backend-generator

ln-722-backend-generator skill

/ln-722-backend-generator

This skill generates a complete .NET backend structure following Clean Architecture from entity definitions, boosting project bootstrap speed and consistency.

npx playbooks add skill levnikolaevich/claude-code-skills --skill ln-722-backend-generator

Review the files below or copy the command above to add this skill to your agents.

Files (7)
SKILL.md
6.9 KB
---
name: ln-722-backend-generator
description: Generates .NET Clean Architecture backend structure from entity definitions
---

> **Paths:** File paths (`shared/`, `references/`, `../ln-*`) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.

# ln-722-backend-generator

**Type:** L3 Worker
**Category:** 7XX Project Bootstrap
**Parent:** ln-720-structure-migrator

Generates complete .NET backend structure following Clean Architecture principles.

---

## Purpose & Scope

| Aspect | Description |
|--------|-------------|
| **Input** | Project name, entity list, configuration options |
| **Output** | Complete .NET solution with layered architecture |
| **Target** | .NET 10+, ASP.NET Core |

**Scope boundaries:**
- Generates project structure and boilerplate code
- Creates MockData for initial development
- Does not implement business logic or database connections

---

## Workflow

| Phase | Name | Actions | Output |
|-------|------|---------|--------|
| 1 | Receive Context | Get project name, entities, options from coordinator | Configuration |
| 2 | Create Solution | Create .sln and .csproj files | Empty solution structure |
| 3 | Generate Domain | Create entities, enums, base classes | Domain project files |
| 4 | Generate API | Create controllers, DTOs, middleware | API project files |
| 5 | Verify | Build solution, check references | Build success |

---

## Phase 1: Receive Context

Accept delegation from ln-720-structure-migrator.

| Input | Type | Required | Description |
|-------|------|----------|-------------|
| `projectName` | string | Yes | Solution and project name prefix |
| `targetPath` | string | Yes | Directory for generated solution |
| `targetFramework` | string | Yes | .NET version (e.g., net10.0) |
| `entities` | list | Yes | Entity names to generate |
| `features` | list | Yes | Feature groupings for MockData |

**Options:**

| Option | Default | Effect |
|--------|---------|--------|
| `useSwagger` | true | Add Swashbuckle for API docs |
| `useSerilog` | true | Add structured logging |
| `useHealthChecks` | true | Add health endpoints |
| `createMockData` | true | Generate mock data classes |

---

## Phase 2: Create Solution

Generate solution file and project structure.

| Step | Action | Reference |
|------|--------|-----------|
| 2.1 | Create solution directory | — |
| 2.2 | Generate .sln file | — |
| 2.3 | Create project directories | `layer_structure.md` |
| 2.4 | Generate .csproj files per layer | `layer_structure.md` |
| 2.5 | Add project references | `layer_structure.md` |

**Generated projects:**

| Project | Purpose |
|---------|---------|
| `{Project}.Api` | HTTP endpoints, middleware |
| `{Project}.Domain` | Entities, enums |
| `{Project}.Services` | Business logic interfaces |
| `{Project}.Repositories` | Data access interfaces |
| `{Project}.Shared` | Cross-cutting utilities |

---

## Phase 3: Generate Domain

Create domain layer files.

| Step | Action | Reference |
|------|--------|-----------|
| 3.1 | Create `BaseEntity` class | `entity_patterns.md` |
| 3.2 | Generate entity classes per input | `entity_patterns.md` |
| 3.3 | Generate status enums | `entity_patterns.md` |
| 3.4 | Create folder structure | `layer_structure.md` |

**Entity generation rules:**

| Entity Property | Generated As |
|-----------------|--------------|
| Primary key | `public Guid Id { get; set; }` |
| String field | `public string Name { get; set; } = string.Empty;` |
| Status field | `public {Entity}Status Status { get; set; }` |
| Timestamps | `CreatedAt`, `UpdatedAt` from BaseEntity |

---

## Phase 4: Generate API

Create API layer files.

| Step | Action | Reference |
|------|--------|-----------|
| 4.1 | Generate Program.cs | `program_sections.md` |
| 4.2 | Generate controllers per entity | `controller_patterns.md` |
| 4.3 | Generate DTOs per entity | `controller_patterns.md` |
| 4.4 | Generate middleware classes | `layer_structure.md` |
| 4.5 | Generate extension methods | `program_sections.md` |
| 4.6 | Generate MockData classes (if enabled) | `layer_structure.md` |
| 4.7 | Add NuGet packages | `nuget_packages.md` |

**Controller endpoints per entity:**

| Endpoint | Method | Route |
|----------|--------|-------|
| GetAll | GET | `/api/{entities}` |
| GetById | GET | `/api/{entities}/{id}` |
| Create | POST | `/api/{entities}` |
| Update | PUT | `/api/{entities}/{id}` |
| Delete | DELETE | `/api/{entities}/{id}` |

---

## Phase 5: Verify

Validate generated solution.

| Check | Command | Expected |
|-------|---------|----------|
| Solution builds | `dotnet build` | Success, no errors |
| Project references | Check .csproj | All references valid |
| Files created | Directory listing | All expected files present |

---

## Generated Structure Summary

| Layer | Folders | Files per Entity |
|-------|---------|------------------|
| Api | Controllers/, DTOs/, Middleware/, MockData/, Extensions/ | Controller, DTO |
| Domain | Entities/, Enums/, Common/ | Entity, Status enum |
| Services | Interfaces/ | Interface (stub) |
| Repositories | Interfaces/ | Interface (stub) |
| Shared | — | Utility classes |

---

## Critical Rules

- **Single Responsibility:** Generate only backend structure, no frontend
- **Idempotent:** Can re-run to regenerate (will overwrite)
- **Build Verification:** Must verify `dotnet build` passes
- **Clean Architecture:** Respect layer dependencies (inner layers independent)
- **No Business Logic:** Generate structure only, not implementation
- **MockData First:** Enable immediate API testing without database

---

## Definition of Done

- [ ] Solution file created with all projects
- [ ] All project references configured correctly
- [ ] Domain entities generated for all input entities
- [ ] Controllers generated with CRUD endpoints
- [ ] DTOs generated for request/response
- [ ] MockData classes generated (if enabled)
- [ ] Program.cs configured with all services
- [ ] `dotnet build` passes successfully
- [ ] Swagger UI accessible (if enabled)

---

## Risk Mitigation

| Risk | Detection | Mitigation |
|------|-----------|------------|
| Build failure | `dotnet build` fails | Check .csproj references, verify SDK version |
| Missing references | CS0246 errors | Add missing project references |
| Invalid entity names | Build or runtime errors | Validate entity names before generation |
| Path conflicts | File exists errors | Check target path, prompt before overwrite |
| Package restore failure | NuGet errors | Verify network, check package names |

---

## Reference Files

| File | Purpose |
|------|---------|
| `references/layer_structure.md` | Project organization, folder structure, dependencies |
| `references/entity_patterns.md` | Entity generation rules, property patterns |
| `references/controller_patterns.md` | Controller and DTO generation rules |
| `references/program_sections.md` | Program.cs structure and service registration |
| `references/nuget_packages.md` | Required and optional NuGet packages |

---

**Version:** 2.0.0
**Last Updated:** 2026-01-10

Overview

This skill generates a production-ready .NET Clean Architecture backend scaffold from simple entity definitions. It produces a multi-project solution (API, Domain, Services, Repositories, Shared) with controllers, DTOs, MockData, and build verification hooks so teams can start API development immediately. The generator targets .NET 10+ and focuses on structure and developer ergonomics, not business logic.

How this skill works

The generator accepts a project name, target path, target framework, entity list, and feature groups, then creates a .sln and per-layer .csproj projects. It generates domain entities, status enums, BaseEntity, API controllers with CRUD endpoints, DTOs, middleware, extension methods, and optional MockData and tooling integrations (Swagger, Serilog, health checks). Finally it runs a build verification to ensure the solution compiles.

When to use it

  • Bootstrapping a new .NET backend following Clean Architecture
  • Creating consistent boilerplate across multiple teams or microservices
  • Onboarding projects that need immediate API surface for frontend or integration tests
  • Generating repeatable project structure for greenfield proof-of-concept work
  • Recreating or migrating project layout while preserving layer boundaries

Best practices

  • Provide validated, conventional entity names to avoid build/runtime errors
  • Enable MockData during early development to exercise endpoints without a database
  • Keep generator idempotent: review overwrites when rerunning in an existing path
  • Use feature groups to organize mock scenarios and speed up integration tests
  • Run targeted dotnet build and unit tests after generation before adding business logic

Example use cases

  • Create a new internal service with Customers, Orders, and Products entities and immediate CRUD endpoints for integration testing
  • Spin up a backend scaffold for a frontend demo where Swagger UI and MockData provide working endpoints
  • Generate consistent service templates across a team to standardize logging, health checks, and dependency wiring
  • Migrate legacy service layout to Clean Architecture by regenerating structure and moving domain models into the Domain project

FAQ

Will this implement business logic or database access?

No. The generator creates interfaces and structure only. Business logic and concrete data access implementations must be added afterward.

Can I re-run the generator on an existing project?

Yes. The process is idempotent and will overwrite generated files, but you should back up or review custom code before regenerating.