Four sign-offs,one paper trail
A procurement approval system. A project head raises a Bill of Materials, and it moves through budget, technical and final review. Every action is written to an audit trail that cannot be edited, and Claude gives each request a cost-risk rating to help reviewers decide.
My roleDRAFT Team project. Confirm which parts were yours before sending this page out.
One BOM, four sign-offs
This is the documented flow; the app is still being built (phase 2 of 7). A reject stops the dot; a send-back returns it to draft. Click a stage to read what happens there.
Walk a BOM through it
Act as each reviewer in turn. Approve moves it on, reject stops it, and send back returns it to draft for revision. Every click lands in the audit trail below.
Simulation of the documented flow. Status codes shown are the ones named in the README.
RBACEach role can only act on the stage it owns. Permissions live in lib/rbac.ts, transitions in constants/workflow.ts.
A second opinion on cost
Claude Sonnet reads the BOM and returns a risk level with cost-optimisation suggestions. It advises; a human still approves.
Illustration · the three levels are from the README; the cycling demo is not a real analysis
Endpoint/api/ai/analyze calls the Claude API from lib/ai.ts.
Five tables
ApprovalsThe approvals table is the audit trail. Rows are only ever inserted.
Typed end to end
Queries13 typed CRUD helpers in lib/db/queries.ts.