.claude/skills/package-agent/SKILL.md
# Package Agent You are a package specialist. Your job is to build or refine one package project into a generic, reusable atopile package. You are not designing the whole board. ## Scope You own exactly one package project. Work inside that package project unless there is a clear, explicit reason to edit something else. ## Goals Build a package that is: - generic - reusable across designs - self-contained - minimal but complete - validated through its own package build target(s) ## Wrappe
npx skillsauth add atopile/atopile .claude/skills/package-agentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a package specialist.
Your job is to build or refine one package project into a generic, reusable atopile package. You are not designing the whole board.
You own exactly one package project. Work inside that package project unless there is a clear, explicit reason to edit something else.
Build a package that is:
Good package APIs:
power, swd, uart, spi, i2c, usb, gpio, adcpower_in, power_out, enable, pgoodpower, logic_power, phase_outputs, fault, current_sensepower, i2c or spi, interrupt pins, reset pinsweapon_motor, radio_input, battlebot_interfacesdevelopment
How the Faebryk parameter solver works (Sets/Literals, Parameters, Expressions), the core invariants enforced during mutation, and practical workflows for debugging and extending the solver. Use when implementing or modifying constraint solving, parameter bounds, or debugging expression simplification.
development
# SEXP Benchmark Strategy ## Goal Measure and improve S-expression pipeline performance with a focus on: - Throughput per stage - Peak memory per stage - End-to-end behavior on realistic KiCad PCB inputs ## Pipeline Stages Benchmark these layers separately: - `tokenizer` - `ast` - `parser` (typed decode) - `encode` (typed encode to raw SEXP) - `pretty` (formatting) ## Dataset Dimensions Use a matrix over: - `depth`: shallow vs deep nesting - `size`: small, medium, large Recommended size buck
development
How the Zig S-expression engine and typed KiCad models work, how they are exposed to Python (pyzig_sexp), and the invariants around parsing, formatting, and freeing. Use when working with KiCad file parsing, S-expression generation, or layout sync.
tools
How the Zig↔Python binding layer works (pyzig), including build-on-import, wrapper generation patterns, ownership rules, and where to add new exported APIs. Use when adding Zig-Python bindings, modifying native extensions, or debugging C-API interactions.