DO

dots-system-architect

Specialized architecture guidance for Unity DOTS performance systems.

Install

mkdir -p .claude/skills/dots-system-architect && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/9693" && unzip -o skill.zip -d .claude/skills/dots-system-architect && rm skill.zip

Installs to .claude/skills/dots-system-architect

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Unity DOTS architecture specialist for ECS, Jobs, and Burst Compiler performance systems.
89 charsno explicit “when” trigger
Advanced

Key capabilities

  • ECS system design
  • Job system implementation
  • Burst compiler optimization
  • Performance profiling

How it works

It applies data-oriented design principles using ECS, Jobs, and Burst to maximize CPU performance.

Inputs & outputs

You give it
Simulation performance requirement
You get back
DOTS architecture design

When to use dots-system-architect

  • Optimize simulation performance
  • Implement ECS systems
  • Apply Burst Compiler patterns

About this skill

DOTS System Architect

Overview

Unity Data-Oriented Technology Stack (DOTS) for high-performance game systems. Covers Entity Component System (ECS), C# Job System, and Burst Compiler.

When to Use

  • Use when thousands of entities need processing
  • Use when CPU performance is critical
  • Use when traditional OOP becomes a bottleneck
  • Use when building simulation-heavy games
  • Use when maximizing multi-core utilization

Architecture

┌─────────────────────────────────────────────────────────────┐
│                     DOTS ARCHITECTURE                       │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐     │
│  │  Entities   │    │ Components  │    │  Systems    │     │
│  │  (IDs only) │───▶│  (Data)     │◀───│  (Logic)    │     │
│  └─────────────┘    └─────────────┘    └─────────────┘     │
│                                               │             │
│                                               ▼             │
│                                    ┌─────────────────┐     │
│                                    │   Job System    │     │
│                                    │  (Parallelism)  │     │
│                                    └────────┬────────┘     │
│                                              │              │
│                                              ▼              │
│                                    ┌─────────────────┐     │
│                                    │ Burst Compiler  │     │
│                                    │  (Native Code)  │     │
│                                    └─────────────────┘     │
└─────────────────────────────────────────────────────────────┘

Core Concepts

ConceptDescription
EntityJust an ID, no data
ComponentPure data (struct with IComponentData)
SystemLogic that processes components
ArchetypeUnique component combination
ChunkMemory block for same-archetype entities

Component Types

  • IComponentData - Standard component data
  • IBufferElementData - Dynamic buffer
  • ISharedComponentData - Shared between entities
  • ICleanupComponentData - Cleanup on destroy

Best Practices

  • ✅ Keep components small and focused
  • ✅ Use Burst for all systems when possible
  • ✅ Prefer IJobEntity over manual queries
  • ✅ Use EntityCommandBuffer for structural changes
  • ✅ Profile with Entity Debugger
  • NEVER use managed types in components
  • NEVER allocate in Burst-compiled code
  • NEVER make structural changes during system update

Few-Shot Examples

Example 1: Simple Component

User: "Create a health component for ECS."

Agent:

public struct HealthComponent : IComponentData
{
    public float Current;
    public float Max;
}

Example 2: Movement System

User: "Create a system that moves entities."

Agent:

[BurstCompile]
public partial struct MovementSystem : ISystem
{
    public void OnUpdate(ref SystemState state)
    {
        float dt = SystemAPI.Time.DeltaTime;
        
        foreach (var (transform, velocity) in 
            SystemAPI.Query<RefRW<LocalTransform>, RefRO<Velocity>>())
        {
            transform.ValueRW.Position += velocity.ValueRO.Value * dt;
        }
    }
}

Example 3: Spawning Entities

User: "Spawn 1000 enemies."

Agent:

var ecb = new EntityCommandBuffer(Allocator.Temp);
for (int i = 0; i < 1000; i++)
{
    var entity = ecb.CreateEntity();
    ecb.AddComponent(entity, new HealthComponent { Current = 100, Max = 100 });
    ecb.AddComponent(entity, new EnemyTag());
}
ecb.Playback(EntityManager);
ecb.Dispose();

