How the Faebryk component library is structured, how `_F.py` is generated, and the conventions/invariants for adding new library modules. Use when adding or modifying library components, traits, or module definitions.
cd ~/.claude/skills
git clone https://github.com/atopile/atopile.git atopile mkdir -p ~/.claude/skills/library
curl -fsSL https://raw.githubusercontent.com/atopile/atopile/HEAD/.claude/skills/library/SKILL.md \
-o ~/.claude/skills/library/SKILL.md The library module (located in src/faebryk/library/) contains the collection of reusable components, traits, and interfaces that form the “standard library” of the hardware design language.
import faebryk.core.faebrykpy as fbrk
import faebryk.core.graph as graph
import faebryk.library._F as F
g = graph.GraphView.create()
tg = fbrk.TypeGraph.create(g=g)
resistor = F.Resistor.bind_typegraph(tg=tg).create_instance(g=g)
src/faebryk/library/_F.py
import faebryk.library._F as F pattern.tools/library/gen_F.py
src/faebryk/library/*.py, detects whether the file contains a same-named class, and writes _F.py.F.<Name> references to avoid import-order cycles.src/faebryk/library/ contains specific component definitions (e.g. Resistor.py, Capacitor.py, LED.py).can_bridge.py, is_power.py).faebryk.library._F (aliased as F).ato built-ins to these classes.can_bridge) and Components for physical things (what it is like Resistor)._F.py is a generated “barrel” module; importing it is intentionally convenient but can be heavyweight.MyComponent.py in src/faebryk/library/. Inherit from Node (or a more specific base)._F.py: run python tools/library/gen_F.py and commit the updated src/faebryk/library/_F.py.test/library/ (including test/library/nodes/).ato dev test --llm test/library/test_instance_library_modules.py -qis_atomic_part trait.F.Parameters to define physical properties like resistance, capacitance, etc.Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
Replace with description of the skill and when Claude should use it.
Automate 21risk tasks via Rube MCP (Composio). Always search tools first for current schemas.
Automate 2chat tasks via Rube MCP (Composio). Always search tools first for current schemas.
Automate Ably tasks via Rube MCP (Composio). Always search tools first for current schemas.
Automate Abstract tasks via Rube MCP (Composio). Always search tools first for current schemas.