Quick Experiment in Evolving a Chat UI
Today, instead of normal writing, researching and sporadic gen chats I took a stab at that co-adaptive loop a a Co-Adaption: The editor/ui/prompts keep evolving with the user and their goals I described.
The session $goal: I wanted to dissect and write a short technical report about the actual meaning of the Bit per Second (BpS) in a behavioral/neuroscience context. The Slowness of Thought 2 2 The Unbearable Slowness of Being, Markus Meister, 2024 is a fantastic read but the BpS metric always felt like a circular definition to me since the experimenter sets the task space that bitrate depends on c c If they didn’t it would be ->unbound.
I used a trimmed down version of Co-Adaptive Interfaces d d I mainly think of essays as specs and prompts for what I want to happen as the system prompt e e So far I like Kimi K2’s persona most. For now, it’s just via chat which I use as poor man’s UI. Since I have a tendency to overly abstract, I’ll just lead with the example interactions below.
TLDR: Chat is obviously a bad format but good for rapid ui like flows.
A few outtakes
Starting with the $goal. I respond two times. First as the person with the $goal. Second as a guide for the LLM to suggest different behaviors or ask it about why it did something.
After some back and forth, a simple hotkey bar emerges, derived from the goal and some actions I took and becomes semi-stable.
Action Bar
[u] undo [r] reroll [x] eject [s] show [m] meta [g] diff [.] repeat [1][2][3] pick [n] skip [a] all [t] tweak
Hotkeys <verb><tag#> :
p atch, c ompare, v isualize, i nfo (i1=line, i1,,=3-line, i1,,,=para)
Example: p2 replaces with alt[2], c1 compares to metric[1], v3 sketches idea[3].
Reroll here is “show new options. I, as guide, prompted more towards thinking about composing actions and it tried its hand at that.
Then some more back and forth. There’s some progress on why other metrics might be smarter etc. Here’s a quick UI snapshot at one point:
Later on it bubbles up an idea for a new anchor schema:
[y] Switch to bits1 / chan3 / circ4 tags now.
[t] Tweak the syntax (suggest your format).
[n] Keep old [1] style.
→ Pick y, t, or n.
And in between it tries the meta loop and bubbles up a goal diff to review:
– Original: "figure out if bits per second is misleading … feels weird"
+ Refined: Argue bits1 is circular[circ4] (measures experimenter codebook, not chan3) and only valid if decoder generalizes
+ Scaffold: Built thesis[7] + 3-part outline (circularity → upper-bound illusion → rescue)
– Divergence: Never drafted actual prose; got trapped in meta-syntax (anchors, action bars)
Verdict: Goal clarified but path skewed to scaffolding over writing.
At some point it almost created a compositional semantic algebra but then descended back into mediocrity. f f It named a certain A->A’ transform and then presented (adjectives) modifiers in the Actionbar to specify strength. So the transform was [f]ormalize and every ”,” added was by how thorough: “f” minimal, “f,,” full proof
It sometimes surfaced “goal vs path drift” and proposed prompt diffs, but rarely. That’s mostly on me for lazy prompt engineering and no other software control loops (linear chat).