Use casesA scale-up
Ferrant: six prompt files became one governed memory.
Ferrant is 240 people and 120 engineers in six teams, each with its own prompt file, one of them 900 lines long. The payments team ran memco first, on the Team plan. A quarter later the whole company was on a governed tenant with the same memory, and support was reading engineering's lessons.
- Organisation
- Payments software, 240 people, 120 engineers in six teams, a support desk and a data team
- Agents in use
- Claude Code, Cursor and Copilot in engineering; Claude in support
- Tools connected
- GitHub, Jira, Zendesk, Sentry, Slack
- First team
- Payments, 24 engineers, on the Team plan for a quarter
- Memory networks
- Ferrant, engineering, support, one per team, personal
- Identity and residency
- Okta single sign-on, dedicated EU tenant from the second quarter
- Time to first proven value
- Day nine
01Starting point
Where Ferrant started
Ferrant's six engineering teams each kept a prompt file in their own repo. The payments team's was 900 lines long and nobody knew which lines still held. The onboarding team's had not been edited in four months. The platform lead read a study that found files like these cost a fifth more in tokens and barely helped, and recognised every symptom: agents followed stale instructions faithfully, and the files were maintained in the hour before a release, if at all.
Every session started from zero. An agent on the billing repo learned that the staging database needed a warm-up query before migrations would run; the lesson lived in one engineer's terminal history. The next week an agent on the invoicing repo hit the same timeout and the same engineer wrote the same fix. Reviewers rejected a third of agent pull requests for mistakes someone else had already corrected, and the support desk's agent in Zendesk kept quoting a refund policy that engineering had changed two releases earlier.
The cost was reviewer hours and a growing distrust of the agents. The payments team measured a fortnight: 34 percent of agent pull requests returned for a known correction, a 900-line file that two engineers maintained for about ninety minutes a week, and a weekly Slack thread about what the agents had got wrong that had become the team's most-read channel.
02Day one
Day one
The payments team started on the Team plan with 24 seats and no procurement, in an afternoon. The rest of the company joined a quarter later on a governed tenant, and the memory came with it.
- Claude Code, Cursor and Copilotmemco plugin on 24 machines and an MCP connection for Copilot, signed in through Okta from the first day so nothing had to be redone when the tenant changed.
- GitHub, Jira and SentryPull request outcomes, tickets and incidents attach to insights as evidence.
- SeedThe 900-line prompt file became 70 insights with scope and source. About 200 lines were found to be dead or contradictory and were dropped. The file was deleted in week two.
- ZendeskAdded in the second quarter: the support desk's drafting agent connected over MCP so it could read the company network's policies.
- TenantAt the end of the first quarter, Ferrant moved to a dedicated EU tenant with role-based access, audit export and promotion workflows. The payments team's networks and insights carried over unchanged.
- SparkTeam networks administered by each team lead; the company and engineering networks by the platform team.
- FerrantCompany policies: refunds, data handling, incident conduct, what never enters memory.Every agent, including the support desk's.
- EngineeringConventions that hold across teams: idempotency, retries, the staging warm-up, how reporting reads data.Every engineer's agents.
- SupportDesk procedure, escalation routes, how to cite a known defect.The support desk's agent and reviewers.
- Team networks, one per teamRepo conventions, fixtures, dead ends, the corrections reviewers make.Engineers on that team.
- PersonalEach person's own preferences.That person's agents only.
fig. 01Scope map
03The first weeks
The first weeks
Week one on the payments team added about four percent to token use and returned the seed. The first live reuse came on day nine, and the lesson that taught the company how to promote came on day twenty.
fig. 02Deployment timeline
- Day 4. An agent's migration against staging times out, the fourth time that month.Run the warm-up query in scripts/warm.sql before any migration against staging, or the first statement times out.Day nine: an agent on the invoicing repo runs it unprompted and cites the insight. First reuse. By week four it has held on four teams and is promoted to the engineering network.
- Day 7. An agent builds a retry loop by hand for an outbound webhook.Outbound webhooks retry with exponential backoff capped at five attempts. The helper in lib/retry handles it.Hand-rolled retries stop appearing in review. The helper's owner attaches its test suite as provenance.
- Day 12. A revenue report reads from the nightly snapshot and the numbers are a day stale in front of the CFO.Revenue reporting reads from the live replica. Every other reporting query reads from the nightly snapshot.Scoped to the data team's reporting repos. The data lead approves it herself.
- Day 20. A payments-team insight about idempotency keys is promoted to the engineering network, where it is right for the API services and wrong for the batch jobs.Every endpoint that creates a record accepts an Idempotency-Key header and returns the original result on a repeat. Batch jobs use the run id instead.Two batch pull requests fail and a reviewer on the batch team says he has stopped reading the agent's reasoning. Scoped by service type. The platform team writes the promotion rule: nothing reaches the engineering network until it has held on two teams and a named lead approves it. The batch reviewer is one of the two approvers for the next month.
- Week 14. The support desk's agent, newly connected, quotes the refund rule from two releases ago.Refunds within 30 days are automatic. After 30 days, route to the billing queue with the order id.Written as a policy in the company network by the billing lead. Support's agent reads it the same day. For the first time, a rule engineering changed reached support without a Slack announcement.
- Week 16. Ferrant replaces its error tracker.Search Jira for the error string before opening a ticket. Attach the tracker link to the ticket, not the pull request.Nine insights naming the old tracker are retired in a day with the migration ticket as provenance. The prompt files would have carried its name for a year.
04Governance
Governance
- Team leads own team networksEach team's validation rules are its own. The platform team owns the engineering and company networks and the rule for reaching them.
- Promotion needs two teams and a leadAn insight reaches the engineering network after it has held on two teams and a named lead approves it. The day-twenty incident is the reason. Company policies are written by people and never promoted from below.
- Support reads policies, not engineering's working notesThe support desk's agent reads the company network and its own. It does not read team networks, and engineering does not read the support network.
- Provenance on every insightEach insight links to the pull request, ticket, incident or policy it came from, with a record of where it has held.
- Identity, residency, audit and retentionOkta groups map to networks, so access follows the org chart. Memory sits in a dedicated EU tenant from the second quarter. Every read, write, promotion and retirement is exportable. Insights without reuse in a quarter are reviewed by their team lead.
fig. 03The write path
05What compounded
What compounded
The payments team's quarter was the case for the rest of the company. The second quarter's readout covered all six teams and the support desk.
| Metric | Movement | Why |
|---|---|---|
| First-pass acceptance | 66% to 84% | The five teams still on prompt files moved by one or two points in the same period. |
| Cross-person or agent learning gain | Four teams in a month | Four teams reused the staging warm-up in a month. The lesson one engineer had rewritten every week was learned once. By the second quarter, a third of reused insights came from a different team. |
| Repeat-error rate | One in three to one in twelve | Pull requests returned for a known correction, on the payments team by day thirty. The weekly Slack thread about agent mistakes went quiet in week five. |
| Time to an accepted result | Down 27% | On tickets touching staging, retries or reporting, measured from ticket open to merge. |
| Adaptation speed | Same day | The refund rule reached support the day it changed. Before memco, engineering announced policy changes in Slack and support found out when a customer complained. |
| Improvement with experience | Climbing, six teams | Moving from the Team plan to the governed tenant changed nothing in the memory. The scopes and insights carried over. |
fig. 04Connected and unconnected
fig. 05Costs before it pays
06What it cost
What it cost
- Setup timeA fortnight of baseline on the payments team. One afternoon to connect Okta, the plugin, GitHub and Jira. One day to turn the 900-line prompt file into 70 insights. Half a day in the second quarter to move to the dedicated tenant.
- Who ran itTwo platform engineers part-time in the first quarter, one from the second. Team leads spend about an hour a week on their review queues. No new hires.
- Plan and tokensThe Team plan for 24 seats at $50 a member for a quarter, then an enterprise agreement for 120 engineers and the support desk with the EU tenant, role-based access and audit export. Reads added four percent to token use; the bill per merged pull request fell 22 percent in the first quarter because agents stopped rediscovering fixes and reviewers stopped sending work back.
- What it replacedSix prompt files, the ninety minutes a week two engineers spent on the longest of them, a Confluence page nobody updated, and the weekly thread on what the agents got wrong.