The gap register: 357 total across 10 phases, 0 answered
Part ofMethod

StellarView Alpha, part one: the plan asked 357 questions and refused to answer 281 of them

The plan asked 357 questions

Part 1 of five in StellarView Alpha, a series about delivering a solved application as an operated platform.

Everything works on a laptop.

That is the whole problem, and it is not a new one. Hello world works. A demo works. The step that breaks things is the first one away from the machine it was built on: a second tenant, a real account, somebody else’s test suite, a stranger’s support ticket.

This is a five part series about walking that step deliberately, on camera, with a control that nobody can argue with. Every failure in it is ours.

Why Conduit

Conduit is the reference application of RealWorld, and it is the most implemented demo application on the internet. Over a hundred versions exist, in every framework you can name.

That is the point. If a hundred people already built the application, the application is not the variable. Every difference between one delivery and another is whatever surrounds the app. It is a control, and controls are what make a comparison mean anything.

The people who built RealWorld said this first, and better, in their own README:

While most “todo” demos provide an excellent cursory glance at a framework’s capabilities, they typically don’t convey the knowledge required to actually build real applications with it — nor the real-world constraints a minimal demo never has to face.

Eric Simons put it more sharply when he introduced the project in 2017:

Todo apps are not good examples when you’re comparing “realistic” applications because todo apps existed long before the web did. Phrased differently, todo apps have not been one of the breakthrough applications whose mere existence required the web itself.

We are not competing with that argument. We are standing on it.

What we asked for

Not the app. A running, cloud-based, SaaS-ready platform, with the app inside it.

One document went in. 6,635 characters, which the upload card rounds to 6.5 KB. Typed by a person, into the Big Bang creator.

requirements.md on the Big Bang upload card, 6.5 KB

Nothing else was configured. No template was chosen, no phase count was set, no technology was named. Six of the seven requirement fields were still empty when the document landed, and the machine filled them by reading it.

The requirements it read out of the document

Read that panel, because every claim in the four films after this one is judged against it. The requirement it carried, in the client’s own words on screen, includes the scoring rule:

An implementation that passes the API suite and ships nothing else scores one dimension out of eleven.

The epic: 10 phases, 106 work units, 848 hours

Ten phases, and only three of them are the app

The ten phases with their work unit counts

Add them up:

phasework units
1 Tenant-Isolated Data Layer and Conduit Identity11the app
2 Conduit Publishing Core10the app
3 Conduit Reference Frontend and Tenant Admin UI11the app
4 Merge-Blocking CI, API Conformance, Isolation Proof9
5 Infrastructure as Code, Cloud Deployment, Executed Rollback12
6 Observability: Structured Logs, Health Endpoints, Live Dashboard9
7 Data Lake: Content, Events and Operational Records13
8 Grounded Retrieval Over the Platform’s Own Corpus12
9 Support Desk: Ticket to Code-Referenced Answer10
10 Generated Wiki, Timed Cold Start and the Record9
106

Thirty two work units are the application. Seventy four are everything else.

Phases one to three are Conduit: the data layer with tenant isolation, the publishing core, the reference frontend. Thirty two work units. That is the part a hundred people have shipped.

Phases four to ten are seventy four work units. They cover:

  • merge-blocking CI with API conformance and supply chain scanning
  • infrastructure as code, a cloud deployment, and a rollback that has been run
  • observability: structured logs, health endpoints, a live dashboard
  • a data lake where content, events and operational records land queryable
  • grounded retrieval over the platform’s own corpus
  • a support desk that takes a ticket to a code-referenced answer
  • a generated wiki, a timed cold start, and the record

Seven of the ten phases are the step off the laptop.

A work unit is eight hours

Work units, each eight hours with acceptance criteria

WU-1-1, eight hours, four acceptance criteria. WU-1-2, eight hours, three. A hundred and six of them at eight hours each is eight hundred and forty eight. That number is not an estimate. It is arithmetic, and the multiplicands are on screen.

Then it stopped and asked

The part we did not expect.

Three hundred and fifty seven gaps. Eight critical. Sixty eight it believed it could settle by reading the repository. Two hundred and eighty one it would not answer at all. Answered: zero.

They are questions, not warnings. Which database role runs the migrations. Whether a tenant setting unwinds on a rollback. Whether a liveness endpoint belongs at /health or /api/health. Beside every one, an empty box.

A plan that guesses looks finished. It is also how you find out in week six.

The scoring rule, and the score

The requirements document does not just ask for work. It defines how the result should be judged, across eleven dimensions, and says plainly that passing the API suite alone scores one of them.

Phase ten generates the scorecard from that rule and commits it. It is checked in at wiki/rubric.md, and it does not flatter us:

DimensionScore
Conduit parityMet
Multi-tenancyMet
ObservabilityMet
DocumentationMet
SupportMet
Data lakeMet
AI layerMet
SecurityMet
Infrastructure as codePartially met
DeploymentPartially met
Continuous integrationPartially met

Eight met, three partially met, each with named evidence files. The reasons name the constraint rather than hedging. On continuous integration:

GitHub’s branch-protection API refuses to mechanically enforce required-checks on this repository’s plan tier, so the jobs run and report red/green but cannot technically block a merge button click.

That is a generated document, published so that anyone can run the same rubric against us.

And then it stopped being a document

Eleven issues in the repository the team already owns

Eleven issues in the team’s own repository, each carrying its phase in full rather than a link to somewhere else.

The backlog: 106 of 106

And a hundred and six of a hundred and six on the board the delivery managers already use, every row carrying a link back the other way.

Nothing here has been built yet. That is the point of it.


Credit where it is owed

Conduit is the reference application of RealWorld, created in 2016 by Eric Simons and Albert Pai and funded in its early years by Thinkster. The project credits Dan Abramov and Addy Osmani with helping spark the idea, and TodoMVC as its model. It was revived in 2021 by Gérôme Grignon and Manuel Vila after its original maintainers stepped back, and is maintained today by c4ffein and Manuel Vila under the realworld-apps organisation. Manuel Vila also built CodebaseShow, which indexes the community’s implementations. RealWorld is MIT licensed, © Thinkster and © c4ffein.

We built against the published API specification and its test suite. We are not affiliated with the RealWorld project, and nothing here should be read as endorsement by its maintainers. Passing the spec’s suite demonstrates conformance to that specification and nothing more.

Thanks to everyone who has kept this spec alive, unpaid, for a decade.

Next, It read my commit: it read a Dockerfile I had committed an hour earlier, and found what I had left out.