Pack Authoring

Create Ax packs with manifests, effects, and native shims.

An Ax pack is a manifest plus optional native sources. The compiler loads declared effects for semantic checking and links native sources into the final executable.

Registry Layout

registry/
  acme.telemetry/
    pack.axpack
    native.c

Manifest

name = "acme.telemetry"
version = "1.0.0"
syntax = []
operations = ["telemetry.track"]
effects = ["telemetry.write"]
native = ["native.c"]

operations names the callable pack API. When this list is present, Ax rejects undeclared calls during semantic checking.

Native Symbol

External operation calls lower to symbols named from the pack and operation.

telemetry.track() -> ax_pack_acme_telemetry_track()
#include <stdio.h>

void ax_pack_acme_telemetry_track(void) {
  puts("acme.telemetry track");
}

Generate A Skeleton

skills/ax/scripts/new-pack.sh ./registry acme.telemetry telemetry.write track

Checked Example

The repository includes a complete external pack project at examples/packs/telemetry.

cd examples/packs/telemetry
../../../target/release/ax pack list --registry registry
../../../target/release/ax check app.ax --registry registry
../../../target/release/ax build app.ax -o .ax-out/telemetry_app --registry registry
.ax-out/telemetry_app

Use The Pack

ax pack list --registry ./registry
ax pack find telemetry --registry ./registry
ax pack info acme.telemetry --registry ./registry
ax pack install acme.telemetry --registry ./registry
ax check app.ax --registry ./registry
ax graph app.ax --registry ./registry
ax build app.ax -o app --registry ./registry

Validation Checklist

CheckCommand
Registry lists the packax pack list --registry ./registry
Search finds pack metadataax pack find telemetry --registry ./registry
Manifest operations are inspectableax pack info acme.telemetry --registry ./registry
Project manifest records dependencyax pack install acme.telemetry --registry ./registry
Effects are acceptedax check app.ax --registry ./registry
Call graph shows inferred effectsax graph app.ax --registry ./registry
Native symbols linkax build app.ax -o app --registry ./registry
Checked example passes./scripts/verify-pack-examples.sh
Skill pack workflow runs end to endskills/ax/scripts/pack-smoke.sh .