DO

domain-layer

Manages electronics-specific build processes like netlists and PCB exports.

Install

mkdir -p .claude/skills/domain-layer && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/1125" && unzip -o skill.zip -d .claude/skills/domain-layer && rm skill.zip

Installs to .claude/skills/domain-layer

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.

Instructions for electronics-specific logic and build processes: netlists, PCBs, build steps, and exporters. Use when implementing or modifying build steps, exporters, PCB generation, or BOM/netlist output.
206 chars✓ has a “when” trigger
Advanced

Key capabilities

  • Generate project netlists
  • Export PCB manufacturing data
  • Execute build steps
  • Sync layout changes

How it works

It uses a DAG-based task runner called Muster to execute registered build steps that transform compiled graphs into hardware artifacts.

Inputs & outputs

You give it
Project directory
You get back
Manufacturing artifacts like Gerbers and BOMs

When to use domain-layer

  • Export PCB designs
  • Generate project netlists
  • Execute electronics build steps
  • Validate design logic

About this skill

Domain Layer Module

The domain layer (primarily src/atopile/build_steps.py and src/faebryk/exporters/) encompasses the logic and processes specific to electronic hardware engineering. This includes the build pipeline that transforms a compiled graph into manufacturing artifacts (Gerbers, BOMs, Pick & Place).

Quick Start

Run the standard build pipeline from a project directory (where ato.yaml lives):

ato build

Relevant Files

  • Build Orchestration: src/atopile/build_steps.py
    • Defines the Muster class (a DAG-based task runner).
    • Registers standard build targets: generate_bom, generate_manufacturing_data, update_pcb, etc.
  • Build entry / app init: src/atopile/build.py (constructs app graph from .ato or .py, runs unit inference)
  • Exporters: src/faebryk/exporters/
    • pcb/: KiCad PCB generation and layout sync (layout_sync.py).
    • bom/: Bill of Materials generation (jlcpcb.py, etc.).
    • netlist/: Netlist formatting.
    • documentation/: Datasheets, diagrams.
  • Layout sync inputs:
    • src/atopile/layout.py (generates .layouts.json module→layout mapping)
    • src/atopile/kicad_plugin/README.md (plugin workflow overview)

Dependants (Call Sites)

  • CLI (src/atopile/cli/build.py): The ato build command directly invokes build_steps.muster to execute the pipeline.
  • IDE/Extension: May invoke specific build steps for previews (e.g., generate_3d_render).

How to Work With / Develop / Test

Core Concepts

  • Muster: The task runner. Targets declare dependencies (e.g. generate_bom depends on build_design).
  • Layout Sync: The process of preserving manual PCB layout changes while updating the netlist/components from the code (update_pcb).
  • Artifacts: Files produced by the build process, stored in the build directory.

Development Workflow

  1. Adding a Config Option: If a new build step needs configuration, add it to atopile.config (not covered here, but relevant).
  2. New Exporters: Create a new module in src/faebryk/exporters/ and register a wrapper function in build_steps.py using @muster.register.

Testing

  • Integration Tests: Since this layer orchestrates the whole flow, it is best tested via end-to-end tests or integration tests in test/end_to_end/ or test/integration/.
  • Manual Verification: Run ato build on a sample project and inspect the generated artifacts (Gerbers, BOM csv).
  • Muster unit tests: ato dev test --llm test/test_muster.py -q

Best Practices

  • Idempotency: Build steps should generally be idempotent.
  • Virtual Targets: Use virtual=True for targets that just group other targets (e.g. all or default).
  • Layout Preservation: Be extremely careful when modifying update_pcb or layout_sync logic to avoid dataloss of user's manual PCB routing.

When not to use it

  • When working outside of an electronics project directory
  • When the project lacks an ato.yaml file

Prerequisites

atopile installedProject with ato.yaml

Limitations

  • Build steps must be idempotent
  • Requires careful handling of layout sync to avoid data loss

How it compares

It provides a domain-specific build pipeline that preserves manual PCB layout changes while updating netlists from code.

Compared to similar skills

domain-layer side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
domain-layer (this skill)36moReviewAdvanced
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