aaimake

Documentation

Trust & reproducibility

External probes, validation.command, SLSA-lite attestation, repro reports, partial RESTORE from cache, and lineage export (OpenLineage / MLflow / W&B).

aimake’s trust features catch silent drift, validate outputs, attest builds, restore missing files from cache without recompute, and export lineage. Use them when correctness matters as much as speed.

Related: CLI reference, Remote cache, Dashboard.

External probes (aimake probe)

Pin remote models/APIs on artifacts and optionally probe live revisions:

artifacts:
  answer:
    type: evaluation
    depends_on: [index, prompt]
    command: python src/eval.py
    outputs:
      - build/eval/metrics.json
    external:
      - name: llm
        provider: openai
        model: gpt-4o
        revision: "chatgpt-4o-latest-pin"
        probe: true
        probe_mode: warn        # or invalidate
        # probe_url: https://...  # optional HEAD/etag override
FieldDescription
nameLogical dependency id
provider / model / revisionPin included in fingerprints
volatileIf true, exclude from fingerprint (always “live”)
probeEnable live drift check
probe_modewarn (report only) or invalidate (treat as stale)
probe_urlOptional URL for HEAD / etag probing
aimake probe
# OK: answer/llm: ok (revision…)
# or WARNING: answer/llm: DRIFT pinned=… live=…
# exit code 2 when drift detected
Exit codeMeaning
0No drift (or no probeable deps)
1Config / runtime error
2Drift detected

Run in CI before aimake build when you need to fail on provider drift. Dashboard Repro / API /api/probe expose the same findings.

Output validation & validation.command

Structural checks catch empty or truncated outputs; a custom command covers semantic checks:

artifacts:
  evaluation:
    type: evaluation
    command: python src/eval.py
    outputs:
      - build/eval/metrics.json
    validation:
      non_empty: true
      min_size_bytes: 32
      required_keys: [accuracy, cost_usd]
      min_value:
        accuracy: 0.5
      revalidate_on_cache_hit: true
      command: python scripts/check_eval.py
      timeout_seconds: 120
FieldDescription
non_emptyReject empty files
min_size_bytesMinimum output size
required_keysRequired JSON keys
min_rowsMinimum rows for tabular outputs
min_valueMetric floors in JSON metrics
revalidate_on_cache_hitRe-run checks when restoring from cache
commandCustom shell/Python check after structural validation
timeout_secondsTimeout for command (default 120)

Failed validation discards bad outputs (with atomic staging) so a later build cannot “succeed” on garbage. See also quality gates via aimake eval --check.

Attestation

Enable SLSA-lite provenance sidecars for successful artifact builds:

attestation:
  enabled: true
  write_sidecars: true       # .aimake/attestations/
  embed_in_metadata: true
  include_environment: true
FieldDescription
enabledWrite attestations on successful builds
write_sidecarsPersist under .aimake/attestations/
embed_in_metadataEmbed attestation summary in build metadata
include_environmentInclude environment context
.aimake/attestations/
└── evaluation/
    └── latest.json

aimake doctor reports when attestation is enabled. aimake repro includes attestation status. Dashboard API: /api/attestations.

Reproducibility report (aimake repro)

aimake repro
aimake repro --format markdown
aimake repro --format json -o reports/repro.json
aimake repro --format pdf
aimake repro -P apps/rag
OptionDescription
--format, -fmarkdown (default), json, or pdf
--output, -oDestination path
--project, -PMonorepo subproject

Reports typically cover:

  • Project / git metadata
  • Artifact fingerprints vs aimake.lock
  • Remote cache / team_id identity
  • External probe / drift notes
  • Attestation presence
  • Environment fingerprint summary

Open the same view on the dashboard Repro page while aimake serve is running.

Partial RESTORE from cache

When fingerprints match a cache hit but output files are missing (deleted build/, cleaned workspace, partial checkout), aimake plans RESTORE instead of a full rebuild:

rm -rf build/embeddings
aimake plan
# embeddings → RESTORE (from cache)
aimake build
# restores blobs without re-running the embedding command
ActionMeaning
SKIPOutputs present and fingerprint up to date
RESTOREFingerprint cached; materialize outputs from local/remote cache
RUNStale or missing — execute the command

This pairs with remote cache pull-lock: CI can pull pinned blobs and restore outputs without paying for GPU again. Revalidation (revalidate_on_cache_hit) still runs when configured.

Lineage export

lineage:
  enabled: true
  formats: [openlineage, mlflow]   # openlineage | mlflow | wandb
  auto_export_on_build: true
  output_dir: .aimake/lineage
aimake lineage
aimake lineage --format openlineage --format mlflow
aimake lineage -f wandb -o .aimake/lineage
Option / fieldDescription
--format, -fRepeatable: openlineage, mlflow, wandb
--output-dir, -oExport directory
auto_export_on_buildWrite lineage after successful builds
output_dirDefault .aimake/lineage
FormatUse
openlineageOpenLineage-compatible job/run/dataset graph JSON
mlflowMLflow-style run / artifact graph JSON
wandbW&B-oriented graph JSON

Dashboard Lineage page and /api/lineage visualize the same graph. For optimization-trial logging to a live MLflow server, see Experiments — MLflow.

Combined trust config example

attestation:
  enabled: true
lineage:
  enabled: true
  formats: [openlineage, mlflow]
  auto_export_on_build: true

artifacts:
  evaluation:
    type: evaluation
    command: python src/eval.py
    outputs: [build/eval/metrics.json]
    external:
      - name: llm
        provider: openai
        model: gpt-4o
        revision: "…"
        probe: true
        probe_mode: warn
    validation:
      non_empty: true
      required_keys: [accuracy]
      command: python scripts/check_eval.py
aimake probe
aimake build
aimake repro --format markdown
aimake lineage --format openlineage --format mlflow