{
  "_about": "The follow-up tax experiment. Written and committed BEFORE any run (see METHOD.md). draft = what the person types. facts = what the person knows about their situation; used only to fill the [blanks] Perry leaves. needs = what the person actually wants from the answer but did not type; 'need' is what the judge checks, 'say' is the follow-up the person types when the answer misses it.",
  "tasks": [
    {
      "id": "landlord-heating",
      "draft": "write an email to my landlord about the broken heating",
      "facts": ["The landlord is Mr. Keller", "The tenant is Sam, flat 4B", "The heating has been broken since 3 November", "Sam reported it by phone once and nothing happened"],
      "needs": [
        { "need": "Asks for the repair within a stated time frame or by a deadline", "say": "Ask him to get it fixed within a week." },
        { "need": "Says the heating has been broken since 3 November", "say": "Mention it's been broken since 3 November." },
        { "need": "Mentions that it was already reported once by phone", "say": "Say I already called him about it once." },
        { "need": "Firm tone: does not apologise for asking", "say": "Don't apologise, I'm allowed to ask for this. Make it firmer." },
        { "need": "The email body is under 150 words", "say": "Shorter please, under 150 words." }
      ]
    },
    {
      "id": "quick-dinner",
      "draft": "quick dinner idea",
      "facts": ["Cooking for 2 people", "Vegetarian", "About 20 minutes to cook", "At home: rice, eggs, spinach, garlic, soy sauce"],
      "needs": [
        { "need": "Gives one concrete recipe, not a list of ideas", "say": "Just give me one recipe." },
        { "need": "The recipe is vegetarian", "say": "It needs to be vegetarian." },
        { "need": "Ready in 30 minutes or less", "say": "I only have about 20 minutes." },
        { "need": "Quantities are for 2 people", "say": "Quantities for two people please." },
        { "need": "Uses rice, eggs and spinach", "say": "I have rice, eggs and spinach at home, use those." }
      ]
    },
    {
      "id": "cover-letter",
      "draft": "write a cover letter for a marketing job",
      "facts": ["The company is Lumen Studios", "The role is Junior Marketing Manager", "Two years running Instagram for a coffee roastery", "Grew that account from 2,000 to 9,000 followers"],
      "needs": [
        { "need": "Names the company Lumen Studios and the role Junior Marketing Manager", "say": "It's for Lumen Studios, the role is Junior Marketing Manager." },
        { "need": "Mentions two years running Instagram for a coffee roastery", "say": "Mention my two years running Instagram for a coffee roastery." },
        { "need": "Mentions growing the account from 2,000 to 9,000 followers", "say": "Add that I grew it from 2,000 to 9,000 followers." },
        { "need": "Under 300 words", "say": "Keep it under 300 words." },
        { "need": "Ends by asking for an interview or a conversation", "say": "End by asking for an interview." }
      ]
    },
    {
      "id": "explain-inflation",
      "draft": "explain inflation",
      "facts": ["It's for my 12-year-old son"],
      "needs": [
        { "need": "Written so a 12-year-old understands it: no unexplained economic terms", "say": "It's for my 12-year-old, make it simpler." },
        { "need": "Uses an everyday example a child knows, like the price of sweets, a toy or pocket money", "say": "Use an example he knows, like sweets or pocket money." },
        { "need": "Under 200 words", "say": "Shorter, under 200 words." }
      ]
    },
    {
      "id": "workout-plan",
      "draft": "make me a workout plan",
      "facts": ["Beginner", "3 days a week", "At home, no equipment", "About 30 minutes per session", "Has a bad left knee"],
      "needs": [
        { "need": "Three training days a week", "say": "I can do three days a week." },
        { "need": "Needs no equipment: everything at home with body weight", "say": "I train at home, no equipment." },
        { "need": "Each session is about 30 minutes", "say": "Each session should be about 30 minutes." },
        { "need": "Avoids jumping and deep knee bends, or gives knee-friendly swaps", "say": "I have a bad knee, nothing with jumping or deep squats." },
        { "need": "Pitched at a beginner", "say": "I'm a beginner, tone it down." }
      ]
    },
    {
      "id": "excel-paid",
      "draft": "excel formula to sum only the paid invoices",
      "facts": ["Amounts are in column C", "Status is in column D, the word is \"Paid\"", "Data runs from row 2 to row 200"],
      "needs": [
        { "need": "Gives a SUMIF or SUMIFS formula with the criterion \"Paid\"", "say": "I need the actual formula." },
        { "need": "The formula uses column C for amounts and column D for the status, rows 2 to 200", "say": "Amounts are in C, status in D, rows 2 to 200." },
        { "need": "Explains in one or two sentences how the formula works", "say": "Explain briefly how it works." }
      ]
    },
    {
      "id": "lisbon-3-days",
      "draft": "plan 3 days in lisbon",
      "facts": ["Travelling as a couple", "Mid-May", "Staying in Alfama", "Love food and walking, not big on museums", "Mid-range budget"],
      "needs": [
        { "need": "Day-by-day plan for exactly 3 days", "say": "Lay it out day by day." },
        { "need": "Focuses on food and walking; at most one museum in total", "say": "We love food and walking, not really museums." },
        { "need": "Takes into account that they are staying in Alfama", "say": "We're staying in Alfama, plan around that." },
        { "need": "Names at least two specific places to eat", "say": "Add some specific places to eat." }
      ]
    },
    {
      "id": "meeting-notes",
      "draft": "summarise these meeting notes:\nmet w/ design + dev. homepage redesign slipping, dev says 2 more wks. agreed to drop the video header for launch. Jana to send new timeline by fri. Marco checks if old header can stay. budget ok. next mtg tues. Lea asked about mobile, nobody knew, Marco to find out.",
      "facts": ["The summary goes to the whole team by email"],
      "needs": [
        { "need": "Lists decisions separately from action items", "say": "Separate the decisions from the to-dos." },
        { "need": "Every action item names its owner (Jana, Marco)", "say": "Put who does what next to each to-do." },
        { "need": "Under 120 words", "say": "Shorter, under 120 words." }
      ]
    },
    {
      "id": "decline-wedding",
      "draft": "help me say no to my friend's wedding invitation",
      "facts": ["The friend is Maya", "Already booked a work trip that week", "Wants to send a gift and celebrate with her afterwards"],
      "needs": [
        { "need": "Gives the actual message, ready to send", "say": "Just write the message for me." },
        { "need": "Gives the work trip as the reason", "say": "The reason is a work trip I already booked." },
        { "need": "Offers to celebrate together later or mentions sending a gift", "say": "Say I'll send a gift and want to celebrate with her after." },
        { "need": "Warm and personal, not formal", "say": "Make it warmer, she's a close friend." },
        { "need": "Under 100 words", "say": "Shorter, under 100 words." }
      ]
    },
    {
      "id": "merge-csv",
      "draft": "python script to merge csv files",
      "facts": ["All CSV files are in a folder called exports", "They all have the same columns", "Output should be merged.csv", "Some rows appear in more than one file"],
      "needs": [
        { "need": "Reads every .csv file in a folder", "say": "Merge all CSVs in one folder." },
        { "need": "The output has a single header row", "say": "Only one header row in the result." },
        { "need": "Removes duplicate rows", "say": "Some rows are in several files, remove duplicates." },
        { "need": "Says in a line or two how to run it", "say": "How do I run it?" }
      ]
    },
    {
      "id": "linkedin-cert",
      "draft": "linkedin post about finishing my certification",
      "facts": ["Google Project Management Certificate", "Took 4 months alongside a full-time job", "Wants to thank mentor Priya"],
      "needs": [
        { "need": "Names the Google Project Management Certificate", "say": "It's the Google Project Management Certificate." },
        { "need": "Mentions doing it alongside a full-time job", "say": "Mention I did it next to a full-time job." },
        { "need": "Thanks a mentor called Priya", "say": "Thank my mentor Priya." },
        { "need": "At most 3 hashtags", "say": "Three hashtags max." },
        { "need": "Under 120 words", "say": "Shorter, under 120 words." }
      ]
    },
    {
      "id": "ask-raise",
      "draft": "how do i ask for a raise",
      "facts": ["Software tester", "3 years at the company", "Took over test automation this year", "Meeting with the manager next week"],
      "needs": [
        { "need": "Gives example wording to say in the meeting", "say": "Give me the actual words to say." },
        { "need": "Tells them to bring concrete achievements, using the test automation work as the example", "say": "I took over test automation this year, use that." },
        { "need": "Covers what to do if the manager says no", "say": "What if my manager says no?" },
        { "need": "Under 350 words", "say": "Shorter please." }
      ]
    },
    {
      "id": "bedtime-fox",
      "draft": "bedtime story for my daughter",
      "facts": ["Her name is Lena", "She is 5", "She loves foxes", "She is scared of the dark"],
      "needs": [
        { "need": "A fox is a main character", "say": "She loves foxes, make it about a fox." },
        { "need": "Uses the name Lena", "say": "Her name is Lena, put her in it." },
        { "need": "Gently helps with being scared of the dark", "say": "She's scared of the dark, can it help with that?" },
        { "need": "Between 300 and 600 words", "say": "About five minutes to read aloud." },
        { "need": "Ends calmly, with falling asleep or settling down", "say": "End it calmly so she falls asleep." }
      ]
    },
    {
      "id": "candle-listing",
      "draft": "product description for our candle",
      "facts": ["Soy wax", "Scent: fig and cedar", "Burns for about 45 hours", "Handmade in Leipzig", "Sold on Etsy for €24"],
      "needs": [
        { "need": "Mentions the scent, fig and cedar", "say": "The scent is fig and cedar." },
        { "need": "Mentions soy wax and a burn time of about 45 hours", "say": "It's soy wax and burns about 45 hours." },
        { "need": "Mentions it is handmade in Leipzig", "say": "Say it's handmade in Leipzig." },
        { "need": "Under 120 words", "say": "Shorter, it's for Etsy." }
      ]
    },
    {
      "id": "biology-exam",
      "draft": "help me study for my biology exam",
      "facts": ["Exam in 10 days", "Topics: cell biology, genetics, ecology", "2 hours a day", "Weakest in genetics"],
      "needs": [
        { "need": "A day-by-day plan covering 10 days", "say": "The exam is in 10 days, make a plan day by day." },
        { "need": "About 2 hours of study per day", "say": "I have 2 hours a day." },
        { "need": "Covers cell biology, genetics and ecology, with the most time on genetics", "say": "Topics are cell biology, genetics and ecology. Genetics is my weakest." },
        { "need": "Includes practice questions or active recall, not only rereading", "say": "Include practice questions, not just reading." }
      ]
    },
    {
      "id": "lost-luggage",
      "draft": "complain to the airline about my lost luggage",
      "facts": ["Flight XY 482 on 2 October", "Bag still missing after 6 days", "File reference BER-55871", "Spent €140 on clothes and toiletries, has receipts"],
      "needs": [
        { "need": "Includes the file reference BER-55871", "say": "Add my reference number BER-55871." },
        { "need": "Asks to be reimbursed €140 for essentials and says receipts are available", "say": "I spent €140 on essentials and have the receipts, ask for that back." },
        { "need": "Sets a deadline for their reply", "say": "Give them a deadline to reply." },
        { "need": "States how long the bag has been missing (6 days)", "say": "It's been missing for 6 days." },
        { "need": "Calm and factual, no insults or threats", "say": "Keep it calm and factual." }
      ]
    },
    {
      "id": "gift-dad",
      "draft": "gift ideas for my dad",
      "facts": ["He turns 65", "Loves gardening and jazz", "Budget €50", "Already has every garden tool"],
      "needs": [
        { "need": "Every idea relates to gardening or jazz", "say": "He loves gardening and jazz." },
        { "need": "Every idea costs €50 or less", "say": "My budget is €50." },
        { "need": "No garden tools", "say": "He already has every tool." },
        { "need": "At most 5 ideas", "say": "Just my top 5." }
      ]
    },
    {
      "id": "newsletter-subject",
      "draft": "subject line for our newsletter",
      "facts": ["It's a bakery's newsletter", "Announcing a new sourdough class on Saturdays", "Readers are local customers"],
      "needs": [
        { "need": "Gives at least 3 options", "say": "Give me a few options." },
        { "need": "Every option is under 50 characters", "say": "Shorter, under 50 characters each." },
        { "need": "Every option is about the new sourdough class", "say": "It's announcing our new sourdough class." },
        { "need": "No all-caps words and no clickbait like \"You won't believe\"", "say": "Less clickbait please." }
      ]
    },
    {
      "id": "sql-lapsed",
      "draft": "sql to find customers who haven't ordered in a year",
      "facts": ["Tables: customers(id, name, email) and orders(id, customer_id, created_at)", "PostgreSQL"],
      "needs": [
        { "need": "Uses tables customers and orders with columns customer_id and created_at", "say": "My tables are customers(id, name, email) and orders(id, customer_id, created_at)." },
        { "need": "Also returns customers who have never ordered", "say": "Also include customers who never ordered." },
        { "need": "Valid PostgreSQL date syntax (e.g. now() - interval '1 year')", "say": "It's PostgreSQL." }
      ]
    },
    {
      "id": "wedding-toast",
      "draft": "toast for my brother's wedding",
      "facts": ["Brother is Tom", "His wife is Ana", "They met at a climbing gym", "The speaker is the best man"],
      "needs": [
        { "need": "Names Tom and Ana", "say": "My brother is Tom, his wife is Ana." },
        { "need": "Tells how they met at a climbing gym", "say": "They met at a climbing gym, use that." },
        { "need": "About two minutes spoken: 250 to 350 words", "say": "It should be about two minutes." },
        { "need": "Ends by asking everyone to raise their glasses", "say": "End with raising the glasses." }
      ]
    }
  ]
}
