# Implementation Roadmap This roadmap records current implementation status and deferred work for `distributor`. Implemented behavior is documented in the user, operator, and internal documentation listed below. Canonical current-behavior docs: - `README.md` - `docs/cli.md` - `docs/config.md` - `docs/operations.md` - `docs/troubleshooting.md` - `docs/internal/` - `docs/integrations/markdown.md` - `docs/policy/` - `examples/` Future, planned, or aspirational behavior belongs under `docs/roadmap/` until it is implemented. ## Current State `distributor` is ready for routine use against producer pipelines using the implemented local, SSH/SFTP, and S3-compatible backends. Implemented capabilities: - standard-library CLI commands for `version`, `run`, `validate`, and `inspect`; - YAML config loading, defaults, known-field rejection, and validation; - local, SSH/SFTP, and S3-compatible source and destination backends; - structured SSH/SFTP configuration with agent and key-file authentication, known-hosts handling, and backend-rooted path confinement; - S3-compatible configuration with endpoint, region, addressing mode, TLS controls, credential environment references, streaming reads and writes, listing, metadata, and managed deletion; - top-level `secrets.directory` loading for credential values, with process environment precedence and without mutating the process environment; - backend-rooted storage interfaces with typed errors, safe logical paths, traversal, collision checks, managed deletion, and explicit forced replacement; - source bundle discovery, manifest parsing, RFC3339 timestamp handling, duplicate path checks, path safety checks, symlink rejection, per-file digest validation, and bundle digest validation; - destination `.distributor.json` state parsing, validation, output metadata, and source comparison; - publication of source files, Markdown sidecar HTML, or both; - destination output collision detection before writes; - managed replacement for older destination state; - conservative conflict failures by default for unmanaged destination content and conflicting managed destination content; - explicit forced replacement with `run --force`, limited to the configured destination bundle path; - deterministic dry-run output and final run summaries; - deterministic sequential fan-out with aggregated destination failures; - cleanup of outputs written during failed publish attempts where practical; - no-op notification hook after successful publish or replacement; - current user, operator, internal, integration, and development documentation for implemented behavior. ## Active Roadmap There are no active implementation items in this roadmap. Before implementing new product behavior, add a focused roadmap entry when the work changes storage semantics, config, CLI behavior, state schema, transform behavior, notification behavior, operational safety, or user-visible workflows. Keep those entries out of current-behavior docs until the behavior exists. ## Deferred Work These items are not implemented and should stay out of current-behavior docs until a roadmap entry is selected and implemented: - external notification adapters; - warning-only digest mismatch handling; - additional auth mechanisms beyond the implemented SSH and S3 credential paths; - compatibility parsing for legacy SSH URI config; - broad recursive destination deletion outside managed bundle paths; - concurrent fan-out publishing; - resumable multipart S3 uploads; - cloud-provider-specific IAM integration docs; - repository-managed packaging, release, and deployment automation. ## Roadmap Maintenance When adding future roadmap work: - describe user-visible behavior and safety boundaries; - define which existing docs must change after implementation; - keep examples secret-free and runnable or clearly environment-gated; - avoid workflow labels in production code, tests, config fields, and user documentation; - run focused tests for the changed behavior and `go test ./...` for cross-package changes.