Files
commandkit/docs/roadmap/02-dispatch.md

58 lines
3.2 KiB
Markdown

# CommandKit dispatcher planning record
Status: initial dispatcher implementation complete.
Original planning: 2026-10-06. Reconciled: 2026-10-07.
## Authority and current owners
[ADR 0001](../adr/0001-command-dispatch-and-inputs.md) owns the dispatcher,
registry, and typed-input decisions and rationale. The
[architecture policy](../policy/architecture.md) owns responsibility boundaries.
This document records completion of the initial dispatcher design; the
[completed initial implementation record](https://gitea.maximumdirect.net/eric/CommandKit/src/commit/3871d837489b9955998b362587a52b47282dc021/docs/roadmap/implementation.md)
preserves its execution history.
The registry, typed inputs, command/group APIs, invocation coordination, and
outcomes are implemented. Their exact contracts are owned by Go declarations
and GoDoc, rather than the early illustrations formerly maintained here.
| API area | Current owner |
| --- | --- |
| Application construction and registration | [App/New](../../app.go) and [App.Register](../../registry.go) |
| Typed command declarations, groups, and presence | [CommandSpec, NewCommand, Group, WithChildren, Supplied](../../command.go) |
| Typed flag and operand bindings | [Binding helpers](../../binding.go) |
| Invocation and result delivery | [App.Execute](../../execute.go), [Invocation/Streams](../../identity.go), and [Outcome](../../outcome.go) |
| Standard integration registration | [Configuration suite](../../config.go) and [PromptKit suite](../../promptkit.go) |
The [consumer guide](../consumers/guide.md) explains assembly and callback usage.
The [CLI reference](../cli.md) owns syntax and operator behavior; the
[internal overview](../internal/overview.md) owns implemented package mechanics.
## Completed design and evidence
The initial work delivered instance registration, composable nested groups,
typed handlers and bindings, presence-aware input, capability-based installation,
lazy acquisition, and distinct shared/domain outcomes. The original `Supplied`
illustration is now a public declaration; application-specific restore inputs
remain consumer examples rather than proposed CommandKit types.
The [simple](../../examples/simple/README.md) and
[composed](../../examples/composed/README.md) consumers demonstrate the API with
configuration inspection and a custom session command. The completed plan
records behavioral evidence for routing, ownership conflicts, help, invocation
state, cancellation, output failures, and domain outcome preservation.
Completed constructor/binding/outcome design tasks and implementation assignments
have been retired from this roadmap. Concurrent dispatch remains outside the
initial target under the [feature roadmap](initial.md#explicit-deferrals).
## Remaining adoption work
Applications can migrate their routers and repeated standard handlers to the
implemented API, update documentation and subprocess consumers for breaking
changes, and retain their domain command behavior. Migration is separate from
library completion; this record does not claim that the sibling applications
have adopted CommandKit. Deferred standard capabilities are tracked in the
[feature roadmap](initial.md#deferred-capability-targets).