DecipherSign in
Cipher Projects · August 2026

From Claude workflow to production agent infra

Decipher is the first agent on Cipher's stampable rails. Here is how a quote is constructed, how the stack is pieced together, and why the model never sees what the logged-in user cannot.

~12 min · no price list · every case is scoped

Quick verdict

A Claude Project that works for the team has proven the decision logic. It has not shipped identity you own, named connectors, or an audit trail operators can keep.

Decipher is that cutover in working form. You sign in with MFA. The API decides what your role can see. Pricing math runs in code tools. Connectors are wrappers with their own scope. Quotes stay indicative until a human confirms.

The commercial shape is three pieces you can check: rails once, each production agent as its own line, each named system as a connector. Band position moves with proven-versus-greenfield, write-versus-read, tenancy, and how many systems the agent actually touches. The structure does not change. The number does. Floors live on the Cipher pricing page. This essay is the construction, not a quote.

What “works in Claude” actually is

Most teams we meet already have the hard part half-done. A Claude Project, a Custom GPT, or a ChatGPT workflow is drafting the same answer a senior person used to write by hand. Inputs are known. The ugly edge cases have names. Someone on the team uses it every week.

That is a proven workflow. It is still running inside a vendor product: their login, their memory, their connector story, their retention. Fine while the output is copied into the CRM by a human. Fragile the moment the agent must act, a customer must log in, or finance asks what agent #3 will cost.

Cipher's cutover rule is blunt. Stay in Claude until the happy path and the tool list are real. Then harden onto rails you operate. Do not pay to rediscover the prompt on a production stack, and do not pretend a shared Claude project is that stack.

Claude workflow versus production agent infraCLAUDE / CHATGPT WORKFLOWPRODUCTION AGENT INFRAVendor seat or project shareidentity you do not ownYour login + MFAJWT, refresh cookie, TOTP requiredShared project fileswhoever has the linkRBAC + row isolationstaff vs viewer; caller-owned rowsPaste, plugins, thin MCPcredentials live in the chatNamed connector wrappersauth, scopes, tests, least privilegePerson in the threadapproval is informalHuman sign-off + auditindicative until staff confirm
Figure 1. The cutover is identity, isolation, connectors, and sign-off — not a longer prompt.

How a quote is constructed

Cipher does not sell a blob. A phase is assembled from named pieces so both sides can see what happens when you add agent #3 or HubSpot. Decipher uses the same model in code: the agent must call estimate tools; it is not allowed to invent figures.

You will not find a dollar amount in this post. The construction is the useful part, and it is the part that survives a different industry, a different connector list, or a different deadline.

How a quote is constructedONE PHASE · THREE LINES · LANE ON TOPDelivery lane — Steady / Standard / Acceleratedsame scope; calendar and staffing change, not the line itemsNamed connectors this phaseeach system is its own wrapper. Later systems are design notes, not build.Production agents this phaseband position moves: proven-in-Claude sits lower than greenfieldRails (once)identity, UI, API, agent runtime, audit. Reused by agent #2.Multi-tenant uplift sits on rails only if you resell. Every figure is indicative until a human confirms.
Figure 2. Stack the phase from the bottom. Rails are paid once. Agents and connectors accrue. A delivery lane changes calendar and staffing, not the bill of materials.

Rails, once

Rails are the shared base every later agent reuses: login and MFA, the authenticated UI, the API that owns HTTP and persistence, the agent runtime, audit, and a place to hang connectors. Cipher stamps this. Decipher is the dogfood instance — NestJS, Next.js, Postgres, Redis for infra only, hand-rolled JWT plus required TOTP, Mastra as the agent side. AWS AgentCore or Strands can appear as a delivery lane for a client who needs that gravity. They are not a second product kernel.

If you resell the same system to downstream clients, tenancy sits on the rails line as an uplift. Self-use internal staff does not pay that tax.

Each production agent

One agent is one line: freeze the inputs, the decision logic, the outputs, the trigger, and whether a Claude workflow already exists. Proven-in-Claude sits lower in the band because discovery is done. Greenfield sits higher because you are still finding the edge cases while you harden. Shared tools and memory across a family pull the later agents down. Writes, human-approval chains, and external users on the login path push them up.

Each named connector

A connector is a system the agent must touch this phase: HubSpot, Microsoft 365, a core lending API. It is a wrapper with auth, scopes, tests, and least privilege — not “the agent will just call the API.” Teams that bury two SaaS connectors inside one agent line rediscover OAuth consent and polling-only APIs mid-build. Cipher prices the wrapper as its own line so that risk stays visible. Systems you will need later are written down as design notes. They are not priced as build.

