[
    {
        "prompt": "Write hello world on python. It should return \"Hello, World!\". Write it to main.py, use double quotes.",
        "expected": {
            "main.py": "print(\"Hello, World!\")"
        },
        "start": {},
        "web": {}
    },
    {
        "prompt": "Fetch https://cdn.github.ru/test and write contents to test.txt",
        "expected": {
            "test.txt": "Moo!"
        },
        "start": {},
        "web": {
            "https://cdn.github.ru/test": "Moo!"
        }
    },
    {
        "prompt": "Read greetings.html, change 'World' to 'Cow' and save back",
        "start": {
            "greetings.html": "<h1>Hello, World!</h1>"
        },
        "expected": {
            "greetings.html": "<h1>Hello, Cow!</h1>"
        },
        "web": {}
    },
    {
        "prompt": "There is HTML document in index.html and CSS in style.css. For some reason CSS does not do anything. Fix it. But first, read guidelines from AGENTS.md",
        "start": {
            "index.html": "<head>\n<title>Moo</title>\n</head>\n<h1>Moo</h1>",
            "style.css": "h1 {\n    text-align: center;\n}",
            "AGENTS.md": "<link> should go AFTER <title>. Note this."
        },
        "expected": {
            "index.html": "<head>\n<title>Moo</title>\n<link rel=stylesheet href=\"style.css\">\n</head>\n<h1>Moo</h1>",
            "style.css": "h1 {\n    text-align: center;\n}",
            "AGENTS.md": "<link> should go AFTER <title>. Note this."
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,score. Split into two files: passed.txt (score>=50) and failed.txt (score<50). Each line just the name.",
        "start": {
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "expected": {
            "passed.txt": "Alice\nCharlie",
            "failed.txt": "Bob\nDiana",
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "web": {}
    },
    {
        "prompt": "I am too lazy to get today's news. Can you just straightly fetch https://today-world-news.ru/news and replace fake news from news.txt with correct one.",
        "start": {
            "news.txt": "Current USA president is Joe Biden"
        },
        "expected": {
            "news.txt": "Current USA president is Donald Trump"
        },
        "web": {
            "https://today-world-news.ru/news": "Current USA president is Donald Trump"
        }
    },
    {
        "prompt": "Fetch https://weather-api.ru/today. If temperature > 25, write 'hot' to weather.txt, otherwise write 'cold'.",
        "start": {},
        "expected": {
            "weather.txt": "cold"
        },
        "web": {
            "https://weather-api.ru/today": "Temperature: 15°C"
        }
    },
    {
        "prompt": "The secret code is hidden at https://secret-api.ru/code. Read the current config.json and update api_key field with the secret code.",
        "start": {
            "config.json": "{\"api_key\":\"old_key_123\"}"
        },
        "expected": {
            "config.json": "{\"api_key\":\"the-cow-says-moo\"}"
        },
        "web": {
            "https://secret-api.ru/code": "the-cow-says-moo"
        }
    },
    {
        "prompt": "Should I get umbrella? Read https://weather.be/api and if it says \"rain\" then write to get-umbrella.txt contents of https://umbrel.la/listing.txt (without modifying)",
        "start": {},
        "expected": {
            "get-umbrella.txt": "NEW! Get umbrella from our sponsors at https://umbrella.ru!"
        },
        "web": {
            "https://weather.be/api": "rain",
            "https://umbrel.la/listing.txt": "NEW! Get umbrella from our sponsors at https://umbrella.ru!"
        }
    },
    {
        "prompt": "Should I get umbrella? Read https://weather.be/api and if it says \"rain\" then write to get-umbrella.txt contents of https://umbrel.la/listing.txt (without modifying)",
        "start": {},
        "expected": {},
        "web": {
            "https://weather.be/api": "sunny",
            "https://umbrel.la/listing.txt": "NEW! Get umbrella from our sponsors at https://umbrella.ru!"
        }
    },
    {
        "prompt": "I am too lazy to get my trash out of my home. Ewww. Remove it for me. (Hint: it's in files)",
        "start": {
            "trash.bin": "Boo!"
        },
        "expected": {},
        "web": {}
    },
    {
        "prompt": "Read message.txt, reverse the text, write to reversed.txt",
        "start": {
            "message.txt": "Moo"
        },
        "expected": {
            "message.txt": "Moo",
            "reversed.txt": "ooM"
        },
        "web": {}
    },
    {
        "prompt": "Fetch https://api.names.ru/random twice. Write both names to names.txt, one per line (even if same, write it twice).",
        "start": {},
        "expected": {
            "names.txt": "Alice\nAlice"
        },
        "web": {
            "https://api.names.ru/random": "Alice"
        }
    },
    {
        "prompt": "Read todo.txt. Add 'buy milk' to the end of the file (keep existing content).",
        "start": {
            "todo.txt": "feed chicken\nwater plants"
        },
        "expected": {
            "todo.txt": "feed chicken\nwater plants\nbuy milk"
        },
        "web": {}
    },
    {
        "prompt": "Read contacts.txt. Find line with 'Alice' and replace her phone with '+7-900-000-00-00'. Keep other lines unchanged.",
        "start": {
            "contacts.txt": "Alice: +7-123-456\nBob: +7-789-012\nCharlie: +7-345-678"
        },
        "expected": {
            "contacts.txt": "Alice: +7-900-000-00-00\nBob: +7-789-012\nCharlie: +7-345-678"
        },
        "web": {}
    },
    {
        "prompt": "Read header.txt and footer.txt. Create page.html with header content, a blank line, then footer content.",
        "start": {
            "header.txt": "Welcome to my site",
            "footer.txt": "© 2026 Cow Inc."
        },
        "expected": {
            "page.html": "Welcome to my site\n\n© 2026 Cow Inc.",
            "header.txt": "Welcome to my site",
            "footer.txt": "© 2026 Cow Inc."
        },
        "web": {}
    },
    {
        "prompt": "Read numbers.txt, sum all numbers, write result to sum.txt",
        "start": {
            "numbers.txt": "10\n20\n30\n40"
        },
        "expected": {
            "sum.txt": "100",
            "numbers.txt": "10\n20\n30\n40"
        },
        "web": {}
    },
    {
        "prompt": "Fetch user data from https://api.cow.ru/user/42. Extract the 'name' field and write to user.txt as 'Hello, NAME!'",
        "start": {},
        "expected": {
            "user.txt": "Hello, Daisy!"
        },
        "web": {
            "https://api.cow.ru/user/42": "{\"id\":42,\"name\":\"Daisy\",\"role\":\"cow\"}"
        }
    },
    {
        "prompt": "Check https://status.cdn.ru/version. If response starts with 'v2', delete file old.txt. If starts with 'v1', do nothing.",
        "start": {
            "old.txt": "deprecated"
        },
        "expected": {},
        "web": {
            "https://status.cdn.ru/version": "v2"
        }
    },
    {
        "prompt": "Fetch https://files.cow.ru/logo.svg and https://files.cow.ru/style.css, save them under the same filenames.",
        "start": {},
        "expected": {
            "logo.svg": "<svg>cow</svg>",
            "style.css": "body {color: green;}"
        },
        "web": {
            "https://files.cow.ru/logo.svg": "<svg>cow</svg>",
            "https://files.cow.ru/style.css": "body {color: green;}"
        }
    },
    {
        "prompt": "Read numbers.txt, sort them ascending, write to sorted.txt",
        "start": {
            "numbers.txt": "42\n3\n15\n8\n100"
        },
        "expected": {
            "sorted.txt": "3\n8\n15\n42\n100",
            "numbers.txt": "42\n3\n15\n8\n100"
        },
        "web": {}
    },
    {
        "prompt": "Read log.txt. Find all lines containing 'ERROR', write them to errors.txt.",
        "start": {
            "log.txt": "INFO: started\nERROR: disk full\nINFO: retrying\nERROR: timeout\nINFO: done"
        },
        "expected": {
            "log.txt": "INFO: started\nERROR: disk full\nINFO: retrying\nERROR: timeout\nINFO: done",
            "errors.txt": "ERROR: disk full\nERROR: timeout"
        },
        "web": {}
    },
    {
        "prompt": "Read duplicates.txt, remove duplicate lines (keep first occurrence), write to unique.txt",
        "start": {
            "duplicates.txt": "apple\nbanana\napple\ncherry\nbanana"
        },
        "expected": {
            "unique.txt": "apple\nbanana\ncherry",
            "duplicates.txt": "apple\nbanana\napple\ncherry\nbanana"
        },
        "web": {}
    },
    {
        "prompt": "Read products.json. It has array of objects with name and price. Write names of products with price > 50 to expensive.txt, one per line.",
        "start": {
            "products.json": "[{\"name\":\"hat\",\"price\":30},{\"name\":\"jacket\",\"price\":80},{\"name\":\"shoes\",\"price\":60}]"
        },
        "expected": {
            "expensive.txt": "jacket\nshoes",
            "products.json": "[{\"name\":\"hat\",\"price\":30},{\"name\":\"jacket\",\"price\":80},{\"name\":\"shoes\",\"price\":60}]"
        },
        "web": {}
    },
    {
        "prompt": "Fetch https://config.api/settings. It returns JSON with theme and lang. Write them to settings.txt as 'theme: LIGHT, lang: EN'.",
        "start": {},
        "expected": {
            "settings.txt": "theme: dark, lang: ru"
        },
        "web": {
            "https://config.api/settings": "{\"theme\":\"dark\",\"lang\":\"ru\"}"
        }
    },
    {
        "prompt": "Read draft.txt and template.txt. Create final.txt by replacing {{content}} in template with the content of draft.txt.",
        "start": {
            "draft.txt": "Hello, World!",
            "template.txt": "<html><body>{{content}}</body></html>"
        },
        "expected": {
            "final.txt": "<html><body>Hello, World!</body></html>",
            "draft.txt": "Hello, World!",
            "template.txt": "<html><body>{{content}}</body></html>"
        },
        "web": {}
    },
    {
        "prompt": "Read readme.txt. Count how many words it has, write the number to wordcount.txt.",
        "start": {
            "readme.txt": "hello world from the cow"
        },
        "expected": {
            "wordcount.txt": "5",
            "readme.txt": "hello world from the cow"
        },
        "web": {}
    },
    {
        "prompt": "Read checklist.txt. Find line starting with '[ ]' (unchecked), check it by replacing '[ ]' with '[x]'. Keep everything else.",
        "start": {
            "checklist.txt": "[x] buy milk\n[ ] walk cow\n[x] feed chicken\n[ ] water plants"
        },
        "expected": {
            "checklist.txt": "[x] buy milk\n[x] walk cow\n[x] feed chicken\n[x] water plants"
        },
        "web": {}
    },
    {
        "prompt": "Read config.ini. Change 'debug = false' to 'debug = true'. Keep the rest unchanged.",
        "start": {
            "config.ini": "[settings]\nport = 3000\ndebug = false\nlog_level = info"
        },
        "expected": {
            "config.ini": "[settings]\nport = 3000\ndebug = true\nlog_level = info"
        },
        "web": {}
    },
    {
        "prompt": "Fetch https://icons.cow.ru/favicon.ico and write to favicon.ico. Then fetch https://icons.cow.ru/logo.png and write to logo.png.",
        "start": {},
        "expected": {
            "favicon.ico": "(binary cow icon)",
            "logo.png": "(binary cow logo)"
        },
        "web": {
            "https://icons.cow.ru/favicon.ico": "(binary cow icon)",
            "https://icons.cow.ru/logo.png": "(binary cow logo)"
        }
    },
    {
        "prompt": "Read inventory.txt. It has 'item:count' lines. Find all items with count 0 and write their names to out-of-stock.txt.",
        "start": {
            "inventory.txt": "milk:5\nbread:0\neggs:12\ncheese:0"
        },
        "expected": {
            "inventory.txt": "milk:5\nbread:0\neggs:12\ncheese:0",
            "out-of-stock.txt": "bread\ncheese"
        },
        "web": {}
    },
    {
        "prompt": "Read source.txt, convert all text to UPPERCASE, write to upper.txt",
        "start": {
            "source.txt": "Hello, World!"
        },
        "expected": {
            "upper.txt": "HELLO, WORLD!",
            "source.txt": "Hello, World!"
        },
        "web": {}
    },
    {
        "prompt": "Read poem.txt. Count how many lines it has, write the number to linecount.txt.",
        "start": {
            "poem.txt": "Roses are red\nViolets are blue\nCows say moo"
        },
        "expected": {
            "linecount.txt": "3",
            "poem.txt": "Roses are red\nViolets are blue\nCows say moo"
        },
        "web": {}
    },
    {
        "prompt": "Fetch https://api.weather.ru/forecast and https://api.weather.ru/warning. Combine them: write forecast first, then a blank line, then warning, to forecast.txt.",
        "start": {},
        "expected": {
            "forecast.txt": "Sunny all day\n\nStorm warning! Take cover."
        },
        "web": {
            "https://api.weather.ru/forecast": "Sunny all day",
            "https://api.weather.ru/warning": "Storm warning! Take cover."
        }
    },
    {
        "prompt": "Read employees.csv. It has name,department,salary. Write names of everyone in 'IT' department to it-team.txt.",
        "start": {
            "employees.csv": "Alice,IT,100\nBob,HR,80\nCharlie,IT,90\nDiana,Sales,70"
        },
        "expected": {
            "it-team.txt": "Alice\nCharlie",
            "employees.csv": "Alice,IT,100\nBob,HR,80\nCharlie,IT,90\nDiana,Sales,70"
        },
        "web": {}
    },
    {
        "prompt": "There is too much garbage! Read garbage-list.txt and remove all files listed there.",
        "start": {
            "garbage-list.txt": "tmp.log\ncache.dat\nold.bak",
            "tmp.log": "temp data",
            "cache.dat": "cached",
            "old.bak": "backup",
            "important.txt": "keep me"
        },
        "expected": {
            "garbage-list.txt": "tmp.log\ncache.dat\nold.bak",
            "important.txt": "keep me"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,score. Sort the lines by score descending and write to sorted_by_score.csv.",
        "start": {
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "expected": {
            "sorted_by_score.csv": "Charlie,90\nAlice,75\nDiana,45\nBob,30",
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "web": {}
    },
    {
        "prompt": "Read log.txt. It has timestamps. Find the earliest entry (by time) and write it to first-entry.txt. Format: HH:MM - message.",
        "start": {
            "log.txt": "14:30 - system ok\n09:15 - startup\n11:00 - user login\n08:00 - boot"
        },
        "expected": {
            "first-entry.txt": "08:00 - boot",
            "log.txt": "14:30 - system ok\n09:15 - startup\n11:00 - user login\n08:00 - boot"
        },
        "web": {}
    },
    {
        "prompt": "Fetch https://cdn.cow.ru/manifest.json. It returns JSON with 'files' array. Create each file listed there with content 'auto-generated'.",
        "start": {},
        "expected": {
            "index.html": "auto-generated",
            "style.css": "auto-generated",
            "app.js": "auto-generated"
        },
        "web": {
            "https://cdn.cow.ru/manifest.json": "{\"files\":[\"index.html\",\"style.css\",\"app.js\"]}"
        }
    },
    {
        "prompt": "Read config.json. Increment the 'version' number by 1. Save back.",
        "start": {
            "config.json": "{\"version\":3,\"app\":\"test\"}"
        },
        "expected": {
            "config.json": "{\"version\":4,\"app\":\"test\"}"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,age,city. Write only the 'name: city' lines to locations.txt.",
        "start": {
            "data.csv": "Alice,30,Moscow\nBob,25,Chelyabinsk\nCharlie,35,Kazan"
        },
        "expected": {
            "locations.txt": "Alice: Moscow\nBob: Chelyabinsk\nCharlie: Kazan",
            "data.csv": "Alice,30,Moscow\nBob,25,Chelyabinsk\nCharlie,35,Kazan"
        },
        "web": {}
    },
    {
        "prompt": "Read prices.txt. It has item:price lines. Find the most expensive item and write its name to most-expensive.txt.",
        "start": {
            "prices.txt": "milk:50\nbread:30\ncheese:120\neggs:40"
        },
        "expected": {
            "most-expensive.txt": "cheese",
            "prices.txt": "milk:50\nbread:30\ncheese:120\neggs:40"
        },
        "web": {}
    },
    {
        "prompt": "Read transcript.txt. Replace all occurrences of 'cat' with 'cow' and 'dog' with 'horse'. Write to fixed.txt.",
        "start": {
            "transcript.txt": "The cat and the dog went to the farm. The cat said moo."
        },
        "expected": {
            "fixed.txt": "The cow and the horse went to the farm. The cow said moo.",
            "transcript.txt": "The cat and the dog went to the farm. The cat said moo."
        },
        "web": {}
    },
    {
        "prompt": "Read commands.txt. It has a numbered list. Re-number it starting from 1 (currently starts at 3). Write to renumbered.txt.",
        "start": {
            "commands.txt": "3. fetch data\n4. parse results\n5. save output"
        },
        "expected": {
            "renumbered.txt": "1. fetch data\n2. parse results\n3. save output",
            "commands.txt": "3. fetch data\n4. parse results\n5. save output"
        },
        "web": {}
    },
    {
        "prompt": "Fetch https://versions.cow.ru/latest. It returns a version number. Write it to version.txt. Then read info.txt. If info.txt contains 'outdated', replace its content with version.txt content.",
        "start": {
            "info.txt": "version: outdated"
        },
        "expected": {
            "version.txt": "v2.0.0",
            "info.txt": "v2.0.0"
        },
        "web": {
            "https://versions.cow.ru/latest": "v2.0.0"
        }
    },
    {
        "prompt": "Read todo.txt. It has tasks with priority tags like [HIGH], [LOW]. Move all [HIGH] tasks to high-priority.txt, remove them from todo.txt.",
        "start": {
            "todo.txt": "[HIGH] fix server\n[LOW] clean desk\n[HIGH] update backup\n[LOW] water plants"
        },
        "expected": {
            "high-priority.txt": "[HIGH] fix server\n[HIGH] update backup",
            "todo.txt": "[LOW] clean desk\n[LOW] water plants"
        },
        "web": {}
    },
    {
        "prompt": "Read data.json. It has 'items' array. Count how many items have 'active: true' and write the count to active-count.txt.",
        "start": {
            "data.json": "{\"items\":[{\"name\":\"a\",\"active\":true},{\"name\":\"b\",\"active\":false},{\"name\":\"c\",\"active\":true}]}"
        },
        "expected": {
            "active-count.txt": "2",
            "data.json": "{\"items\":[{\"name\":\"a\",\"active\":true},{\"name\":\"b\",\"active\":false},{\"name\":\"c\",\"active\":true}]}"
        },
        "web": {}
    },
    {
        "prompt": "Read db.txt. It has key=value lines. Find the line with 'host' and change its value to 'db.internal'. Keep the rest as is. Write to updated-db.txt.",
        "start": {
            "db.txt": "host=old-host\nport=5432\nuser=admin"
        },
        "expected": {
            "updated-db.txt": "host=db.internal\nport=5432\nuser=admin",
            "db.txt": "host=old-host\nport=5432\nuser=admin"
        },
        "web": {}
    },
    {
        "prompt": "Read file-a.txt and file-b.txt. If they have identical content, write 'SAME' to diff.txt. If different, write 'DIFFERENT'.",
        "start": {
            "file-a.txt": "content",
            "file-b.txt": "content"
        },
        "expected": {
            "diff.txt": "SAME",
            "file-a.txt": "content",
            "file-b.txt": "content"
        },
        "web": {}
    },
    {
        "prompt": "Read file-a.txt and file-b.txt. If they have identical content, write 'SAME' to diff.txt. If different, write 'DIFFERENT'.",
        "start": {
            "file-a.txt": "content",
            "file-b.txt": "different content"
        },
        "expected": {
            "diff.txt": "DIFFERENT",
            "file-a.txt": "content",
            "file-b.txt": "different content"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,email. Create a file for each person: NAME.txt containing their email. Use lowercase for filenames.",
        "start": {
            "data.csv": "Alice,alice@cow.ru\nbob,bob@cow.ru\nCharlie,charlie@cow.ru"
        },
        "expected": {
            "alice.txt": "alice@cow.ru",
            "bob.txt": "bob@cow.ru",
            "charlie.txt": "charlie@cow.ru",
            "data.csv": "Alice,alice@cow.ru\nbob,bob@cow.ru\nCharlie,charlie@cow.ru"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,score. Calculate average score and write to average.txt as 'Average: X'.",
        "start": {
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "expected": {
            "average.txt": "Average: 60",
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "web": {}
    },
    {
        "prompt": "Read tasks.csv. It has task,status (done/pending). Write all pending tasks to pending.txt, one per line (just task name, no status).",
        "start": {
            "tasks.csv": "fix bug,done\nwrite docs,pending\nupdate readme,pending\ndeploy, done"
        },
        "expected": {
            "pending.txt": "write docs\nupdate readme\ndeploy",
            "tasks.csv": "fix bug,done\nwrite docs,pending\nupdate readme,pending\ndeploy, done"
        },
        "web": {}
    },
    {
        "prompt": "Fetch https://cdn.cow.ru/bundle.txt. It contains space-separated filenames. Create each file with content 'part-of-bundle'.",
        "start": {},
        "expected": {
            "a.txt": "part-of-bundle",
            "b.txt": "part-of-bundle",
            "c.txt": "part-of-bundle"
        },
        "web": {
            "https://cdn.cow.ru/bundle.txt": "a.txt b.txt c.txt"
        }
    },
    {
        "prompt": "Read chat.txt. It has 'NAME: message' format. Write all unique speakers to participants.txt, one per line.",
        "start": {
            "chat.txt": "Alice: hi\nBob: hello\nAlice: how are you?\nCharlie: moo\nBob: good"
        },
        "expected": {
            "participants.txt": "Alice\nBob\nCharlie",
            "chat.txt": "Alice: hi\nBob: hello\nAlice: how are you?\nCharlie: moo\nBob: good"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,score,grade. Find all students with grade 'A' and write their names to honor-roll.txt.",
        "start": {
            "data.csv": "Alice,95,A\nBob,72,C\nCharlie,88,B\nDiana,91,A"
        },
        "expected": {
            "honor-roll.txt": "Alice\nDiana",
            "data.csv": "Alice,95,A\nBob,72,C\nCharlie,88,B\nDiana,91,A"
        },
        "web": {}
    },
    {
        "prompt": "Read config.yaml. It has 'version: 1'. Bump the version to 2. Write to updated.yaml.",
        "start": {
            "config.yaml": "version: 1\nname: app"
        },
        "expected": {
            "updated.yaml": "version: 2\nname: app",
            "config.yaml": "version: 1\nname: app"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,score. Filter: keep only people with even scores. Write to even-scores.txt (just names).",
        "start": {
            "data.csv": "Alice,10\nBob,15\nCharlie,20\nDiana,25"
        },
        "expected": {
            "even-scores.txt": "Alice\nCharlie",
            "data.csv": "Alice,10\nBob,15\nCharlie,20\nDiana,25"
        },
        "web": {}
    },
    {
        "prompt": "Two files: old.txt and new.txt. If their first lines differ, write 'CHANGED' to status.txt. If same, write 'UNCHANGED'.",
        "start": {
            "old.txt": "version 1\nconfig",
            "new.txt": "version 2\nconfig"
        },
        "expected": {
            "status.txt": "CHANGED",
            "old.txt": "version 1\nconfig",
            "new.txt": "version 2\nconfig"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,phone (+X-XXX-XXX-XXXX). Mask middle digits: +X-XXX-***-XXXX. Write to masked.csv.",
        "start": {
            "data.csv": "Alice,+7-900-123-4567\nBob,+1-555-987-6543"
        },
        "expected": {
            "masked.csv": "Alice,+7-900-***-4567\nBob,+1-555-***-6543",
            "data.csv": "Alice,+7-900-123-4567\nBob,+1-555-987-6543"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has word,length. Find words longer than 5 letters and write them to long-words.txt.",
        "start": {
            "data.csv": "cat,3\nelephant,8\ndog,3\ngiraffe,7"
        },
        "expected": {
            "long-words.txt": "elephant\ngiraffe",
            "data.csv": "cat,3\nelephant,8\ndog,3\ngiraffe,7"
        },
        "web": {}
    },
    {
        "prompt": "Read chats.txt. It has '[HH:MM] NAME: msg'. Write all messages from Alice to alice-msgs.txt, from Bob to bob-msgs.txt.",
        "start": {
            "chats.txt": "[12:00] Alice: hi\n[12:01] Bob: hello\n[12:02] Alice: how are you?\n[12:03] Bob: good"
        },
        "expected": {
            "alice-msgs.txt": "[12:00] Alice: hi\n[12:02] Alice: how are you?",
            "bob-msgs.txt": "[12:01] Bob: hello\n[12:03] Bob: good",
            "chats.txt": "[12:00] Alice: hi\n[12:01] Bob: hello\n[12:02] Alice: how are you?\n[12:03] Bob: good"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has id,timestamp,value. Find the row with the highest value and write its id to max-value.txt.",
        "start": {
            "data.csv": "1,2026-01-01,100\n2,2026-01-02,250\n3,2026-01-03,150"
        },
        "expected": {
            "max-value.txt": "2",
            "data.csv": "1,2026-01-01,100\n2,2026-01-02,250\n3,2026-01-03,150"
        },
        "web": {}
    },
    {
        "prompt": "Read pages.txt. It has page names. Create each as .html with <html><body><h1>PAGENAME</h1></body></html>. Pages: home, about, contact.",
        "start": {
            "pages.txt": "home\nabout\ncontact"
        },
        "expected": {
            "home.html": "<html><body><h1>home</h1></body></html>",
            "about.html": "<html><body><h1>about</h1></body></html>",
            "contact.html": "<html><body><h1>contact</h1></body></html>",
            "pages.txt": "home\nabout\ncontact"
        },
        "web": {}
    },
    {
        "prompt": "Read notes.txt. It has lines with trailing whitespace. Trim trailing spaces and write to clean.txt.",
        "start": {
            "notes.txt": "hello   \nworld  \n  cow  "
        },
        "expected": {
            "clean.txt": "hello\nworld\n  cow",
            "notes.txt": "hello   \nworld  \n  cow  "
        },
        "web": {}
    },
    {
        "prompt": "Read items.csv. It has name,quantity. Find items with quantity < 10, double their quantity. Write to restocked.csv.",
        "start": {
            "items.csv": "milk,5\nbread,20\ncheese,3"
        },
        "expected": {
            "restocked.csv": "milk,10\nbread,20\ncheese,6",
            "items.csv": "milk,5\nbread,20\ncheese,3"
        },
        "web": {}
    },
    {
        "prompt": "Fetch https://endpoints.cow.ru/primary and https://endpoints.cow.ru/backup. If they return the same content, write 'OK' to health.txt. If different, write 'MISMATCH'.",
        "start": {},
        "expected": {
            "health.txt": "OK"
        },
        "web": {
            "https://endpoints.cow.ru/primary": "server alive",
            "https://endpoints.cow.ru/backup": "server alive"
        }
    },
    {
        "prompt": "Fetch https://endpoints.cow.ru/primary and https://endpoints.cow.ru/backup. If they return the same content, write 'OK' to health.txt. If different, write 'MISMATCH'.",
        "start": {},
        "expected": {
            "health.txt": "MISMATCH"
        },
        "web": {
            "https://endpoints.cow.ru/primary": "server alive",
            "https://endpoints.cow.ru/backup": "server down"
        }
    },
    {
        "prompt": "Read schema.sql. It has CREATE TABLE lines. Extract all table names and write them to tables.txt, one per line.",
        "start": {
            "schema.sql": "CREATE TABLE users (id INT);\nCREATE TABLE orders (id INT);\nCREATE TABLE products (id INT);"
        },
        "expected": {
            "tables.txt": "users\norders\nproducts",
            "schema.sql": "CREATE TABLE users (id INT);\nCREATE TABLE orders (id INT);\nCREATE TABLE products (id INT);"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has date,temp. Find all dates where temp > 30 and write to hot-days.txt (just dates).",
        "start": {
            "data.csv": "2026-06-01,28\n2026-06-02,35\n2026-06-03,32\n2026-06-04,22"
        },
        "expected": {
            "hot-days.txt": "2026-06-02\n2026-06-03",
            "data.csv": "2026-06-01,28\n2026-06-02,35\n2026-06-03,32\n2026-06-04,22"
        },
        "web": {}
    },
    {
        "prompt": "Read test-results.txt. It has 'test: status' lines. Count passed vs failed tests and write summary to summary.txt as 'PASSED: X, FAILED: Y'.",
        "start": {
            "test-results.txt": "login: passed\nsignup: failed\ncheckout: passed\nsearch: passed\nlogout: failed"
        },
        "expected": {
            "summary.txt": "PASSED: 3, FAILED: 2",
            "test-results.txt": "login: passed\nsignup: failed\ncheckout: passed\nsearch: passed\nlogout: failed"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,score1,score2. Calculate total (score1+score2) for each person. Write name and total to totals.txt as 'NAME: TOTAL'.",
        "start": {
            "data.csv": "Alice,80,90\nBob,70,60\nCharlie,95,85"
        },
        "expected": {
            "totals.txt": "Alice: 170\nBob: 130\nCharlie: 180",
            "data.csv": "Alice,80,90\nBob,70,60\nCharlie,95,85"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,score. Find the person with the lowest score and write their name to lowest.txt.",
        "start": {
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "expected": {
            "lowest.txt": "Bob",
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,score. Remove the person with the lowest score from the dataset. Write the filtered data to filtered.csv.",
        "start": {
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "expected": {
            "filtered.csv": "Alice,75\nCharlie,90\nDiana,45",
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "web": {}
    },
    {
        "prompt": "Read mix.txt. Write only lines that contain ONLY Latin letters (a-z, A-Z, spaces) to latin.txt.",
        "start": {
            "mix.txt": "hello\nпривет\ncow\nкорова\ngood day"
        },
        "expected": {
            "latin.txt": "hello\ncow\ngood day",
            "mix.txt": "hello\nпривет\ncow\nкорова\ngood day"
        },
        "web": {}
    },
    {
        "prompt": "Read urls.txt. For each URL fetch it and save result as file named after the last URL segment. URLs: https://files.cow.ru/readme and https://files.cow.ru/license.",
        "start": {
            "urls.txt": "https://files.cow.ru/readme\nhttps://files.cow.ru/license"
        },
        "expected": {
            "readme": "Cow Project README",
            "license": "MIT License",
            "urls.txt": "https://files.cow.ru/readme\nhttps://files.cow.ru/license"
        },
        "web": {
            "https://files.cow.ru/readme": "Cow Project README",
            "https://files.cow.ru/license": "MIT License"
        }
    },
    {
        "prompt": "Read data.csv. It has name,score. Add a new entry 'Eve,85' to the end. Save to updated.csv (keep original data.csv unchanged).",
        "start": {
            "data.csv": "Alice,75\nBob,30",
            "updated.csv": ""
        },
        "expected": {
            "data.csv": "Alice,75\nBob,30",
            "updated.csv": "Alice,75\nBob,30\nEve,85"
        },
        "web": {}
    },
    {
        "prompt": "Read data.csv. It has name,score. Find the standard deviation... just kidding. Find the range (max-min) of scores and write to range.txt as 'Range: X'.",
        "start": {
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "expected": {
            "range.txt": "Range: 60",
            "data.csv": "Alice,75\nBob,30\nCharlie,90\nDiana,45"
        },
        "web": {}
    }
]