50 lines
2.5 KiB
Markdown
50 lines
2.5 KiB
Markdown
# CommandKit
|
|
|
|
CommandKit is a Go library for typed command declarations, shared CLI behavior,
|
|
and application-owned execution. The core `commandkit` module is usable by
|
|
itself. ConfigKit and PromptKit support lives in separately versioned optional
|
|
modules, so applications choose which upstream libraries they add.
|
|
|
|
The core captures reusable command declarations, validates installation batches
|
|
before changing an application's registry, converts typed inputs before
|
|
constructing them, and returns outcomes without exiting the process. Its
|
|
[consumer guide](docs/consumers/guide.md) covers declaration, invocation
|
|
reporting, and migration. Each handler receives one invocation reporter for
|
|
substantive output, categorized messages, and terminal explanations; `Execute`
|
|
returns delivery observations with the outcome. The [CLI reference](docs/cli.md)
|
|
defines the shared visibility policy.
|
|
|
|
## Modules
|
|
|
|
| Module | Package | Provides |
|
|
| --- | --- | --- |
|
|
| `gitea.maximumdirect.net/eric/CommandKit` | `commandkit` | Typed commands, bindings, execution reporting and outcomes, help, and version. |
|
|
| `gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig` | `ckconfig` | ConfigKit-backed `config` scopes, including configuration source evidence. |
|
|
| `gitea.maximumdirect.net/eric/CommandKit/integrations/ckprompt` | `ckprompt` | PromptKit engine configuration/comparison, five catalogs, named inspection, requirements discovery, concrete request validation, and native smoke tests. |
|
|
|
|
Importing an integration does not install commands. Pass its declaration to
|
|
`commandkit.New` or `App.Register` to install it. The integrations depend on the
|
|
core and their selected upstream libraries; the core does not depend on either
|
|
integration.
|
|
|
|
## Examples
|
|
|
|
- [Core-only example](examples/core/README.md)
|
|
- [ConfigKit example](integrations/ckconfig/examples/simple/README.md)
|
|
- [Composed ConfigKit and PromptKit example](integrations/ckprompt/examples/composed/README.md)
|
|
|
|
## Documentation
|
|
|
|
- [Contributor guide](docs/development.md)
|
|
- [Command line reference](docs/cli.md)
|
|
- [Consumer guide](docs/consumers/guide.md)
|
|
- [Internal package overview](docs/internal/overview.md)
|
|
- [Maintainer release procedure](docs/release.md)
|
|
- [Architecture policy](docs/policy/architecture.md)
|
|
- [Policy provenance](docs/policy/meta.md)
|
|
- [Deferred capabilities and proposals](docs/roadmap/deferred.md)
|
|
|
|
CommandKit is licensed under the [LGPL v3.0 or later](COPYRIGHT).
|
|
|
|
[Open Source attribution notices](docs/oss/attribution.md) are available.
|