{
  "schemaVersion": 1,
  "publishedAt": "2026-08-01",
  "method": "independent-synthesis",
  "conceptCount": 80,
  "concepts": [
    {
      "id": "THINK-001-threat-first",
      "title": "Najpierw groźba przeciwnika",
      "area": "Proces decyzji",
      "claim": "Przed wyborem ruchu gracz nazywa bezpośrednią groźbę przeciwnika.",
      "prompt": "Przed każdym z pięciu kolejnych ruchów nazwij jednym zdaniem, co zrobi przeciwnik, jeśli pominiesz swój ruch.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/najpierw-grozba-przeciwnika/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice",
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [],
        "errors": [
          "https://szachmaty.pl/pojecia/wiszaca-figura/"
        ]
      },
      "analysisConceptIds": [
        "hanging-piece"
      ]
    },
    {
      "id": "THINK-002-forcing-moves",
      "title": "Szachy, bicia i groźby",
      "area": "Proces decyzji",
      "claim": "Szachy, bicia i groźby są generowane jako pierwsza lista kandydatów, ale nie jako automatyczny wybór.",
      "prompt": "W wybranej pozycji wypisz wszystkie szachy, bicia i bezpośrednie groźby, a dopiero potem oceń, które z nich mają sens.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/szachy-bicia-i-grozby/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=tempting-check#/practice"
        ],
        "lessons": [],
        "errors": [
          "https://szachmaty.pl/pojecia/szach-bez-celu/"
        ]
      },
      "analysisConceptIds": []
    },
    {
      "id": "THINK-003-candidate-moves",
      "title": "Dwa ruchy kandydujące",
      "area": "Proces decyzji",
      "claim": "Gracz wskazuje co najmniej dwa ruchy kandydujące przed rozpoczęciem głębokiej kalkulacji.",
      "prompt": "Zanim zaczniesz liczyć wariant, wskaż co najmniej dwa rozsądne ruchy i krótko uzasadnij każdy z nich.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/dwa-ruchy-kandydujace/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "THINK-004-opponent-best-reply",
      "title": "Najlepsza odpowiedź przeciwnika",
      "area": "Proces decyzji",
      "claim": "Każdy wariant jest sprawdzany przeciwko najsilniejszej odpowiedzi przeciwnika.",
      "prompt": "Dla każdego kandydata znajdź odpowiedź przeciwnika, której najbardziej nie chciałbyś zobaczyć.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/najlepsza-odpowiedz-przeciwnika/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": [
          "https://szachmaty.pl/pojecia/zatruty-material/"
        ]
      },
      "analysisConceptIds": []
    },
    {
      "id": "THINK-005-final-blunder-check",
      "title": "Ostatnia kontrola przed ruchem",
      "area": "Proces decyzji",
      "claim": "Przed wykonaniem ruchu gracz ponownie sprawdza pole docelowe, wiszące figury i odpowiedź wymuszającą.",
      "prompt": "Tuż przed ruchem sprawdź kolejno: pole docelowe, niebronione figury oraz szach, bicie lub groźbę przeciwnika.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/ostatnia-kontrola-przed-ruchem/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice",
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch8-l2#/lessons"
        ],
        "errors": [
          "https://szachmaty.pl/pojecia/wiszaca-figura/",
          "https://szachmaty.pl/pojecia/pozwala-na-mata/"
        ]
      },
      "analysisConceptIds": [
        "hanging-piece",
        "allows-mate"
      ]
    },
    {
      "id": "THINK-006-stop-after-blunder",
      "title": "Zatrzymaj serię strat",
      "area": "Odporność po błędzie",
      "claim": "Po gafie celem następnego ruchu jest zatrzymanie serii strat, a nie natychmiastowe odrobienie materiału.",
      "prompt": "Po stracie materiału wybierz najpierw ruch, który zabezpiecza króla i pozostałe figury, nawet jeśli niczego od razu nie odzyskuje.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/zatrzymaj-serie-strat/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch8-l1#/lessons"
        ],
        "errors": [
          "https://szachmaty.pl/pojecia/seria-bledow-po-gafie/"
        ]
      },
      "analysisConceptIds": []
    },
    {
      "id": "THINK-007-error-to-recipe",
      "title": "Błąd zamień w receptę",
      "area": "Diagnoza błędów",
      "claim": "Diagnoza błędu jest użyteczna tylko wtedy, gdy prowadzi do jednej mierzalnej recepty.",
      "prompt": "Po partii zapisz jeden błąd w formacie: „zrobiłem X, bo pominąłem Y; następnym razem sprawdzę Z”.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/blad-zamien-w-recepte/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "THINK-008-process-score",
      "title": "Oceniaj także proces",
      "area": "Proces decyzji",
      "claim": "System ocenia osobno jakość procesu i poprawność końcowego ruchu.",
      "prompt": "Po zadaniu oceń osobno wynik ruchu i wykonanie checklisty; dobry proces zaznacz nawet wtedy, gdy wynik był błędny.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/oceniaj-takze-proces/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-001-one-branch-at-time",
      "title": "Jeden wariant naraz",
      "area": "Kalkulacja",
      "claim": "Gracz kończy jeden wariant przed przejściem do kolejnego kandydata.",
      "prompt": "Wybierz jeden ruch kandydujący i policz go do spokojnej pozycji, zanim wrócisz do następnego.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/jeden-wariant-naraz/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-002-visualize-final-position",
      "title": "Zobacz pozycję końcową",
      "area": "Kalkulacja",
      "claim": "Po policzeniu wariantu gracz opisuje końcową pozycję bez przesuwania figur.",
      "prompt": "Po policzeniu wariantu odwróć wzrok od planszy i nazwij położenie królów, bilans materiału oraz figury atakowane.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/zobacz-pozycje-koncowa/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-003-recapture-sequence",
      "title": "Dolicz wymianę do końca",
      "area": "Kalkulacja",
      "claim": "Wymiana jest liczona do chwili ustabilizowania materiału, nie tylko przez pierwsze bicie.",
      "prompt": "Przy serii bić zapisuj bilans po każdym odbiciu i przerwij dopiero wtedy, gdy żadne kolejne bicie nie jest naturalne.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/dolicz-wymiane-do-konca/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=exchange-count#/practice"
        ],
        "lessons": [],
        "errors": [
          "https://szachmaty.pl/pojecia/niekorzystna-wymiana/"
        ]
      },
      "analysisConceptIds": [
        "bad-trade"
      ]
    },
    {
      "id": "CALC-004-quiet-reply",
      "title": "Szukaj spokojnej obrony",
      "area": "Kalkulacja",
      "claim": "Kalkulacja uwzględnia spokojne odpowiedzi obronne, nie tylko ruchy wymuszające.",
      "prompt": "Po znalezieniu kombinacji poszukaj jednego cichego ruchu obronnego: odejścia, podparcia, przesłony albo kontrataku.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/szukaj-spokojnej-obrony/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-005-comparison",
      "title": "Porównaj pozycje końcowe",
      "area": "Kalkulacja",
      "claim": "Kandydat wygrywa dopiero po porównaniu końcowych pozycji wszystkich policzonych wariantów.",
      "prompt": "Po policzeniu kandydatów porównaj ich pozycje końcowe według materiału, bezpieczeństwa króla i aktywności figur.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/porownaj-pozycje-koncowe/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-006-branch-budget",
      "title": "Dopasuj głębokość liczenia",
      "area": "Kalkulacja",
      "claim": "Długość kalkulacji jest dopasowana do wymuszającego charakteru pozycji.",
      "prompt": "W pozycji wymuszającej licz głębiej, a w spokojnej zatrzymaj się po ustaleniu planu i dwóch realistycznych odpowiedzi.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/dopasuj-glebokosc-liczenia/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-007-hidden-defender",
      "title": "Policz ukrytych obrońców",
      "area": "Kalkulacja",
      "claim": "Przed kombinacją gracz liczy obrońców, przesłony i figury rentgenowskie.",
      "prompt": "Przed kombinacją prześledź każdą linię wieży, gońca i hetmana oraz sprawdź, co odsłoni się po pierwszym biciu.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/policz-ukrytych-obroncow/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=pin#/practice",
          "https://szachmaty.pl/?practice=xray#/practice"
        ],
        "lessons": [],
        "errors": [
          "https://szachmaty.pl/pojecia/przeoczone-zwiazanie/"
        ]
      },
      "analysisConceptIds": [
        "pin"
      ]
    },
    {
      "id": "CALC-008-transfer-position",
      "title": "Sprawdź motyw w nowej pozycji",
      "area": "Kalkulacja",
      "claim": "Opanowanie motywu sprawdza się w nowej geometrii, nie przez powtórzenie tego samego diagramu.",
      "prompt": "Po rozwiązaniu zadania znajdź drugie z tym samym motywem, ale inną stroną planszy, materiałem lub kolejnością ruchów.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/sprawdz-motyw-w-nowej-pozycji/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-001-active-king",
      "title": "Aktywny król w końcówce",
      "area": "Końcówki",
      "claim": "Aktywność króla jest pierwszą ocenianą cechą po znacznym uproszczeniu pozycji.",
      "prompt": "Po każdej większej wymianie wskaż bezpieczne pole, z którego król zaatakuje pionka albo ograniczy króla przeciwnika.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/aktywny-krol-w-koncowce/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-king-activity#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch6-l7#/lessons"
        ],
        "errors": [
          "https://szachmaty.pl/pojecia/slabosc-w-koncowce/"
        ]
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-002-pawn-square",
      "title": "Kwadrat pionka bez liczenia",
      "area": "Końcówki",
      "claim": "Reguła kwadratu jest ćwiczona w rodzinie pozycji z różnym tempem i stroną na ruchu.",
      "prompt": "Ćwicz regułę kwadratu na pozycjach z obiema stronami na ruchu i przed odpowiedzią zaznacz granicę kwadratu pionka.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/kwadrat-pionka-bez-liczenia/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-square-rule#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch6-l2#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-003-key-squares",
      "title": "Kluczowe pola pionka",
      "area": "Końcówki",
      "claim": "Kluczowe pola pionka są rozpoznawane niezależnie od orientacji planszy.",
      "prompt": "Dla pionka na trzech różnych liniach wskaż pola, na które musi wejść król, aby wymusić promocję.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/kluczowe-pola-pionka/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-key-squares#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-004-opposition",
      "title": "Opozycja służy celowi",
      "area": "Końcówki",
      "claim": "Opozycja jest środkiem realizacji celu, a nie celem samym w sobie.",
      "prompt": "Zanim zagrasz opozycję, nazwij cel: wejście na kluczowe pole, zdobycie pionka albo zablokowanie drogi króla.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/opozycja-sluzy-celowi/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-direct-opposition#/practice",
          "https://szachmaty.pl/?practice=zugzwang#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch6-l1#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-005-rook-activity",
      "title": "Aktywna wieża zamiast biernej",
      "area": "Końcówki",
      "claim": "Aktywna wieża i odcięcie króla mają pierwszeństwo przed pasywną obroną pionka.",
      "prompt": "W końcówce wieżowej porównaj obronę pionka z szachem z boku, odcięciem króla lub wejściem na siódmą linię.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/aktywna-wieza-zamiast-biernej/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-active-rook#/practice",
          "https://szachmaty.pl/?practice=endgame-cut-off-king#/practice",
          "https://szachmaty.pl/?practice=endgame-rook#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-006-rook-behind-pawn",
      "title": "Wieża za wolnym pionem",
      "area": "Końcówki",
      "claim": "Wieża za pionem wolnym jest punktem startu oceny, który trzeba potwierdzić konkretną pozycją.",
      "prompt": "Najpierw sprawdź ustawienie wieży za pionem, a następnie policz, czy szachy z boku albo aktywność króla nie są ważniejsze.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/wieza-za-wolnym-pionem/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-rook-behind-pawn#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-007-lucena-philidor",
      "title": "Rozpoznaj Lucenę i Philidora",
      "area": "Końcówki",
      "claim": "Lucena i Philidor są ćwiczone jako rozpoznanie warunków, a nie zapamiętanie pojedynczego ustawienia.",
      "prompt": "Przed nazwaniem pozycji sprawdź warunki: położenie królów, linię pionka, miejsce wieży i dostęp do szachów z boku.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/rozpoznaj-lucene-i-philidora/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-rook#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch6-l5#/lessons",
          "https://szachmaty.pl/?lesson=ch6-l6#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-008-tablebase-proof",
      "title": "Wynik końcówki sprawdzony tablebase",
      "area": "Końcówki",
      "claim": "Każda pozycja końcówkowa z maksymalnie siedmioma figurami otrzymuje niezależnie sprawdzony wynik.",
      "prompt": "Dla pozycji do siedmiu figur porównaj własną ocenę z wynikiem Syzygy i zapisz pierwszy ruch, który zmienia wygraną w remis.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/wynik-koncowki-sprawdzony-tablebase/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-rook#/practice",
          "https://szachmaty.pl/?practice=endgame-queen#/practice",
          "https://szachmaty.pl/?practice=endgame-knight#/practice",
          "https://szachmaty.pl/?practice=endgame-bishop#/practice",
          "https://szachmaty.pl/?practice=endgame-king-activity#/practice",
          "https://szachmaty.pl/?practice=endgame-direct-opposition#/practice",
          "https://szachmaty.pl/?practice=endgame-key-squares#/practice",
          "https://szachmaty.pl/?practice=endgame-square-rule#/practice",
          "https://szachmaty.pl/?practice=endgame-passed-pawn#/practice",
          "https://szachmaty.pl/?practice=endgame-pawn-race#/practice",
          "https://szachmaty.pl/?practice=endgame-pawn-promotion#/practice",
          "https://szachmaty.pl/?practice=endgame-protected-passer#/practice",
          "https://szachmaty.pl/?practice=endgame-rook-behind-pawn#/practice",
          "https://szachmaty.pl/?practice=endgame-active-rook#/practice",
          "https://szachmaty.pl/?practice=endgame-cut-off-king#/practice",
          "https://szachmaty.pl/?practice=endgame-queen-technique#/practice",
          "https://szachmaty.pl/?practice=endgame-knight-blockade#/practice",
          "https://szachmaty.pl/?practice=endgame-bishop-stops-pawn#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-001-imbalances",
      "title": "Plan zaczyna się od różnic",
      "area": "Strategia",
      "claim": "Plan zaczyna się od nazwanych różnic pozycji, nie od ogólnej chęci ataku.",
      "prompt": "Nazwij trzy konkretne różnice pozycji: materiał, strukturę pionków, aktywność, przestrzeń lub bezpieczeństwo króla.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/plan-zaczyna-sie-od-roznic/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=plan-choice#/practice",
          "https://szachmaty.pl/?practice=strategy-outpost#/practice",
          "https://szachmaty.pl/?practice=strategy-wing-majority#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-002-pawn-structure-plan",
      "title": "Struktura pionków podpowiada plan",
      "area": "Strategia",
      "claim": "Struktura pionkowa ogranicza listę sensownych planów i przełamań.",
      "prompt": "Wskaż słabego pionka, możliwe przełamanie i linię, która otworzy się po wymianie pionków.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/struktura-pionkow-podpowiada-plan/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=plan-choice#/practice",
          "https://szachmaty.pl/?practice=strategy-wing-majority#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch7-l2#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-003-worst-piece",
      "title": "Popraw najgorszą figurę",
      "area": "Strategia",
      "claim": "Najpierw poprawiana jest figura o najmniejszym wpływie na grę.",
      "prompt": "Znajdź figurę z najmniejszą liczbą użytecznych pól i zaplanuj dla niej dwuruchową drogę do lepszej pozycji.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/popraw-najgorsza-figure/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=plan-choice#/practice",
          "https://szachmaty.pl/?practice=strategy-outpost#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch7-l6#/lessons"
        ],
        "errors": [
          "https://szachmaty.pl/pojecia/figura-bez-ruchu/"
        ]
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-004-open-lines",
      "title": "Ciężkie figury na otwartych liniach",
      "area": "Strategia",
      "claim": "Ciężkie figury są kierowane na otwarte i półotwarte linie zgodnie z konkretnym celem wejścia.",
      "prompt": "Nie tylko postaw wieżę na otwartej linii. Nazwij konkretne pole wejścia albo cel, który ma zaatakować.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/ciezkie-figury-na-otwartych-liniach/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=strategy-open-file#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch7-l4#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-005-prophylaxis",
      "title": "Profilaktyka przed własnym planem",
      "area": "Strategia",
      "claim": "Przed realizacją planu gracz nazywa najlepsze ulepszenie pozycji przeciwnika.",
      "prompt": "Przed realizacją planu zapytaj, jaki jeden ruch najbardziej poprawiłby pozycję przeciwnika, i zdecyduj, czy trzeba mu zapobiec.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/profilaktyka-przed-wlasnym-planem/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=plan-choice#/practice",
          "https://szachmaty.pl/?practice=strategy-prophylaxis#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch7-l7#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-006-good-bad-bishop",
      "title": "Dobry i zły goniec w kontekście",
      "area": "Strategia",
      "claim": "Ocena gońca uwzględnia strukturę pionków i dostępne cele, nie sam kolor pól.",
      "prompt": "Oceń gońca przez dostępne cele, ruchliwość i kolor własnych pionków, a nie przez samą etykietę „dobry” lub „zły”.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/dobry-i-zly-goniec-w-kontekscie/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=plan-choice#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch7-l2#/lessons",
          "https://szachmaty.pl/?lesson=ch7-l6#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-007-break-timing",
      "title": "Moment przełamania pionowego",
      "area": "Strategia",
      "claim": "Przełamanie pionowe jest oceniane przez przygotowanie figur i zmianę struktury po wymianach.",
      "prompt": "Przed pchnięciem pionka sprawdź ustawienie figur, możliwe wymiany i pola, które staną się słabe po zmianie struktury.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/moment-przelamania-pionowego/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=plan-choice#/practice",
          "https://szachmaty.pl/?practice=strategy-wing-majority#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch7-l2#/lessons",
          "https://szachmaty.pl/?lesson=ch7-l7#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-008-plan-choice-drill",
      "title": "Wybór planu z uzasadnieniem",
      "area": "Strategia",
      "claim": "Ćwiczenie planu przedstawia kilka wiarygodnych decyzji i wymaga wskazania cech pozycji.",
      "prompt": "Porównaj trzy wiarygodne plany i dla każdego wskaż cechę pozycji, którą wykorzystuje albo poprawia.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/wybor-planu-z-uzasadnieniem/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=plan-choice#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "TEACH-001-diagnostic-first",
      "title": "Najpierw krótka diagnoza",
      "area": "Nauczanie",
      "claim": "Ścieżka zaczyna się od krótkiej diagnozy, a nie od tej samej pierwszej lekcji dla wszystkich.",
      "prompt": "Zacznij blok od czterech różnych zadań i wybierz pierwszy temat na podstawie błędów, a nie z góry ustalonej kolejności.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/najpierw-krotka-diagnoza/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "TEACH-002-gated-mastery",
      "title": "Przejście po opanowaniu podstawy",
      "area": "Nauczanie",
      "claim": "Kolejny blok otwiera się po wykonaniu lekcji i minimalnej liczbie poprawnych prób.",
      "prompt": "Ustal przed zajęciami mierzalną bramkę, na przykład 6 z 8 poprawnych odpowiedzi bez podpowiedzi.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/przejscie-po-opanowaniu-podstawy/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=mate-in-1#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "TEACH-003-coach-questions",
      "title": "Pytanie trenera przed odpowiedzią",
      "area": "Nauczanie",
      "claim": "Wyjaśnienie częściej prowadzi pytaniem do odkrycia cechy pozycji, niż podaje gotową odpowiedź.",
      "prompt": "Zamiast podać ruch, zapytaj kolejno o groźbę, kandydatów i najlepszą odpowiedź przeciwnika.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/pytanie-trenera-przed-odpowiedzia/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice",
          "https://szachmaty.pl/?practice=plan-choice#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "TEACH-004-delayed-check",
      "title": "Powtórka po czasie",
      "area": "Nauczanie",
      "claim": "Zrozumienie jest ponownie sprawdzane po czasie i w zmienionej pozycji.",
      "prompt": "Wróć do tej samej umiejętności po trzech dniach, ale użyj nowej pozycji i zapisz wynik pierwszej próby.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/powtorka-po-czasie/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "GAME-001-decision-stops",
      "title": "Zatrzymuj partię przed decyzją",
      "area": "Partie modelowe",
      "claim": "Partia modelowa zatrzymuje się w kilku momentach, w których gracz wybiera plan lub ruch.",
      "prompt": "Podczas oglądania partii zatrzymaj zapis w trzech ważnych momentach i wybierz ruch przed odsłonięciem dalszego ciągu.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/zatrzymuj-partie-przed-decyzja/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=model-games#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "GAME-002-own-commentary",
      "title": "Własny komentarz do partii",
      "area": "Partie modelowe",
      "claim": "Sekwencja ruchów jest faktem, a komentarz i pytania są tworzone od nowa dla platformy.",
      "prompt": "Oddziel faktyczny zapis ruchów od własnego wyjaśnienia i opisz decyzję prostymi słowami bez przepisywania cudzych komentarzy.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/wlasny-komentarz-do-partii/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=model-games#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "GAME-003-theme-over-result",
      "title": "Wybieraj partię pod umiejętność",
      "area": "Partie modelowe",
      "claim": "Partia jest dobierana pod jedną umiejętność, nie wyłącznie pod sławę zawodników.",
      "prompt": "Dobierz partię, w której wybrany motyw pojawia się co najmniej dwa razy, niezależnie od sławy zawodników i wyniku.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/wybieraj-partie-pod-umiejetnosc/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=model-games#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "GAME-004-replay-transfer",
      "title": "Transfer po partii modelowej",
      "area": "Partie modelowe",
      "claim": "Po partii modelowej gracz rozwiązuje nową pozycję opartą na tym samym mechanizmie.",
      "prompt": "Po obejrzeniu partii rozwiąż nową pozycję z tym samym mechanizmem, ale innym ustawieniem figur.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/transfer-po-partii-modelowej/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=model-games#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "THINK-009-safety-checklist",
      "title": "Checklista bezpieczeństwa",
      "area": "Proces decyzji",
      "claim": "Przed ruchem gracz sprawdza kolejno szachy, bicia, groźby i niebronione figury obu stron.",
      "prompt": "Przed trzema kolejnymi ruchami wykonaj czteropunktową kontrolę bezpieczeństwa i zaznacz, co zmieniło decyzję.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/checklista-bezpieczenstwa/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": [
          "https://szachmaty.pl/pojecia/przeoczony-mat/"
        ]
      },
      "analysisConceptIds": [
        "missed-mate"
      ]
    },
    {
      "id": "THINK-010-time-budget",
      "title": "Budżet czasu",
      "area": "Proces decyzji",
      "claim": "Czas na decyzję jest dzielony według ryzyka pozycji, a nie równomiernie na każdy ruch.",
      "prompt": "Wskaż trzy momenty krytyczne w partii i ustal, ile czasu powinieneś zostawić na każdy z nich.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/budzet-czasu/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "THINK-011-transition-scan",
      "title": "Skan po zmianie fazy",
      "area": "Proces decyzji",
      "claim": "Po wymianie hetmanów, otwarciu centrum albo przejściu do końcówki gracz ponownie ocenia priorytety.",
      "prompt": "Po każdej dużej wymianie nazwij fazę partii, najgorszą figurę i nowy plan.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/skan-po-zmianie-fazy/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "THINK-012-move-purpose",
      "title": "Cel ruchu w jednym zdaniu",
      "area": "Proces decyzji",
      "claim": "Ruch kandydujący pozostaje na liście tylko wtedy, gdy ma konkretny cel i przewidywaną odpowiedź przeciwnika.",
      "prompt": "Dla dwóch kandydatów dokończ zdanie: „gram ten ruch, aby…, a po odpowiedzi…”.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/cel-ruchu-w-jednym-zdaniu/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "PSY-001-reset-after-blunder",
      "title": "Reset po błędzie",
      "area": "Odporność po błędzie",
      "claim": "Po zauważeniu błędu gracz zatrzymuje reakcję odwetową i buduje nową ocenę od aktualnej pozycji.",
      "prompt": "Po symulowanej stracie materiału odczekaj dziesięć sekund, policz bilans i wybierz ruch stabilizujący.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/reset-po-bledzie/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "PSY-002-time-trouble-protocol",
      "title": "Protokół niedoczasu",
      "area": "Odporność po błędzie",
      "claim": "W niedoczasie gracz upraszcza proces do groźby, bezpiecznych kandydatów i ostatniej kontroli pola docelowego.",
      "prompt": "Wykonaj pięć decyzji z limitem czasu, używając zawsze tej samej skróconej checklisty.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/protokol-niedoczasu/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "PSY-003-confidence-evidence",
      "title": "Pewność oparta na dowodach",
      "area": "Odporność po błędzie",
      "claim": "Ocena ruchu wynika z policzonych wariantów i cech pozycji, nie z samego poczucia pewności.",
      "prompt": "Przy każdym kandydacie zapisz jeden dowód za i jeden dowód przeciw.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/pewnosc-oparta-na-dowodach/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "DIAG-002-error-cluster",
      "title": "Klaster powtarzalnych błędów",
      "area": "Diagnoza błędów",
      "claim": "Kilka podobnych pomyłek jest łączonych w jeden problem treningowy zamiast traktowania każdej jako osobnego przypadku.",
      "prompt": "Pogrupuj błędy z trzech partii według wspólnej przyczyny i wybierz najczęstszy klaster.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/klaster-powtarzalnych-bledow/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "DIAG-003-one-variable-training",
      "title": "Jedna zmienna treningowa",
      "area": "Diagnoza błędów",
      "claim": "Sesja naprawcza mierzy jedno zachowanie naraz, aby wynik dało się zinterpretować.",
      "prompt": "Wybierz jedną checklistę i oceń jej wykonanie w dziesięciu zadaniach bez zmiany pozostałych warunków.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/jedna-zmienna-treningowa/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "DIAG-004-transfer-check",
      "title": "Sprawdzenie transferu",
      "area": "Diagnoza błędów",
      "claim": "Umiejętność jest zaliczona dopiero wtedy, gdy działa w zmienionej pozycji i bez podpowiedzi.",
      "prompt": "Po poprawnym zadaniu rozwiąż wariant lustrzany bez podpowiedzi i porównaj proces.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/sprawdzenie-transferu/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-009-forcing-horizon",
      "title": "Horyzont ruchów wymuszających",
      "area": "Kalkulacja",
      "claim": "Wariant wymuszający jest liczony do chwili, gdy kończą się szachy, bicia i bezpośrednie groźby.",
      "prompt": "Zaznacz w wariancie moment, w którym kończy się przymus i trzeba ponownie porównać kandydatów.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/horyzont-ruchow-wymuszajacych/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=mate-anastasia#/practice",
          "https://szachmaty.pl/?practice=mate-corner#/practice",
          "https://szachmaty.pl/?practice=mate-morphy#/practice",
          "https://szachmaty.pl/?practice=mate-vukovic#/practice",
          "https://szachmaty.pl/?practice=pin#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch3-l1#/lessons",
          "https://szachmaty.pl/?lesson=ch4-l7#/lessons"
        ],
        "errors": [
          "https://szachmaty.pl/pojecia/przeoczone-widelki/"
        ]
      },
      "analysisConceptIds": [
        "fork"
      ]
    },
    {
      "id": "CALC-010-quiet-candidates",
      "title": "Porównanie spokojnych ruchów",
      "area": "Kalkulacja",
      "claim": "Po sprawdzeniu ruchów wymuszających gracz dodaje co najmniej jeden cichy ruch poprawiający pozycję.",
      "prompt": "W pozycji bez taktyki znajdź dwa spokojne ruchy i porównaj ich najsilniejsze odpowiedzi.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/porownanie-spokojnych-ruchow/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=attraction#/practice",
          "https://szachmaty.pl/?practice=mate-anderssen#/practice",
          "https://szachmaty.pl/?practice=mate-damiano#/practice",
          "https://szachmaty.pl/?practice=mate-opera#/practice",
          "https://szachmaty.pl/?practice=minor-piece-mates#/practice",
          "https://szachmaty.pl/?practice=xray#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch3-l2#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-011-tactical-preconditions",
      "title": "Warunki kombinacji",
      "area": "Kalkulacja",
      "claim": "Kombinacja jest rozważana po sprawdzeniu ustawienia króla, przeciążonych obrońców i geometrii linii.",
      "prompt": "Przed liczeniem nazwij dwa konkretne warunki, które umożliwiają motyw taktyczny.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/warunki-kombinacji/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=counter-check#/practice",
          "https://szachmaty.pl/?practice=mate-arabian#/practice",
          "https://szachmaty.pl/?practice=mate-epaulette#/practice",
          "https://szachmaty.pl/?practice=mate-patterns-1#/practice",
          "https://szachmaty.pl/?practice=overload#/practice",
          "https://szachmaty.pl/?practice=calculation-process#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch3-l3#/lessons"
        ],
        "errors": [
          "https://szachmaty.pl/pojecia/odkryty-atak/"
        ]
      },
      "analysisConceptIds": [
        "discovered-check"
      ]
    },
    {
      "id": "CALC-012-coordinate-visualization",
      "title": "Wizualizacja współrzędnych",
      "area": "Kalkulacja",
      "claim": "Po każdym półruchu gracz aktualizuje pola figur, linie ataku i zajęte pola bez przesuwania bierek.",
      "prompt": "Policz trzy półruchy, a potem odtwórz z pamięci położenie wszystkich figur uczestniczących w wariancie.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/wizualizacja-wspolrzednych/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=deflection#/practice",
          "https://szachmaty.pl/?practice=mate-back-rank#/practice",
          "https://szachmaty.pl/?practice=mate-greco#/practice",
          "https://szachmaty.pl/?practice=mate-patterns-2#/practice",
          "https://szachmaty.pl/?practice=skewer#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch4-l1#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-013-eliminate-candidates",
      "title": "Eliminacja kandydatów",
      "area": "Kalkulacja",
      "claim": "Kandydat odpada natychmiast po znalezieniu jednej wymuszającej odpowiedzi, która obala jego cel.",
      "prompt": "Dla trzech kandydatów zapisz pierwszą odpowiedź obalającą albo powód pozostawienia ruchu.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/eliminacja-kandydatow/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=desperado#/practice",
          "https://szachmaty.pl/?practice=mate-balestra#/practice",
          "https://szachmaty.pl/?practice=mate-hook#/practice",
          "https://szachmaty.pl/?practice=mate-pillsbury#/practice",
          "https://szachmaty.pl/?practice=zwischenzug#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch4-l2#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-014-evaluation-checkpoints",
      "title": "Punkty kontrolne oceny",
      "area": "Kalkulacja",
      "claim": "Po każdej wymianie w wariancie gracz ponownie ocenia materiał, króla i aktywność figur.",
      "prompt": "W długim wariancie wstaw trzy punkty kontrolne i przy każdym zapisz krótką ocenę.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/punkty-kontrolne-oceny/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=discovered#/practice",
          "https://szachmaty.pl/?practice=mate-beniowski#/practice",
          "https://szachmaty.pl/?practice=mate-in-2#/practice",
          "https://szachmaty.pl/?practice=mate-smothered#/practice",
          "https://szachmaty.pl/?practice=mate-in-1#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch4-l3#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-015-stopping-rule",
      "title": "Reguła zatrzymania",
      "area": "Kalkulacja",
      "claim": "Liczenie kończy się w stabilnej pozycji, w której można wiarygodnie porównać cechy, a nie po arbitralnej liczbie ruchów.",
      "prompt": "Uzasadnij, dlaczego końcowa pozycja wariantu jest już wystarczająco stabilna do oceny.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/regula-zatrzymania/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=double-check#/practice",
          "https://szachmaty.pl/?practice=mate-blackburne#/practice",
          "https://szachmaty.pl/?practice=mate-janowski#/practice",
          "https://szachmaty.pl/?practice=mate-swallows-tail#/practice",
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch4-l4#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "CALC-016-practical-verification",
      "title": "Weryfikacja praktyczna",
      "area": "Kalkulacja",
      "claim": "Przed wykonaniem wybranego ruchu gracz jeszcze raz sprawdza tylko linię główną i pole docelowe.",
      "prompt": "Po wyborze kandydata powtórz bez notatek główny wariant i ostatnią kontrolę bezpieczeństwa.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/weryfikacja-praktyczna/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=fork#/practice",
          "https://szachmaty.pl/?practice=mate-boden#/practice",
          "https://szachmaty.pl/?practice=mate-legal#/practice",
          "https://szachmaty.pl/?practice=mate-triangle#/practice",
          "https://szachmaty.pl/?practice=exchange-count#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch4-l5#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-009-reserve-tempi",
      "title": "Tempa rezerwowe",
      "area": "Końcówki",
      "claim": "Ruch pionem, który nie zmienia struktury krytycznej, może zachować właściwy moment wejścia króla.",
      "prompt": "Wskaż piony z tempem rezerwowym i sprawdź, jak zmieniają kolejność ruchów królów.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/tempa-rezerwowe/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=underpromotion#/practice",
          "https://szachmaty.pl/?practice=zugzwang#/practice",
          "https://szachmaty.pl/?practice=endgame-pawn-race#/practice",
          "https://szachmaty.pl/?practice=endgame-queen-technique#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch6-l10#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-010-outside-passer",
      "title": "Odległy wolny pion",
      "area": "Końcówki",
      "claim": "Odległy wolny pion ma wartość wtedy, gdy odciąga króla i tworzy mierzalne wejście po drugiej stronie.",
      "prompt": "Policz, czy poświęcenie odległego pionka daje królowi czas na zebranie skrzydła hetmańskiego.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/odlegly-wolny-pion/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-rook#/practice",
          "https://szachmaty.pl/?practice=endgame-king-activity#/practice",
          "https://szachmaty.pl/?practice=endgame-pawn-promotion#/practice",
          "https://szachmaty.pl/?practice=endgame-knight-blockade#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch6-l11#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-011-favorable-exchange",
      "title": "Korzystna wymiana do końcówki",
      "area": "Końcówki",
      "claim": "Wymiana figur jest dobra tylko po porównaniu powstałej końcówki, aktywności królów i struktury pionów.",
      "prompt": "Przed wymianą zapisz trzy cechy końcówki, która pozostanie na planszy.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/korzystna-wymiana-do-koncowki/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-queen#/practice",
          "https://szachmaty.pl/?practice=endgame-direct-opposition#/practice",
          "https://szachmaty.pl/?practice=endgame-protected-passer#/practice",
          "https://szachmaty.pl/?practice=endgame-bishop-stops-pawn#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch6-l3#/lessons"
        ],
        "errors": [
          "https://szachmaty.pl/pojecia/wymiany-przy-stracie/",
          "https://szachmaty.pl/pojecia/wczesna-wymiana-hetmanow/"
        ]
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-012-rook-checking-distance",
      "title": "Dystans szachowania wieżą",
      "area": "Końcówki",
      "claim": "Wieża broni się skuteczniej, gdy zachowuje przestrzeń do bocznych lub tylnych szachów.",
      "prompt": "Znajdź pole wieży, które maksymalizuje liczbę bezpiecznych szachów z dystansu.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/dystans-szachowania-wieza/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-knight#/practice",
          "https://szachmaty.pl/?practice=endgame-key-squares#/practice",
          "https://szachmaty.pl/?practice=endgame-rook-behind-pawn#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch6-l4#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-013-fortress-stalemate",
      "title": "Forteca i bezpieczeństwo pata",
      "area": "Końcówki",
      "claim": "Słabsza strona ocenia możliwość fortecy oraz pata przed automatycznym oddaniem pionów lub figur.",
      "prompt": "W pozycji obronnej sprawdź kolejno: wejścia króla, przełamania pionowe i możliwość pata.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/forteca-i-bezpieczenstwo-pata/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-bishop#/practice",
          "https://szachmaty.pl/?practice=endgame-square-rule#/practice",
          "https://szachmaty.pl/?practice=endgame-active-rook#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch6-l8#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "END-014-pawn-ending-transition",
      "title": "Przejście do pionkówki",
      "area": "Końcówki",
      "claim": "Przed wymianą ostatnich figur gracz liczy wyścig pionów do końca, łącznie z tempami i promocją.",
      "prompt": "Policz wariant po wymianie ostatniej figury aż do pierwszej promocji lub zatrzymania wszystkich pionów.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/przejscie-do-pionkowki/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=endgame-pawn-technique#/practice",
          "https://szachmaty.pl/?practice=endgame-passed-pawn#/practice",
          "https://szachmaty.pl/?practice=endgame-cut-off-king#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch6-l9#/lessons"
        ],
        "errors": [
          "https://szachmaty.pl/pojecia/przeoczona-promocja/"
        ]
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-009-pawn-breaks",
      "title": "Kandydaci na przełamanie",
      "area": "Strategia",
      "claim": "Plan pozycyjny zaczyna się od wskazania możliwych przełamań pionowych obu stron i warunków ich przygotowania.",
      "prompt": "Zaznacz wszystkie legalne przełamania pionowe i dla każdego nazwij figurę, która powinna je przygotować.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/kandydaci-na-przelamanie/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=plan-choice#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch7-l1#/lessons"
        ],
        "errors": [
          "https://szachmaty.pl/pojecia/izolowany-pion/"
        ]
      },
      "analysisConceptIds": [
        "isolated-pawn"
      ]
    },
    {
      "id": "STRAT-010-color-complex",
      "title": "Słabość kompleksu pól",
      "area": "Strategia",
      "claim": "Słabe pola są oceniane jako grupa dopiero wtedy, gdy przeciwnik może je trwale wykorzystać figurą.",
      "prompt": "Wskaż trzy pola jednego koloru i figurę, która może je wykorzystać bez łatwego przegonienia.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/slabosc-kompleksu-pol/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=plan-choice#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch7-l3#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-011-favorable-trade",
      "title": "Wymiana poprawiająca układ figur",
      "area": "Strategia",
      "claim": "Wymiana jest elementem planu, gdy usuwa najlepszego obrońcę albo poprawia relację aktywnych figur.",
      "prompt": "Porównaj pozycję przed i po wymianie pod kątem najgorszej figury każdej strony.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/wymiana-poprawiajaca-uklad-figur/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=plan-choice#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch7-l5#/lessons"
        ],
        "errors": [
          "https://szachmaty.pl/pojecia/zdublowane-piony/"
        ]
      },
      "analysisConceptIds": [
        "doubled-pawns"
      ]
    },
    {
      "id": "STRAT-012-space-reroute",
      "title": "Przerzut przy przewadze przestrzeni",
      "area": "Strategia",
      "claim": "Przewaga przestrzeni daje czas na poprawę najgorszej figury, jeśli przeciwnik nie ma natychmiastowego przełamania.",
      "prompt": "Zaplanuj trzyruchowy przerzut najgorszej figury i sprawdź kontrgrę przeciwnika.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/przerzut-przy-przewadze-przestrzeni/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=plan-choice#/practice"
        ],
        "lessons": [],
        "errors": [
          "https://szachmaty.pl/pojecia/skoczek-na-skraju-planszy/"
        ]
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-013-two-weaknesses",
      "title": "Dwie słabości",
      "area": "Strategia",
      "claim": "Po związaniu obrony jednej słabości gracz tworzy drugi cel na odległym skrzydle.",
      "prompt": "Wskaż pierwszy cel, obrońców i możliwy drugi cel, który zmusi ich do rozdzielenia.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/dwie-slabosci/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=strategy-outpost#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-014-attack-gate",
      "title": "Bramka ataku na króla",
      "area": "Strategia",
      "claim": "Atak rozpoczyna się dopiero po ocenie przewagi sił, dróg wejścia i możliwości otwarcia linii.",
      "prompt": "Przed atakiem oceń trzy bramki: liczba figur, otwarte linie i bezpieczny własny król.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/bramka-ataku-na-krola/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=strategy-open-file#/practice"
        ],
        "lessons": [],
        "errors": [
          "https://szachmaty.pl/pojecia/brak-okienka-dla-krola/",
          "https://szachmaty.pl/pojecia/pionki-przed-krolem/"
        ]
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-015-center-before-wing",
      "title": "Centrum przed skrzydłem",
      "area": "Strategia",
      "claim": "Akcja na skrzydle wymaga sprawdzenia, czy przeciwnik nie może natychmiast otworzyć centrum.",
      "prompt": "Przed ruchem pionem skrzydłowym policz wszystkie przełamania centralne przeciwnika.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/centrum-przed-skrzydlem/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=strategy-prophylaxis#/practice"
        ],
        "lessons": [],
        "errors": [
          "https://szachmaty.pl/pojecia/oddane-centrum/"
        ]
      },
      "analysisConceptIds": []
    },
    {
      "id": "STRAT-016-prophylactic-candidate",
      "title": "Kandydat profilaktyczny",
      "area": "Strategia",
      "claim": "Lista kandydatów zawiera ruch ograniczający najlepszy plan przeciwnika, jeśli nie traci on tempa bez powodu.",
      "prompt": "Nazwij najlepszy plan przeciwnika i znajdź jeden ruch, który go ogranicza, poprawiając własną pozycję.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/kandydat-profilaktyczny/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=strategy-wing-majority#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "BEGIN-001-board-scan",
      "title": "Skan całej szachownicy",
      "area": "Nauczanie",
      "claim": "Początkujący przed ruchem przegląda wszystkie cztery ćwiartki planszy, aby nie zawężać uwagi do ostatniego ruchu.",
      "prompt": "Wskaż po jednej atakowanej figurze lub ważnym polu w każdej ćwiartce szachownicy.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/skan-calej-szachownicy/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch1-l1#/lessons",
          "https://szachmaty.pl/?lesson=ch1-l7#/lessons",
          "https://szachmaty.pl/?lesson=ch5-l1#/lessons",
          "https://szachmaty.pl/?lesson=ch5-l7#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "BEGIN-002-development-milestone",
      "title": "Kamienie milowe rozwoju",
      "area": "Nauczanie",
      "claim": "W debiucie rozwój mierzy się aktywnymi figurami, bezpieczeństwem króla i połączeniem wież, nie liczbą ruchów pionami.",
      "prompt": "Po dziesiątym ruchu zaznacz rozwinięte figury, stan roszady i połączenie wież.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/kamienie-milowe-rozwoju/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch1-l2#/lessons",
          "https://szachmaty.pl/?lesson=ch1-l8#/lessons",
          "https://szachmaty.pl/?lesson=ch5-l2#/lessons"
        ],
        "errors": [
          "https://szachmaty.pl/pojecia/brak-rozwoju-figur/",
          "https://szachmaty.pl/pojecia/hetman-za-wczesnie/",
          "https://szachmaty.pl/pojecia/za-duzo-ruchow-pionkami/",
          "https://szachmaty.pl/pojecia/odkladana-roszada/",
          "https://szachmaty.pl/pojecia/ta-sama-figura-dwa-razy/",
          "https://szachmaty.pl/pojecia/niepolaczone-wieze/"
        ]
      },
      "analysisConceptIds": [
        "early-queen",
        "king-safety",
        "repeated-piece"
      ]
    },
    {
      "id": "BEGIN-003-material-safety",
      "title": "Bezpieczeństwo materiału",
      "area": "Nauczanie",
      "claim": "Przed planem strategicznym początkujący sprawdza, czy każda figura jest broniona albo ma bezpieczne pole odwrotu.",
      "prompt": "Przejdź po wszystkich figurach i oznacz każdą jako bronioną, atakowaną lub zagrożoną.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/bezpieczenstwo-materialu/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch1-l3#/lessons",
          "https://szachmaty.pl/?lesson=ch2-l1#/lessons",
          "https://szachmaty.pl/?lesson=ch5-l3#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "BEGIN-004-endgame-priority",
      "title": "Priorytety prostej końcówki",
      "area": "Nauczanie",
      "claim": "W prostej końcówce początkujący najpierw aktywizuje króla, potem tworzy wolnego pionka i dopiero liczy promocję.",
      "prompt": "Ułóż trzy działania końcówkowe w kolejności i uzasadnij pierwszy krok.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/priorytety-prostej-koncowki/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch1-l4#/lessons",
          "https://szachmaty.pl/?lesson=ch2-l2#/lessons",
          "https://szachmaty.pl/?lesson=ch5-l4#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "TEACH-005-spaced-review",
      "title": "Powtórka rozłożona w czasie",
      "area": "Nauczanie",
      "claim": "Powtórka wraca po narastającym odstępie i skraca się dopiero po błędnej odpowiedzi.",
      "prompt": "Zaplanuj trzy terminy powtórki jednego motywu i określ warunek cofnięcia odstępu.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/powtorka-rozlozona-w-czasie/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch1-l5#/lessons",
          "https://szachmaty.pl/?lesson=ch2-l3#/lessons",
          "https://szachmaty.pl/?lesson=ch5-l5#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "TEACH-006-transfer-mastery",
      "title": "Zaliczenie przez transfer",
      "area": "Nauczanie",
      "claim": "Uczeń zalicza temat po poprawnym rozwiązaniu kilku nowych wariantów bez podpowiedzi, a nie po samym rozpoznaniu przykładu.",
      "prompt": "Zbuduj bramkę zaliczenia: trzy nowe pozycje, limit podpowiedzi i próg poprawności.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/zaliczenie-przez-transfer/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=free-material#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch1-l6#/lessons",
          "https://szachmaty.pl/?lesson=ch2-l4#/lessons",
          "https://szachmaty.pl/?lesson=ch5-l6#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "GAME-005-question-annotation",
      "title": "Komentarz w formie pytań",
      "area": "Partie modelowe",
      "claim": "Komentarz do partii modelowej zatrzymuje zapis przed decyzją i pyta o kandydatów, zamiast od razu ujawniać ruch.",
      "prompt": "W wybranej partii dodaj pięć pauz z pytaniem o groźbę, kandydatów i ocenę.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/komentarz-w-formie-pytan/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=model-games#/practice"
        ],
        "lessons": [],
        "errors": []
      },
      "analysisConceptIds": []
    },
    {
      "id": "COMP-001-engine-disagreement",
      "title": "Rozbieżność z silnikiem jako pytanie",
      "area": "Kalkulacja",
      "claim": "Różnica między ruchem człowieka a wskazaniem silnika uruchamia własne wyjaśnienie pozycyjne, nie bezrefleksyjne kopiowanie wariantu.",
      "prompt": "Przy rozbieżności nazwij cechę pozycji, której nie uwzględniłeś, i sprawdź ją w dwóch własnych wariantach.",
      "rightsGate": {
        "status": "pass",
        "mode": "independent-synthesis-only"
      },
      "verification": {
        "status": "passed",
        "method": "registry-links-and-product-targets"
      },
      "url": "https://szachmaty.pl/biblioteka-wiedzy/rozbieznosc-z-silnikiem-jako-pytanie/",
      "productLinks": {
        "practice": [
          "https://szachmaty.pl/?practice=interference#/practice",
          "https://szachmaty.pl/?practice=mate-cage#/practice",
          "https://szachmaty.pl/?practice=mate-lolli#/practice",
          "https://szachmaty.pl/?practice=mate-two-bishops#/practice",
          "https://szachmaty.pl/?practice=tempting-check#/practice"
        ],
        "lessons": [
          "https://szachmaty.pl/?lesson=ch4-l6#/lessons"
        ],
        "errors": []
      },
      "analysisConceptIds": []
    }
  ]
}
