Skip to content

Local Development

If you want to work on ado-aw itself, a local Rust-based development setup is enough for most compiler and documentation tasks.

  • Rust 1.94.0 or later (the project uses the Rust 2024 edition)
  • Git
  • An editor of your choice

Install or update Rust:

Terminal window
rustup toolchain install stable
rustup default stable
rustc --version # must be 1.94.0 or later
  1. Navigate to the repository root:

    Terminal window
    cd /path/to/ado-aw
  2. Build the project:

    Terminal window
    cargo build

    For an optimized release build:

    Terminal window
    cargo build --release

Use the standard Rust workflow while developing:

Terminal window
cargo test
cargo clippy

These commands help catch regressions and style issues before you commit changes.

  1. Compile an example or your own agent file:

    Terminal window
    cargo run -- compile path/to/agent.md
  2. Verify the generated YAML matches the source definition:

    Terminal window
    cargo run -- check path/to/agent.lock.yml

Iterate on documentation or compiler changes

Section titled “Iterate on documentation or compiler changes”

A common local development loop for compiler work:

  1. Build the project:

    Terminal window
    cargo build
  2. Run the test suite:

    Terminal window
    cargo test
  3. Compile a test agent to verify your changes:

    Terminal window
    cargo run -- compile path/to/agent.md
  4. Verify the compiled output matches expectations:

    Terminal window
    cargo run -- check path/to/agent.lock.yml

The docs site lives in site/ and is built with Astro + Starlight.

  1. Install dependencies:

    Terminal window
    cd site
    npm ci
  2. Start the development server:

    Terminal window
    npm run dev

    The site is served at http://localhost:4321/ado-aw/. Changes to .mdx files reload automatically.

  3. Or do a full build to confirm all pages compile and internal links are valid:

    Terminal window
    npm run build:astro

    build:astro is faster than npm run build because it skips the Slidev slide export step. Use it for most content iterations.

  • the project builds successfully
  • tests pass
  • your sample pipeline compiles cleanly
  • generated YAML matches the markdown source when checked