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.zipInstalls 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.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
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
| Concept | Description |
|---|---|
| Entity | Just an ID, no data |
| Component | Pure data (struct with IComponentData) |
| System | Logic that processes components |
| Archetype | Unique component combination |
| Chunk | Memory block for same-archetype entities |
Component Types
IComponentData- Standard component dataIBufferElementData- Dynamic bufferISharedComponentData- Shared between entitiesICleanupComponentData- 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:
- Descomenta los tests above
- Implementa la funcionalidad mínima para que compile
- Ejecuta los tests — deben fallar (RED)
- Implementa la funcionalidad real
- Verifica que los tests pasen (GREEN)
- 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.entitiescom.unity.burstcom.unity.collections
When not to use it
- →Simple OOP game logic
- →Low-performance requirements
Prerequisites
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.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| dots-system-architect (this skill) | 0 | 5mo | Review | Advanced |
| software-architecture | 333 | 6mo | No flags | Intermediate |
| architect-review | 109 | 4mo | No flags | Advanced |
| mcp-builder | 136 | 3mo | Review | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by nlelouche
View all by nlelouche →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.
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.
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).
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.
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.
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.