{
  "schemaVersion": 1,
  "type": "teacher-tutor-reuse-bundle",
  "datasetVersion": "1.0.0+5b4307882dc4",
  "releaseDate": "2026-08-19",
  "pack": {
    "id": "test-a-hypothesis",
    "title_en": "Turn a hypothesis into a test",
    "title_ru": "Превратить гипотезу в проверку",
    "description_en": "Move from competing explanations to predictions, necessary implications, diagnostic checks and explicit revision criteria.",
    "description_ru": "Перейдите от конкурирующих объяснений к предсказаниям, необходимым следствиям, диагностическим проверкам и критериям пересмотра.",
    "outcome_en": "Design language that makes a hypothesis inspectable instead of arguing from plausibility alone.",
    "outcome_ru": "Формулировать гипотезу так, чтобы её можно было проверять, а не обсуждать только по правдоподобию.",
    "audience": [
      "B2",
      "C1",
      "teacher",
      "researcher",
      "AI tutor"
    ],
    "canonical_url": "https://metkagram.github.io/en/packs/test-a-hypothesis/"
  },
  "rights": {
    "source": "Metkagram",
    "source_url": "https://metkagram.github.io",
    "source_repository": "https://github.com/metkagram/metkagram.github.io",
    "creator": "Metkagram",
    "creator_url": "https://github.com/metkagram",
    "maintainer": "Applied Systems Lab at MetalHatsCats",
    "maintainer_url": "https://metalhatscats.com",
    "license": "Metkagram Source-Available Terms",
    "license_url": "https://metkagram.github.io/en/licensing/",
    "rights_status": "source-available-not-open-source",
    "rights_url": "https://metkagram.github.io/rights.json",
    "historical_license": "CC BY-NC 4.0 before 2026-08-17; prior grants remain valid for copies received under those terms",
    "attribution_required": true,
    "attribution_text": "Source: Metkagram — https://metkagram.github.io/",
    "attribution_html": "Source: <a href=\"https://metkagram.github.io/\">Metkagram</a>",
    "terms_url": "https://metkagram.github.io/en/licensing/",
    "privacy_url": "https://metkagram.github.io/en/legal/privacy/",
    "contact_email": "metalhatscats@gmail.com",
    "contact_url": "https://www.linkedin.com/company/metalhatscats",
    "collaboration_url": "https://metkagram.github.io/en/licensing/"
  },
  "cards": [
    {
      "pack_id": "test-a-hypothesis",
      "pack_title_en": "Turn a hypothesis into a test",
      "pack_title_ru": "Превратить гипотезу в проверку",
      "step_no": 1,
      "kind": "pattern",
      "object_id": "CLF054",
      "instruction_en": "Keep two plausible explanations alive before committing to one.",
      "instruction_ru": "Сохраните две правдоподобные гипотезы до того, как выбирать одну.",
      "canonical_url": "https://metkagram.github.io/en/practice/patterns/one-possibility-is-that-x-another-is-that-y-clf054/",
      "formula_en": "One possibility is that [X]; another is that [Y].",
      "formula_de": "Eine Möglichkeit ist, dass [X]; eine andere ist, dass [Y].",
      "example_en": "One possibility is that the event was delayed; another is that it was never emitted.",
      "example_de": "Eine Möglichkeit ist, dass das Ereignis verspätet war; eine andere ist, dass es nie erzeugt wurde.",
      "front_en": "Keep two plausible explanations alive before committing to one.",
      "back_en": "One possibility is that [X]; another is that [Y].\nExample: One possibility is that the event was delayed; another is that it was never emitted.",
      "front_ru": "Сохраните две правдоподобные гипотезы до того, как выбирать одну.",
      "back_ru": "Одна возможность X, другая Y\nEN: One possibility is that [X]; another is that [Y].\nDE: Eine Möglichkeit ist, dass [X]; eine andere ist, dass [Y].\nПеревод: Одна возможность — событие задержалось; другая — оно вообще не было создано.",
      "tags": "metkagram reasoning-pack test-a-hypothesis pattern CLF054"
    },
    {
      "pack_id": "test-a-hypothesis",
      "pack_title_en": "Turn a hypothesis into a test",
      "pack_title_ru": "Превратить гипотезу в проверку",
      "step_no": 2,
      "kind": "contrast",
      "object_id": "expected-observation-vs-required-condition",
      "instruction_en": "Distinguish a prediction you expect from a condition the hypothesis must satisfy.",
      "instruction_ru": "Различите ожидаемое предсказание и условие, которому гипотеза обязана соответствовать.",
      "canonical_url": "https://metkagram.github.io/en/contrasts/expected-observation-vs-required-condition/",
      "formula_en": "CLF056: If [X] were true, we would expect [Y]. | CLF057: For [X] to be true, [Y] would need to be the case.",
      "formula_de": "CLF056: Wenn [X] zuträfe, würden wir [Y] erwarten. | CLF057: Damit [X] zutrifft, müsste [Y] der Fall sein.",
      "example_en": "",
      "example_de": "",
      "front_en": "Are you deriving a testable prediction from X, or stating a condition that must hold for X to remain viable?",
      "back_en": "Use CLF056 to derive an observation you would expect if X were true. Use CLF057 to state a necessary implication: Y would need to hold for X to be true. An expected signal can support diagnosis; a required condition can weaken X when it fails.\nCLF056: If [X] were true, we would expect [Y]. | CLF057: For [X] to be true, [Y] would need to be the case.",
      "front_ru": "Вы выводите из X проверяемое предсказание или называете условие, без которого X не может оставаться жизнеспособной гипотезой?",
      "back_ru": "CLF056 выводит наблюдение, которое мы ожидаем при истинности X. CLF057 задаёт необходимое следствие: чтобы X было верно, Y должно выполняться. Ожидаемый признак помогает диагностике, а отсутствие необходимого условия ослабляет X.\nCLF056: If [X] were true, we would expect [Y]. | CLF057: For [X] to be true, [Y] would need to be the case.",
      "tags": "metkagram reasoning-pack test-a-hypothesis contrast expected-observation-vs-required-condition"
    },
    {
      "pack_id": "test-a-hypothesis",
      "pack_title_en": "Turn a hypothesis into a test",
      "pack_title_ru": "Превратить гипотезу в проверку",
      "step_no": 3,
      "kind": "drill",
      "object_id": "retry-cause-requires-order",
      "instruction_en": "Use event order as a necessary implication rather than a vague sign.",
      "instruction_ru": "Используйте порядок событий как необходимое следствие, а не как расплывчатый признак.",
      "canonical_url": "https://metkagram.github.io/en/clinic/#retry-cause-requires-order",
      "formula_en": "CLF056: If [X] were true, we would expect [Y]. | CLF057: For [X] to be true, [Y] would need to be the case.",
      "formula_de": "CLF056: Wenn [X] zuträfe, würden wir [Y] erwarten. | CLF057: Damit [X] zutrifft, müsste [Y] der Fall sein.",
      "example_en": "",
      "example_de": "",
      "front_en": "For a retry to explain the duplicate, the duplicate must appear after the first failure. State that required relationship as a viability condition for the hypothesis.\nA/B: CLF056: If [X] were true, we would expect [Y]. | CLF057: For [X] to be true, [Y] would need to be the case.",
      "back_en": "CLF057: For [X] to be true, [Y] would need to be the case.\nChoose CLF057 because the ordering is being stated as a necessary condition for the retry hypothesis to be true.",
      "front_ru": "Чтобы retry объяснял дубликат, дубликат должен появиться после первого сбоя. Сформулируйте эту обязательную связь как условие жизнеспособности гипотезы.\nA/B: CLF056: If [X] were true, we would expect [Y]. | CLF057: For [X] to be true, [Y] would need to be the case.",
      "back_ru": "CLF057: For [X] to be true, [Y] would need to be the case.\nВыбирайте CLF057: порядок событий задаётся как необходимое условие истинности гипотезы о retry.",
      "tags": "metkagram reasoning-pack test-a-hypothesis drill retry-cause-requires-order"
    },
    {
      "pack_id": "test-a-hypothesis",
      "pack_title_en": "Turn a hypothesis into a test",
      "pack_title_ru": "Превратить гипотезу в проверку",
      "step_no": 4,
      "kind": "pattern",
      "object_id": "CLF058",
      "instruction_en": "Challenge an explanation by exposing an important observation it still fails to explain.",
      "instruction_ru": "Проверьте объяснение на полноту через важное наблюдение, которое оно всё ещё не объясняет.",
      "canonical_url": "https://metkagram.github.io/en/practice/patterns/this-explains-x-but-it-doesn-t-explain-y-clf058/",
      "formula_en": "This explains [X], but it doesn't explain [Y].",
      "formula_de": "Das erklärt [X], aber nicht [Y].",
      "example_en": "The retry theory explains the duplicate, but it doesn't explain the missing first event.",
      "example_de": "Die Retry-Theorie erklärt das Duplikat, aber nicht das fehlende erste Ereignis.",
      "front_en": "Challenge an explanation by exposing an important observation it still fails to explain.",
      "back_en": "This explains [X], but it doesn't explain [Y].\nExample: The retry theory explains the duplicate, but it doesn't explain the missing first event.",
      "front_ru": "Проверьте объяснение на полноту через важное наблюдение, которое оно всё ещё не объясняет.",
      "back_ru": "Это объясняет X, но не Y\nEN: This explains [X], but it doesn't explain [Y].\nDE: Das erklärt [X], aber nicht [Y].\nПеревод: Теория retry объясняет дубликат, но не объясняет отсутствующее первое событие.",
      "tags": "metkagram reasoning-pack test-a-hypothesis pattern CLF058"
    },
    {
      "pack_id": "test-a-hypothesis",
      "pack_title_en": "Turn a hypothesis into a test",
      "pack_title_ru": "Превратить гипотезу в проверку",
      "step_no": 5,
      "kind": "contrast",
      "object_id": "diagnostic-test-vs-revision-threshold",
      "instruction_en": "Separate the next useful check from the evidence that would actually change your conclusion.",
      "instruction_ru": "Отделите следующую полезную проверку от данных, которые действительно изменят ваш вывод.",
      "canonical_url": "https://metkagram.github.io/en/contrasts/diagnostic-test-vs-revision-threshold/",
      "formula_en": "CLF067: A useful test would be whether [X]. | CLF070: I would revise [X] if [Y].",
      "formula_de": "CLF067: Ein sinnvoller Test wäre, ob [X]. | CLF070: Ich würde [X] neu bewerten, wenn [Y].",
      "example_en": "",
      "example_de": "",
      "front_en": "Are you proposing a diagnostic observation to reduce uncertainty, or stating the evidence threshold that would actually change your current conclusion?",
      "back_en": "Use CLF067 to propose a discriminating check when competing explanations need evidence. Use CLF070 when you already hold a provisional conclusion and want to make explicit what observation would change it. A useful test need not overturn your view; a revision criterion is specifically tied to changing it.\nCLF067: A useful test would be whether [X]. | CLF070: I would revise [X] if [Y].",
      "front_ru": "Вы предлагаете диагностическую проверку для снижения неопределённости или называете данные, которые действительно заставят пересмотреть текущий вывод?",
      "back_ru": "CLF067 предлагает различающую проверку, когда конкурирующим объяснениям нужны данные. CLF070 нужен, когда уже есть предварительный вывод и важно заранее назвать наблюдение, которое его изменит. Полезный тест не обязан менять позицию, а критерий пересмотра связан именно с её изменением.\nCLF067: A useful test would be whether [X]. | CLF070: I would revise [X] if [Y].",
      "tags": "metkagram reasoning-pack test-a-hypothesis contrast diagnostic-test-vs-revision-threshold"
    },
    {
      "pack_id": "test-a-hypothesis",
      "pack_title_en": "Turn a hypothesis into a test",
      "pack_title_ru": "Превратить гипотезу в проверку",
      "step_no": 6,
      "kind": "drill",
      "object_id": "revision-threshold-clean-config",
      "instruction_en": "Finish by making the conclusion genuinely revisable.",
      "instruction_ru": "Завершите маршрут явным условием, при котором вывод действительно будет пересмотрен.",
      "canonical_url": "https://metkagram.github.io/en/clinic/#revision-threshold-clean-config",
      "formula_en": "CLF067: A useful test would be whether [X]. | CLF070: I would revise [X] if [Y].",
      "formula_de": "CLF067: Ein sinnvoller Test wäre, ob [X]. | CLF070: Ich würde [X] neu bewerten, wenn [Y].",
      "example_en": "",
      "example_de": "",
      "front_en": "You currently think the configuration caused the failure. State in advance what would change your mind: seeing the same failure with a clean configuration.\nA/B: CLF067: A useful test would be whether [X]. | CLF070: I would revise [X] if [Y].",
      "back_en": "CLF070: I would revise [X] if [Y].\nChoose CLF070 because the task is to make a revision criterion explicit for a conclusion you already hold provisionally.",
      "front_ru": "Сейчас вы считаете, что сбой вызван конфигурацией. Заранее назовите, что изменит ваше мнение: тот же сбой при чистой конфигурации.\nA/B: CLF067: A useful test would be whether [X]. | CLF070: I would revise [X] if [Y].",
      "back_ru": "CLF070: I would revise [X] if [Y].\nВыбирайте CLF070: нужно явно задать критерий пересмотра для уже существующего предварительного вывода.",
      "tags": "metkagram reasoning-pack test-a-hypothesis drill revision-threshold-clean-config"
    }
  ]
}
