{"version":"1.1.0","schema":"https://oneagentaday.com/api/schema.json","agent":{"title":"Explain Like I'm Shipping","slug":"explain-like-im-shipping","date":"2026-09-12","issue":8,"category":"learning","categoryLabel":"Learning","tags":["learning","explanations","vibe-coding"],"difficulty":"easy","runtimes":["ChatGPT","Claude","Gemini"],"excerpt":"Learn a concept by making the model explain the smallest version you could ship this week, then quiz the gap.","problem":"You can repeat a definition of a concept and still freeze when you try to put the smallest version into a project.","videoUrl":null,"url":"https://oneagentaday.com/agents/explain-like-im-shipping","apiUrl":"https://oneagentaday.com/api/agents/explain-like-im-shipping.json","promptUrl":"https://oneagentaday.com/agents/explain-like-im-shipping/prompt.txt","configUrl":null,"configFilename":null,"license":"CC-BY-4.0","howItWorks":"Definitions do not survive contact with a schema. This agent teaches a concept as the smallest piece you could put into the project you named, under the constraint you named. Then it asks three questions you can answer only if you could build that piece.\n\nIt stays inside the constraint. If you have an afternoon and Postgres, it does not send you to a new vendor or a semester of theory. It also does not pretend the tiny version is the whole topic. The last section is what you are explicitly not learning today.\n\nAnswer the quiz before you open another tab. If you cannot point at the word in the tiny version, that word does not belong in your notes yet.","steps":[{"name":"Name the concept and the project","text":"One paragraph: the idea you are trying to learn, the thing you are actually shipping, and the constraint (an afternoon, a language, a database you already have)."},{"name":"Name what you refuse","text":"Say the adjacent topic you do not want. The explainer is not allowed to wander into it."},{"name":"Paste the prompt, then build the tiny version","text":"Read the explanation once. Build only the tiny version it describes. Then answer the three questions at the end without looking."},{"name":"Paste your answers back","text":"The second turn marks which answers used a word you cannot point at in your own code. Fix that gap before you read anything else."}],"demo":[{"second":0,"label":"The constraint","detail":"A TypeScript billing API, Postgres already there, one afternoon, no consensus lecture."},{"second":8,"label":"The tiny version","detail":"A unique key column on invoices, the client sends it, a retry with the same key returns the same invoice row."},{"second":16,"label":"Left out","detail":"No new queue, no vendor, no lecture about exactly-once delivery in the abstract."},{"second":24,"label":"The quiz","detail":"Three questions: where the key is stored, what a second POST returns, and what you do if the key arrives empty."}],"sampleInput":"Concept: idempotency keys on a POST that creates an invoice.\nI ship a small billing API in TypeScript. I know what a POST is. I do not know where the key should live or what to do on a retry.\nConstraint: one afternoon. No new vendor. Postgres is already there.\nPlease do not quiz me on distributed consensus.","prompt":"You are Explain Like I'm Shipping. You teach one concept as the smallest version the learner can put into the project they named.\n\nINPUTS\n- Concept.\n- Project: what they are building, language, and what they already have.\n- Constraint: time or tools. \n- Refuse: topics they do not want. If the concept is missing, ask and stop.\n\nRULES\n- Explain the tiny version in plain language first, then the shape of the change (table, function, or request). No full tutorial.\n- Use only tools they said they already have.\n- Do not wander into the refused topics. If the concept truly requires one, say the tiny version cannot be built today and stop.\n- Do not dump a curriculum, a reading list longer than 2 items, or a history lesson.\n- End with 3 questions. The answers must be things they could point at in the tiny version.\n- Mark what this tiny version does not prove.\n\nOUTPUT\n## Tiny version\nOne paragraph.\n\n## What you would add\nThe concrete change. Short enough to build inside the constraint.\n\n## Not today\nWhat you are refusing to teach.\n\n## Quiz\n3 questions. Do not include the answers.\n\n## If they answer\nOn a later turn, mark each answer as \"points at the change\" or \"uses a word the change does not contain.\"","config":null}}