--- priority: critical --- # Alef-Generated Bindings Files in `packages/*/` and binding crates are generated by Alef — DO NOT manually edit. ## Workflow 1. Check `alef.toml` before editing anything in `packages/*/` or binding crates 2. Modify Rust source files or `alef.toml` itself 3. Run `task alef:generate` to regenerate all Alef-managed output without formatting (`alef all --clean --format=false`) 4. Run `task alef:format` explicitly if Alef post-generation formatting is needed 5. Run `task e2e:test` or `task e2e:all` to verify 6. Commit Rust source + `alef.toml` + regenerated bindings atomically ## Rename Mappings (from `alef.toml`) - **Go**: `DocumentExtractor` → `Extractor` - All other languages: no renames ## Freshness Check `task alef:generate && git diff --exit-code packages/ crates/kreuzberg-node/ crates/kreuzberg-wasm/ crates/kreuzberg-ffi/` ## Key `alef.toml` Sections - `[crate]` — Rust source files parsed for type/function extraction - `[languages.*]` — per-language output path, module name, rename mappings - `[e2e]` — e2e test generation: fixtures dir, output dir, per-language call overrides - `[readme]` — README template generation per language package Canonical e2e tasks are `task e2e:generate`, `task e2e:build`, `task e2e:test`, and `task e2e:all`. Do not add legacy aliases.