commit a1928dcaf0e9bc0419385a38cff2db1a8744e1b2
Author: Ben Sima <ben@bensima.com>
Date: Thu Jan 1 13:06:45 2026
Add bild skill (t-324)
Documents build commands, dependency management, common errors.
Covers Python/Haskell deps, lint, type checking.
Task-Id: t-324
diff --git a/Omni/Agent/Skills/shared/bild/SKILL.md b/Omni/Agent/Skills/shared/bild/SKILL.md
new file mode 100644
index 00000000..5e540d75
--- /dev/null
+++ b/Omni/Agent/Skills/shared/bild/SKILL.md
@@ -0,0 +1,70 @@
+---
+name: bild
+description: Build tool usage and dependency management. Use when building, adding dependencies, or fixing build errors.
+---
+
+# Bild
+
+`bild` is the universal build tool. It builds and tests everything in the repo.
+
+## Common Commands
+
+```bash
+bild Omni/Task.hs # Build a namespace
+bild --test Omni/Task.hs # Build and run tests
+bild --plan Omni/Task.hs # Analyze without building
+```
+
+Output goes to `_/bin/`:
+```bash
+bild Omni/Task.hs
+_/bin/task --help
+```
+
+## Adding Dependencies
+
+### Python (in nixpkgs)
+Just add the dep comment:
+```python
+# : dep requests
+import requests
+```
+
+### Haskell (in nixpkgs)
+Add to `Omni/Bild/Deps/Haskell.nix` whitelist:
+```nix
+[
+ "aeson"
+ "your-package" # alphabetically
+]
+```
+
+### Not in nixpkgs
+1. `deps add owner/repo -n package-name`
+2. Set `"auto-override": false` in Sources.json
+3. Create derivation in `Omni/Bild/Deps/`
+
+## Common Errors
+
+### "attribute 'foo' missing"
+The Haskell package isn't whitelisted. Add it to `Omni/Bild/Deps/Haskell.nix`.
+
+### Python import not found
+Check package name: `nix-env -qaP -A nixpkgs.python312Packages | grep <name>`
+
+### Timeout during build
+Use `bild --time 0 <namespace>` for no timeout.
+
+## Lint and Type Check
+
+```bash
+lint Omni/Task.hs # Lint
+lint --fix Omni/Task.py # Lint and auto-fix
+typecheck.sh Omni/Example.py # Type check Python
+```
+
+## Notes
+
+- Alpha (custom prelude) uses `+>` instead of `>>=`, `<|` instead of `$`
+- Import pattern: `import qualified X as Y` only (no `from X import Y`)
+- If you have `Foo.hs` and `Foo/` directory, rename to `Foo/Core.hs`