Library

Document the Faebryk component library structure and its generation workflow.

3.6k|225|Updated Dec 19, 2023
One-click install
npx skills add https://github.com/atopile/atopile --skill library-atopile
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Library
Source: https://github.com/atopile/atopile/tree/main/.claude/skills/library
Command: npx skills add https://github.com/atopile/atopile --skill library-atopile

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill documents how the Faebryk component library is organized, how the auto-generated facade file _F.py is produced, and the conventions and invariants used when adding new library modules.

Core Features & Use Cases

  • Documentation of library layout and file naming conventions for components, traits, and interfaces.
  • Guidance on how the auto-generated facade _F.py is created and consumed by user code and the compiler.
  • Practical examples showing how to reference library modules and extend the library.

Quick Start

Inspect the facade file src/faebryk/library/_F.py and the generator script tools/library/gen_F.py to understand how the library is produced.

Frequently Asked Questions about Library

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

FAQPage Schema
How does the Faebryk library auto-generated facade file work?

The Faebryk library facade file _F.py is produced by a generation script and consumed by user code and the compiler to reference library modules. It serves as the central entry point for accessing components and traits.

How do I add new component modules to the Faebryk library?

To add new component modules to the Faebryk library, follow the documented file layout and naming conventions for components, traits, and interfaces. Ensure you adhere to library invariants when extending modules.

What is the file layout convention for Faebryk library components and traits?

The Faebryk library file layout convention organizes components, traits, and interfaces into a structured directory format. This structure dictates how frontmatter metadata is specified and how modules are referenced.

How do I use the generator script to produce the library facade?

You run the generator script located at tools/library/gen_F.py to produce the facade file. This script automates the generation of src/faebryk/library/_F.py, ensuring the facade matches the current library modules.

Does the Faebryk library require specific frontmatter metadata for modules?

Yes, the Faebryk library requires specific frontmatter metadata for modules to maintain library conventions and invariants. This metadata ensures consistent structure across components, traits, and interfaces.