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

1.9 KiB

Composed consumer

This example composes application configuration, PromptKit configuration, definition inspection, and one application-owned command:

go run . config scopes
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 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.