commit-a-text-field-on-an-explicit-action
Installation
SKILL.md
Write when the user asks, not when the focus moves
A draft that lives beside the stored value, and a commit that is a button:
// Keyed on the stored value: a change from anywhere else re-seeds the field.
var draft by remember(storedEndpoint) { mutableStateOf(storedEndpoint) }
BasicTextField(
value = draft,
onValueChange = { draft = it },
/* decorationBox shows a "wss://…" placeholder while draft is empty */
)