Delivery lane on top

Steady, Standard, and Accelerated are the same scope at three calendars. Fewer engineers sequential, the default two-engineer pace, or more engineers in parallel. The lane is config, not a model judgement. The client picks a lane. The line items stay the same.

Every completed quote carries assumptions, open questions, exclusions (certification, unbounded discovery, cloud runtime meters), and a scoping-call CTA. The label is always the same: indicative, scoped per engagement, until a human confirms.

Rails, connectors, and RBAC are three different jobs

People collapse these into “security” or “the platform.” They fail in different places, so they are built as different pieces.

PieceJobWhat breaks if you skip it
RailsIdentity, UI, API, runtime, audit — reused by every agentAgent #2 rebuilds login and the chat shell
ConnectorsOne wrapper per named system, scoped to the callerSecrets in prompts; HubSpot becomes “the agent”
RBACRole on the authenticated user, enforced at the APIHidden UI tabs; the model is asked to keep secrets
Request path through rails, RBAC, and toolsTHE MODEL DOES NOT OWN THE DOORBrowserNext.jsNest APIJWT + MFARBAC gaterole on the userMastra agenttools, not free mathPostgresthreads, quotes, CRM rows — owner scopedaudit_eventstool calls and denied probes
Figure 3. Nest owns the door. Mastra runs tools after the caller is known. Postgres and audit are scoped by that caller.

On Decipher the roles are cipher_staff and demo_viewer. Guards load the user from Postgres and reject a session that has not completed MFA. Staff can open the operator build spec (delivery-stack notes, internal sensitivity). A viewer who hits that route gets 403 from the API, and the attempt is written to audit_events. Hiding the tab would not be the control.

The model never receives what the user cannot see

Prompting a model to “not leak internals” is not a control. Decipher assembles context before the agent runs. Staff context includes the internal knowledge base. Viewer context is built from public floors and the caller's own records. The model cannot recite a rate it was never given.

The mock CRM connector follows the same rule. Every tool call carries { userId, role } from the Nest bridge. lookup_client_context returns rows owned by that user only. There is no god-mode repository. Cross-user ids 404. Denied probes are audited.

Two-tier context and caller-owned connectorsCONTEXT IS ASSEMBLED BEFORE THE MODEL RUNSCaller{ userId, role }cipher_staffpublic floors + internal KB + operator specdemo_viewerpublic floors + own CRM rows only
Figure 4. Two-tier context and caller-owned connectors. The fork happens in Nest, before Mastra sees a token.

That is the same architecture as a client assessment agent on a private knowledge base. The rate card in this demo is the private KB. A loan-assessment agent would swap the card for the client's policy pack and keep the fork.

What moves a real quote

Same structure, different point on the band. These are the knobs intake actually uses. None of them are a licence to invent a fourth commercial model.

KnobWhy it moves the number
Proven in Claude vs greenfieldDiscovery is already paid, or it is still ahead of you
Named connectors this phaseEach wrapper is integration risk with a schedule
Read vs writeWrites need harder evals and often a human step
Internal staff vs external usersIdentity and tenancy get heavier
Self-use vs resale / multi-tenantUplift on rails, not on every agent
Compliance statedHardening language and evidence paths — not a cert fee
Delivery laneCalendar and staffing. Same scope.

Two proven Claude bots plus HubSpot and Microsoft 365, internal staff only, is a different quote from one greenfield agent that writes into a core system for downstream customers. Both use the same three lines. Cipher will not pretend they cost the same.

What this demo is, and what it is not

Sign in, complete MFA, describe the agents and the systems, and Decipher will ask only the follow-ups that change architecture or band position. Then it persists an indicative quote you can reopen. That is the product shape Cipher stamps: a real app, not a Claude share link.

It is not a signed proposal. It is not SOC 2 or ISO 27001 certification — the base supports those controls and does not block them; assessors certify the organisation. It is not Cipher's internal costing. Eng-week rates and margin do not appear in chat, in the client document, or on a viewer session. Cloud token meters are operational spend, excluded from the build quote.

The commercial bands and the longer pricing argument live on Cipher's site: How we price production AI agents, and the shorter cutover note Claude workflow vs production agent. This page is the working instance of both.

If you already have the Claude workflow, bring the tool list and the systems it touches. Sign in to Decipher and walk a phase, or book a 30-minute scoping call. The quote you get here is a first draft. A human still has to stand behind it.