Faebryk'nin TypeGraph'ının nasıl çalıştığını (GraphView + Zig edges), referansları traverse etme/resolve etme yöntemlerini ve FabLL types/traits'in edge types'a nasıl map edildiğini açıklar. TypeGraph traversal, edge types veya type-aware query'ler oluştururken kullanın.
cd ~/.claude/skills
git clone https://github.com/atopile/atopile.git atopile mkdir -p ~/.claude/skills/faebryk
curl -fsSL https://raw.githubusercontent.com/atopile/atopile/HEAD/.claude/skills/faebryk/SKILL.md \
-o ~/.claude/skills/faebryk/SKILL.md Buradaki Faebryk core'u TypeGraph + Zig'de uygulanan edge tipleri ve faebryk.core.faebrykpy aracılığıyla Python'a expose edilen bileşenlerdir.
API + davranış için doğruluk kaynağı:
src/faebryk/core/faebrykpy.py (Python-facing wrapper + type-safe EdgeTrait.traverse)src/faebryk/core/zig/gen/faebryk/typegraph.pyi (public stubbed API surface)src/faebryk/core/zig/src/faebryk/* (Zig implementation)import faebryk.core.faebrykpy as fbrk
import faebryk.core.graph as graph
g = graph.GraphView.create()
tg = fbrk.TypeGraph.create(g=g)
src/faebryk/core/faebrykpy.py (re-exports + EdgeTraversal + type-safe EdgeTrait.traverse)src/faebryk/core/zig/gen/faebryk/typegraph.pyi (TypeGraph stub)faebrykpy.py tarafından import edilir):
EdgeComposition (parent/child yapısı)EdgeTrait / Trait (trait ekleme)EdgePointer (referanslar)EdgeInterfaceConnection (interface bağlantıları)EdgeOperand (solver operand wiring)EdgeType / EdgeNext (type graph plumbing)Linker (compiler/linking aşamaları tarafından kullanılır)src/faebryk/core/node.py (Python sınıflarını TypeGraph'a bağlar; composition/trait edges kullanır)src/atopile/compiler/* (TypeGraph'ları oluşturur ve bağlar)src/faebryk/core/solver/* (operand edges ve instance traversal)src/atopile/build_steps.py (PCB/layout özelliği için type/instance edges'i ziyaret eder)TypeGraph bir GraphView'a karşı oluşturulur:import faebryk.core.graph as graph
import faebryk.core.faebrykpy as fbrk
g = graph.GraphView.create()
tg = fbrk.TypeGraph.create(g=g)
TypeGraph.ensure_child_reference(..., path=[...]) type graph üzerinden referansları yürümek için EdgeTraversal item'larını kullanır.src/faebryk/core/zig/src/faebryk/* dosyalarını düzenleyin (edges, typegraph internals).ato dev compile (faebryk.core.zig import eder).src/faebryk/core/faebrykpy.py içine wrapper'lar/helper'lar ekleyin (örnek: type-safe EdgeTrait.traverse).ato dev test --llm test/compiler/test_typegraph.py -qato dev test --llm test/compiler/test_runtime.py -qato dev test --llm test/core/zig/test_interface_pathfinder.py -qfaebryk.core.faebrykpy üzerinden import edin (böylece arayanlar Python helper'larını alır, sadece raw generated type'ları değil).EdgeTrait.traverse(trait_type=SomeTrait) yerine stringly-typed trait_type_name=... kullanın.Herhangi bir yaratıcı çalışmaya başlamadan önce bunu mutlaka kullanın - feature oluştururken, component inşa ederken, functionality eklerken veya davranış değiştirirken. Kullanıcı niyetini, gereksinimleri ve tasarımı implementation öncesinde araştırır.
Uygulama tamamlandığında, tüm testler geçtiğinde ve çalışmanızı nasıl entegre edeceğinize karar vermeniz gerektiğinde kullanın - merge, PR veya cleanup seçeneklerini sunarak geliştirme sürecinin tamamlanmasını rehberlik eder.
Kod incelemesi geri bildirimi alırken, önerileri uygulamadan önce kullanın; özellikle geri bildirim belirsiz veya teknik olarak şüpheli görünüyorsa - performatif anlaşmadan veya körü körüne uygulamadan ziyade teknik titizlik ve doğrulama gerekir.
Görevleri tamamlarken, büyük özellikleri hayata geçirirken veya merge etmeden önce çalışmanın gereksinimleri karşıladığını doğrulamak için kullanın.
Yeni bir feature üzerinde çalışmaya başlarken veya implementasyon planını yürütmeden önce kullanın - native araçlar veya git worktree fallback aracılığıyla izole edilmiş bir workspace sağlar.
Herhangi bir konuşma başlatırken kullanın - skill'lerin nasıl bulunacağını ve kullanılacağını belirler, clarification soruları da dahil olmak üzere HERHANGİ bir yanıt vermeden önce skill invocation gerektirir.