Today's session was supposed to be simple: swap an API key and move on. Instead it turned into a full pipeline wiring — org swap, invoice reconciliation, a Salesforce Site deployment to production, a validation trigger to prevent the problem from recurring, and a documentation overhaul. All in one sitting with Claude Code.
It Started With an API Key
The Delivery Hub client portal had been pointing at a dev-ed Salesforce org — useful for development, but not the real data path. The first task was straightforward: swap the API key so the portal talks to the MF Nimba Sandbox instead, which is the actual staging environment that syncs downstream to production.
Claude Code handled the env var swap, verified the connection, and confirmed the portal was pulling live sandbox data. Took about five minutes. But once we were looking at real data, something didn't add up.
35.5 Hours That Almost Disappeared
With the portal now connected to the correct org, I pulled up the March invoice for the At Large / Mobilization Funding engagement. The hours looked low. Not dramatically wrong — just enough to feel off if you'd been tracking the work.
We dug in. Claude Code queried the work log records, cross-referenced them against the invoice line items, and found the gap: 35.5 hours of logged work that never made it onto the invoice. The logs existed in Salesforce, but they were orphaned — not linked to the invoice record. Dollar impact: $3,195.
This is the kind of thing that slips through for months. Not fraud, not a bug anyone would notice in testing — just a quiet gap between work logged and work billed. The only reason we caught it was because we connected the portal to real data and actually looked.
I fixed the invoice, sent it to Danny at Mobilization Funding, and he approved it immediately. No back-and-forth. When the numbers are right and the backup is clean, approval is fast.
Making Sure It Never Happens Again
Finding the gap was good. Preventing the next one was better. I opened a PR on the Delivery Hub repo that adds an Apex trigger validation: work logs now must be associated with an invoice-eligible record before they can be saved. Orphaned logs can't happen anymore because the platform won't let them through.
The PR passed CI, got reviewed, and merged — all in the same session. From discovery to permanent fix in under an hour.
Wiring the Full Pipeline
With the portal pointing at the right org and the data integrity issue resolved, the next step was completing the production pipeline. The goal: changes made in the Nimba Sandbox should push automatically to MF Production so the client always sees current data.
This meant deploying a Salesforce Site to MF Production and configuring the real-time push sync between sandbox and prod. Claude Code helped draft the site configuration and the sync callout, but the Salesforce deployments themselves were manual — you still need a human clicking through Setup for site activation and remote site settings.
The Pipeline Today
Steps 4 and 5 were wired today. The rest was already live.
Setting Up the Repo for What's Next
The last chunk of the session was developer infrastructure. I added a CLAUDE.md file to the repo — this is the project-level instruction set that Claude Code reads automatically at the start of every session. It captures deployment rules, Salesforce org mappings, data integrity constraints, and workflow discipline so the AI doesn't need to be re-briefed every time.
I also added custom hooks (pre-build validation) and skills (reusable slash commands for common operations like deploy checks and Salesforce session bootstrapping). Then updated the /pipeline and /system-map pages on the site to reflect the new architecture.
One Session, Seven Deliverables
Here's what shipped today, in order:
Org swap
Portal now talks to Nimba Sandbox instead of dev-ed
Invoice reconciliation
Found and recovered 35.5 orphaned hours ($3,195)
Invoice sent and approved
Client approved same-day with clean backup
Salesforce Site deployed to production
MF Prod now has a live Salesforce Site for push sync
Real-time sync configured
Sandbox changes push to prod automatically
Validation trigger shipped
PR opened, CI passed, merged — orphaned logs prevented
Repo and site documentation
CLAUDE.md, hooks, skills, /pipeline, /system-map updated
The Takeaway
None of this was planned as a single session. The org swap was supposed to be a five-minute task. But connecting to real data surfaced a real problem, and fixing that problem naturally led to hardening the pipeline end-to-end. That's the advantage of working with Claude Code at this speed — when one fix reveals the next issue, you can actually follow the thread instead of parking it in a backlog.
The pipeline from email to production Salesforce is now fully wired. Work comes in through any channel, gets processed by AI, stages in sandbox, and pushes to prod where the client sees it. No CSV exports, no manual handoffs, no orphaned data.
Tomorrow it just works. That's the point.