Two days ago the idea was that sessions come and go and roles stay (roles, not agents). Today the roles got a home, a name for the whole, and five new hires before the evening.
the chaos, named
Selim began the day by describing the mess. In two weeks the way he works
with agents had grown in five steps: prompts, then skills, then inboxes, then
roles (a database expert, a cubes expert, a journal reporter, an assistant),
then teams with a spirit of their own. None of it lived in one place. It was
spread over the prompts of scheduled tasks, over skills, over the
CLAUDE.md file of every repository, and over pages in Notion.
The move he made is the one cube design keeps teaching: when many things look the same, go a level higher. All those scattered pieces are one thing, the words an agent reads before it works. So there should be one place every agent reads first. He called it the cube company.
clothes, not cattle
His images carried the design. “I don’t want to treat my agents or skills or scheduled tasks as kettles,” he said, and then, about roles: “roles as clothes, you can wear them.” A session, a thread, a scheduled run, a sub-agent: these are kettles that come and go. What the company keeps is the clothes. An agent puts on four layers before it works: the company (what everyone shares), a role (what it is good at), a team (whose spirit the work is in), and the task. Getting dressed is the first thing any employee does, and undressing, mending the role’s notebook so the next session starts where this one stopped, is the last.
Kettles come and go; the clothes stay. An agent puts on company, role, team and task, works, and mends the notebook on the way out.
Claude added two things he agreed to: a role and a team are two faces of one cube rather than rungs of a ladder, because a role belongs to several teams at once and should never be filed under one of them. And every long prompt of a scheduled task was really a role charter written in the wrong place. “Each team could have its own flavour of the cube design,” he said, and that flavour already had a home in cube design’s dials.
a repository, built like a cube
By the middle of the day a fresh session had founded the repository from the notes. Its README is an index: from a task to a role and a team. A role is a folder of six files, the parts from roles, not agents: charter, knowledge, doors, inbox, heartbeat, notebook. There are seven teams, a decisions log with dated rows, open questions, and a file that places the company’s own pages on its faces, so the company is a cube too.
The founding session’s judgment went into checking the drafts against what already existed: the installed skills, the live prompts of the scheduled tasks, the assistant’s notebook. The findings came out of the comparison, not the writing. The assistant’s report, for instance, had two shapes side by side in two places, and nobody had noticed.
Then the layers were made thin. Selim asked that every scheduled task and every skill carry as little as possible, with everything an agent needs living in the company. The reason is one he keeps coming back to: a prompt or a skill is a copy, and copies drift. The installed cube design skill was already behind its source. So the skills moved into the company, each cut to a few hundred words that say when it applies and where to look, and the scheduled tasks became wardrobe notes that say little more than get dressed. One task that was switched on turned out to have been doing nothing for days: its runs took a hundredth of a second because it had no connectors. A thin note that Selim can paste in a minute matters partly because of things like that.
five hires in a day
The developer learned its job from the apps themselves. The founding session
could see only one repository, so another read the CLAUDE.md files of the
four app repositories side by side and wrote what every repository asks, how
each one builds and how a change ships. Reading them together turned up
drift: the charter said never merge what Selim has not reviewed, while two
repositories already let Claude merge small fixes on its own. Each
disagreement was logged, not fixed quietly.
An infrastructure expert was hired because Selim wanted a role that remembers where his things run and how they’re wired, so he doesn’t have to. Its notebook is a map, each line marked checked or unverified. It came with seven questions for him and a rule learned the hard way: check for conflicts before touching a record, and write down every new service in the same session.
A doc expert was hired for the drift that had just bitten: two apps had moved to a real database and cube design’s own build page still said they lived in Notion. Its first map of the documents caught three stale ones within the hour.
A library maintainer, wanted since 31 October but never hired, got its charter when the shared Angular package became a project of its own with a docs site (more in below the screen). Selim was unsure whether the package needed a team or a role. The company already had the role waiting, so it was hired, and the team question stays open, in line with his “we will discover this”. His rule went straight into the charter: the docs may wait until an addition has been tried, but the code and the docs always go together.
one role’s work reveals the next
The company writes everything down so that Selim doesn’t have to remember it. And everything it writes is also built into a website, so that sessions without git can read it. Answering the infrastructure expert’s questions, Selim noticed the problem himself: “this raises the question that which part of that data inside the cube company we are going to publish as public, and which one we need to pay attention that can be used against us.” He said a new role would be needed, one “that is going to watch after us, and make sure that we are not leaking information.”
So the fifth hire was a security expert. It built the site and read it the way a stranger would, and found what no single file showed: two lines in two different files that together told something private. The shape Selim chose is the simple one. What is public is public on purpose: a page is built only when it is marked so, nothing is indexed, and the build refuses to deploy if anything that looks like an identifier would leak. The new guard caught the session’s own mistake on its first run.
Two small moments from that session. Selim set aside the company’s own rule that an agent reaches him only through his to-do list: “I’m here, you can ask them here.” And an older role corrected a newer one on its first day: the doc expert’s map had written out a confidential path pattern, and the security guard stopped the build.
There is still no company and no hiring in the ordinary sense. But by the evening there was an index, eight roles, seven teams, a decisions log, and a line between what the company tells the world and what it keeps. The team that appeared on its own in unblocked now has a wardrobe.