Install
$ agentstack add skill-mawildoer-atopile-agent-skill-creating-packages ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Creating Packages
For atopile syntax, interfaces, and design patterns, see the ato-language skill. For build workflow and debugging, see build-and-test.
Search Before You Create
Writing a new part/driver is the last resort. Stop as soon as you find something usable.
- The atopile registry — use the
find_packages/inspect_packageMCP tools, or browse packages.atopile.io. Install withato dependencies add(e.g.atopile/usb-connectors).
- Packages you can vendor — other repos and your own past projects often have a driver for the same IC. Copy it into a local
packages/directory and reference it viatype: fileinato.yaml. Review and adapt — vendored packages may carry application-specific assumptions.
- Local shared packages — check the project's own
packages/(or equivalent) for something already vendored.
- Create new — only if nothing above works. Use
ato create partto generate the footprint/symbol + a.atostub from a JLCPCB search, then write the driver around it.
Package Conventions
These conventions keep packages predictable and reviewable. Adapt the exact namespace to your project.
- Naming:
-(e.g.ti-bq25756,microchip-emc2101). - Identifier:
/inato.yaml'spackage.identifier(the namespace is your project/org slug). hide_designators: trueon build targets — designators are assigned at the consuming board level, not in the package.- Two-file pattern:
- The driver (
.ato) contains the reusable, configurable module that consumers import. - A separate
test.atoinstantiates it in one specific configuration, connects all interfaces, and adds assertions that verify that configuration. Consumers import from the driver, never from the test. - Layout:
/ato.yaml,.ato(driver — importable),test.ato(build validation + design verification),parts/(footprint/symbol/step files). - Verification status: every public module's docstring should declare its lifecycle state, updated as the module progresses:
UNVERIFIED— design complete, builds clean, not yet fabricated or testedBUILT— PCB fabricated, not yet powered or testedTESTED— powered and functionally verified on hardwarePRODUCTION— used in a shipped/deployed product
Two build targets per package
builds:
package:
entry: .ato:
hide_designators: true
test:
entry: test.ato:Test
hide_designators: true
- The
packagebuild compiles the driver module standalone (used for the package-level layout). - The
testbuild compiles the test harness that instantiates and wires the driver (used for a test-level layout with instance-prefixed addresses).
Consuming a local package
dependencies:
- type: file
identifier: /
path: ../packages/
Then import the driver:
from "//.ato" import DriverModule
Shared Package vs. Inline
Shared package (in packages/): two or more boards use it, or it's a commodity block (MCU, regulator, current sense, connector).
Inline in the board: only one board uses it, and it's tightly coupled to that application.
When in doubt, start inline. Extract to a shared package when a second board needs it.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: mawildoer
- Source: mawildoer/atopile-agent-skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.