# Roadmap: `distributor manifest create` ## Purpose Add a producer-facing CLI command that creates a valid source `manifest.json` for a local bundle directory. This command depends on the public `pkg/bundle` package. It should be useful for shell scripts and non-Go producers while sharing behavior with Go producers through the public package. ## Current Implementation Grounding The current CLI has top-level `version`, `run`, `validate`, and `inspect` commands. `validate` and `inspect` currently accept local paths only. The manifest contract is implemented in `internal/bundle`: source manifests have `schema_version`, `id`, `digest`, `created`, and ordered `files[]` entries with `path`, `sha256`, and `size`. Validation already enforces path safety, reserved distributor metadata paths, digest format, duplicate file paths, file sizes, per-file SHA-256, and the canonical bundle digest. This command should not add a second implementation of those rules. Once `pkg/bundle` exists, `manifest create` should call it. ## Goals - Add a CLI command that writes `manifest.json` for a local bundle directory. - Reuse public producer-side manifest creation and validation behavior. - Produce deterministic manifests. - Preserve caller-provided file order when explicit files are provided. - Offer convenient recursive scanning when explicit files are omitted. - Refuse to overwrite an existing manifest unless explicitly requested. ## Non-Goals - Do not publish or distribute bundles. - Do not write destination `.distributor.json` state. - Do not add config-file dependencies. - Do not add domain-specific metadata. - Do not expose publish, storage, transform, or destination internals. ## CLI Shape Proposed syntax: ```sh distributor manifest create --id ``` Optional flags: ```sh --file Include a bundle-relative file; repeatable. --created