Part of #119.
Problem
A first agentlab up (or agentlab configure without --defaults) on a terminal runs the whole form — cluster name, users and passwords, components, ports, models — before anything happens. configure --defaults writes the right lab for nearly everyone (the platform with agents, observability and Backstage on; the discovery fills in this machine's free ports and host model servers), but a newcomer does not know the flag and up never offers it: loadOrCreateConfig in main.go goes straight to forms.Run.
Proposed solution
With no agentlab.yaml, on a terminal, both agentlab configure (without --defaults) and every command that creates the config on the way (up foremost — loadOrCreateConfig serves them all) run the discovery and print its report as today, then ask one huh confirm — along the lines of "No agentlab.yaml yet. Use the detected defaults — the agent platform with agents, observability and Backstage, three users, the free ports above — or customize every option?" Affirmative Use the defaults: what configure --defaults does (Validate, Save, the saved-configuration summary configure prints, with agentlab configure named as the way to change it later). Negative Customize: the form, as today.
Unchanged: configure --defaults and the component flags pin without a question; configure on an existing agentlab.yaml runs the form with the current values; off a terminal a missing agentlab.yaml is refused with the configure --defaults pointer — CI and coding agents write the config explicitly, and keep doing so.
The question names the components, so "defaults" means something without opening the docs.
Acceptance criteria
Part of #119.
Problem
A first
agentlab up(oragentlab configurewithout--defaults) on a terminal runs the whole form — cluster name, users and passwords, components, ports, models — before anything happens.configure --defaultswrites the right lab for nearly everyone (the platform with agents, observability and Backstage on; the discovery fills in this machine's free ports and host model servers), but a newcomer does not know the flag andupnever offers it:loadOrCreateConfigin main.go goes straight toforms.Run.Proposed solution
With no
agentlab.yaml, on a terminal, bothagentlab configure(without--defaults) and every command that creates the config on the way (upforemost —loadOrCreateConfigserves them all) run the discovery and print its report as today, then ask one huh confirm — along the lines of "No agentlab.yaml yet. Use the detected defaults — the agent platform with agents, observability and Backstage, three users, the free ports above — or customize every option?" Affirmative Use the defaults: whatconfigure --defaultsdoes (Validate,Save, the saved-configuration summaryconfigureprints, withagentlab configurenamed as the way to change it later). Negative Customize: the form, as today.Unchanged:
configure --defaultsand the component flags pin without a question;configureon an existingagentlab.yamlruns the form with the current values; off a terminal a missingagentlab.yamlis refused with theconfigure --defaultspointer — CI and coding agents write the config explicitly, and keep doing so.The question names the components, so "defaults" means something without opening the docs.
Acceptance criteria
agentlab upprints the discovery, asks the one question, and after Use the defaults continues into the boot with the canonical lab saved; after Customize the form runs as today.agentlab configurewithout flags in an empty directory asks the same question; with--defaultsit asks nothing.agentlab.yamlis refused with theconfigure --defaultspointer as today.agentlab upas the first command andconfigureas the way to customize.