claude: fold in old sow-tools
test / test (push) Has been cancelled
build-image / build-image (push) Has been cancelled

This commit is contained in:
2026-06-13 09:49:29 +02:00
parent cdabf69aa2
commit cf89c166fe
112 changed files with 70812 additions and 74 deletions
+7 -5
View File
@@ -25,19 +25,21 @@ These legacy commands are **not** top-level builders:
- `music *` (`list-datasets`, `scan`, `build`, `credits`, `validate`, `manifest`,
`normalize`) → folds into the **module/hak build pipeline** (music BMUs are
packed into HAKs at build time). Exposed as `crucible-module music ...` /
`crucible-hak music ...` when wired. Needs `ffmpeg` at runtime.
`crucible-hak music ...`. Needs `ffmpeg` at runtime (in the image).
- `config *` (`validate`, `effective`, `inspect`, `explain`, `sources`) → a
**global** concern shared by every builder; exposed as a global subcommand
group, not its own binary.
- `build-changelog` → release tooling; lands as a global `crucible changelog`
**global** concern shared by every builder; exposed as the global
`crucible config ...`, not its own binary.
- `build-changelog` → release tooling; exposed as the global `crucible changelog`
rather than a content builder.
## Global commands (implemented in the scaffold)
## Global commands (implemented)
```text
crucible help | -h usage + builder list
crucible version | -V build version (git sha via -ldflags)
crucible list builders, one per line: name<TAB>bin<TAB>summary
crucible config [args] -> legacy `config` command group
crucible changelog [args] -> legacy `build-changelog`
```
`crucible list` is machine-readable so CI can enumerate builders without parsing
+12 -3
View File
@@ -1,9 +1,18 @@
# Migrating from `nwn-tool` to Crucible (operator cutover)
# Migrating from `nwn-tool` to Crucible (cutover — DONE)
The legacy toolchain lives at `gitea/sow-tools` as a single `nwn-tool` binary
(entry `cmd/nwn-tool`, logic under `internal/`). This repo is the Crucible
rewrite. Per the migration hard rules, the `internal/` source is **not**
transplanted automatically — the operator migrates it. This is the checklist.
rewrite. The cutover below has been **performed**: the `internal/` packages are
migrated and the `module`/`topdata`/`hak`/`wiki` builders delegate to them. The
checklist is kept as the record of what was done.
> **Status.** Steps 18 are complete. `depot` is the one remaining unwired
> builder (no legacy source — it was shell `mc`/S3). The open follow-up is the
> consumer flag contract: `sow-module` / `sow-topdata` / `sow-assets-manifest`
> wrappers invoke `crucible-<name>` with `--manifest/--source/--out` style flags
> (see [`consumer-contract.md`](consumer-contract.md)), whereas the migrated
> commands use the legacy CWD/project model. Reconciling the two is the Phase-6
> consumer task and is **not** part of this cutover.
## Why a clean scaffold first