briCoding

Write the spec. Then try to kill it.

I spec'd an entire SaaS before writing a line of code. Then I asked AI to kill it. Here's the workflow that came out the other side.

I’ve been building a side project, a browser-based prototyping tool for designers (name TBD, the one I had was taken). Before touching any code, I spent a week doing nothing but writing a spec. Brain dumps into Claude until I had a single markdown file that could answer any “how does this work” question before implementation started.

I had a solid plan. And then it completely got away from me.


What over-speccing looks like

By revision 2, the spec had:

FeatureWhat I told myself
Multi-role permission matrix”I should model every user type up front”
Semantic retrieval pipeline with embeddings”Keyword lookup won’t be enough”
Gated launch flow”I need to control adoption from day one”
Detailed onboarding event logging”I need full funnel data before shipping”
Custom runtime caching strategy”Performance architecture needs to be settled now”
Compliance readiness notes”Larger customers will ask for this eventually”
Key management architecture decision”Security choices have to be perfect before v1”

I was building for a company I didn’t have, with customers who hadn’t asked for anything yet.

I ended up trimming more than half the scope of my original spec. Roles collapsed, the waitlist became “just ship it,” onboarding logs became “use basic product analytics.”

But revision rounds weren’t what fixed the spec.


The pre-mortem fixed it

A pre-mortem is a planning technique where you assume failure upfront and work backwards to find the cracks. Instead of asking “will this work?”, you ask “it already failed, so what killed it?” This helps surface hidden assumptions before they cost you real time.

Before writing a line of code, I ran the finished spec through a single prompt:

It’s 18 months from now. This project shipped, got early users, and quietly died. What killed it?

Five causes of death came back. Three I could test before building anything:

Cause of deathWhat it actually meant
Output quality looked good but failed real checksRun evaluation tests before building. If quality is core to the product, it cannot sit in a v2 backlog.
First-load performance broke the core experienceThe runtime choice was made before testing startup behavior. If speed is part of the value, test cold-start and warm-up early.
Bring-your-own-key created enterprise friction”Users can add their own API key” sounds simple, but procurement and security review can stall adoption.

Two required spec changes:

Cause of deathThe design problem it exposed
One champion became the permanent support pathSetup depended on one person. There was no versioning model and no co-ownership plan. The architecture baked in a support bottleneck.
Prompt-only workflows stalled at visual refinementSmall UI changes took multiple prompt cycles. The spec needed a clear position on direct manipulation (point-and-click edits) before launch.

The workflow

This is the part worth stealing:

1. Brain dump the idea — no structure, just everything in your head
2. Ask Claude to turn it into a spec
3. Revise the spec until the feature list feels right
4. Run the pre-mortem: "It's 18 months from now. This died. What killed it?"
5. For every predicted failure: is this testable before building?
6. For each testable risk, run a small prototype. Use what you learn to close open questions, then update the spec.
7. Now write code.

The key constraint: assume you’re the only user. Not a company, not paying clients, just you and whoever stumbles onto the repo. Every feature that only makes sense at scale gets cut.

The pre-mortem does something revision rounds can’t. It forces you to argue against your own assumptions. You built the spec in optimist mode and the pre-mortem runs it in pessimist mode. The diff between those two is your real v1 scope.


What changed in the spec

BeforeAfter
UsersMulti-role permission model from day oneStart with a single-user flow, expand later
Knowledge inputRetrieval pipeline plus embeddingsPlain text config injected into prompts
LaunchGated release planPublish and learn from real usage
AnalyticsCustom event instrumentationOff-the-shelf analytics, minimal setup
RuntimeComplex runtime chosen upfrontUse the simplest runtime, spike alternatives
AuthWorkspace and org modelBasic sign-in that supports day-one needs
SecurityOpen questions across multiple optionsOne clear baseline with managed secrets
MonetizationRevenue model implied in v1No monetization in stage one

The second spec is about half the length. Every decision has a rationale. There are no open questions blocking implementation.


The project isn’t shipped yet, but for the first time I know exactly what I’m building and why each decision was made. A tighter spec was the outcome.

The pre-mortem is the step my previous project specs were lacking, and it’s a point in my workflow I will continue to experiment with. Try it out! It might help refine your plans.


Further reading

On spec-driven development with AI:

On the pre-mortem:

  • The Pre-Mortem Method — Gary Klein writing on Psychology Today, free to read
  • Pre-mortem — Wikipedia’s summary of the technique and the “prospective hindsight” research it grew from