Command Line
Every tool was reachable, if you already knew which module held it. An instruction here is a command plus the thing it acts on, and a mistake costs one correction instead of a restart.
Command line
A command you can see the shape of.
Every instruction is a command and, usually, one argument. Once the command is accepted it stops being text and becomes a chip, so the line always shows what is settled and what is still being typed.
The accepted command. A chip, not text. It survives edits to the rest of the line.
The argument being typed. Still plain text, still editable, matching as each character lands.
The keys that move it forward. Named in the footer so the model is learned by using it, not by reading a manual.
Select a symbol for Company Research.
Every tool in QSWeb was reachable, but only by knowing which module held it and clicking through to find it. That is a fair price in the first week and an expensive one on the hundredth repetition, which is exactly the audience the platform is built for. Search would have been the easy answer. The design question was how to let the product understand an instruction before it had finished being typed, without making the fast path something you earn by memorising codes, and without letting a typo turn into a dead end.
Built and in user acceptance testing, giving QSWeb one keyboard entry point that opens tools and resolves symbols without navigating a menu or rearranging a workspace.
Give an instruction a grammar you can learn once
A command line is only as good as its predictability. If the same typing produces different results depending on how far the product has got in parsing it, speed is worth nothing, because every instruction has to be watched. A fixed grammar means the rules hold every time, and the product can show how far it has got with what you typed. What a user has to hold in their head shrinks to the part only they can supply.
Process
The chip was a decision, not a given.
An instruction has two halves and the interface has to say which half it has understood. Three ways of doing that were on the table, and each one moves the cost somewhere different.
The third option only works because the command commits early. That is what turns a failed symbol into one correction rather than a restart, and it is why the recovery behaviour further down exists at all.
It introduces a control that has to be learned once, which a plain text box would not. That cost is paid back the first time an instruction is half wrong and only half of it has to be fixed.
Fast should not mean memorised
The usual bargain with a command line is that it rewards the people who memorised it and punishes everyone else, which quietly makes it a tool for the users who need it least. Accepting more than one spelling for the same command removes that bargain: nobody has to earn the fast path, they arrive at it by using the product. The guide works the same way, writing an instruction into the line rather than describing it and leaving the user to retype it from memory.
Vocabulary
Two ways to say the same thing.
Terse codes are fast once you know them and useless before that. Rather than pick a side, every command answers to both its name and its short code. New users type the word they already know, and the chip they get back teaches them the code for next time.
Types research
Types res
Supporting both spellings means two things to keep in sync: the catalogue a user browses and the strings the matcher accepts. That cost is the trade for not making speed conditional on memorising the product.
Two spellings mean two things that can fall out of sync: the catalogue a user browses and the strings the matcher accepts. Gating speed behind recall was the only cheaper option.
Make a bad command recoverable
The fastest way to make a keyboard shortcut worthless is to answer an imperfect instruction with a dead end. Everything the product has already understood stays understood, and only the part it could not resolve is put back in question. The user keeps their place instead of being returned to an empty line with nothing to show for what they typed.
Recovery
Nothing matched, and nothing was lost.
A command line is only fast if a mistake costs less than starting over. Text that is not a command simply stays text, so it is obvious what the system did not accept. And when the command is good but the symbol is not, the chip stays put and only the argument is in question.
No command called "reserch".
Did you mean
No symbol matches "MSFTX".
Closest matches
A line that can sit half-valid is harder to design, and harder to explain, than a simple pass or fail. The return is that no mistake is ever expensive.
A command layer the product can keep growing into.
The command line is built and in user acceptance testing. It gives QSWeb a single entry point that opens tools, resolves symbols and starts actions without navigating a menu or rearranging a workspace. Because commands, their arguments and their grouping all come from one catalogue, adding a command is a data change rather than a redesign, and it appears in the guide, the suggestions and the matcher at the same time. The interaction model is the part meant to last: the chip, the two stages and the partial recovery hold regardless of how many commands are added later.
Discovery
The guide types for you.
Help is the usual dead end: you read a list, close it, then type from memory. Here the guide lives in the same surface, grouped by the work rather than alphabetically, and picking a row drops the chip into the line with the argument still to fill.
Research
Trading and monitoring
Select a symbol for Company Research.
Because the same catalogue drives the guide, the suggestions and the matcher, a new command is added in one place and appears in all three.
Once released, I would use these signals to see how the command model performs in practice, so the decisions in it can be checked rather than assumed.
- Commands executed, to see which parts of the product people actually reach for.
- Name against code usage, to test whether supporting both spellings earns the cost of keeping them in sync.
- Failed commands and symbols, to find the gaps in the vocabulary worth closing.
The vocabulary cannot drift
The suggestions, the guide and the matcher all read from one catalogue, so what a user learns in one place is what works in the others.
Prototype
Related Projects
Trade Experience / Order Entry System
Five connected trading surfaces designed from the ground up: the account you trade from, two ways to build an order, and the two places you live with it afterwards.
Line Trader
Placing twenty routine orders through a full ticket means twenty trips through the same screen. Every row here is a complete order, so a list of them can be built in one place and sent together or one at a time.