# EmboFlow EmboFlow is a B/S embodied-data workflow platform for raw asset ingestion, delivery normalization, dataset transformation, workflow execution, preview, and export. ## Bootstrap From the repository root: ```bash make bootstrap ``` This installs workspace dependencies and runs `scripts/install_hooks.sh` so local commit and push guardrails are active. ## Local Commands Run the full repository test suite: ```bash make test ``` Run the strict repository guardrails: ```bash make guardrails ``` Start package-level development entrypoints: ```bash make dev-api make dev-web make dev-worker ``` ## Local Deployment Start MongoDB and MinIO: ```bash make infra-up ``` Start the API and web app in separate terminals: ```bash make serve-api make serve-web make serve-worker ``` The default local stack uses: - API: `http://127.0.0.1:3001` - Web: `http://127.0.0.1:3000` - Worker: Mongo polling loop with `WORKER_POLL_INTERVAL_MS=1000` ### Local Data Validation The local validation path currently used for embodied data testing is: ```text /Users/longtaowu/workspace/emboldata/data ``` You can register that directory from the Assets page or via `POST /api/assets/register`. The workflow editor currently requires selecting at least one registered asset before a run can be created. The Runs workspace now shows project-scoped run history, and each run detail view links task artifacts into Explore. ## Repository Structure - `apps/api` contains the control-plane modules for workspaces, assets, workflows, runs, and artifacts. - `apps/web` contains the React shell, asset workspace, workflow editor surface, run detail view, and explore renderers. - `apps/worker` contains the Mongo-backed worker runtime, task runner, and executor contracts. - `design/` contains the architecture and product design documents that must stay aligned with implementation. - `docs/` contains workflow guidance and the executable implementation plan. ## Developer Workflow 1. Read the relevant design files under `design/` before editing code. 2. Implement code and update impacted docs in the same change set. 3. Use English-only commit messages with a gitmoji prefix. 4. Run `make test` and `make guardrails` before pushing changes. For direct hook installation or reinstallation: ```bash bash scripts/install_hooks.sh ```