Performance Tips

  • Burst: 10-100x faster than regular C#
  • Jobs: Automatic multi-threading
  • Chunks: Cache-friendly memory layout
  • SOA: Structure of Arrays vs AOS

TDD Contract

⚠️ Legacy Skill — Refactor Pending Este skill NO tiene tests automatizados aún. El siguiente boilerplate es un punto de partida.

// Escribe estos tests ANTES de implementar:

// Test 1: should [expected behavior] when [condition]
[Test]
public void DotsSystemArchitect_Should{ExpectedBehavior}_When{Condition}()
{{
    // Arrange
    // TODO: Setup test fixtures
    
    // Act
    // TODO: Execute system under test
    
    // Assert
    Assert.Fail("Not implemented — write test first");
}}

// Test 2: should handle [edge case]
[Test]
public void DotsSystemArchitect_ShouldHandle{EdgeCase}()
{{
    // Arrange
    // TODO: Setup edge case scenario
    
    // Act
    // TODO: Execute
    
    // Assert
    Assert.Fail("Not implemented");
}}

// Test 3: should throw when [invalid input]
[Test]
public void DotsSystemArchitect_ShouldThrow_When{InvalidInput}()
{{
    // Arrange
    var invalidInput = default;
    
    // Act & Assert
    Assert.Throws<Exception>(() => {{ /* execute */ }});
}}

Pasos para completar el TDD:

  1. Descomenta los tests above
  2. Implementa la funcionalidad mínima para que compile
  3. Ejecuta los tests — deben fallar (RED)
  4. Implementa la funcionalidad real
  5. Verifica que los tests pasen (GREEN)
  6. Refactorea manteniendo los tests verdes

Nota: Este skill fue marcado como tdd_first: false durante la auditoría v2.0.1. La sección TDD fue agregada automáticamente pero requiere customización manual para reflejar el comportamiento real del skill.

Related Skills

  • @advanced-design-patterns - Traditional patterns
  • @asynchronous-programming - Async operations
  • @physics-logic - Unity Physics (DOTS)

Required Packages

  • com.unity.entities
  • com.unity.burst
  • com.unity.collections

When not to use it

  • Simple OOP game logic
  • Low-performance requirements

Prerequisites

Unity 6.0+DOTS packages

Limitations

  • Requires DOTS-compatible packages
  • No managed types in components

How it compares

It focuses on cache-friendly memory layout and multi-core parallelism instead of traditional OOP.

Compared to similar skills

dots-system-architect side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
dots-system-architect (this skill)05moReviewAdvanced
software-architecture3336moNo flagsIntermediate
architect-review1094moNo flagsAdvanced
mcp-builder1363moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

software-architecture

davila7

Guide for quality focused software architecture. This skill should be used when users want to write code, design architecture, analyze code, in any case that relates to software development.

333868

architect-review

sickn33

Master software architect specializing in modern architecture patterns, clean architecture, microservices, event-driven systems, and DDD. Reviews system designs and code changes for architectural integrity, scalability, and maintainability. Use PROACTIVELY for architectural decisions.

109320

mcp-builder

anthropics

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

136215

solid-principles

SmidigStorm

Enforce SOLID principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) in object-oriented design. Use when writing or reviewing classes and modules.

57236

codex

Lucklyric

Invoke Codex CLI for complex coding tasks requiring high reasoning capabilities. This skill should be invoked when users explicitly mention "Codex", request complex implementation challenges, advanced reasoning, or need high-reasoning model assistance. Automatically triggers on codex-related requests and supports session continuation for iterative development.

32238

architecture-patterns

wshobson

Implement proven backend architecture patterns including Clean Architecture, Hexagonal Architecture, and Domain-Driven Design. Use when architecting complex backend systems or refactoring existing applications for better maintainability.

55214

Search skills

Search the agent skills registry