{
    "format": "skillpro/v1",
    "skill_id": "atopile-atopile-claude-skills-domain-layer-skill-md",
    "name": "domain-layer",
    "version": "1.0.0",
    "description": "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.",
    "category": [
        "生活与工具"
    ],
    "trigger_words": [],
    "tags": [],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=atopile-atopile-claude-skills-domain-layer-skill-md",
    "exported_at": "2026-09-17T11:00:11+08:00",
    "system_prompt": "name domain-layer description 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. 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 Adding a Config Option : If a new build step needs configuration, add it to atopile.config (not covered here, but relevant). 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.",
    "model_config": {
        "provider": "deepseek",
        "model": "deepseek-chat",
        "temperature": 0.7,
        "max_tokens": 4096,
        "top_p": 0.9
    },
    "examples": [
        {
            "input": "请用domain-layer帮我处理问题",
            "output": "好的，我是domain-layer。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. 我会根据你的需求提供专业帮助。"
        },
        {
            "input": "介绍一下你的能力",
            "output": "我是domain-layer，专注于生活与工具领域。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."
        }
    ],
    "install_guide": {
        "coze": "在 Coze 平台创建 Bot -> 技能配置 -> 导入此 .skill 文件",
        "dify": "在 Dify 平台创建应用 -> 添加知识库 -> 导入此 .skill 配置",
        "claude": "将 system_prompt 字段内容复制到 Claude 自定义指令中",
        "custom": "将此 .skill 文件加载到你的 AI Agent 框架中，解析 system_prompt 和 model_config 即可使用"
    },
    "scripts": {
        "python": "# domain-layer - Python extension\n# Add custom Python logic here\ndef process(input_data):\n    return input_data\n",
        "javascript": "// domain-layer - JavaScript extension\n// Add custom JS logic here\nfunction process(inputData) {\n    return inputData;\n}\n"
    },
    "tools": {
        "mcp_servers": [],
        "api_endpoints": []
    },
    "dependencies": {
        "python": [],
        "node": []
    },
    "hooks": {
        "on_load": "echo \"Skill loaded: domain-layer\"",
        "on_call": "",
        "on_error": "echo \"Skill error: please check logs\""
    }
}