fabll

Map Python node and trait declarations into TypeGraph and instance graphs.

9|Updated Mar 13, 2026
One-click install
npx skills add https://github.com/mawildoer/atopile-agent-skill --skill fabll-mawildoer
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: fabll
Source: https://github.com/mawildoer/atopile-agent-skill/tree/main/skills/fabll
Command: npx skills add https://github.com/mawildoer/atopile-agent-skill --skill fabll-mawildoer

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

FabLL provides a high-level Python API for defining hardware components as Node objects and mapping them into the TypeGraph plus an instance graph. It clarifies how trait attachments, field invariants, and type registration relate to component design, instantiation, and verification.

Core Features & Use Cases

  • Declarative node/trait binding: define components and traits with class-level fields and edges, then bind to a TypeGraph to instantiate.
  • TypeGraph integration: bridge Python declarations to a formal graph for constraint solving, validation, and deployment workflows.
  • Development workflow: use FabLL to explore how components are registered, instantiated, and composed within the faebryk tooling stack.

Quick Start

Bind a simple Node subclass to a TypeGraph and create an instance to inspect the resulting graph structure.

Frequently Asked Questions about fabll

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I map Python node traits into a TypeGraph for hardware component design?

To map Python node traits into a TypeGraph, define components and traits with class-level fields and edges, then bind the Node subclass to a TypeGraph to instantiate and inspect the resulting graph structure.

How does trait attachment and type registration work in a TypeGraph instance graph?

Trait attachment and type registration work by binding Python node declarations to a formal TypeGraph, which enforces single-level subclassing rules and trait/edge patterns to validate component composition and instantiation.

What is the best way to define new hardware components using the Node API?

The best way to define new hardware components using the Node API is declaratively, specifying class-level fields and edges for traits, then binding them to a TypeGraph to drive constraint solving and deployment workflows.

Can I use Python node declarations for constraint solving and validation in hardware workflows?

Yes, you can use Python node declarations for constraint solving and validation by bridging them to a formal TypeGraph, which enables automated validation and deployment workflows for hardware-oriented components.

Why does the Node API enforce a single-level subclassing rule during instantiation?

The Node API enforces a single-level subclassing rule during instantiation to maintain predictable trait attachments, edge patterns, and type registration integrity within the TypeGraph structure.

Do I need to bind a Node subclass to a TypeGraph before creating instances?

Yes, you must bind a Node subclass to a TypeGraph before creating instances, because this binding process registers the types and establishes the instance graph needed for component verification.