Why learnings disappear
A postmortem report is usually the endpoint of a campaign, not the start of anything. It gets written, read by the people who were already in the room, and then filed somewhere nobody goes back to. At the next briefing everyone starts from zero again, with a vague sense that "something happened with that one test" and nobody can name the number anymore.
The problem is not the writing. It is that a report is built to be read once, not to be found again. A learning that does not live in a fixed place, under a name the next briefing would actually search for, does not exist in practice.
Data first, then the learnings
This is not analysis from scratch. You already have the numbers: a CSV export, a pasted table, or a report that already exists. The method works on what you hand it, not on a live account.
If a number that matters is missing, such as total spend or the sample size a learning rests on, ask for it first. A learning built on half the numbers is a guess wearing a conclusion's clothes.
Four types of learning
Per learning: one sentence, with the number attached, ranked by how reusable it is for the next campaign. Only learnings that would change a future decision. Skip open doors like "communication matters", which nobody would act on differently next time.
Creative. Which angle, format or hook won, and by what margin. Fictional example: "static images beat video in prospecting: cost per lead 12 versus 27."
Structure. What worked in targeting or budget setup. Fictional example: "the small retargeting segment was the quiet winner: return per euro spent 9 times higher than the broad audience, on a fifth of the budget."
Process. What should change in the approach itself, not the result. Fictional example: "the test phase ran two weeks longer than planned because the budget was split across six variants instead of three."
Anti-learnings. What you do not do again, with the price tag it cost. Fictional example: "launching five creative variants at once with no staggered rollout cost about 400 euros in wasted spend before it was clear which one won."
Cap it at 7. A postmortem with twenty bullet points gets read once and then ignored, same as the report it was meant to replace.
The learning library
The learnings go into a learnings/ folder in your working directory, one file per topic: learnings/<topic>.md. At the top of the file a name and a short description, in the body the learnings, the period, the final core numbers, and a link to the detail report if one exists.
One topic per file. If a learning file for a related topic already exists, update it instead of writing a new one. If a file grows past roughly thirty lines, split it by topic. A file that keeps everything that ever happened to that campaign is not a learning anymore, it is a diary.
Alongside the files, keep one index, learnings/INDEX.md: one line per file, with its name and a short description of what it covers.
This is the step that makes the difference: at the start of any new campaign, test or sale brief, read learnings/INDEX.md first, before you plan anything. That single habit is what makes a learning library work. It means a relevant learning surfaces on its own in a later session, instead of the team relearning the same anti-learning the hard way six months on.
Wrap up, but not on your own
Once a campaign or test is closed, there is often more to do than the learning file: a plan that can be marked closed, a monitoring task that can stop, a learning that belongs in the next status update. Propose those steps as a short list. Only act on them once someone says yes. The method writes and proposes; it does not close anything itself and does not touch any other system.
The skill
The skill runs this whole process: it asks for the final numbers, distills up to 7 learnings from them, and writes or updates the right file in your learnings/ folder plus the index.
Download the Campaign Postmortem skill (zip)
In Claude Code, copy the folder to ~/.claude/skills/. In the Claude app, upload the zip in the skills settings. The README in the zip covers both, and it includes two fully worked, fictional example files, one in English and one in Dutch.
What this isn't
This does not touch your account. It works on the numbers you hand it, sends nothing, publishes nothing, and does not log in anywhere on its own. If you already know which ad won and just need the math behind that, look at the volume gate for winning Meta ads first. If a problem keeps coming back despite the learnings you already captured, the cause often sits deeper than one campaign: five whys for your ad spend digs for that.
One next step
Take the last campaign or test you closed without turning it into a learning file. Put the final numbers next to it, distill three to five learnings, and put them in a first file under learnings/. The next briefing starts there.