BaseHalf
All posts

Context is the interface

We typed “improve this” to an agent, and it could not tell what we meant. What it took to fix one word.

In October one of us typed a question into a new note, switched to the Agent Area, and wanted to say only “improve this”. The agent could not know which note. It could not know where in the note either.

The usual fix is to name the file, paste the passage and explain where it sits. That is a strange thing to do for a sentence that is selected on the screen right in front of you, and it is most of what working with an agent feels like. The model is good and the prompt box is fine. What is missing is the situation: which of your forty files you mean, what this draft was written from, which line you are looking at.

The first attempt

We had already tried to close this gap once, and failed. BaseHalf used to write your position to a file in the folder every time you moved, for agents to read.

An agent had to choose to read that file on every turn, and none did reliably. It went stale when you left the canvas, with no sign that it had. It got columns wrong. Every cursor move showed up in git. In September we deleted it, wrote down why, and decided that pointing at things was the agent’s job.

The second attempt

“Improve this” changed our minds a few weeks later. Whoever’s job it was, it was not getting done. BaseHalf’s editors are its own, so no agent’s IDE integration can see into them, and Codex in a terminal has no such integration at all.

So the record came back, built against the list of what had gone wrong:

  • It holds the text you selected and the lines it is on, and it changes only when you select something else.
  • It sits in a cache folder that git never sees, and it is gone when the window closes.
  • The skill agents load names the moment it matters: a request that does not say which file it is about.
  • The status bar always shows what is recorded, so what an agent would read is what you can see.

The last one answers a question you otherwise keep asking yourself: what does it think I mean? The answer is written at the bottom of the window.

One word

Now you select a sentence and ask. We tried it on a line in a decision note, “Sync the packing list once signal returns”, by typing “who asked for this?”. The answer began:

Nobody asked for it directly. I took "this" to mean the line you just selected, "Sync the packing list once signal returns" (offline-maps.md:14). It looks like the decision note's own conclusion, drawn from three things its sources do say.

The sentence “Sync the packing list once signal returns” selected in a note on the canvas, and Claude Code in the Agent Area answering that nobody asked for it directly. The status bar shows the selected sentence.

The agent still decides for itself whether to look, and a request that names something else still wins.

It is a small feature that took a specification, a skill and two tries. We think that is about the right amount of work for the word “this”. A short request only works when both sides can see what surrounds it, and that surrounding is the part of an AI tool most worth designing.