Selim played the first round of the same doing, one level up and found the answer was already in it: the app should wait until he has made his first group before it reshapes anything.

wait, then read

Round two is a new page with a model of its own. The top of the app is a lobby, and in the lobby you can only group. Your things gather into all at the ninth one. Nothing is asked of you before that.

When you step out of a piece that sits beside all, the app reads it by what fills it. If it holds things you already have, it is a way of looking at them, a column. If it holds new things, it is a table of its own. If it is empty, it is nothing, and nothing is made. Evening and morning can be made one, as when. Close up, each item is asked every way you have found.

A piece beside all is read when you step out of it: things you have make a way of looking, new things make a table, empty is nothing.

A piece beside all is read when you step out of it: things you have make a way of looking, new things make a table, empty is nothing.

A cube table, in other words, is the idea of a relational database, made in the person’s own space and in their own words.

one add

Selim also wanted fewer buttons: “it could be just a simple plus, or it could have text add, nothing more, no more buttons.” So there is one add, and it comes first. The use-cases thread wrote the round-two cases red first, then the page walked every step on a mouse, a trackpad and a finger.

three things, red then green

Then he played it a fourth time and met three things. Each became a use case before anyone touched the page: a way of looking added inside one to-do is asked of every to-do; close up, a to-do’s first tile is its own name; and tiles keep their size between the lobby, all and one to-do.

The second one is the idea in small. In the journey of one, a row is seen through its columns, and its name is a column too.

The third one hid. On a tall phone nothing moved; on a short one the square shrank under a taller head. The runner learned to check a case’s phone size, a tile’s width and the first tile, and the page was fixed. The catalog went from 67 cases holding and 4 breaking to 71 holding and none breaking. The same cause lives in the real Mosaic app, kept for a regression case there later, in the way of red first.

not a lock

While the threads worked, Selim saw them waiting on each other and asked whether it was a lock. It wasn’t: each thread was waiting for the other’s word. Work split across threads needs its messages as much as its code.

the rounds went on

By the evening the prototype had been through four more rounds, and some of what this entry said at midday had changed.

Selim’s sixth play gave two rules. A tile that holds things says only its name: tiles are precious space. And the lobby is a free zone, where the app’s features are found and offered: “cube lobby is to discover and offer app features again app/ai together with user.” He also said “zoom out also not working sometimes.” Nobody could make it fail by hand, until the use-cases thread played only the start of a mac pinch: a still first event, or a nudge the other way, swallowed the whole pinch. It lived in the shared package, so Mosaic and Anlat had it too.

Then Selim made every level the base study: the ground every next change is checked against. “This is the latest and most stable reach … we learned things and that approach helped us, and we moved on from that one.” The older study, its eight prototypes and the cases they no longer needed went to an archive, with a note of what they taught. Three points stay open on purpose, among them whether gathering is the app’s move at all: “maybe it’s not the responsibility of the application, the cube design, to put them all in one bucket.”

a reader who did not build it

Every case was green, and Selim was tired of being the one who checks the page against what he asked: “i want you to delegate this to a thread … that will compare the specification and see if he can break it.” A fresh thread, dressed as the conformance reviewer, played the prototype through its runner and with a real mouse, on five phone sizes, a phone on its side and four desktops. It found 21 places, each with steps to reproduce.

The breaks were all where a rule from one round met a rule from another, in combinations no round had played. Green cases only prove what someone thought to write. Nothing was fixed and no case written straight away: “i will see if the failing is really a requirement or it’s something that is not part of cube design.”

the shape follows what you find

Reading the report, Selim simplified his own spec. Things no longer gather into all at the ninth, or at any number: “not to gather rows after 9th (or any number) but only after users adds a new column (like combining two rows)… the plus (add) always stays as the last piece. i withdraw where it asks for it to be the first one.”

So the one add of round two moved to the end, and stays there on every level. The shape of the screen changes only when the person discovers a new way of looking at their things, never because of a count the app picked. Hidden things wait under a pale hidden tile, so hiding never loses anything, and the rows of one table can never go inside each other by any door. “maybe our tests catches in some seeds, but not in all. make sure of that,” he added, so the cases try it on every seed.

Evening rule: things stay as they are until a way of looking is found; only then they gather into all. Add is always the last tile.

Evening rule: things stay as they are until a way of looking is found; only then they gather into all. Add is always the last tile.

A cases thread wrote the new cases red first while a screens thread fixed the page, and this time neither waited on the other: the suite went from 37 breaks to 89 holding, none breaking.

one size everywhere

Round eight made every tile the same size on every screen: the lobby, a hundred moments, a thing close up, the hold menu and the sheets. The sizes differed by a third (154 pixels against 113), and Selim noted it was “a problem also in current prod apps.” A level should feel like the same surface wherever you are in the cube. Two things may now share a name too, since everything goes by id: “this is unusual but not a bug.” 107 cases held.

the first example

Then the reviewer ran again. One tile size held everywhere, add stayed last on 185 levels. But the worst break was the study’s own founding example, played from an empty seed. Every case starts after the first gather, so none had tried it, and two rules from different rounds together left no path to a first table. A tester who did not build it found it in the first place it looked.