{
 "writing": [
  {
   "id": "w01",
   "format": "one-sentence",
   "prompt": "In exactly one sentence, explain what an API is to someone who has never programmed.",
   "rule": {
    "sentences": 1
   },
   "facts": null
  },
  {
   "id": "w02",
   "format": "one-sentence",
   "prompt": "Write exactly one sentence announcing that a neighbourhood coffee shop is now open on Sundays.",
   "rule": {
    "sentences": 1
   },
   "facts": null
  },
  {
   "id": "w03",
   "format": "one-sentence",
   "prompt": "Write exactly one sentence apologising to a customer for a delayed shipment, without making excuses.",
   "rule": {
    "sentences": 1
   },
   "facts": null
  },
  {
   "id": "w04",
   "format": "one-sentence",
   "prompt": "Write a one-sentence tagline for a note-taking app that works without an internet connection.",
   "rule": {
    "sentences": 1
   },
   "facts": null
  },
  {
   "id": "w05",
   "format": "two-sentence",
   "prompt": "In exactly two sentences, explain why the sky is blue.",
   "rule": {
    "sentences": 2
   },
   "facts": null
  },
  {
   "id": "w06",
   "format": "two-sentence",
   "prompt": "In exactly two sentences, persuade a busy manager to try a week with no internal meetings.",
   "rule": {
    "sentences": 2
   },
   "facts": null
  },
  {
   "id": "w07",
   "format": "two-sentence",
   "prompt": "Describe a rainy Monday-morning commute in exactly two sentences, including one concrete sensory detail.",
   "rule": {
    "sentences": 2
   },
   "facts": null
  },
  {
   "id": "w08",
   "format": "product blurb",
   "prompt": "Write a product blurb of 40 to 60 words for a stainless-steel water bottle that keeps drinks cold for 24 hours. No bullet points.",
   "rule": {
    "words": [
     40,
     60
    ]
   },
   "facts": null
  },
  {
   "id": "w09",
   "format": "product blurb",
   "prompt": "Write a product blurb of 40 to 60 words for a desk plant pot that waters itself. No bullet points.",
   "rule": {
    "words": [
     40,
     60
    ]
   },
   "facts": null
  },
  {
   "id": "w10",
   "format": "email reply",
   "prompt": "Write a reply to this customer email on behalf of a lamp shop. Be polite, take responsibility, offer a replacement or refund, and keep it under 90 words.\n\nEmail:\n\"Hi, I ordered a blue desk lamp on 4 June and it still has not arrived. The tracking page has said 'in transit' for nine days. I need it for a home office I am setting up this weekend. Can you either send a replacement fast or refund me? Thanks, Priya\"",
   "rule": {
    "words": [
     1,
     89
    ]
   },
   "facts": "Facts in the email: blue desk lamp ordered 4 June, 'in transit' for nine days, needed for a home office this weekend, customer asks for a fast replacement or a refund; customer is Priya."
  },
  {
   "id": "w11",
   "format": "email reply",
   "prompt": "Write a reply to this colleague's email. You cannot do 4 pm on Thursday, but you can do 3 pm on Thursday or 10 am on Friday. Keep it under 60 words.\n\nEmail:\n\"Hi, could we move our Thursday 2 pm review to 4 pm? Something came up with a client. Let me know if that works. Thanks, Marcus\"",
   "rule": {
    "words": [
     1,
     59
    ]
   },
   "facts": "Facts: the colleague (Marcus) asks to move Thursday 2 pm to 4 pm; the writer cannot do 4 pm but can do 3 pm Thursday or 10 am Friday."
  },
  {
   "id": "w12",
   "format": "summary",
   "prompt": "Summarize the following announcement in exactly two sentences. Do not add facts that are not in the text.\n\nText:\n\"The Marlow Street Library will switch from staffed checkout desks to self-service kiosks on 3 March. Staff will not lose their jobs: the two people who ran the desks will move to a new help point on the first floor, where they will teach visitors to use the kiosks and run weekly digital-skills classes. Borrowing limits stay at 10 books per card, and late fees remain 25 cents a day. The library says the change should cut queue times, which averaged 6 minutes on Saturdays last year, and free up about 20 staff hours a week for programmes.\"",
   "rule": {
    "sentences": 2
   },
   "facts": "Facts in the source: kiosks replace staffed desks on 3 March; the two desk staff keep their jobs and move to a first-floor help point; they will teach visitors and run weekly digital-skills classes; limits stay at 10 books and late fees stay at 25 cents a day; Saturday queues averaged 6 minutes last year; about 20 staff hours a week are freed for programmes."
  },
  {
   "id": "w13",
   "format": "beginner explanation",
   "prompt": "Explain what a password manager is to a complete beginner in about 80 words (between 65 and 95).",
   "rule": {
    "words": [
     65,
     95
    ]
   },
   "facts": null
  },
  {
   "id": "w14",
   "format": "beginner explanation",
   "prompt": "Explain how compound interest works to a 12-year-old in exactly three short sentences.",
   "rule": {
    "sentences": 3
   },
   "facts": null
  }
 ],
 "instruction_following": [
  {
   "id": "i01",
   "prompt": "Write a short note thanking a neighbour for watering your plants. Use exactly 3 sentences.",
   "constraints": [
    {
     "type": "exact_sentences",
     "n": 3
    }
   ]
  },
  {
   "id": "i02",
   "prompt": "Explain what a firewall does. Your answer must be at most 40 words and must not use the word 'network'.",
   "constraints": [
    {
     "type": "max_words",
     "n": 40
    },
    {
     "type": "forbid_words",
     "words": [
      "network"
     ]
    }
   ]
  },
  {
   "id": "i03",
   "prompt": "List three tips for sleeping better. Use exactly 3 bullet points, each starting with '- ', and write nothing before or after the bullets.",
   "constraints": [
    {
     "type": "exact_bullets",
     "n": 3
    }
   ]
  },
  {
   "id": "i04",
   "prompt": "Describe a lighthouse in at least 60 words. Include the words 'storm' and 'beacon'.",
   "constraints": [
    {
     "type": "min_words",
     "n": 60
    },
    {
     "type": "include_words",
     "words": [
      "storm",
      "beacon"
     ]
    }
   ]
  },
  {
   "id": "i05",
   "prompt": "Write a two-sentence description of autumn. Write it entirely in lowercase letters, with no capital letters at all.",
   "constraints": [
    {
     "type": "all_lowercase"
    },
    {
     "type": "exact_sentences",
     "n": 2
    }
   ]
  },
  {
   "id": "i06",
   "prompt": "Give a one-sentence reminder to back up your files. WRITE THE WHOLE ANSWER IN CAPITAL LETTERS.",
   "constraints": [
    {
     "type": "all_uppercase"
    },
    {
     "type": "exact_sentences",
     "n": 1
    }
   ]
  },
  {
   "id": "i07",
   "prompt": "Describe how to make toast without using any commas anywhere in your answer. Keep it under 60 words.",
   "constraints": [
    {
     "type": "no_commas"
    },
    {
     "type": "max_words",
     "n": 59
    }
   ]
  },
  {
   "id": "i08",
   "prompt": "Write a short poem about the sea. Put a title in double angular brackets, like <<Title Here>>, somewhere in your answer.",
   "constraints": [
    {
     "type": "title_brackets"
    }
   ]
  },
  {
   "id": "i09",
   "prompt": "Write a friendly message inviting a friend to dinner. End your message with the exact phrase 'See you soon.' and nothing after it.",
   "constraints": [
    {
     "type": "ends_with",
     "text": "See you soon."
    }
   ]
  },
  {
   "id": "i10",
   "prompt": "Write a short apology email to a colleague who was left out of a meeting. After the main text, add a postscript that begins with 'P.S.'.",
   "constraints": [
    {
     "type": "postscript",
     "marker": "P\\.S\\."
    }
   ]
  },
  {
   "id": "i11",
   "prompt": "Write a two-paragraph description of a farmers' market. Separate the two paragraphs with a blank line and write exactly 2 paragraphs.",
   "constraints": [
    {
     "type": "exact_paragraphs",
     "n": 2
    }
   ]
  },
  {
   "id": "i12",
   "prompt": "Write a template for a job-offer letter. Include at least 3 placeholders in square brackets, such as [candidate name].",
   "constraints": [
    {
     "type": "placeholders_at_least",
     "n": 3
    }
   ]
  },
  {
   "id": "i13",
   "prompt": "Give a numbered list of exactly 4 steps for changing a flat bike tyre. Use the format '1. ', '2. ', and so on, with nothing else in the answer.",
   "constraints": [
    {
     "type": "exact_numbered",
     "n": 4
    }
   ]
  },
  {
   "id": "i14",
   "prompt": "Reply with only a JSON object (no explanation) that has the keys \"name\" (string), \"age\" (integer) and \"hobbies\" (an array of strings) for an imaginary person.",
   "constraints": [
    {
     "type": "json_keys",
     "keys": [
      "name",
      "age",
      "hobbies"
     ],
     "exact": true,
     "types": {
      "name": "string",
      "age": "integer",
      "hobbies": "array"
     }
    }
   ]
  },
  {
   "id": "i15",
   "prompt": "Is the Pacific the largest ocean on Earth? Answer with exactly one word: either 'Yes' or 'No'.",
   "constraints": [
    {
     "type": "one_of",
     "options": [
      "Yes",
      "No"
     ]
    }
   ]
  },
  {
   "id": "i16",
   "prompt": "Write a sentence about rivers that contains the word 'water' at least three times.",
   "constraints": [
    {
     "type": "word_at_least",
     "word": "water",
     "n": 3
    }
   ]
  },
  {
   "id": "i17",
   "prompt": "Write a single sentence about a cat. Wrap your entire response in double quotation marks.",
   "constraints": [
    {
     "type": "wrap_quotes"
    },
    {
     "type": "exact_sentences",
     "n": 1
    }
   ]
  },
  {
   "id": "i18",
   "prompt": "Write a short review of a fictional cafe. Use at least 2 bold phrases written like **this**.",
   "constraints": [
    {
     "type": "bold_sections",
     "n": 2
    }
   ]
  },
  {
   "id": "i19",
   "prompt": "Begin your answer with the exact words 'Honestly,' and then give one reason to learn to cook. Use exactly 2 sentences.",
   "constraints": [
    {
     "type": "starts_with",
     "text": "Honestly,"
    },
    {
     "type": "exact_sentences",
     "n": 2
    }
   ]
  },
  {
   "id": "i20",
   "prompt": "Write 50 to 70 words about why bees matter. Do not use the words 'honey' or 'flowers'.",
   "constraints": [
    {
     "type": "between_words",
     "lo": 50,
     "hi": 70
    },
    {
     "type": "forbid_words",
     "words": [
      "honey",
      "flowers"
     ]
    }
   ]
  },
  {
   "id": "i21",
   "prompt": "Write exactly 25 words describing a mountain village. Count carefully; the answer must be exactly 25 words.",
   "constraints": [
    {
     "type": "exact_words",
     "n": 25
    }
   ]
  },
  {
   "id": "i22",
   "prompt": "Describe a thunderstorm in which the letter 'z' appears at least 3 times in total.",
   "constraints": [
    {
     "type": "letter_at_least",
     "letter": "z",
     "n": 3
    }
   ]
  },
  {
   "id": "i23",
   "prompt": "Reply with only a JSON object listing three programming languages under the key \"languages\" (array of exactly 3 strings) and one under the key \"favourite\" (string).",
   "constraints": [
    {
     "type": "json_keys",
     "keys": [
      "languages",
      "favourite"
     ],
     "exact": true,
     "types": {
      "languages": "array",
      "favourite": "string"
     },
     "arrayLen": {
      "languages": 3
     }
    }
   ]
  },
  {
   "id": "i24",
   "prompt": "Write a product tagline in lowercase only, without commas, in under 12 words.",
   "constraints": [
    {
     "type": "all_lowercase"
    },
    {
     "type": "no_commas"
    },
    {
     "type": "max_words",
     "n": 11
    }
   ]
  },
  {
   "id": "i25",
   "prompt": "Write a short story of at least 90 words about a lost key. Put a title in double angular brackets, like <<Title>>, somewhere in your answer.",
   "constraints": [
    {
     "type": "title_brackets"
    },
    {
     "type": "min_words",
     "n": 90
    }
   ]
  },
  {
   "id": "i26",
   "prompt": "Give exactly 5 bullet points (each starting with '* ') on how to save money on groceries, and nothing else.",
   "constraints": [
    {
     "type": "exact_bullets",
     "n": 5
    }
   ]
  },
  {
   "id": "i27",
   "prompt": "Write a short email declining a meeting invitation. It must include the word 'unfortunately', must not include the word 'sorry', and must end with a line starting with 'P.P.S.'.",
   "constraints": [
    {
     "type": "include_words",
     "words": [
      "unfortunately"
     ]
    },
    {
     "type": "forbid_words",
     "words": [
      "sorry"
     ]
    },
    {
     "type": "postscript",
     "marker": "P\\.P\\.S\\."
    }
   ]
  },
  {
   "id": "i28",
   "prompt": "Reply with only a JSON object with a key \"steps\" holding an array of exactly 3 short strings for how to boil an egg.",
   "constraints": [
    {
     "type": "json_keys",
     "keys": [
      "steps"
     ],
     "exact": true,
     "types": {
      "steps": "array"
     },
     "arrayLen": {
      "steps": 3
     }
    }
   ]
  },
  {
   "id": "i29",
   "prompt": "Write about the benefits of walking. Use at least 80 words and at least 2 placeholders in square brackets like [name], and do not use any commas.",
   "constraints": [
    {
     "type": "min_words",
     "n": 80
    },
    {
     "type": "placeholders_at_least",
     "n": 2
    },
    {
     "type": "no_commas"
    }
   ]
  },
  {
   "id": "i30",
   "prompt": "WRITE TWO SENTENCES ABOUT THE MOON IN ALL CAPITAL LETTERS, and do not use the word 'night'.",
   "constraints": [
    {
     "type": "all_uppercase"
    },
    {
     "type": "exact_sentences",
     "n": 2
    },
    {
     "type": "forbid_words",
     "words": [
      "night"
     ]
    }
   ]
  },
  {
   "id": "i31",
   "prompt": "Write a message of exactly 2 sentences that starts with the word 'Dear' and ends with the exact phrase 'Best wishes.'",
   "constraints": [
    {
     "type": "starts_with",
     "text": "Dear"
    },
    {
     "type": "ends_with",
     "text": "Best wishes."
    },
    {
     "type": "exact_sentences",
     "n": 2
    }
   ]
  },
  {
   "id": "i32",
   "prompt": "Write a one-line slogan for a bakery, wrapped in double quotation marks, using the word 'fresh' at least once.",
   "constraints": [
    {
     "type": "wrap_quotes"
    },
    {
     "type": "include_words",
     "words": [
      "fresh"
     ]
    }
   ]
  }
 ],
 "rubric": [
  {
   "id": "clarity",
   "name": "Clarity",
   "desc": "Easy to read and understand on the first pass; no confusing wording; ideas in a sensible order."
  },
  {
   "id": "accuracy",
   "name": "Accuracy to the prompt",
   "desc": "Does exactly what the task asked, obeys every stated limit (length, number of sentences, format), and stays consistent with any facts the task supplies; invents nothing."
  },
  {
   "id": "concision",
   "name": "Concision",
   "desc": "No filler, repetition, preamble or sign-off that the task did not ask for; every sentence earns its place."
  },
  {
   "id": "tone",
   "name": "Tone",
   "desc": "Register and voice fit the audience and purpose (for example warm and apologetic for a customer, plain for a beginner, upbeat for a blurb)."
  },
  {
   "id": "originality",
   "name": "Originality",
   "desc": "Fresh, specific wording rather than stock phrases and cliches; a concrete detail or angle where the task allows one."
  }
 ],
 "rater_prompts": {
  "score_system": "You are a strict, impartial writing evaluator. Rate ONE response to a writing task on five criteria, each from 1 (poor) to 5 (excellent). Use the whole scale; 3 is adequate, 5 is rare. Judge only the text, not who wrote it.\nCriteria:\n1. Clarity: Easy to read and understand on the first pass; no confusing wording; ideas in a sensible order.\n2. Accuracy to the prompt: Does exactly what the task asked, obeys every stated limit (length, number of sentences, format), and stays consistent with any facts the task supplies; invents nothing.\n3. Concision: No filler, repetition, preamble or sign-off that the task did not ask for; every sentence earns its place.\n4. Tone: Register and voice fit the audience and purpose (for example warm and apologetic for a customer, plain for a beginner, upbeat for a blurb).\n5. Originality: Fresh, specific wording rather than stock phrases and cliches; a concrete detail or angle where the task allows one.\nReply with only a JSON object: {\"clarity\":n,\"accuracy\":n,\"concision\":n,\"tone\":n,\"originality\":n}.",
  "score_user": "TASK GIVEN TO THE WRITER:\n{task}\n{facts}\nRESPONSE TO RATE:\n{a}\n\nRate the response.",
  "pair_system": "You are a strict, impartial writing evaluator. Two anonymous responses (A and B) answer the same writing task. Decide which is the better piece of writing overall, weighing these five criteria equally:\n1. Clarity: Easy to read and understand on the first pass; no confusing wording; ideas in a sensible order.\n2. Accuracy to the prompt: Does exactly what the task asked, obeys every stated limit (length, number of sentences, format), and stays consistent with any facts the task supplies; invents nothing.\n3. Concision: No filler, repetition, preamble or sign-off that the task did not ask for; every sentence earns its place.\n4. Tone: Register and voice fit the audience and purpose (for example warm and apologetic for a customer, plain for a beginner, upbeat for a blurb).\n5. Originality: Fresh, specific wording rather than stock phrases and cliches; a concrete detail or angle where the task allows one.\nDo not prefer a response because it is longer or appears first. A response that breaks a stated limit should lose to one that obeys it unless it is much worse on the other criteria. If they are equally good, answer \"tie\".\nReply with only a JSON object: {\"winner\":\"A\"}, {\"winner\":\"B\"} or {\"winner\":\"tie\"}.",
  "pair_user": "TASK GIVEN TO THE WRITERS:\n{task}\n{facts}\nRESPONSE A:\n{a}\n\nRESPONSE B:\n{b}\n\nWhich response is better?"
 }
}
