{
  "corpus_id": "M-D-en-barbell-self-crossfit",
  "band": "D",
  "locale": "en",
  "modality": "barbell",
  "voice": "self",
  "input_lines": [
    {
      "id": "L0",
      "text": "Alright so today. Start with a 250 meter row just to get warm."
    },
    {
      "id": "L1",
      "text": "Then a warm-up, two rounds, five burpees and some PVC pass-throughs each round."
    },
    {
      "id": "L2",
      "text": "Then the snatch complex: seven sets, E2MOM, every two minutes, work up to a heavy weight — I have not picked the load yet."
    },
    {
      "id": "L3",
      "text": "Then five by five dead-stop deadlifts at 415 pounds, and after each deadlift set do one ab wheel rollout so pair those, five ab wheels with the five deadlift sets."
    },
    {
      "id": "L4",
      "text": "Then a superset of barbell rows and Romanian deadlifts, two sets of eight at 225 pounds."
    },
    {
      "id": "L5",
      "text": "Then one set of fifteen Bulgarian split squats at 120 pounds."
    },
    {
      "id": "L6",
      "text": "Finish with thirty-nine burpees for time, AFAP, as fast as possible. Just save the plan for today, September tenth."
    }
  ],
  "prompt": "You convert ONE-LINE strength/conditioning prescriptions into structured sets.\n\nFIRST, THE ONLY QUESTION THAT MATTERS — is_prescription:\ntrue  when the line states HOW MANY SETS and HOW MANY REPS, in any wording: \"3 sets of 8\",\n      a listed ladder (\"5,4,3,2,1\"), a pyramid (\"12-10-8-6\"), an interval protocol\n      (\"EMOM 12 min: 3 cleans\" = 12 sets of 3), a tempo/percentage sentence that still names\n      sets and reps (\"tempo 3-1-3, 4 serie po 6\"), or shorthand (\"5x5\"). Prose IS a valid\n      wording — do not decline a line just because it contains words.\nfalse when the line names no set/rep structure at all, or its numbers belong to a CUE, a filler\n      task or a question rather than to the prescribed work.\nEXAMPLES — is_prescription true:\n  \"3 sets of 8, heavy-ish, last set to failure\" -> sets 3, reps 8, weight null\n  \"ladder 5,4,3,2,1 working up to 140kg\"        -> sets 5, reps 5, weight null (140 is a TARGET)\n  \"EMOM 12 min: 3 cleans @70kg\"                 -> sets 12, reps 3, weight 70\n  \"4 serie po 10 na każdą nogę\"                 -> sets 4, reps 10, weight null\n  \"3 serie po 12, ciężko\"                       -> sets 3, reps 12, weight null (worded intensity)\nEXAMPLES — is_prescription false (sets 0):\n  \"20 band pull-aparts between sets\"  (accessory filler, not the prescribed work)\n  \"Focus on bracing, film the top set\" (a cue)\n  \"zapytaj mnie jak pójdzie\"           (a question)\n\nTHEN THE VALUES:\n1. NEVER invent a number the coach did not write. If load is not stated, weight_kg = null.\n   A fabricated number enters a real training plan and gets trained.\n2. Bodyweight (\"BW\", \"bodyweight\", \"peso corporal\", \"自重\") = weight_kg 0. 0 MEANS bodyweight.\n3. sets = how many sets the line produces (max 20). reps = reps of the FIRST set.\n4. Percentages, RPE-only, \"work up to\" targets and worded intensity (\"heavy\", \"ciężko\") are NOT\n   a weight: keep weight_kg null and put those words in note.\n5. Weights are KILOGRAMS. Convert lb to kg. Rest is SECONDS.\n6. Write `note` in the same language as the line, and keep the coach's own words there.\n\nINPUT:\nL0: Alright so today. Start with a 250 meter row just to get warm.\nL1: Then a warm-up, two rounds, five burpees and some PVC pass-throughs each round.\nL2: Then the snatch complex: seven sets, E2MOM, every two minutes, work up to a heavy weight — I have not picked the load yet.\nL3: Then five by five dead-stop deadlifts at 415 pounds, and after each deadlift set do one ab wheel rollout so pair those, five ab wheels with the five deadlift sets.\nL4: Then a superset of barbell rows and Romanian deadlifts, two sets of eight at 225 pounds.\nL5: Then one set of fifteen Bulgarian split squats at 120 pounds.\nL6: Finish with thirty-nine burpees for time, AFAP, as fast as possible. Just save the plan for today, September tenth.",
  "messages": [
    {
      "role": "user",
      "content": "You convert ONE-LINE strength/conditioning prescriptions into structured sets.\n\nFIRST, THE ONLY QUESTION THAT MATTERS — is_prescription:\ntrue  when the line states HOW MANY SETS and HOW MANY REPS, in any wording: \"3 sets of 8\",\n      a listed ladder (\"5,4,3,2,1\"), a pyramid (\"12-10-8-6\"), an interval protocol\n      (\"EMOM 12 min: 3 cleans\" = 12 sets of 3), a tempo/percentage sentence that still names\n      sets and reps (\"tempo 3-1-3, 4 serie po 6\"), or shorthand (\"5x5\"). Prose IS a valid\n      wording — do not decline a line just because it contains words.\nfalse when the line names no set/rep structure at all, or its numbers belong to a CUE, a filler\n      task or a question rather than to the prescribed work.\nEXAMPLES — is_prescription true:\n  \"3 sets of 8, heavy-ish, last set to failure\" -> sets 3, reps 8, weight null\n  \"ladder 5,4,3,2,1 working up to 140kg\"        -> sets 5, reps 5, weight null (140 is a TARGET)\n  \"EMOM 12 min: 3 cleans @70kg\"                 -> sets 12, reps 3, weight 70\n  \"4 serie po 10 na każdą nogę\"                 -> sets 4, reps 10, weight null\n  \"3 serie po 12, ciężko\"                       -> sets 3, reps 12, weight null (worded intensity)\nEXAMPLES — is_prescription false (sets 0):\n  \"20 band pull-aparts between sets\"  (accessory filler, not the prescribed work)\n  \"Focus on bracing, film the top set\" (a cue)\n  \"zapytaj mnie jak pójdzie\"           (a question)\n\nTHEN THE VALUES:\n1. NEVER invent a number the coach did not write. If load is not stated, weight_kg = null.\n   A fabricated number enters a real training plan and gets trained.\n2. Bodyweight (\"BW\", \"bodyweight\", \"peso corporal\", \"自重\") = weight_kg 0. 0 MEANS bodyweight.\n3. sets = how many sets the line produces (max 20). reps = reps of the FIRST set.\n4. Percentages, RPE-only, \"work up to\" targets and worded intensity (\"heavy\", \"ciężko\") are NOT\n   a weight: keep weight_kg null and put those words in note.\n5. Weights are KILOGRAMS. Convert lb to kg. Rest is SECONDS.\n6. Write `note` in the same language as the line, and keep the coach's own words there.\n\nINPUT:\nL0: Alright so today. Start with a 250 meter row just to get warm.\nL1: Then a warm-up, two rounds, five burpees and some PVC pass-throughs each round.\nL2: Then the snatch complex: seven sets, E2MOM, every two minutes, work up to a heavy weight — I have not picked the load yet.\nL3: Then five by five dead-stop deadlifts at 415 pounds, and after each deadlift set do one ab wheel rollout so pair those, five ab wheels with the five deadlift sets.\nL4: Then a superset of barbell rows and Romanian deadlifts, two sets of eight at 225 pounds.\nL5: Then one set of fifteen Bulgarian split squats at 120 pounds.\nL6: Finish with thirty-nine burpees for time, AFAP, as fast as possible. Just save the plan for today, September tenth."
    }
  ],
  "defaults": {
    "temperature": 0,
    "strict": false,
    "usage": {
      "include": true
    }
  },
  "schema_ref": "../schema.json",
  "caption": "OpenRouter bench envelope (temperature 0, seed, json_schema name=prescription_rows, strict:false, usage.include). Production interpretPrescription is Base44 InvokeLLM({prompt, response_json_schema}) with model omitted, then sane() drops declined rows. Same RULES string; different envelope."
}
