Note · how requests become shipped software

Catalyst Build Process

Our team and our customers work off the same board: bugs, feature requests, improvements, ideas. It’s all AI-native, and it’s the single source of truth.

Claude Code triages, builds, and reviews every request. Higher-risk requests get a person’s eyes on the plan, the build, or both, at whichever step the risk shows up. Either way, nothing reaches production until a person decides to ship it.

Coming inRequest → Queue → Automated AssessmentFully automatic, because nothing at this stage touches production. At worst, a request gets misrouted or duplicated, and it still can’t ship.
Going outBuild → ReleaseReviewed automatically by default, escalated to our engineering team when the risk calls for it, then always deployed by hand. Deployment itself is always a person.

Where the controls actually are

Duplicate detectionSigned webhook deliveryIsolated pre-productionType-checking & lintingAutomated test suiteRisk-scoped security checksIsolated git branchFull audit logAutomated plan reviewAutomated code reviewIndependent re-check of every automated buildScope-deviation flaggingExtra human review for higher-risk changesSecurity / architecture / legal escalationManual deploymentReversible migrations for schema changes

Person-initiated
Automated (Claude)
Human approval required
1
Production

Submit a request

A customer, or someone on our own team, files a bug, a feature request, an improvement, or just an idea on the same customer-facing board. Nothing splits off into a separate internal tracker. If it matches something already reported, they’re told it’s a known issue right there in the conversation, and their report is added as a vote on the existing request.

Team + customer boardAI duplicate check
2
Production · every couple of minutes

Secure hand-off

A scheduled job, running inside our production deployment on separate machines from the ones that pick the request up next, reads new and updated requests and sends them, cryptographically signed, to a separate pre-production environment. Delivery is retried automatically until confirmed, so nothing is lost to a temporary outage.

Scheduled cron jobSigned webhookAuto-retry
3
Pre-production

Queued for review

The request lands in a queue inside its own deployment and its own database, a separate environment that mirrors production but holds no production credentials. Receiving the same request twice is handled safely and never creates a duplicate entry.

Isolated deployment + databaseNo production credentials here
Automated — assessment
4
Automated · runs against the real codebase

Assess the request (Claude)

Claude reads the actual code the request would touch, checking for security-sensitive surfaces, required data-model changes, and blast radius. It then sorts the request onto one of two tracks: the fast track, where Claude’s own review carries it all the way to a committed, reviewed change, or the careful track, where a person reviews the plan, the build, or both before it goes further. A copy tweak or a small UI fix is typically fast track; a change touching auth, payments, or a data migration is typically careful track. If the request is too vague to even judge the risk, it waits for a person to scope it. The same assessment also scopes how much security testing the change needs in step 6.

Fast trackCareful trackNeeds a person to scope itSets security-testing scope
Plan review — automated by default
5
Automated by default · human review on the careful track

Review the plan (Claude Artifact)

Claude publishes its proposed approach, the risk assessment, and any data-model change as an interactive document, in plain language. On the fast track, Claude checks this against the same criteria from step 4 and moves on. No code exists yet, so nothing here touches production either way. On the careful track, a person reads the same document and approves or declines before a single line of code is written.

Interactive review artifactNo code exists yet
✋Careful track: stops here for a person, wherever they are, before continuing.
⚑Needs a specialist call? Escalates here to security, architecture, or legal/compliance. The request waits until it’s resolved.
↩Declined → back to step 4, revised with the reviewer’s feedback.
Automated — build
6
Automated · isolated from production

Build the change (Claude)

Once the plan clears review, automated or human, Claude writes the code on its own git branch, separate from the main codebase, running type-checks, linting, and the full automated test suite at every step. Security testing is scaled to what the change actually touches, as set back in step 4. Nothing is merged or released yet.

Isolated git branchType-checkLintTest suiteSecurity checks (risk-scoped)
Code review — automated by default
7
Automated by default · human review on the careful track

Review the build (Claude Artifact)

Claude publishes a second, separate document: exactly what was built, what it touched, and the test results. On the fast track, Claude reviews its own work independently of the plan review and commits automatically. On the careful track, a person reviews it independently instead; approving is the exact moment the change is committed to version control. Deploying it is always a separate step, either way.

Interactive review artifactCommits to version controlNot deployed yet
✋Careful track: stops here for a person’s independent review before committing.
↩Declined → back to step 6 for rework, still on the same isolated branch.
Release — completed by our team
8
Manual · performed by an engineer

Release & notify

An engineer pushes the reviewed branch to version control and deploys it to production by hand. The original request is marked resolved on our customer-facing feedback board and linked back to our internal knowledge base, so support materials and in-app help stay accurate. If something’s wrong, code rolls back to the previous deploy instantly. Schema changes are the exception: reverting one also means rolling back its migration, so every migration ships with a tested rollback as part of the same change.

Version control pushManual production deployInstant rollback (Vercel)Reversible migrations
Production — customer visibility
9
Customer-facing

Knowledge stays current (in-app Help Center)

Our in-app Help Center is a separate, purpose-built tool, distinct from Otis, the assistant you talk to. It answers product questions from the same knowledge base, lets people report issues, and shows the roadmap. Once more than one person has reported the same issue, it can also say the issue is “known and being looked at,” never that it’s confirmed.

Product Q&AReport issuesRoadmap visibility

Most requests run unattended from triage through a committed, reviewed change, with one mandatory checkpoint: deciding to deploy it. Higher-risk requests get a person’s eyes on the plan, the build, or both, wherever the risk shows up. Claude never holds production credentials, and every review decision, automated or human, is logged. Before step 7’s review, an independent pass re-runs the tests itself and flags any change outside what was proposed. A fast-tracked change that turns out wrong in production still gets step 8’s instant rollback and audit trail. See the machines behind automated triage and build, and the local safety net every branch clears before merging.