← Back to my work

BUILD 03 / DOCUMENT + APPROVAL WORKFLOW / 09 SEP 2026

Koya Proposal Studio

I built a proposal workflow that turns discovery notes into seven editable sections. It flags unsupported claims and needs a second person’s approval before anything reaches the client.

View the code ↗Built + tested
7independently editable sections
67recorded database E2E tests
2gates before approval

The problem

Writing a proposal often starts with call notes and an older document. I wanted a repeatable structure without carrying over claims that the new brief doesn’t support.

What I built

Claude drafts seven sections from the intake and supporting material. Each section is stored separately, so I can regenerate one without changing the rest. Checks flag unsupported numbers, dates, and other claims before review.

How approval works

A different person has to approve the proposal. Blocking gaps, version checks, and database constraints protect that step. Delivery can produce a hosted page, PDF, and covering email. Failed deliveries are recorded and retried without sending duplicates.

What I tested

The 9 September record includes unit tests, end-to-end tests against Neon Postgres, team and activity-scope checks, and a live seven-section draft. The project was built and tested. It wasn’t deployed at that point.

WHAT I LEARNED

What testing caught

I had guarded the send endpoint, but a read endpoint could still expose a client link. I added the approval check to the public proposal page too.

Recorded build evidence · 9 September 2026. The figures here come from those test records.

← See the other projectsGot a workflow in mind? ↗