# Crucible command surface `internal/dispatch.Registry` is the single source of truth for Crucible's builders, visible commands, descriptions, help, and hidden compatibility aliases. ## Visible commands | Builder | Command | Purpose | | --- | --- | --- | | `hak` | `build` | Build configured HAK archives and their manifest. | | `hak` | `manifest` | Apply a generated HAK list to module source. | | `module` | `build` | Build the module and configured project outputs. | | `module` | `extract` | Extract built archives into configured source trees. | | `module` | `validate` | Validate project layout, config, and source inventory. | | `module` | `compare` | Compare source content with built archives. | | `module` | `manifest` | Apply a generated HAK list to module source. | | `topdata` | `validate` | Validate topdata source and canonical JSON compatibility. | | `topdata` | `build` | Compile topdata and refresh the configured package. | | `topdata` | `package` | Package cached outputs into HAK and TLK files. | | `topdata` | `compare` | Compare current output with a fresh native build. | | `topdata` | `convert` | Convert between 2DA and native JSON/module formats. | | `wiki` | `build` | Render wiki page drafts from compiled topdata. | | `wiki` | `deploy` | Deploy generated wiki pages to NodeBB. | | `assets` | `compile` | Compile ASCII `.mdl` models to binary in place. | | `assets` | `convert` | Convert textures to/from NWN DDS (flips vertically). | | `assets` | `upscale` | Upscale textures through an installed backend. | | `assets` | `check-mdl` | Report uncompiled ASCII `.mdl` and model-name mismatches. | | `assets` | `fix-mdl` | Lowercase `.mdl` names and rewrite model identity to match. | | `assets` | `check-dupes` | Report runtime-name (basename) collisions across dirs. | | `assets` | `clean-dupes` | Delete clean-tree files whose basename collides with primary. | | `depot` | `status` | Report referenced-vs-present drift against a backend. | | `depot` | `push` | Upload referenced-but-absent blobs from a local depot. | | `depot` | `verify` | Existence sweep plus sampled download re-hash. | | `depot` | `get` | Fetch one blob with sha re-verify. | | `depot` | `pull` | Incremental verified pull of every referenced blob. | `depot status` and `depot get` pick their backend either with `--out DIR`, a depot tree on disk, or with `--target bunny|cdn`, a remote backend. The two flags are mutually exclusive. ## Hidden compatibility aliases Existing scripts may continue using these names indefinitely. They are accepted but omitted from routine help and the interactive menu: | Builder | Hidden alias | Implementation | | --- | --- | --- | | `hak` | `build-haks` | `build-haks` | | `hak` | `apply-hak-manifest` | `apply-hak-manifest` | | `module` | `build-module` | module-only `build-module` | | `module` | `apply-hak-manifest` | `apply-hak-manifest` | | `topdata` | `validate-topdata` | `validate-topdata` | | `topdata` | `build-topdata` | `build-topdata` | | `topdata` | `build-top-package` | `build-top-package` | | `topdata` | `compare-topdata` | `compare-topdata` | | `topdata` | `convert-topdata` | `convert-topdata` | | `depot` | `--target local` | `--out $DEPOT_DIR` on `status`/`get` | | `wiki` | `build-wiki` | `build-wiki` | | `wiki` | `deploy-wiki` | `deploy-wiki` | `module build-module` deliberately retains its narrower module-only behavior; it is not redirected to the broader `module build`. ## Global commands ```text crucible help | -h usage + builder list crucible version | -V build version crucible list namebinarysummary crucible config [args] inspect and validate effective configuration crucible changelog [args] generate a release changelog ``` ## HAK build options ```text crucible hak build [--hak ...] [--archive ...] [--source-manifest ] [--content-addressed-root ] [--plan-only] [--quiet|--verbose|--debug] ``` When a source manifest contains `asset_sources`, pass `--content-addressed-root `. Crucible resolves each declared SHA-256 under `sha256///` and verifies streamed bytes while writing selected HAK archives. Authored `.bmu` files are ordinary assets and require no conversion pipeline.