{"id":"legalops-contract-request-email-to-json","audience":"legal","category":"legal-compliance","track":"legal","level":"intermediate","technique":"format","title":"Pull a contract request out of an email as JSON","free":false,"task":"Convert the email into JSON in one code block, with nothing before or after it. Use exactly these keys in order: requester, team, other_party, contract_type, value_usd, needed_by, notes. requester is written \"Last, First\". contract_type is exactly one of: nda, services, purchase, other. value_usd is a number with no $ or commas, using the latest figure. needed_by is YYYY-MM-DD (the email is dated Nov 4, 2026). notes is one string of 8 words or fewer about anything unusual, or null. Use null for anything not stated.","materialLabel":"Email (attached to your prompt automatically)","material":"From: Hana Kobayashi\nTo: Legal Requests\nDate: Nov 4, 2026\n\nHi, we'd like a services agreement with Ledgerline Analytics for a data cleanup project. I'm in Finance. Total contract value is about $85,000. The project is cleaning up about three years of customer order records so we can run quarterly reports without manual fixes. Their lead, Samir, has done similar work for our sister company and says two people can finish in six weeks. Their team wants to start work next week, before it is signed, which I said I'd check with you. We need it signed by the 20th so the work lands before year end close. Our procurement team already has them set up as a vendor. I have not attached their proposal yet but can send it if needed.\n\nEdit: sorry, after they added a training day the total is $92,000.\n\nThanks!\nHana","rules":[{"type":"codeBlocks","count":1},{"type":"maxCodeLines","max":12}],"mistakes":[{"title":"Old value","why":"The AI uses $85,000.","fix":"Say: \"Use the latest figure as a plain number.\"","checks":["r1"]},{"title":"Date format","why":"The AI writes 'the 20th' or Nov 20.","fix":"Say: \"needed_by as YYYY-MM-DD.\"","checks":["r1"]},{"title":"Advice in notes","why":"The AI says starting early is risky or fine.","fix":"Say: \"notes states the fact only, no advice.\"","checks":["r2"]},{"title":"Prose around the JSON","why":"The AI explains the fields.","fix":"Say: \"One code block and nothing else.\"","checks":["r0"]},{"title":"Prose around the code","why":"The AI adds explanation or several blocks.","fix":"Say: \"One code block and nothing else.\"","checks":["codeBlocks"]},{"title":"Long code block","why":"The AI adds extra lines or comments.","fix":"Say: \"No comments, under N lines.\"","checks":["maxCodeLines"]}],"promptHints":[{"label":"Exact keys","patterns":["requester","other_party","value_usd"]},{"label":"Date format","patterns":["yyyy-mm-dd"]},{"label":"Number value","patterns":["number","no \\$"]},{"label":"Null for unknown","patterns":["null"]},{"label":"One code block","patterns":["one code block","code block"]}],"hint":"List the keys in order and say how to format the value and the date.","mission":"Turn a contract request email into clean JSON.","musts":["Exact keys in order","Latest value as number","Date as YYYY-MM-DD"],"rubricLabels":["One code block containing valid JSON with exactly the keys requester, team, other_party, contract_type, value_usd, needed_by, notes in that order, and no prose outside the block","Values are correct: requester \"Kobayashi, Hana\", team Finance, other_party Ledgerline Analytics, contract_type \"services\", value_usd 92000 as a number, needed_by 2026-11-20","notes is a string of 8 words or fewer about the counterparty wanting to start before signing, with no advice about whether that is allowed"]}