ECAA-workflow: deterministic workflow compiler for FAIR bioinformatics The ECAA-workflow project released a deterministic offline compiler that transforms natural-language bioinformatics analysis descriptions into self-contained RO-Crate packages. The tool includes a conversational shell, execution harness, and validator for machine-checkable consistency, targeting FAIR bioinformatics practices. It supports Linux x86-64 with macOS for development and Windows via WSL2. A deterministic, offline compiler that turns a natural-language description of a bioinformatics analysis into a self-contained, agent-executable RO-Crate https://www.researchobject.org/ro-crate/ package — with a full-lifecycle conversational shell wrapped around the executing package. The compiler classifies the intake, selects an archetype, builds a task DAG, emits a package, and an execution harness drives an agent Claude Code, a shell script, anything callable with a package path against the emitted DAG. The emitted package is an ECAA Evidence-Carrying Analysis Artifact v0.2 package — a typed RO-Crate that carries, alongside the analysis itself, the claims it supports, the evidence backing each claim, and the decision record that produced them. An embedded ECAA validator checks the package against a machine-checkable contract over those subgraphs. Emit-time validation defaults to pure-Rust JSON Schema schema only and is advisory warn-only on a plain emit unless ECAA VALIDATION BLOCK ON FAIL=1 ; the local conformance gate make conformance , ECAA CONFORMANCE MODE=1 runs it block-on-fail. The contract establishes machine-checkable consistency between an analysis's claims, evidence, decisions, and execution provenance — it does not establish biological validity; treat verdicts as a hygiene floor, not a quality ceiling. | Component | Crate / dir | Role | |---|---|---| | Compiler | crates/{core, cli} | Classifier → DAG → emitter. Synchronous, no LLM dependency. | | Conversation shim | crates/conversation | Closed tool vocabulary wraps the compiler. LLM is a UX shim only. | | Chat server | crates/server | Axum HTTP + SSE backend at /api/chat/ and /api/git/ . | | Execution harness | crates/harness | Loops an agent subprocess against ready tasks. Local / Mock / AWS / SLURM executors. | | ECAA validator | crates/{ecaa-conformance, ecaa-types} + docs/ecaa-spec/ | Emits + validates the ECAA conformance contract. ecaa-conformance re-exports core's public API and is the conformance harness a second implementer runs against their own packages — not an independent reimplementation of core. | | Web UI | ui/ | React 18 + Vite + TypeScript chat surface. | Current ECAA profile IRI: https://w3id.org/ecaa/v0.2 . The active spec files are in docs/ecaa-spec/ /SuLab/ECAA-workflow/blob/main/docs/ecaa-spec : v0.2.md , ecaa-v0.2.ttl , ecaa-v0.2.shacl.ttl , and ecaa-v0.2.jsonld .Linux x86-64 is the primary supported target. macOS works for dev. Windows requires WSL2. 1. System tools sudo apt-get install -y build-essential pkg-config libssl-dev mold git curl Debian/Ubuntu or: sudo dnf install -y @development-tools openssl-devel mold git curl Fedora/RHEL or: brew install mold openssl@3 pkg-config macOS 2. Rust toolchain auto-installs the pinned channel from rust-toolchain.toml curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source "$HOME/.cargo/env" 3. Cargo dev tools cargo install --locked cargo-nextest cargo-hakari 4. Node.js 20+ for the UI + Playwright install per your platform; verify: node --version ≥ 20 5. Build everything make build Rust workspace debug make install binaries to ~/.cargo/bin cd ui && npm install make doctor prints toolchain readiness; make help lists targets. Two terminals: terminal A — chat server on :3000 make dev-server terminal B — Vite dev UI on :5173 proxies /api/ to :3000 make dev-ui Execution requires the installed harness binary. make dev-server / make dev-ui run from source cargo run / Vite , so they work without make install . But theStart executionbutton spawns the ecaa-workflow-harness binaryby name from PATH override with ECAA HARNESS BIN PATH . If you skipped make install Setup step 5 , execution fails with failed to spawn harness: No such file or directory ; run make install to fix it. The chat surface boots in offline mode without an API key the UI renders but assistant turns are mocked . For LLM-mediated chat: export ECAA ANTHROPIC API KEY=