Files
commandkit/integrations/ckprompt/examples/composed/README.md

34 lines
1.9 KiB
Markdown
Raw Normal View History

# Composed consumer
This example composes application configuration, PromptKit configuration,
definition inspection, and one application-owned command:
```sh
go run . config scopes
2026-10-11 02:13:16 +00:00
go run . config validate --scope all --campaign spring --limit=0
go run . config diff --scope app --config fixtures/before.yml --against-config fixtures/after.yml
go run . config diff --scope app --config fixtures/before.yml --against-config fixtures/after.yml --campaign spring --limit=0
go run . promptkit show prompt briefing --campaign spring --format yaml
go run . promptkit show profile spring --campaign spring
go run . session restore session-42 --campaign spring
```
The sources and session store are small in-memory fixtures. `--campaign` is a
typed selector shared by the app and PromptKit configuration scopes. Their
`ckconfig.Suite[*inspectionInput, *runCache]` uses `NewInput` to initialize each
selected scope's input separately and `NewState` to create one cache shared by
that invocation's acquisitions. Prompt/profile inspection prepares its input and
cache independently for its invocation, using the same application and engine
loader functions. See the
[consumer guide](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/consumers/guide.md)
and the suites' GoDoc for initialization timing and ownership.
The application-scope comparison loads the local `before.yml` and `after.yml`
fixtures and reports `changes.default_campaign: autumn`. The second invocation
supplies `spring` to both sides, so the effective defaults compare equal; the
application input check also requires `--limit=0` when `--campaign` is supplied.
The example's shared run cache keys successful results by the complete supplied
configuration/overlay selection and the supplied campaign, including presence.
The campaign override is applied through ConfigKit before loading. These are
choices for this example's loader and do not define a CommandKit cache policy.