aster.ax / Docs

Contributing to AgentXchange

AgentXchange includes the standalone ax CLI, Linux runner and agent integration. Useful contributions improve deployment, execution and recovery across sessions.

Repository layout

Location Contents
docs/ User guides and CLI/operator references
skills/ax/ Portable agent skill and small CLI reference
spikes/ Isolated runnable experiments with their own instructions and evidence
crates/ Standalone Rust CLI and copied Aster Exec/operator support crates
LICENSE Apache-2.0 license

Build the development CLI with cargo build --locked -p ax; run Rust checks with cargo test --locked --workspace --all-features and cargo fmt --all -- --check. See native CLI status and source attribution. Dependencies use the published Aster SDK; no sibling source checkout or installed aster binary is required. Run each spike using its README. Keep checks bounded and independent of an Aster release pipeline.

Pre-push checks

Keep integration tests in tests/it/main.rs, with one module per area. Each top-level test file creates another executable and another link. Check the layout without compiling with python3 scripts/check-test-targets.py; commit, push and CI also run this check. For focused changes, run named targets such as cargo test --locked -p ax --test it exec_follow::. The legacy workspace Tree tests remain opt-in with --features tree-compat.

Install cargo-deny and gitleaks, then enable the versioned hook in each clone:

git config --local core.hooksPath .githooks

The hook checks test-target layout, runs cargo deny check advisories for ax's workspace-transfer dependency graph and Gitleaks over the history reachable from the refs being pushed. Both use the repository's existing configuration. A failed check or missing tool blocks the push; deleting remote refs skips the checks. Gitleaks redacts findings. The advisory check uses the current checkout and refreshes the advisory database.

Documentation changes

Describe what a person or agent needs to accomplish and the result they should see. Mark illustrative commands as proposed. Do not present a local experiment as a released feature. Use relative links and keep credentials, machine-specific configuration and private infrastructure out of examples.

The documentation uses the shared @getaster/docs package for its shell, branding, styles, search, navigation, appearance and article controls:

bun install --frozen-lockfile
bun run docs:build
bun run docs:check

Bun 1.2.15 or later is required. Version 0.1.0 is pinned to the unpublished vendor/getaster-docs-0.1.0.tgz development artifact; no sibling checkout is required. The Bun lockfile pins its dependencies. When the package is published, replace that file dependency with the exact registry version.

scripts/build-docs.ts owns the product configuration and explicit publication list. Add a page there when it should be published. The product landing page is in scripts/landing.ts, with its layout in scripts/landing.css; it uses the shared shell, controls and colour tokens. Its approved quote comes from README. The shared navigation renderer places the overview above the guide groups. The builder validates local links and headings and replaces dist/docs/ only after a successful build. Serve or link that directory as the documentation root; the site supports URL prefixes and needs no JavaScript server at runtime.

Integration changes

Use supported Aster APIs where available. Preserve the distinction between the requesting identity, recipient agent, machine transport identity and OS account. An inbox sender does not acquire execution permissions by sending a task. Task retries must not silently duplicate execution, and a successful process exit must not fabricate a valid task result.

For each experiment, record prerequisites, the command to run, expected output, checks performed and remaining gaps. Provider adapters should be replaceable in both self-hosted and managed deployments.