# Foundation notes
This repo is already a single-binary Rust package/service. Keep follow-on guidance and operator docs aligned to that shape instead of describing a scaffold that still needs to be built.
## Current guarantees
- One Cargo package with one binary entrypoint (`src/main.rs`)
- CLI subcommands for `serve`, `convert`, `schema`, `query`, and `benchmark`
- HTTP routes for `/`, `/health`, `/schema`, `/query`, `/convert`, and `/benchmark`
- DuckDB-backed parquet query modes: `parquet_selective` (default), `hybrid`, and `full_download`
- Object-storage support through `storage.type = "s3"` and `TEXT2SQL_S3_*` settings
- Checked-in `testdata/` fixtures plus integration-style engine/app tests
## Preferred operator flow
1. Convert CSV/XLS/XLSX/JSON inputs into Parquet.
2. Inspect schema first with `/schema` or `cargo run -- schema`.
3. Query the resulting dataset in `parquet_selective` mode first.
4. Use `.codex/skills/object-storage-ops/SKILL.md` when the workflow moves to S3/MinIO or other
remote parquet storage.
5. Run `benchmark` before deciding to prefer `full_download` for a workload.
## Guidance guardrails
- Keep docs and skills specific to this Rust binary; avoid generic multi-service or multi-language playbooks.
- Treat the tracked `AGENTS.md` as the durable agent/operator entrypoint; treat OMX team-worker overlays as runtime-only.
- Treat `full_download` as a fallback/debug path, not the default happy path.
- Treat `hybrid` as a convenience policy, not a reversal of the parquet-first architecture.
- Keep S3/MinIO guidance consistent across CLI and HTTP examples by reusing the same endpoint, region, and credential inputs.
- Preserve the existing verification commands from `README.md`: `cargo fmt --check`, `cargo test`, `cargo check`, and `cargo clippy --all-targets --all-features -- -D warnings`.