Maintain UIKitPlus State Binding
Use this LOCAL contributor skill for changes to State, InnerState, mapped/merged state behavior, and built-in fluent setters that bind UIKitPlus UI/runtime properties to State.
Load the smallest decision-complete context
- Start from UIKitPlus
AGENTS.mdandSKILL_INDEX.md. - Use
STATE_SYSTEM.mdas the primary owner. - Load
FLUENT_CHAIN_CONTRACT.mdwhen a public fluent setter is added or materially changed. - Add
MUTATION_MODEL.mdonly for bidirectional/re-entrant/multi-state mutation. - Add
RUNTIME_MODEL.mdonly for lifecycle/deferred ownership. - Use
SOURCE_MAP.mdbefore broad source discovery.
Record any architecture-budget escalation rather than bulk-loading mutation/runtime contracts by default.
Plan checklist
- Record ST8 classification for every new/materially changed fluent value setter: bindable or reviewed non-bindable rationale.
- Declare direction, initial assignment policy, listener ownership, repeated-call behavior, and teardown.
- Record any FC11 generic exception and plan FC12 declaration-adjacent DocC for public overloads.
- For two-way synchronization, identify recursion guards and mutation ordering before implementation.
Implementation rules
- Preserve State mutation order: old value -> assign -> begin -> listeners -> end.
- Implement fluent setters exactly as classified under ST8 and the current fluent contract.
- Do not claim listener registration is idempotent unless explicit deduplication exists.
- Keep derivation (
map) distinct from synchronization (merge, two-way mapping). - Preserve
InnerStatewrite-through parent semantics and projected propagation. - Keep listener/token ownership explicit and teardown-safe.
Audit
Verify:
- State propagation ordering assumptions are correct;
- ST8 classification, initial application, listener ownership, repeat behavior, and teardown match implementation;
- FC11 discoverability and FC12 per-overload DocC are satisfied where applicable;
- recursion protection is sound for two-way synchronization;
- fluent
Self/reference semantics remain intact; - architecture docs are changed only when the actual binding contract changed;
- unrelated source/governance remains untouched.
Stop and re-plan if the work requires a new State ownership/lifecycle model rather than an implementation inside current State architecture.