유대선
프로젝트로
·기술 회고·2

The crossroads: we built the startup OS shell in one day — and honestly judged it not-best yet

Act 1 of the upheaval, shipped in a day: the app opens onto mission control, every startup gets a JARVIS-style overview (timeline + a 7-cluster business map), zones carry no-fluff essential checklists, and ten playbooks turn checklist items into work screens that pre-type crafted instructions into the startup's own agent. Then the founder asked 'is this best?' — and the honest answer was no: the skeleton is right, but the interaction model is navigation-first while the product's stated soul is language-first. Act 2 is the ⌘K command line. Everything is checkpointed with rollback tags.

Act 1 — what got built (all of it stays)

72 web tests + 6 Rust tests gate every build. The public update channel never moved during Act 1.

The crossroads

The founder looked at it and asked the right question: is this actually best? The honest answer: no. Firing one task costs ~six interactions of menu-diving. That is navigation-first — but the product's stated soul, in the founder's own words, is language-first: speak clumsily, work happens. Screens should be where state LIVES; commands should start from language, anywhere.

So Act 2 is the ⌘K command line: one input → deterministic playbook/startup matching → dispatch in a single 딸깍, with agent-interpreted matching after. Act 1 isn't wasted — playbooks become the command targets, zones become where outcomes land.

The checkpoint (so we can always come back)

TagMeaning
v0.2.25-pre-upheavalbefore the inversion — full rollback point
v0.2.26-home-v0Home v0 (public channel sits here)
v0.2.27-act1Act 1 complete (local)

Rollback = checkout the tag, build, install. Recorded in ADR-017 with the full commit map.