Cleaned up documentation language
This commit is contained in:
@@ -10,20 +10,20 @@ Accepted.
|
||||
|
||||
## Context
|
||||
|
||||
CommandKit needs room to change implementation while consumers retain stable
|
||||
registration, input, and invocation contracts. Exposing backend assembly or
|
||||
extension structures would let applications depend on details that maintainers
|
||||
may later replace.
|
||||
CommandKit needs room to change its internal implementation details while
|
||||
consumers retain access to a stable external API. Exposing backend assembly or
|
||||
extension structures would let applications ossify around implementation
|
||||
details that maintainers may later decide to replace.
|
||||
|
||||
ConfigKit, PromptKit, and ReleaseKit demonstrate facades that own public types and
|
||||
delegate through private state and explicit conversion. ConfigKit also translates
|
||||
upstream YAML parser structures into an independent internal document model.
|
||||
ReleaseKit has a second facade for a distinct lightweight runtime responsibility;
|
||||
CommandKit has no corresponding requirement for another public package initially.
|
||||
ConfigKit, PromptKit, and ReleaseKit demonstrate facades that own public types
|
||||
and delegate through private state and explicit conversion. ConfigKit also
|
||||
translates upstream YAML parser structures into an independent internal document
|
||||
model.
|
||||
|
||||
The Cobra selection is compatible with dependency isolation. Public API
|
||||
independence needs a genuine contract boundary, and keeping backend structures
|
||||
out of shared internal representations also makes future replacement easier.
|
||||
The selection of Cobra as an internal dependency is compatible with this
|
||||
decision. Public API independence needs a genuine contract boundary, and
|
||||
keeping backend structures out of shared internal representations also makes
|
||||
future replacement easier.
|
||||
|
||||
## Decision
|
||||
|
||||
@@ -46,8 +46,8 @@ values and returned errors must not provide indirect backend-object access.
|
||||
|
||||
Standard contracts such as `context.Context` and `io.Writer` remain appropriate.
|
||||
Public types from integration libraries, such as ConfigKit and PromptKit, may
|
||||
be selected as deliberate dependencies. Application input types remain application-owned. Go declarations
|
||||
and GoDoc own exact exported contracts.
|
||||
be selected as deliberate dependencies. Application input types remain application-owned.
|
||||
Go declarations and GoDoc own exact exported contracts.
|
||||
|
||||
Confine Cobra/pflag types and operations to an internal adapter. Registry logic,
|
||||
standard handlers, and shared definitions use CommandKit-owned representations.
|
||||
@@ -61,10 +61,6 @@ backend state per invocation. Introduce narrow internal interfaces where actual
|
||||
engine/adapter interaction justifies them; exact package names and splits remain
|
||||
implementation choices.
|
||||
|
||||
Use one concrete backend initially. There is no public backend interface, plugin
|
||||
registry, or requirement for a second implementation. Replacement is a future
|
||||
maintainer change.
|
||||
|
||||
Translate backend-owned syntax failures into CommandKit diagnostics and outcomes.
|
||||
Preserve useful public identity for application handler errors and cancellation
|
||||
according to the invocation contract. Explicit conversions must preserve value
|
||||
|
||||
Reference in New Issue
Block a user