AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Creating Packages

skill-mawildoer-atopile-agent-skill-creating-packages · by mawildoer

Use when adding a new IC, component, or subcircuit to an atopile project. Triggers on creating atopile packages, sourcing parts, vendoring an existing package, or deciding whether to make a shared package vs. inline in a board. Also use when you see ato create part or are about to write a new .ato driver module.

No reviews yet
0 installs
6 views
0.0% view→install

Install

$ agentstack add skill-mawildoer-atopile-agent-skill-creating-packages

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-mawildoer-atopile-agent-skill-creating-packages)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of Creating Packages? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

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.

  1. The atopile registry — use the find_packages / inspect_package MCP tools, or browse packages.atopile.io. Install with ato dependencies add (e.g. atopile/usb-connectors).
  1. 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 via type: file in ato.yaml. Review and adapt — vendored packages may carry application-specific assumptions.
  1. Local shared packages — check the project's own packages/ (or equivalent) for something already vendored.
  1. Create new — only if nothing above works. Use ato create part to generate the footprint/symbol + a .ato stub 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: / in ato.yaml's package.identifier (the namespace is your project/org slug).
  • hide_designators: true on 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.ato instantiates 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 tested
  • BUILT — PCB fabricated, not yet powered or tested
  • TESTED — powered and functionally verified on hardware
  • PRODUCTION — 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 package build compiles the driver module standalone (used for the package-level layout).
  • The test build 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.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.